This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
你好。
我有以下问题。 我为TM4C123GH6PZ和ADS1292R之间通过SPI进行通信而编写的代码不起作用。 我尝试从ADS1292R读取ECG和呼吸数据,然后通过UART发送,但我只得到零,而不是实际数据。 我还尝试读取whoami (ID)针脚,但它读为0。 我尝试用逻辑分析器测量信号,但结果不是我所期望的。 首先,时钟的频率是50kHz (尽管在代码中我已经将频率设置为1MHz),CS引脚不会每次都下降。 此外,当我在设置中设置CPOL = 0和CPHA = 1时,Saleae会报告错误"The initial (idle) state of the CLK line does not match the settings.(CLK线的初始(空闲)状态与设置不匹配。)", 但是当我设置CPOL =1时,它在发送器和接收器上都读取'255',即使它不应该这样做。 在ADS1292R数据表中,它表示正确的设置是CPOL =0和CPHA =1,因此我在SSI配置中设置SSI_FF.MOTO_MOTO_MODE_1。 我正在使用Arduino库用于ADS1292R屏蔽/断路器,我已对其进行了调整,使其适合我的TM4C UC。
所有这些都让我感到困惑,因为我是微控制器的新用户,我非常希望能获得一些帮助。 我甚至不确定问题是软件还是硬件。 在附件中,我放置了整个项目(文件夹:'project'),来自Saleae (文件夹:'samples')的结果,连接我使用的引脚的方案(文件夹:'scheme')和用于ADS1292R Shield/Breakout的Arduino库(文件夹:'Arduino库')。
我成功地捕获了一些数据,但噪音很大。 下面是一张图片:
呼吸情况更糟:
下面是我的寄存器设置:
ads1292_ReG_Write (ADS1292_REG_config1, 0x00); //将采样率设置为125 SPS 延时(10); ads1292_ReG_Write(ADS1292_REG_CONFIIG2, 0xA0)1292 0xA0); //0b1010万,导联脱落补偿关闭, 测试信号禁用 延迟(10); ads1292_ReG_Write (ADS1292_REG_LoFF,0x10); //0b1万,导联脱落默认 延迟(10); ads1292_ReG_Write (ADS1292_REG_CH1SET,0x40); //0b100万,启用通道1,延 时连接至电极(10); ads1292_ReG_Write (ADS1292_REG_CH2SET,0x60); //0b110万,启用通道2, 连接到延 时电极(10); ads1292_ReG_Write (ADS1292_REG_RLDSENS,0x4C); //0b10.11万,RLD设置:FMod/16, 已启用RLD,仅通道2 的RLD输入延时(10); ads1292_ReG_Write(ASD1292_REG_LOFFSENS, 0x00)1292 0x00); //LoFF设置:所有已禁用 延迟(10); //Skip寄存器8,LoFF设置默认 ads1292_REG_Write(ASD1292_MOD_RESP1, 0x92/01110;1292 0x92/01110; 仅0.111万仅限RE22_DE010; Reg 092_DE011b0,已调:已调,已调:092_DE0.111万;已调: 呼吸:校准关闭,呼吸频率默认 延迟(10);
有人能告诉我我我做错了什么吗? 导联脱落检测设置是否有问题?
此致,
Laura