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.

[参考译文] CCS/ADS1220:ads1220

Guru**** 2613765 points
Other Parts Discussed in Thread: ADS1220, ADS1220EVM

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/680444/ccs-ads1220-ads1220

器件型号:ADS1220

工具/软件:Code Composer Studio

大家好, 我对 ads1220有问题,它 即使  在 CS 引脚处于高电平时也能接收时钟和数据。 如果单独 连接,转换器工作正常,但使用其它 SPI IC,我接收到错误的数据。

微控制器是 TMC1294,  

我 还将一个100K 上拉电阻器连接到了 CS 引脚。

为了进行测试、我尝试读取 CS 处于高电平的转换器、但它不发送任何数据。(这意味着 CS 工作正常)

ads1220设置 ,连续转换模式。 数据就绪状态也受到监控。

你有什么建议吗?  

此致、谢谢。

 

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

    您如何得出结论认为 ADS1220存在问题? 当您发现错误时、您具体会做什么? SPI 还连接了哪些其他器件? 您可以将原理图发送给我吗? 您是否有通信的示波器或逻辑分析仪快照? 您是否有可以共享的代码、以显示设备设置和通信?

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

    该板是 ADS 1220 EVM、而 micro 是 Tiva 1294 launchpad
    仅在 CS 为高电平时发送此消息、当我读取时、ads1220发回错误的数据。

    SSIDataPut (SSI0_BASE、0xFF);
    while (SSIBusy (SSI0_BASE){}




    我的 ads1220设置





    SPI 设置
    SysCtlPeripheralEnable (SYSCTL_Periph_SSI0);
    SSIDisable (SSI0_BASE);
    SysCtlDelay (10000);
    GPIOPinConfigure (GPIO_PA2_SSI0CLK);
    GPIOPinConfigure (GPIO_PA3_SSI0FSS);
    GPIOPinConfigure (GPIO_PA4_SSI0XDAT0);
    GPIOPinConfigure (GPIO_PA5_SSI0XDAT1);
    SysCtlDelay (10000);
    GPIOPinTypeSSI (GPIO_Porta_base、GPIO_PIN_5 | GPIO_PIN_4 | GPIO_PIN_3 |GPIO_PIN_2);
    GPIOPinTypeGPIOOutput (GPIO_Porta_base、GPIO_PIN_1| GPIO_PIN_6);
    GPIOPinTypeGPIOInput (GPIO_Porta_base、GPIO_PIN_0);
    // SSI_FRF_TI
    SSIConfigSetExpClk (SSI0_BASE、120000000、SSI_FRF_MOTO_MOTO_1、SSI_MODE_MASTER、100000、8); //将 SSI clk 设置为以1Mill 比特/秒的速度运行
    SysCtlDelay(3);

    //启用 SSI0模块。
    SSIIntEnable (SSI0_BASE、SSI_RXFF | SSI_RXTO | SSI_RXOR);
    SSIEnable (SSI0_BASE);

    //重置 adc1220
    GPIOPinWrite (GPIO_Porta_base、GPIO_PIN_1、0x0);
    SysCtlDelay(3);

    SSIDataPut (SSI0_BASE、0b00000110);//复位 ADC 进行设置
    while (SSIBusy (SSI0_BASE){}
    SysCtlDelay(3);

    GPIOPinWrite (GPIO_Porta_base、GPIO_PIN_1、GPIO_PIN_1);
    //设置 adc1220
    writeReg1220 (0b01000100、0b00100100);//这是我的函数

    (小部分
    void writeReg1220 (uint8_t registro、uint8_t valreg){
    GPIOPinWrite (GPIO_Porta_base、GPIO_PIN_1、0x0);
    SysCtlDelay (200);

    SSIDataPut (SSI0_BASE、registro);

    while (SSIBusy (SSI0_BASE){}
    SSIDataPut (SSI0_BASE、valreg);
    // SSIDataGet (SSI0_BASE、spiRead);
    //while (!SSIBusy (SSI0_BASE)){}
    while (SSIBusy (SSI0_BASE){}
    SysCtlDelay (20);

    GPIOPinWrite (GPIO_Porta_base、GPIO_PIN_1、GPIO_PIN_1);



    (二



    //读取 ADC 1220


    //引脚0端口 A 为 dataready,引脚1为 CS
    if (!GPIOPinRead (GPIO_Porta_base、GPIO_PIN_0)){

    SysCtlDelay (30);
    GPIOPinWrite (GPIO_Porta_base、GPIO_PIN_1、0x0);

    // while (!GPIOPinRead (GPIO_Porta_base、GPIO_PIN_0)){}






    //****** Data2高、data1中、Data0低

    SSIDataPut (SSI0_BASE、0xFF);
    while (SSIBusy (SSI0_BASE){}

    SSIDataGet (SSI0_BASE、buf1);
    while (SSIBusy (SSI0_BASE){} // while (SSIBusy (SSI0_BASE){}
    G_sCANMsgObject1.pui8MsgData[2]=buf1;

    //字母字节1
    SSIDataPut (SSI0_BASE、0xFF);
    while (SSIBusy (SSI0_BASE){}
    SSIDataGet (SSI0_BASE、&bF2);
    while (SSIBusy (SSI0_BASE){}
    // while (SSIBusy (SSI0_BASE){}
    G_sCANMsgObject1.pui8MsgData[1]=buf2;//逆变器3 con 4 per ads12220

    //字母字节2
    SSIDataPut (SSI0_BASE、0xFF);
    while (SSIBusy (SSI0_BASE){}
    SSIDataGet (SSI0_BASE、buf3);
    while (SSIBusy (SSI0_BASE){}

    G_sCANMsgObject1.pui8MsgData[0]=缓冲3;





    SysCtlDelay (30);
    GPIOPinWrite (GPIO_Porta_base、GPIO_PIN_1、GPIO_PIN_1);







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

    您是否刚刚将 Launchpad 连接器添加到 ADS1220EVM 并在不进行修改的情况下直接插入1294 Launchpad? ADS1220EVM 的引脚排列是当前 BoosterPack 标准之前的早期配置、需要进行一些更改。 此外、您必须确保 EVM 上的 MSP430不会干扰通信。 这需要在 JP5和 JP6上添加跳线。

    我将尽快进一步分析您的代码片段。

    此致、
    Bob B
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、我已经将导线从 launchpad 焊接到1220 EVM、大约10cm 且 jp5已关闭、JP6用于启用或禁用外部时钟参考、现在已打开、但我认为这不会导致问题。 现在,我将使用从微到 ads1220的全隔离式 SPI 来测试我的板。 我只是想知道当我拉高 CS 时,转换器是否不会接收到任何信号,或者有人注意到 ads1220的这一问题。 此致、谢谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Davide、

    只要 CS 处于高电平、ADS1220与同一 SPI 上的其他器件就不会出现问题。

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

    我在代码中看不到任何会引起问题的东西。 确保电路板之间的接地连接良好、并使用示波器检查信号(尤其是 SCLK)、以确保信号干净且没有噪声。 另外、请确保不违反有关 CS 变为低电平以及 SCLK 的第一个上升沿和 SCLK 的最后一个下降沿到 CS 上升沿的时序规格。

    此致、
    Bob B