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.

[参考译文] SM320F28335-EP:与外部 ADC 的 SPI 通信

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1183142/sm320f28335-ep-spi-communication-with-external-adc

器件型号:SM320F28335-EP

您好!

我尝试 将 SM320F28335GJZMEP 微控制器与外部 ADC AD7091R-4BRUZ 搭配使用。

查看  AD7091R-4BRUZ 的数据表、我认为我需要首先 在 MOSI 上写入0000110000001111b 以写入 ADC 的通道寄存器、然后选择 Ch0、Ch1、Ch2和 Ch3以包含在通道转换序列中。   然后 、我需要在 MOSI 上持续写入000000000000b、以读取 ADC 转换结果寄存器的请求。  (在转换结果寄存器的读取请求之后的下一个转换周期、转换结果寄存器的结果将在 MISO 上发送、其中前3位指示哪个模拟输入通道、最后12位指示转换结果。)

每次我 使用 SPITXBUF 在 MOSI 上发送000000000000b 消息时 、我都会在 SPIFFRx 寄存器中看到 接收 FIFO 缓冲区有一个额外的字、直到达到16字的最大值

0010000000100001b (在我向 MOSI 发送任何读取请求>>接收 FIFO 为空之前)
0010000110100001b ( 在 MOSI 上的第一次读取请求>>接收 FIFO 有1个字之后)
00100010100001b ( 在 MOSI 上的第二个读取请求>>接收 FIFO 有 2个字后)
0010001110100001b (  在 MOSI 上的第三个读取请求>>接收 FIFO 有 3 个字之后)


0011000010100001b (  在 MOSI 上的第16个读取请求之后>>接收 FIFO 有 16 个字)

但是、我看不到 SPIRXBUF 发生了变化。  要将数据从接收 FIFO 传输到 SPIRXBUF、我需要做什么?

如果相关、这里是我的所有寄存器值

谢谢、

Kevin

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

    您好!

    主题专家因休假而不在办公室。 请预计在1月1日的第一周之前收到回复。 对给您带来的不便深表歉意。

    此致、Santosh

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

    Santosh、我能够让这一切正常工作、因此无需采取进一步的行动。  (我必须向  AD7091R-4BRUZ 外部 ADC 发送写入命令以开启2.5V 内部基准。  否则、我读取的数据始终为0、并且永远不会改变)