TI中文支持网
TI专业的中文技术问题搜集分享网站

RC522 在CC2541 OSAL下选卡失败

我用CC2541的51内核控制RC522模块(SPI)来操作IC卡(寻卡/防冲撞/选卡/校卡/读写等所有功能)都正常了。但是当我想把这部分代码移植到CC2541的OSAL下时,打死都过不了选卡这个函数PcdSelect(g_ucTempbuf); 。同一个板同样的硬件接线,同样的开发环境(IAR),就是选择的CC2541的系统不同(一个51,一个是OSAL)。搞了两天了,一直卡在这;SPI控制管脚也飞线换了几种接法,都是在同一处失败!

请问有相关人士碰到过类示问题没?估计还是哪个设置冲突了。

//////////////////////////////////
//SPI端口定义
/////////////////////////////////////////////////////////////////////
//MFRC500
#define MF522_RST P0_1 // Output#define MF522_SCK P0_6 // Output
#define MF522_SDA P0_5 // Output
#define MF522_SO P1_5 // Input
#define MF522_SI P1_4 // Output

user3840094:

补充一下,该CC2541已经占用资源
UART2(即P1_6/7),
蓝牙,
及几个中断口:*HAL_KEY_SW_1(P0_0)*HAL_KEY_SW_3(P0_2)*HAL_KEY_SW_4(P0_3)*HAL_KEY_SW_5(P0_4)

项目在IAR编译器里面预处理器设置为:
INT_HEAP_LEN=3072
HALNODEBUG
OSAL_CBTIMER_NUM_TASKS=1
HAL_AES_DMA=TRUE
HAL_DMA=TRUE
POWER_SAVING
xPLUS_BROADCASTER
HAL_LCD=FALSE
HAL_LED=TRUE
HAL_KEY=TRUE
HAL_UART=TRUE
HAL_UART_ISR=TRUE
HAL_UART_DMA=2

Alvin Chen:

你是不是模拟SPI的,有可能是时序问题。

user3840094:

回复 user3840094:

上面这些预处理设置一个一个地 disable 掉,simpleBLEPeripheral.c 里面所有多余的函数及事件全disable 掉,编译->烧录->实验,同样的问题依然存在。怪了!

user3840094:

回复 user3840094:

simpleBLEPeripheral.c 里面已经光光了无任何干扰了还是出问题,那估计得去看看那个SimpleBLEPeripheral_Main.c文件,估计哪儿某个初始化后搞鬼了,这无聊的系统设计也够让人恼火的。
Disable them f(from end to top) one by one,在下面这个操作后发现选卡终于成功了(在程序里面设置了一个蜂鸣器声音提示)!// Initialize hardware //HAL_BOARD_INIT();
// Initialize board I/O//InitBoard( OB_COLD );
// Initialze the HAL driver //HalDriverInit();
// Initialize NV system //osal_snv_init();
// Initialize the operating system osal_init_system();
// Enable interrupts HAL_ENABLE_INTERRUPTS();
// Final board initializationInitBoard( OB_READY );#if defined ( POWER_SAVING )osal_pwrmgr_device( PWRMGR_BATTERY );// enter PM2 mode#endif
/* Start OSAL */osal_start_system(); // No Return from here

user3840094:

回复 user3840094:

继续上移使能命令行…,当使能到命令行“HAL_BOARD_INIT();”时以前的问题再次出现了!很显然,这个函数在背后搞鬼了。

赞(0)
未经允许不得转载:TI中文支持网 » RC522 在CC2541 OSAL下选卡失败
分享到: 更多 (0)