主题中讨论的其他器件: ADS1258
尊敬的支持:
我们实施了包含 RM46L852和两个模拟器件 AD7124 ADC 的电子电路板。
这些 ADC 单独且专门连接到运行安全操作系统的 RM46的 MibSpi 端口(MibSpi3、MibSpi5)。
我们以单次转换模式运行 ADC、而每个 ADC 配置为自动运行9个不同的序列
转换。
与 TI ADS1258类似、这些 ADC 仅缓冲序列的一个转换结果、强制 μ µC 读取每个转换
完成转换后。 AD7124没有用于指示转换完成的单独引脚 (与 TI 不同、不是_RDY)
ADS1258),但通过下拉数据输出线(DOUT)来实现它。 因此、我们将 ADC DOUT 线路连接到 GIO 引脚
功能。 每次转换开始后、这些 GIO 被感测为低触发 CPU 中断。 而这样 的中断会启动
在主控模式下、通过其相关的 MibSPI 端口读取专用 ADC 通道数据。
因此、ADC 的所有参数化、控制和读取实际上都是由 CPU 控制的、尽管我们知道、这种情况是这样的
更好地通过 DMA 访问来完成。
到目前为止、选择这种方法是为了避免对额外运行的 CPU 内存的安全相关测试产生任何干扰。
现在、对于时间关键型传感器实施、我们会遇到这种 ADC 驱动器导致的不可接受的高 CPU 负载。
因此、我们需要找到一个解决方案、并希望检查是否可以使用 MibSPI 传输组。
我们的数据表和技术参考手册检查结果表明 、自主阅读上述内容没有功能障碍
传输组传输 ADC 的数据。
每个 MibSpi 上的读取 ADC 缓冲器为:
- 9 x 8位命令寄存器
- 9 x 8位状态寄存器
- 9 x 24位数据寄存器
- 9 x 24位错误寄存器
这可以是576 位或72 字节的总和。
我们想知道、如果 TI 同意我们通过传输组读取此 ADC 转换序列的想法吗?
此外,如果 可能,还应获得一些关于这种执行的建议、指导或甚至例子?
还有一个问题是、DOUT 线路与所选 ADC 的 NOT _RDY 线路相同。
这意味着、由于在同一 MibSpi 端口上之前或之后的传输始终包括 DOUT/不_RDY 低电平、触发的是
每个转换数据读取之间需要启用/禁用这些组。 正如我发现的、这可以通过像那样执行来实现
mibspi.c 的 midspiSetFunctional()方法正在运行,不是吗?
通过阅读《技术参考手册》和数据表、我们发现有关传输交互的错误匹配说明
具有存储器的组。
数据表显示、每个 MibSPI 端口有一个专用内存、为传输组提供128个缓冲器。 通过这一点 、我们假设、
MibSPI 外设具有独立的存储器、或者至少以某种方式将硬件与 CPU 存储器分离。
另一方面、技术手册讨论了 DMA 访问。 这可能会引起 两个事务组的调解或累积
存储器范围内的数据。 因此、我们 在 CPU 存储器上进行的安全相关测试可能会检测到许多错误、原因是
硬件对 CPU 存储器(CPU RAM DMA)的直接访问。
技术手册将 DMA 声明为一个选项、数据表和中描述了128个缓冲器的单独硬件
技术手册。 因此我的印象是 ,这些缓冲器是为了 克服这些安全问题而发明的,不是吗?
因此、我们需要问 、TI 方面的人员是否可以给我们一个关于 128 MibSPI 硬件基础分离的定义语句
缓冲器?
否则,我们似乎不愿意承担风险。