【问题标题】:Interfacing a slow device to a MCF5270 Microcontroller将慢速设备连接到 MCF5270 微控制器
【发布时间】:2009-07-21 04:43:53
【问题描述】:

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

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

使用 GPIO,只读取垃圾值。

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

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

非常感谢您的评论和回复。

【问题讨论】:

  • 中断是来自 ADC 的信号,称为计算结束 (EOC)。在输出使能引脚被驱动为高电平后,输出仅在最短 125ns 至最长 250ns 内有效。中断只是让我开始阅读(这涉及持有 OE 高)。不幸的是,我没有逻辑分析仪。我的示波器在我的旅行中稍微落后于我——所以我有一个万用表来“读取”信号。不是一个特别理想的尝试和调试的情况。

标签: c interface embedded coldfire


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-04
        • 1970-01-01
        相关资源
        最近更新 更多