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.

[参考译文] ADS8361

Guru**** 2589265 points
Other Parts Discussed in Thread: ADS8361

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/565434/ads8361

在“线程:ADS8361”中讨论的其它部件

您好,

我`ven`t使用RaspberryPi 3从ADS8361读取数据,但我没有得到除0之外的任何数据。 我n`t逻辑分析仪,但使用示波器时,似乎正在生成输出,因此我的代码可能存在问题。

`m,我不能完全确定它是否适用于此转换器,但程序启动时与其他转换器类似`s:

如果(!BCM2835_init()){返回1;}

BCM2835_GPIO Fsel (CONVST_PIN,BCM2835_GPIO _FSEL_OUTP);//BCM2835_GPIO _FSEL_OUT=>输出0b001
BCM2835_GPIO写入(CONVST_PIN,低);  
BCM2835_GPIO Fsel (BUSY_PIN,BCM2835_GPIO _FSEL_INPT);//BCM2835_GPIO _FSEL_INPT=>Input 0b000

BCM2835_SPI_BEGIN();
BCM2835_SPI_setBitOrder (BCM2835_SPI_bit_Order_MSBFIRST);  
BCM2835_SPI_setDataMode(BCM2835_SPI_MODE1);2835;//默认CPOL = 0,CPHA = 0
BCM2835_SPI_setClockDivider (BCM2835_SPI_Clock_diver_32);
BCM2835_SPI_ChipSelect (BCM2835_SPI_CS0);  
BCM2835_SPI_setChipSelectPolarity (BCM2835_SPI_CS0,低);  

接着是一个循环,其中的书写和阅读是应该发生的。

我尝试了:

BCM2835_GPIO写入(CONVST_PIN,高);  
BCM2835_SPI_transfern (Buffer_A,sizeof (Buffer_A));  
BCM2835_GPIO写入(CONVST_PIN,低);

    和:

BCM2835_GPIO写入(CONVST_PIN,高);

BCM2835_GPIO写入(CONVST_PIN,低);  

BUFFER[0]= BCM2835_SPI_TRANSFER (0x00);
Buffer[1]= BCM2835_SPI_TRANSFER(0x00);
Buffer[2]= BCM2835_SPI_TRANSFER(0x00);


读取=((UINT32_t) buffer[0]<<16)和0x00FF0000;
读取|=((UINT32_t)缓冲区[1]<< 8);
读取|=缓冲区[2];

我做了一些小的改变,运行了很多次,我尝试了不同的模式,尝试了延迟 ,但结果总是一样的,它没有给我任何东西。  

我想我`ve的时间和同步可能是错误的,我一直在试图让我知道如何正确地做,但到目前为止,我没有做任何事情。 如果有人能展示出正确的方法,我将会非常有帮助。

此致,

Pedro

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

    您已经确认ADS8361提供非零输出,但主机读取的是所有零,因此我认为您必须深入研究主机上的SPI驱动程序实现。
    最好将其作为有关主机数字模块的查询而不是ADC查询来执行。

    此致,
    拉胡尔