工具/软件:
我有几个问题在阅读数据表后不清楚 — 我没有硬件尚未测试其中任何一个:
我想在没有 SCL 拉伸的情况下使用器件、并使用 CNVST 位手动启动转换、然后轮询 OSR_DONE 位并读取 ENTERNATE_CHx 寄存器以获得结果、如第 8.3.6 节所述。 我想使用 4 个样本取平均值 (OSR = 2)。 目前、我只需要一个模拟通道、因此不需要序列发生器、因此要使用手动模式 (CONV_MODE = 0)。 但是、根据数据表、CLK_DIV 仅用于自主模式 (CONV_MODE = 1)。 因此、我认为这可能是错误的、因为我假设只要 OSR 不为零、就必须将 CLK_DIV 用于采样频率。
权变措施是、我可以启用自主模式并在 AUTO_SEQ_CH_SEL 中配置单个位。 但我不知道转换何时开始和停止。 我假设启动是通过设置 SEQ_START(而不是 CNVST)完成的、但如何知道 RELATCH_CHx 寄存器何时将包含该值? 也许仅使用一个通道时仍然可以轮询 OSR_DONE、但该如何适用于多个通道? 参见下一个问题。
在自主模式下、序列发生器对多个通道进行采样、OSR_DONE 位会在每次采样可用时指示完成情况、还是仅在所有适用通道的完整序列完成时指示完成情况? 如果指示是每个通道、如何知道更新了哪个 RELATCH_CHx 寄存器?