[Mod] 按优化方案修改,完整初始化正常

This commit is contained in:
gaoyang3513
2024-08-01 10:17:12 +08:00
parent 2ea3d7e844
commit eacd045dfd
7 changed files with 528 additions and 459 deletions

View File

@ -197,11 +197,11 @@ int main(void)
}
#endif // CONFIG_TASK_LED
if (NULL == sys_task_create(NULL, (const uint8_t *)"sub1g_task", NULL, START_TASK_STK_SIZE, 0, START_TASK_PRIO, sub1g_task, NULL)) {
if (NULL == sys_task_create(NULL, (const uint8_t *)"start_task", NULL, START_TASK_STK_SIZE, 0, START_TASK_PRIO, start_task, NULL)) {
DEBUGPRINT("ERROR: create start task failed\r\n");
}
if (NULL == sys_task_create(NULL, (const uint8_t *)"start_task", NULL, START_TASK_STK_SIZE, 0, START_TASK_PRIO, start_task, NULL)) {
if (NULL == sys_task_create(NULL, (const uint8_t *)"sub1g_task", NULL, START_TASK_STK_SIZE, 0, START_TASK_PRIO, sub1g_task, NULL)) {
DEBUGPRINT("ERROR: create start task failed\r\n");
}

View File

@ -0,0 +1,12 @@
# EditorConfig is awesome: https://EditorConfig.org
# top-most EditorConfig file
root = true
[*]
indent_style = tab
indent_size = 8
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = false

View File

@ -25,10 +25,31 @@ uint8_t rf_rxbuffer[200];
uint8_t rf_rxsize;
uint8_t radio_rece_data_flag;
extern uint32_t g_chip_id;
void Ebyte_E48x_Init( void )
{
vRadioCheckLink();
/* Step1 */
vRadioPowerUp(); // Release RST(GPIO5)
vRadioSetAntSwitch(FALSE, FALSE); // Disable GPIO0 & GPIO1 as antenna switch control
vRadioSpiModeSel(FALSE); // SPI 4-Wire mode
/* Step2 */
g_chip_id = lRadioChipVersion();
if(0x00231000 != (g_chip_id & 0x00FFFF00)) {
DEBUGPRINT("[%s|%u] Error, dismatch Chip-ID[%#x](!=0x231000).\r\n", __FUNCTION__, __LINE__, g_chip_id);
return;
}
DEBUGPRINT("[%s|%u] Info, Link Device:E48-XXXM20S.\r\n", __FUNCTION__, __LINE__);
/* Step3 */
if (bRadioGetState() == CMT2310A_STATE_IS_READY) {
DEBUGPRINT("[%s|%u] Infor, CMT2310 already in State[READY], so skip initialization.\r\n", __FUNCTION__, __LINE__);
return;
}
DEBUGPRINT("[%s|%u] Info, goto initialize E48-XXXM20S.\r\n", __FUNCTION__, __LINE__);
/* Step4 */
vRadioInit();
}

View File

@ -72,7 +72,11 @@ const uint8_t cmt2310a_power[55][7] = {
void vRadioInit( void )
{
byte fw_rev;
vRadioSoftReset();
/* Step4 */
vRadioHardReset();
/* Step5 */
vRadioConfigPageReg( 0, g_cmt2310a_page0, CMT2310A_PAGE0_SIZE ); //config page 0
vRadioConfigPageReg( 1, g_cmt2310a_page1, CMT2310A_PAGE1_SIZE ); //config page 1
vRadioSetNirq( CMT2310A_nIRQ_TCXO ); //for TCXO need cofig as nIRQ pin at first
@ -88,15 +92,21 @@ void vRadioInit( void )
break;
}
/* Step6 */
vRadioPowerUpBoot();
delay1ms( 10 );
/* Step7 */
bRadioGoStandby();
delay1ms( 2 );
bRadioApiCommand( 0x02 ); //
delay1ms( 10 );
/* Step8 */
bRadioApiCommand( 0x01 ); //IR Calibration, need some times
vRadioCapLoad( 2 ); //Xo Cap
//GPIOn default setting
/* Step9, GPIOn and interrupt setting */
vRadioSetGpio0( CMT2310A_GPIO0_INT3 );
vRadioSetGpio1( CMT2310A_GPIO1_INT2 );
vRadioSetGpio2( CMT2310A_GPIO2_DCLK );

View File

@ -1,4 +1,5 @@
#include "radio_hal.h"
#include "board.h"
void delay1ms(uint16_t cnt)
{
@ -440,6 +441,18 @@ void vRadioPowerUpBoot( void )
bSpiWriteByte( CMT2310A_CTL_REG_00, CMT2310A_REBOOT );
}
/******************************
**Name: vRadioPowerUpBoot
**Func: Radio power up boot start
**Input: None
*Output: None
********************************/
void vRadioPowerUp( void )
{
gpio_bit_write(BSP_GPIO_PORT_E48_GP5, BSP_GPIO_PIN_E48_GP5, RESET);
delay1ms(10);
}
/******************************
**Name: vRadioSoftReset
**Func: Radio soft reset
@ -455,6 +468,20 @@ void vRadioSoftReset( void )
delay10us( 100 );
}
/******************************
**Name: vRadioSoftReset
**Func: Radio soft reset
**Input: None
*Output: None
********************************/
void vRadioHardReset( void )
{
gpio_bit_write(BSP_GPIO_PORT_E48_GP5, BSP_GPIO_PIN_E48_GP5, SET);
delay10us(10);
gpio_bit_write(BSP_GPIO_PORT_E48_GP5, BSP_GPIO_PIN_E48_GP5, RESET);
delay1ms(10);
}
/******************************
**Name: vRadioSetPaOutputMode
**Func: Radio config PA output mode
@ -513,14 +540,11 @@ void vRadioSetTxDataInverse( boolean_t cfg_en )
void vRadioSetAntSwitch( boolean_t cfg_en, boolean_t cfg_polar )
{
uint8_t cfg_tmp = 0;
if( cfg_en )
{
cfg_tmp |= CMT2310A_TRX_SWT_EN;
}
if( cfg_polar )
{
cfg_tmp |= CMT2310A_TRX_SWT_INV;
}
bRadioSetReg( CMT2310A_CTL_REG_22, cfg_tmp, ( CMT2310A_TRX_SWT_EN | CMT2310A_TRX_SWT_INV ) );
}

View File

@ -68,7 +68,9 @@ extern void vRadioSetNirq( uint8_t nirq_sel );
extern void vRadioTcxoDrvSel( uint8_t drv_sel );
extern void vRadioRegPageSel( uint8_t page_sel );
extern void vRadioPowerUp( void );
extern void vRadioPowerUpBoot( void );
extern void vRadioHardReset( void );
extern void vRadioSoftReset( void );
extern void vRadioSetPaOutputMode( boolean_t cfg_en );
extern void vRadioSetTxDataInverse( boolean_t cfg_en );