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.

[参考译文] MSP432/ADS1292R:ADS1292R 交互问题

Guru**** 2782575 points

Other Parts Discussed in Thread: ADS1292R, ADS1292

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/838460/msp432-ads1292r-problems-with-ads1292r-interaction

器件型号:ADS1292R
主题中讨论的其他器件: ADS1292MSP432P401R

工具/软件:Code Composer Studio

朋友们、您好!
我需要一些帮助来在 MSP432和 ADS1292R 之间创建接口。 我已经花了很多时间尝试连接
这个芯片,有了这个微控制器,我不能成功地完成过程。 我已经决定了、我已经完成了一个小代码来尝试
与芯片交互、但躯体错误。
因此、我的朋友知道任何知识丰富的人都有 MSP430系列的芯片、如果有人有这些器件的任何接口、我很感谢您的帮助或分享能力。

附件我发送了我制作的代码、希望有人能帮助我分析并帮助纠正。
提前感谢

e2e.ti.com/.../0638.main.ce2e.ti.com/.../2086.main.he2e.ti.com/.../3343.ads1292.ce2e.ti.com/.../2251.ads1292.h

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我将其发送给了一名相关的工程师。 我们会尽快回复您。 请多多包涵。

    谢谢、

    PM

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Armando、

    您使用的是哪款 MCU? 查看代码并不清楚。

    谢谢、

    SAI

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Sai、  

     我正在使用 MSP432P401R、但如果我在 MSP430的另一个芯片中有类似的东西、可能已经尝试解决了、文档不清楚、我现在已经做了一些修改、 它给我带来了一些价值观、但 它们并不一致、因为它只为我提供了14个价值观、应该持续读取

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="armandoferr"]我需要一些帮助才能在 MSP432和 ADS1292R 之间创建接口。[/quot]

    您能更详细地解释一下吗? 您正在尝试使用 MSP432P4的哪个外设?

    [引用 user="armandoferr"]我已经用 这个微控制器加快了连接此芯片的时间,我无法成功地完成过程。 [/报价]

    您所面临的确切问题是什么? 还提供您已采取的任何调试步骤、以便我们可以尝试缩小问题范围。

    谢谢、

    SAI

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Sai Reddy、

    我可以理解您的一些问题。 外设?! 我尝试将 ADS1292R 组件 与 SPI 通信端口连接。

    我已经更新了代码、我不知道集成是否顺利、现在代码不会返回错误、但我在代码的这段摘录中放置了一个 printf  

    if (ads1292dataReceived == true){
    J=0;
    对于(i=0;i<6;i+=3){ //数据输出为(24个状态位+ 24位呼吸数据+ 24位 ECG 数据)
    
    
    uecgtemp =(unsigned long)(((unsigned long) SPI_RX_buff [i+3]<< 16)|(unsigned long) SPI_RX_buff [i+4]<< 8)|(unsigned long) SPI_RX_buff [i+5]);
    uecgtemp =(unsigned long)(uecgtemp << 8);
    secgtemp =(带符号长整型)(uecgtemp);
    secgtemp =(带符号长整型)(secgtemp >> 8);
    
    s32DaqVals[j++]=secgtemp;
    }
    
    DataPacketHeader[0]= CES_CMDIF_PKT_START_1;//数据包头1:0x0A
    DataPacketHeader[1]= CES_CMDIF_PKT_START_2;//数据包头2:0xFA
    DataPacketHeader[2]=(uint8_t)(data_len); //数据长度
    DataPacketHeader[3]=(uint8_t)(data_len>8);
    DataPacketHeader[4]= CES_CMDIF_TYPE_DATA; //数据包类型:0x02 -数据0x01 -命令
    
    DataPacketHeader[5]= s32DaqVals[1]; // 4字节 ECG 数据
    DataPacketHeader[6]= s32DaqVals[1]>8;
    DataPacketHeader[7]= s32DaqVals[1]>16;
    DataPacketHeader[8]=s32DaqVals[1]>24;
    
    DataPacketHeader[9]= s32DaqVals[0]; // 4字节呼吸数据
    DataPacketHeader[10]= s32DaqVals[0]>8;
    DataPacketHeader[11]= s32DaqVals[0]>16;
    DataPacketHeader[12]=s32DaqVals[0]>24;
    
    DataPacketHeader[13]= CES_CMDIF_TYPE_DATA;//数据包 footer1:0x00
    DataPacketHeader[14]= CES_CMDIF_PKT_STOP;//数据包 footer2:0x0B
    
    for (i=0;i<15;i++){
    UART_transmitData (EUSCI_A0_BASE、DataPacketHeader[i]); //通过 USB 发送数据
    }
    ads1292dataReceived = false;
    SPI_RX_缓冲 器计数= 0;
    }
    }
    
    // PCM_gotoLPM0 ();
    //__no_operation();
    } 

    我只能在 printf 中获取零、它不是连续的、在零处为我提供一个15个值的数组、然后停止。  最大的问题是、这种集成式解决方案只提供很少的示例、而数据表对于初学者来说并不容易。 解决这个芯片最紧急的连接问题符合我的利益、我可以提供你需要的一切。  我之所以在论坛上发布此帖子、甚至是为了吸引已经使用此芯片和德州微控制器开发了一些内容的投稿者、让我找到正确的方式

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Armando、

    它看起来、无论您在哪里读取数据、它都会返回零。

    我不熟悉 ADS1292R 器 件、也不知道如何帮助解决此问题。  

    我可以提供的一些提示:

    • 确保您的硬件连接正确。 有关这一点、请参阅 ADS1292R 和 MSP432P4 MCU 的数据表/RTM。
    • 识别发送命令(从 MSP432P4 MCU 发送到 ADS1292R)以获取"芯片 ID"或测试数据。
    • 发送此命令并检查预期的回复。
    • 将逻辑分析仪或示波器连接到 SPI 线路、以监控 SPI 线路上是否发生预期的事务。

    执行上述步骤后、您应该对问题有一定的了解。

    谢谢、

    SAI

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Sai、

    这就是  我使用数字分析仪得到的结果。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Armando、

    除了西经至今提出的意见外,我还有以下想法:

    1. 您是否尝试增加了 ads1292.c 中的延迟? 我注意到 您在整个代码中进行了 delayADS1292R()调用,但延迟持续时间对我来说似乎非常短。 通过查看我编译的 MSP432代码、delay 函数的实现会产生~6个周期的每个环路延迟。 将其乘以48MHz 时钟速度后、每个环路的延迟小于1us。 对于 delayADS1292R()的大多数调用,产生的延迟小于1ms,此海报在其主题 中提到使用的延迟:https://e2e.ti.com/support/data-converters/f/73/t/623664。 您是否曾尝试过设置更大的延迟并查看这是否会影响到其他因素?
    2. 您是否遵循了 ADS1292指南中的基本数据采集设置指南? 如果您看 https://www.ti.com/lit/ds/symlink/ads1292r.pdf 图63、您应该使用启动序列来使器件进入已知良好的模式、以验证 SPI 接口。 您是否尝试过仅执行该设置?

    此致、

    Michael