2

我正在寻找将慢速设备(ADC - ~1.2MHz)连接到我的 mcf5270 微控制器的方法,这是一个相当快的设备(~150MHz)。我正在使用 ADC0817,并尝试了以下方法:GPIO 读取数据线,内存映射访问(因为 adc 与 uP 兼容)。

当映射为内存中的一个位置时,我使用的是最大等待状态(15ws,大约为 107ns)。mcf5270 不支持不使用其总线模型(ADC 不支持)的任何进一步等待。

使用 GPIO,只读取垃圾值。

注意:ADC 实际工作,除了读取数据之外,它的接口是正常工作的。我正在使用 C/C++ 和程序集。

简而言之,我正在寻找有关尝试从 ADC0817 读取数据的方法的建议。

非常感谢评论和回复。

4

3 回答 3

1

您可以通过一些 GPIO 触发 ADC,执行适当数量的 NOP,然后读取该值。此外,您需要在执行此操作时禁用中断。

于 2009-07-21T10:46:01.147 回答
0

我认为内存映射应该可以工作 - 通常我会等待来自 ADC 的中断,然后读取指定地址的字节。由于您收到中断,因此不需要等待状态。我错过了什么吗?GPIO 也应该可以工作。你怎么知道 ADC 正在工作?你能在数据和中断上放一个逻辑分析仪来证明 ADC 产生了正确的输出吗?

于 2009-07-21T04:56:31.663 回答
0

我认为从他所说的 MMIO 将无法工作,因为他需要超过总线上的最大等待状态数才能使胶合逻辑响应 - 即 A/D 不会很快设置其总线引脚uC要开心。这有时是个问题。

但是 GPIO 方法应该可以工作。如果正在读取垃圾值,我假设您没有遵循提供的时序图。在发出读取信号后,您必须能够等待一定的时间,然后数据才有效。查看数据表了解详情。

于 2009-07-24T19:50:32.217 回答