主题中讨论的其他器件: CC2640R2F
您好!
我自己设计了一个板来使用 CC2640R2F 从 ADS1291读取数据。 运行正常、当我使用主 CPU 控制它时、我可以读取和写入寄存器、并且正确采集 ECG 信号。
但我想要更高的采样率、因此尝试了使用传感器控制器引擎与 ADS1291进行通信。
我遵循 ADS1291上电时的初始流程、可发送 START、STOP、RDATAC、SDATAC 等 SPI 命令来控制 ADS1291、但当我尝试读取或写入寄存器时、ADS1291不给出响应。
这是 Sensor Controller Studio 中的初始化代码、请帮助。
macro spiWriteReg(addr, value) { spiBegin(SPI_POL0_PHA1,AUXIO_SPI_CSN_CS); spiTx16bit(SPI_POL0_PHA1,addr); spiTx8bit(SPI_POL0_PHA1,value); spiEnd(SPI_POL0_PHA1,AUXIO_SPI_CSN_CS); } macro spiReadReg(addr, value) { spiBegin(SPI_POL0_PHA1,AUXIO_SPI_CSN_CS); spiTx16bit(SPI_POL0_PHA1,addr); spiRx8bit(SPI_POL0_PHA1;value); spiEnd(SPI_POL0_PHA1,AUXIO_SPI_CSN_CS); } macro spiWriteCmd(value) { spiBegin(SPI_POL0_PHA1,AUXIO_SPI_CSN_CS); spiTx8bit(SPI_POL0_PHA1,value); spiEnd(SPI_POL0_PHA1,AUXIO_SPI_CSN_CS); } gpioSetOutput(AUXIO_O_RST); for(U16 n=0;n<10;n++) { fwDelayUs(100000,FW_DELAY_RANGE_100_MS); } gpioClearOutput(AUXIO_O_RST); fwDelayUs(10,FW_DELAY_RANGE_10_US); gpioSetOutput(AUXIO_O_RST); fwDelayUs(36,FW_DELAY_RANGE_100_US); // Set stop spiWriteCmd(0x0A); fwDelayUs(5000,FW_DELAY_RANGE_10_MS); spiWriteCmd(0x11); fwDelayUs(1000,FW_DELAY_RANGE_1_MS); spiReadReg(0x2000,output.reg); fwDelayUs(1000,FW_DELAY_RANGE_1_MS); //Configure the Config1 spiWriteReg(0x4100,0x03); fwDelayUs(1000,FW_DELAY_RANGE_1_MS); spiReadReg(0x2100,output.reg); fwDelayUs(1000,FW_DELAY_RANGE_1_MS);