bleSDK_expansion_board/drivers/api/sysdbg.h

190 lines
5.4 KiB
C
Raw Normal View History

/**
****************************************************************************************
*
* @file sysdbg.h
*
* @brief Header file - system debug observation.
*
****************************************************************************************
*/
#ifndef _SYSDBG_H_
#define _SYSDBG_H_
#include <stdint.h>
/*
* DEFINES
****************************************************************************************
*/
/// sysdbg[0:15] map PA02~05,PA08~19
enum sysdbg_pio
{
SYS_DBG_PIO00 = (1UL << 2),
SYS_DBG_PIO01 = (1UL << 3),
SYS_DBG_PIO02 = (1UL << 4),
SYS_DBG_PIO03 = (1UL << 5),
SYS_DBG_PIO04 = (1UL << 8),
SYS_DBG_PIO05 = (1UL << 9),
SYS_DBG_PIO06 = (1UL << 10),
SYS_DBG_PIO07 = (1UL << 11),
SYS_DBG_PIO08 = (1UL << 12),
SYS_DBG_PIO09 = (1UL << 13),
SYS_DBG_PIO10 = (1UL << 14),
SYS_DBG_PIO11 = (1UL << 15),
SYS_DBG_PIO12 = (1UL << 16),
SYS_DBG_PIO13 = (1UL << 17),
SYS_DBG_PIO14 = (1UL << 18),
SYS_DBG_PIO15 = (1UL << 19),
SYS_DBG_PIO_ALL = 0xFFF3C,
SYS_DBG_PIO_MSK = 0xFFF3C,
};
/// sysdbg selection
enum sysdbg_sel
{
SYS_DBG_RF = 0,
SYS_DBG_BLE = 1,
SYS_DBG_MDM = 2,
SYS_DBG_USB = 3,
};
/// RF debug port
enum rf_dbg
{
RF_DBG_TX = 1,
RF_DBG_RX = 2,
RF_DBG_CAL = 3,
};
/// Ble debug diagnose
enum ble_dbg
{
BLE_DBG_TX = 0x0083,
BLE_DBG_RX = 0x8300,
BLE_DBG_TXRX = 0x8383,
};
/// Modem debug mode
enum mdm_dbg
{
MDM_DBG1 = 1,
MDM_DBG2 = 2,
MDM_DBG3 = 3,
MDM_DBG_EXT_TX = 4,
MDM_DBG_EXT_RX = 5,
};
/// USB debug diagnose
enum usb_dbg
{
USB_DBG1 = 1,
USB_DBG2 = 2,
};
/// Analog test en
enum ana_tst_en
{
ATEN_AT0_BIT = 0x01,
ATEN_AT1_BIT = 0x02,
ATEN_AT0_AT1 = (ATEN_AT0_BIT | ATEN_AT1_BIT),
ATEN_CBPF_BIT = 0x04,
ATEN_RSSI_BIT = 0x08,
};
/// AT0 AT1 selection
enum ana_tst_sel
{
// AT0 Mux - bit[3:0]
AT0_SEL_LSB = 0,
AT0_VDD_IF = (0 << AT0_SEL_LSB),
AT0_BPF_IOP = (1 << AT0_SEL_LSB),
AT0_BPF_QOP = (2 << AT0_SEL_LSB),
AT0_VDD_PLL = (5 << AT0_SEL_LSB),
AT0_PLL_VCTRL = (6 << AT0_SEL_LSB),
AT0_LMT_OUTI = (10 << AT0_SEL_LSB),
AT0_PLL_FBCLK_DIV2 = (12 << AT0_SEL_LSB),
AT0_BPF_CAL_DONE = (14 << AT0_SEL_LSB),
AT0_SEL_MSK = (0x0F << AT0_SEL_LSB),
// AT1 Mux - bit[7:4]
AT1_SEL_LSB = 4,
AT1_VDD_TX = (0 << AT1_SEL_LSB),
AT1_BPF_ION = (1 << AT1_SEL_LSB),
AT1_BPF_QON = (2 << AT1_SEL_LSB),
AT1_VDD_RX = (5 << AT1_SEL_LSB),
AT1_VDD_VCO = (6 << AT1_SEL_LSB),
AT1_RSSI_OUT = (7 << AT1_SEL_LSB),
AT1_LMT_OUTQ = (10 << AT1_SEL_LSB),
AT1_PLL_LOCK = (13 << AT1_SEL_LSB),
AT1_AGC_POWER_DET = (15 << AT1_SEL_LSB),
AT1_SEL_MSK = (0x0F << AT1_SEL_LSB),
};
/*
* MACRO ALIAS
****************************************************************************************
*/
// Init all debug pio
#define sys_dbg_init() sysdbg_iomap(SYS_DBG_PIO_ALL)
// RF debug select, 'txrx' @see enum rf_dbg
#define rf_dbg_sel(txrx) sysdbg_select(SYS_DBG_RF, txrx)
// BLE debug select, 'diag' @see enum ble_dbg
#define ble_dbg_sel(diag) sysdbg_select(SYS_DBG_BLE, diag)
// Modem debug select, 'mode' @see enum mdm_dbg
#define mdm_dbg_sel(mode) sysdbg_select(SYS_DBG_MDM, mode)
// AT0 AT1 enable CBPF observation
#define at0_at1_cbpf_out() sysdbg_anatst(ATEN_AT0_AT1|ATEN_CBPF_BIT, AT0_BPF_IOP|AT1_BPF_ION)
// AT0 AT1 enable RSSI observation
#define at0_at1_rssi_out() sysdbg_anatst(ATEN_AT0_AT1|ATEN_RSSI_BIT, AT1_RSSI_OUT)
/*
* FUNCTION DECLARATION
****************************************************************************************
*/
/**
****************************************************************************************
* @brief Map iopads for debug observation.
*
* @param[in] pio Bits of PAxx @see enum sysdbg_pio
*
****************************************************************************************
*/
void sysdbg_iomap(uint32_t pio);
/**
****************************************************************************************
* @brief Select debug module to observe.
*
* @param[in] dbgsel Debug Selected @see enum sysdbg_sel
* @param[in] diag Mode Value @see enum rf_dbg or ble_dbg or mdm_dbg
*
****************************************************************************************
*/
void sysdbg_select(uint8_t dbgsel, uint32_t diag);
/**
****************************************************************************************
* @brief Config AT0 AT1 for RF debug observation.
*
* @param[in] tsten Analog test bits @see enum ana_tst_en
* @param[in] atsel Selected func @see enum ana_tst_sel
*
****************************************************************************************
*/
void sysdbg_anatst(uint8_t tsten, uint8_t atsel);
#endif // _SYSDBG_H_