当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]同步队列串行接口QSPI的应用

1 QSPI工作原理

  QSPI模块的结构如图1所示。与SPI相比,QSPI结构最大的特点是以80字节的RAM取代了SPI的发送和接收数据寄存器。80字节的RAM分成3部分:16字的发送RAM,16字的接收RAM和16字节的命令RAM。这3部分形成了具有16个QSPI传输控制组的传输队列,每个QSPI传输控制组由1个命令RAM、1个发送RAM和1个接收RAM组成。每个QSPI传输的数据长度、片选等信息可由该QSPI传输控制组的命令RAM单独决定。
 

  由于SPl只有1个8位的发送数据寄存器,所以CPU每次最多只能准备一个字节的待发送数据。而QSPI拥有具有16个QSPI传输控制组的传输队列,所以CPU每次最多可以准备16个待传输的数据,并且可以通过命令RAM设置每个待传输数据的长度。

  在QSPI模块的QWR寄存器中,NEWQP和ENDQP域分别决定了传输队列的起始点和结束点。起始点和结束点可以是16个QSPI

  传输控制组的任意一个。当QSPI传输启动时,QSPI模块将从起始点开始依次发送准备好的数据直到结束点,整个过程无需CPU干预。典型的QSPI传输流程如图2所示,其中QP为传输队列指针,指向即将传输的数据。

  QSPI模块具有7个引脚:QSPI_DIN为串行数据输入引脚;QSPI_DOUT为串行数据输出引脚;QSPI_CLK为串行时钟输出;QSPI_CS[3:0]为片选信号,通过外接译码器可以选择多达16个设备。一次典型的16位QSPI传输时序如图3所示。该时序假设片选信号低电平有效,时钟空闲时为低电平,在时钟的下降沿采样串行数据。其中,时钟空闲电平和采样时钟沿由QMR寄存器的CPOL和CPHA域决定。

[!--empirenews.page--]

  2 4线电阻式触摸屏芯片ADS7843简介

  ADS7843是一款具有同步串行接口的4线电阻式触摸屏控制芯片,具有12位模/数转换精度。ADS7843的4个模拟电压输入引脚X+、X-、Y+、Y-连接触摸屏的4个电极,触摸屏通过这4个引脚将触点电压送到ADS7843进行量化。具体来说,如果要获取触点Y坐标,ADS7843会在Y十和Y-之间施加一个电压,触点将X+与Y+和Y-间电阻网络的一点导通,与触点位置相关的分压值就会通过X+送入ADS7843,通过量化这个分压值就可以获取触点的Y坐标。X坐标的获取也是相同的道理。量化台阶由基准电压和每个样点量化后的位数n决定,为基准电压的1/2”。

  2.1 ADS7843工作模式

  ADS7843具有两种工作模式:单端模式和差分模式。两种模式的区别在于基准电压采用了不同的构成方式。基准电压是ADS7843内部模/数转换模块的正负参考电压+REF和-REF之差。当处于单端模式时,+REF来自外部参考电压输入,一般选取ADS7843的供电电压+ Vcc,-REF接地,所以基准电压为+Vcc。假设在该模式下获取触点Y坐标,由于+Vcc是通过三极管施加在Y+和Y一之间,所以三极管的导通电阻始终会分去一部分电压。这样无论触点在哪里,都不可能获得满量程。这个问题可以通过工作在差分模式解决。在该模式下,当要获取触点Y坐标时,芯片内部自动将Y+与+REF相连,Y-与-REF相连,这样Y+与Y-之间的电压始终为基准电压,消除了三级管导通电阻的影响。

  2.2 ADS7843的数字接口

  ADS7843的数字接口包括片选CS、串行数据输入DIN、串行数据输出DOUT、时钟输入DCLK、中断信号PENIRQ五个引脚,能与具有串行接口的微控制器或数字信号处理器进行数据交换。处理器与ADS7843之间需要24个串行时钟周期才能完成一次完整的转换。前8个时钟周期用于向ADS7843提供一个控制字节,该控制字节组成如下:

  S位为“1”时表明控制字节的开始;A[2:0]用于选择量化通道,“001”选择X通道,“101”选择Y通道;MODE位为“1”时选择8位量化精度,为“0”时选择12位量化精度;SER/DFR位为“1”时选择单端模式,为“0”时选择差分模式;PD[1:0]用于选择一种省电模式。控制字传输完后,接下来的16个时钟周期用于传输量化后的坐标数据。

  ADS7843数字接口还有以下特点:片选低电平有效,时钟空闲时为低电平,时钟的上升沿采样串行数据。

 3 基于ColdFire处理器QSPI接口的触摸屏驱动设计

  3.1 硬件电路

  触摸屏控制芯片ADS7843与ColdFire系列处理器的硬件连接图如图4所示。

  ADS7843数字接口的4个引脚与COLDFire处理器QS-PI模块对应引脚相连,中断信号引脚PENIRQ与处理器外部中断引脚IRQ4相连。注意,需要10kΩ上拉电阻。

  3.2 软件设计

  从触摸发生到获取触摸点坐标的过程如下:触摸发生时,ADS7843会通过PENIRQ引脚触发一个中断,在中断子程序中首先应延迟10~20 ms以去除抖动带来的影响,然后向ADS7843发送控制字获取X、Y坐标。

  获取一个坐标的值需要向ADS7843输入24个时钟周期。对QSPI模块来说,可以把这24个周期作为3次8位的传输队列,或1次8位、1次16位的传输队列。这里选择3次8位传输队列的方式。QSPI初始化代码如下:

[!--empirenews.page--]

  其中,QSPI_QMR和QSPI_QWR为QSPI寄存器QMR和QWR的地址。获胜X坐标函数代码如下:

  获取Y坐标函数代码同获取X坐标函数代码基本一致,只需要将发送给ADS7843的控制命令修改为0xD0,表示选择Y通道,12位精度,差分模式。

  为观察QSPI模块与ADS7843是否能正确地进行通信,使用Agilent1673G逻辑分析仪对4个引脚的时序进行了捕捉。图5显示了读取X坐标时的时序图,4个引脚从上到下依次是片选CS、串行时钟DCLK、串行数据输入DIN、串行数据输出DOUT。从图中可以清楚地看到,在前8个时钟周期,处理器向ADS7843输入了控制字;在第10个时钟处,ADS7843开始输出12位的量化数据;最后3个时钟,ADS7843将输出线拉低。

  结 语

  QSPI模块的队列机制加快了数据传输速度,减少了CPU的干预。除此之外,该模块提供了对时钟有效电平、采样沿、片选电平、传输数据位数等的自由配置,使其能灵活地与各种具有串行接口的设备进行通信。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

上海2025年7月21日 /美通社/ -- 本文围绕跨域时间同步技术展开,作为智能汽车 "感知-决策-执行 -交互" 全链路的时间基准,文章介绍了 PTP、gPTP、CAN 等主流同步技术及特点,并以...

关键字: 时钟 时间同步 同步技术 智能汽车

纳祥科技NX8615 是带有 SPI 接口的独立局域网(CAN)控制器,主要应用在汽车和工业中进行数据接收和传输,具备低功耗、低成本、高实时性、高兼容性的特质

关键字: CAN SPI 纳祥科技 汽车

只要FPGA设计中的所有资源不全属于一个时钟域,那么就可能存在跨时钟域问题,因为异步逻辑其实也可以看做一种特殊的跨时钟域问题。

关键字: FPGA 时钟

在现代嵌入式系统开发中,串行通信协议扮演着至关重要的角色。其中,UART(通用异步收发传输器)、I2C(Inter-Integrated Circuit)和SPI(Serial Peripheral Interface)...

关键字: UART I2C SPI 串行总线

在嵌入式系统的开发过程中,调试是至关重要的一环。调试工具的选择直接影响到开发效率、系统稳定性以及后期的维护成本。在众多通信协议中,UART(通用异步收发传输器)因其简单性、灵活性以及广泛的工具支持,成为嵌入式调试中的首选...

关键字: 嵌入式 UART SPI I2C

深圳2024年11月13日 /美通社/ -- 德国时间11月12日,备受期待的德国慕尼黑电子展盛大开幕。江波龙在本次海外展会中首次推出了多款新品和PTM商业模式,重点围绕工业、汽车存储解决方案,满足全球不同行业智能化发展...

关键字: 汽车 电子 慕尼黑 SPI

上海2024年8月28日 /美通社/ -- 8月26日至8月28日,AHN LAN安岚与股神巴菲特的孙女妮可•巴菲特共同开启了一场自然和艺术的疗愈之旅。 妮可·巴菲特在疗愈之旅活动现场合影  ...

关键字: MIDDOT BSP LAN SPI

在嵌入式系统中,使用单片机(MCU)通过SPI(Serial Peripheral Interface)接口与ADC(模拟到数字转换器)通信时,优化SPI驱动程序以提高ADC的吞吐量是一个重要的任务。以下是一些关键步骤和...

关键字: SPI ADC
关闭