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.

[参考译文] TMS570LS3137:从 FIFO 读取 ADC 转换结果

Guru**** 2589300 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1025269/tms570ls3137-adc-reading-conversion-results-from-a-fifo

器件型号:TMS570LS3137

如果事件组的缓冲区数量 为16、并且我   在连续转换模式下将18个转换结果写入存储器、那么我可以通过 ADEVBUFFER 寄存器读取多少个结果?谢谢。

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

    您好!

    当存储器已满(16个缓冲区)时:

    如果 ADEVMODECR 寄存 器中的 OVR_RAM_IGN 位置位,ADC 模块将忽略该组结果存储器的内容,并使用新转换的结果覆盖该存储器。 然后、您可以读取16个转换结果:从第3个转换结果到第18个转换结果   

    如果 OVR_RAM_IGN 位未设置,则代码必须在 超限条件下读出组的结果存储器;只有这样,ADC 才能继续向存储器写入新的结果。 这意味着您必须先读取前16个转换结果、然后读取2。

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

    QJ Wang、您好!

    如果  OVR_RAM_IGN 位未置位、 当发生存储器溢出时、转换是继续还是停止?  如果 转换仍然有效、那么当我读取前16个转换结果时、新结果是否会丢失?谢谢。

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

    大家好、Gunxiong、

    如果一个转换组被配置为连续转换模式、那么它只需要被触发一次。 在该组中选择用于转换的所有通道都将重复转换。

    您可以启用组存储器阈值中断、并在中断服务例程中读取转换结果。

    如果 OVR_RAM_IGN 位未设置、ADC 将无法覆盖事件组结果存储器的内容。 当该存储器发生溢出时、软件需要先读出该存储器的所有内容、然后 ADC 才能为事件组写入新的转换结果。 如果转换存储器中的内容未被读出、新的转换结果将丢失。

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

    您好、QJ Wang、

    如果内存已满 (16个缓冲区)、然后读出所有16个结果、然后读出第17次、我知道将设置空标志、我想知道 id 和数据字段的值是多少?它还是  第16个缓冲区的内容还是未知内容?

    谢谢。

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

    一旦应用程序从 FIFO 中读出所有可用的转换结果、随后从 FIFO 中读出的数据将使该机制通过置位空字段来指示 FIFO 是否为空。  通过这种方法从存储器中读取的结果将从存储器中删除。

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

    您好、QJ Wang、

    对于以下文档、声明软件需要读出所有内容。 这意味着在 FIFO 队列中读出还是直接从内存中读出?

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

    是的。 如果 清除了 OVR_RAM_IGN (=0)、则代码必须读出转换结果、否则新的转换结果将被丢弃。