广告

操纵MCU SPI接口以访问非标准SPI AD

2020-01-08 Steven Xie,ADI公司产品应用工程师 阅读:
问题:能否用MCU访问非标准SPI接口? 答案:可以,但可能需要做一些额外的努力。

简介

当前许多精密模数转换器(ADC)具有串行外设接口(SPI)或某种串行接口,用以与包括微控制器单元(MCU)、DSP和FPGA在内的控制器进行通信。控制器写入或读取ADC内部寄存器并读取转换码。SPI的印刷电路板(PCB)布线简单,并且有比并行接口更快的时钟速率,因而越来越受欢迎。而且,使用标准SPI很容易将ADC连接到控制器。KoXednc

一些新型ADC具有SPI,但有些ADC具有非标准的3线或4线SPI作为从机,因为它们希望实现更快的吞吐速率。例如,AD7616、AD7606和AD7606B系列有两条或四条SDO线,在串行模式下可提供更快的吞吐速率。AD7768、AD7779和AD7134系列有多条SDO线,用作SPI主机。用户在设计微控制器SPI以配置ADC和读取代码时往往会遇到困难。KoXednc

KoXednc

1.AD7768用作串行主机,具有两个数据输出引脚(14001-193)KoXednc

与ADC的标准MCU SPI连接

SPI是一种同步、全双工、主从式接口。来自主机或从机的数据在时钟上升沿或下降沿同步。主机和从机可以同时传输数据。图2显示了典型的4线MCU SPI接口连接。KoXednc

KoXednc

2.ADC从机的标准MCU SPI连接KoXednc

要开始SPI通信,控制器必须发送时钟信号,并通过使能信号(通常是低电平有效信号)来选择ADC。SPI是全双工接口,因此控制器和ADC可以分别通过MOSI/DIN和MISO/DOUT线同时输出数据。控制器SPI接口允许用户灵活选择时钟的上升沿或下降沿来采样和/或移位数据。为了在主机和从机之间进行可靠的通信,用户必须遵守微控制器和ADC芯片的数字接口时序规范。KoXednc

如果微控制器SPI和ADC串行接口具有标准SPI时序模式,那么用户设计PCB布线和开发驱动器固件不成问题。但是,有些新型ADC的串行接口端口不是典型的SPI时序模式。MCU或DSP似乎不可能通过AD7768串行端口(一种非标准时序SPI端口)读取数据,如图4所示。KoXednc

本文将介绍操纵标准微控制器SPI以便与具有非标准SPI端口的ADC接口的方法。KoXednc

本文会给出四种通过串行接口读取ADC码的解决方案:KoXednc

  • 解决方案1:MCU作为SPI从机,通过一条DOUT线与作为SPI主机的ADC接口。
  • 解决方案2:MCU作为SPI从机,通过两条DOUT线与作为SPI主机的ADC接口。
  • 解决方案3:MCU作为SPI从机,通过DMA与作为SPI主机的ADC接口。
  • 解决方案4:MCU作为SPI主机和SPI从机,通过两条DOUT线读取数据。

KoXednc

3.SPI数据时钟时序图示例KoXednc

KoXednc

4.AD7768 FORMATx = 1×时序图仅通过DOUT0输出。KoXednc

STM32F429微控制器SPI通过一条DOUT线读取AD7768代码

如图4所示,当FORMATx = 11或10时,通道0至通道7仅通过DOUT0输出数据。在标准工作模式下,AD7768/AD7768-4作为主机工作,数据流入MCU、DSP或FPGA。AD7768/AD7768-4向从机提供数据、数据时钟(DCLK)和下降沿帧使能信号(DRDY)。KoXednc

STM32Fxxx系列微控制器广泛用于很多不同的应用中。该MCU有多个SPI端口,可以使用典型的SPI时序模式将其配置为SPI主机或从机。下文中介绍的方法也可应用于其他具有8位、16位或32位帧的微控制器。KoXednc

AD7768/AD7768-4分别为8通道和4通道同步采样Σ-Δ型ADC,每通道均有Σ-Δ型调制器和数字滤波器,支持交流和直流信号的同步采样。这些器件在110.8 kHz的最大输入带宽下实现了108 dB动态范围,具备±2 ppm INL、±50 µV偏置误差和±30 ppm增益误差的典型性能。AD7768/AD7768-4用户可在输入带宽、输出数据速率和功耗之间进行权衡,并选择三种功耗模式之一以优化噪声目标和功耗。AD7768/AD7768-4的灵活性使其成为适合低功耗直流和高性能交流测量模块的可重复使用平台。遗憾的是,AD7768的串行接口不是典型SPI时序模式,而且AD7768充当串行接口主机。一般而言,用户必须使用FPGA/CPLD作为其控制器,KoXednc

例如,使用32F429IDISCOVERY和AD7768评估板。变通SPI线的连接如图5所示。在这种设置下,AD7768的所有八通道数据仅通过DOUT0输出。KoXednc

KoXednc

5.AD7768通过DOUT0将数据输出到STM32F429 MCU SPI连接KoXednc

需要解决的问题:KoXednc

  • AD7768用作SPI主机,故必须将STM32F429I SPI配置为SPI从机。
  • 高电平脉冲只持续一个DCLK周期,这不是典型的。
  • 完成所有通道数据位的输出之后,DCLK继续输出,为低电平。

解决方案1:MCU SPI作为从机,通过一条DOUT线与SPI主机ADC接口

  • 将STM32F429的一个SPI端口(如SPI4)配置为从机,以DCLK速率接收MOSI上的数据位。
  • 将AD7768 连接到STM32F429外部中断输入引脚EXTI0和NSS (SPI )引脚。 的上升沿将触发EXTI0处理例程,以使SPI从机能够在变为低电平之后的第一个DCLK下降沿开始接收数据位。时序设计在这里至关重要。
  • 接收到通道0至通道7的所有数据后,应禁用SPI以防止读取额外的无效数据,因为会使SPI从机变为低电平,并且DCLK保持切换。

KoXednc

6.时序解决方案中的AD7768数据位读取KoXednc

MCU固件开发注意事项

当软件处于中断模式时,DCLK运行速率可以高达4 MHz,实现8 kSPS的ODR。软件应进入中断处理程序,在一个半DCLK周期(375 ns)内启动SPI。为使软件更轻松地进入中断例程,MCU可以在DCLK上升沿读取数据,从而提供额外的半个DCLK周期时间。但是,t5 DCLK上升到DOUTx无效最小值为–3 ns(IOVDD = 1.8 V时为–4 ns),因此DOUTx上的传播延迟(>|t5| + MCU保持时间)应通过PCB布线或缓冲增加。KoXednc

KoXednc

7.配置SPI4外设KoXednc

解决方案2:MCU SPI作为从机,通过两条DOUT线与SPI主机ADC接口

在第一种解决方案中,仅使用DOUT0来输出所有8通道数据。因此,数据读取将ADC吞吐速率限制为8 kSPS。如图1所示,在DOUT0上输出通道0至通道3,在DOUT1上输出通道4至通道7,可以减少数据传输时间。串行线的连接如图7所示。通过这种改进,在DCLK为4 MHz时,ODR可以轻松达到16 kSPS。KoXednc

KoXednc

8.AD7768通过DOUT0DOUT1将数据输出到STM32F429 MCU SPI连接KoXednc

固件可以不使用中断模式,而使用轮询模式,以减少从上升沿触发到使能SPI接收数据的时间延迟。这样可以在DCLK为8 MHz时实现32 kSPS的ODR。KoXednc

解决方案3:MCU SPI作为从机,通过DMA与SPI主机ADC接口

直接存储器访问(DMA)用于在外设与存储器之间以及存储器与存储器之间提供高速数据传输。DMA可以迅速移动数据而不需要任何MCU操作,这样可以腾出MCU资源用于执行其他操作。下面是MCU SPI用作从机通过DMA接收数据的设计说明。KoXednc

解决方案4:MCU SPI作为主机和从机,通过两条DOUT线读取数据

高吞吐量或多通道精密ADC为SPI端口提供两条、四条甚至八条SDO线,以在串行模式下更快地读取代码。对于具有两个或更多个SPI端口的微控制器,这些SPI端口可以同时运行以加快代码的读取。KoXednc

KoXednc

9.EXTI0处于轮询模式,SPI4SPI5通过DOUT0DOUT1接收AD7768数据位。KoXednc

KoXednc

10.EXTI0处于轮询模式SPI4 DMA通过DOUT0接收AD7768数据位。KoXednc

在以下使用案例中,32F429IDISCOVERY使用SPI4作为SPI主机,SPI5作为SPI从机,通过DOUTA和DOUTB接收EVAL-AD7606B-FMCZ数据,如图8所示。KoXednc

AD7606B是一款16位同步采样模数转换数据采集系统(DAS),具有八个通道,每个通道均包含模拟输入箝位保护、可编程增益放大器(PGA)、低通滤波器和16位逐次逼近寄存器(SAR)型ADC。AD7606B还内置灵活的数字滤波器、低漂移2.5 V精密基准电压源和基准电压缓冲器,可驱动ADC及灵活的并行和串行接口。AD7606B采用5 V单电源供电,支持±10 V、±5 V和±2.5 V真双极性输入范围,所有通道均能以800 kSPS的吞吐速率采样。KoXednc

KoXednc

11.在主从模式下使用MCU SPI通过DOUTADOUTB接收数据KoXednc

KoXednc

12.SPI4配置为主机,SPI5配置为从机。KoXednc

图13显示了AD7606B以240 kSPS运行时BUSY、SCLK、DOUTA和DOUB的数字接口截图。KoXednc

KoXednc

13.AD7606B BUSYSCLK以及DOUTADOUTB上的数据的示波器截图KoXednc

结论

本文讨论了使用微控制器SPI访问具有非标准SPI接口的ADC的方法。这些方法可以直接使用,也可以稍加调整即可控制ADC SPI;其可作为SPI主机使用,也可以与多条DOUT线配合使用以提高吞吐速率。KoXednc

致谢

非常感谢应用工程师Mika Jiang和Yao Zhao,他们提供了有关STM32F429IDISCOVERY套件快速启动和固件调试工作的建议。KoXednc

参考文献

Dhaker,Piyu。“SPI接口简介”。《模拟对话》,第52卷。2018年9月。KoXednc

RM0090参考手册:STM32F405/415、STM32F407/417、STM32F427/437和STM32F429/439高级ARM® 32位MCU。STMicroelectronics,2019年2月。KoXednc

STM32F427xx数据手册。STMicroelectronics,2018年1月。KoXednc

UM1670用户手册:带STM32F429ZI MCU的Discovery套件。STMicroelectronics,2017年9月。KoXednc

Usach, Miguel。AN-1248应用笔记:SPI接口。ADI公司,2015年9月。KoXednc

作者简介

Steven Xie于2011年3月加入ADI北京分公司,担任ADI中国设计中心的产品应用工程师。他负责中国市场SAR型ADC产品的技术支持工作。在此之前,他曾在无线通信基站领域做过四年的硬件设计人员。2007年,Steven毕业于北京航空航天大学,并获得通信与信息系统硕士学位。KoXednc

本文为EDN电子技术设计 原创文章,禁止转载。请尊重知识产权,违者本司保留追究责任的权利。
  • 微信扫一扫
    一键转发
  • 最前沿的电子设计资讯
    请关注“电子技术设计微信公众号”
  • DC/DC转换器功率降额规范中的挑战和替代方法 当今电子系统正在将更多的功能集成到更小尺寸中,但功能增多使功耗也会增加。因此,为了应对这一趋势,提供系统电压轨的DC/DC转换器必须以更小的封装实现更高的功率,即具有更高的“功率密度”。虽然目前的转换器设计可以具有非常高效率,但仍必须消散巨大热量以将关键组件保持在其最高额定温度以下。
  • “中国IC设计成就奖”提名产品简介:SLMi33x优势 国内首款带DESAT保护功能并兼容光耦驱动的IGBT/SiC隔离驱动器,5kVrms隔离电压和高达10kV的隔离浪涌电压,CMTI超过100kV/us
  • 从技术角度分析,GaN和SiC功率器件上量还欠什么? 氮化镓(GaN)和碳化硅(SiC)这两种新器件正在推动电力电子行业发生重大变化,它们在汽车、数据中心、可再生能源、航空航天和电机驱动等多个行业取得了长足的进步。在由AspenCore集团举办的PowerUP Expo大会上,演讲嘉宾们深入探讨了包括GaN和SiC在内的宽禁带(WBG)器件的技术优势以及发展趋势。
  • Matter的核心:定义下一阶段智能家居的互操作性和无线技 在当今完全互联的世界里,使用各种智能家居的生活环境意味着需要同时与多种无线协议进行交互。照明系统、供暖和制冷系统、安全系统、娱乐系统——现在家庭生活的方方面面几乎都可以通过无线方式进行增强和控制。尽管无线技术的优势众多,但如今家庭中的无线连接并不是一帆风顺的。即便对于深谙各种先进技术的智能家居爱好人士来说,家庭网络中处理各种不兼容的无线协议也构成了挑战。
  • 学子专区—ADALM2000实验:跨阻放大器输入级 本次实验旨在研究简单跨阻放大器的输入级配置。
  • 用TinyML开始设计——开发评估套件 本文中展示的开发套件和评估板得到一些流行的机器学习库和用于 TinyML 工作流程资源的支持,包括用于微控制器的 Google TensorFlow Lite 和 Edge Impulse,因而它们能够成为您第一个项目的理想起点。
  • “中国IC设计成就奖”提名产品简介:车规级数字通讯隔离 Chipways汽车级电池组隔离器XL8820系列产品是同时满足AEC-Q100汽车可靠性标准和ISO 26262汽车功能安全标准的车规级隔离式通讯接口芯片。
  • “中国IC设计成就奖”提名产品简介:16位250KSPS多通道S MS5182N/MS5189N是4/8通道、16bit、SAR型模数转换器。MS5182N/MS5189N内部集成无失码的16位SAR ADC、低串扰多路复用器、内部10PPM低漂移基准电压源(可以选择2.5或4.096V)、温度传感器、可选择的单极点滤波器以及当多通道依次连续采样时非常有用的序列器。
  • “中国IC设计成就奖”提名产品简介:功放芯片8002A优势 8002A是一款AB类,单声道带关断模式,桥式音频功率放大器。
  • “中国IC设计成就奖”提名产品简介:数字隔离器Pai122M3 荣湃数字隔离器产品采用自主知识产权的智能分压技术开发设计而成,相比同类隔离产品,该专利技术可以实现更低的功耗,更高的速率和更优的时序特性。智能分压技术相比传统隔离传输技术,采用更简洁的电路架构实现更优的隔离传输性能,采用智能分压锁存放大模块电路,替代传统架构中的高频发生电路,高频调制电路和高频解调三部分电路,因此芯片面积只有传统架构芯片面积的1/2~1/3。
  • “中国IC设计成就奖”提名产品简介:固定增益仪表放大器 仪表放大器是模拟信号链领域里仅次于模数转换/数模转换(ADC/DAC)的高端产品,技术门槛高、研发难度大,市场应用上长期以来都只能从欧美供应商中选择,国内仪表放大器尚处于起步阶段,可选用的产品型号还相等匮乏。RS633的推出将打破欧美厂商在高性能仪表放大器芯片细分领域的市场垄断,实现仪表放大器产品的国产化,保障自给自足,推动国内高端模拟芯片的研发水平快速发展、提升。
  • “中国IC设计成就奖”提名产品简介:艾为Smart K音频功 AW87559是艾为专门为提高音乐输出动态范围,提高整体音质而设计的音频功放IC。它是新型高效、高PSRR、低噪声、恒定大音量的第五代Smart K音频放大器。
广告
热门推荐
广告
广告
EE直播间
在线研讨会
广告
广告
面包芯语
广告
向右滑动:上一篇 向左滑动:下一篇 我知道了