术语和定义
工具书类
有关文件及软件,请浏览://www.wsdof.com/configurable-mixed-signal。
下载免费的GreenPAK Designer软件Ref.[1],打开。gp文件Ref.[2],查看建议的电路设计。使用GreenPAK开发工具Ref.[3]在几分钟内将设计冻结到您自己的定制IC中。雷竞技电竞平台Dialog Semiconductor提供了一个完整的应用注释参考[4]的库,具有设计示例参考[1],以及对Dialog IC的功能和模块的解释。
- GreenPAK设计软件,软件下载和用户指南,Dialog半导体雷竞技电竞平台
- AN-CM-281 8通道模拟最大最小电压GP,绿派克设计文件,Dialog半导体雷竞技电竞平台
- GreenPAK开发工具,对话半导体GreenPAK开发工具网页雷竞技电竞平台
- GreenPAK应用笔记,GreenPAK应用说明网页,对话框雷竞技电竞平台
- SLG46620G,产品页面和数据表,雷竞技电竞平台
- GreenPAK食谱,对话框数据表,半导体雷竞技电竞平台
- 一个- 1066电压斜率方向测定电路
- AN-1097带GreenPAK的7段LED控制
- AN-CM-242二进制校验生成器和校验器
介绍
控制系统和相关设备处理多个电源,如偏置线或电池,必须跟踪给定集合中的最高(或最低)线。
例如,负载开关在“多电池”动力系统要求系统监控电池阵列之间的最小或最大电压(最大值或最小值作为特定的函数转换算法)和动态路由负载实时最合适的源。或者,系统可能需要暂时断开最低电压电池以进行适当的充电。
另一个例子是现代太阳能发电系统,每个太阳能电池板都配备了倾斜旋转机构和太阳能跟踪电路(后者提供太阳位置信息,以确定电池板的方向)。有了最大电压信息,每个太阳能电池板的位置可以微调的基础上,弦的电池板实际上提供最高的输出电压,从而实现卓越的功率优化水平。
有几种不同品牌的商用IC(主要是微控制器),原则上可以实现最大电压跟随器。但是,它们需要编程,并且比混合信号解决方案的成本效益更低。补充Dialog GreenPAKTM设计可以积极影响设计的可承受性、尺寸和模块化。该设计充分利用了将模拟和数字电路集成到单个芯片中的优点。
在本应用说明中,实现了在八个不同的源之间实现最大(或最终最小)电压查找器所需的模拟前端和数字逻辑。
使用SLG46620G实现8通道模拟最大/最小电压监控。
方框图
下图为实现的系统整体图:
一串多达8个可变电压源是多路复用的,并与GreenPAK的ADC模块连接到定制的内部设计,能够选择相对于其他电压最高的源。内部逻辑输出这些信息以供显示或进一步处理。
该设计基于GreenPAK SLG46620G产品,因为它嵌入了应用程序所需的所有模拟和数字构建块。在本实现中,阵列通过直接由GreenPAK IC驱动的ADG508模拟多路复用器进行扫描。
输出信息是一个3位数字,对应于最大电压下的电压源编号。获得该信息的一种直接方法是通过7段显示数字。它可以很容易地通过将SLG46620G的数字输出接口到7段显示驱动程序,如参考资料[8]中描述的GreenPAK解决方案或通用的74LS47 IC来实现。
所提出的电路寻找最大电压。为了将设计转换为最小电压检测器,必须在模拟多路复用器和GreenPAK模拟输入之间添加一个简单的预处理电路,从1v参考电压中减去多路复用器输出。
操作原理
设计的目的是选择电压最大的源,因此对整个阵列进行扫描,同时存储last-max值,并与输入的下一个值进行比较(该值属于扫描的下一个电压源)。
在下面我们将把沿着所有输入的一个完整的多路复用序列称为“扫描”或“循环”。
两个值之间的比较不是通过ACMP组件完成的(但是,SLG46620G中提供),而是通过DCMP模块完成的,一旦值分别数字化。这是参考文献[7]中首次提出的一种先进而精细的技术。
图2显示了SLG46620G是如何进行这种设计的:
模拟输入信号通过PGA组件以设定增益1传输至ADC输入。各种增益设置也可以找到与前端调节电子设备的最佳匹配,用于将输入电压映射到GreenPAK ADC模块的0-1 V范围。
ADC在单端模式下工作,并将模拟信号转换为8位数字代码,然后将其传输到DCMP模块。数字代码也被送入SPI块,配置为ADC/FSM缓冲区,数字代码可以存储,不会改变,直到下一个脉冲来到SPI CLK输入。请注意,一个专用逻辑块驱动SPI CLK输入。我们将在后面研究这一部分,因为这是负责正确操作的“核心”逻辑。只有当一个新的数字码属于实际的最大输入电压时,它才被存储到SPI模块中。
DCMP组件用于将当前ADC数据与存储在SPI块中的最后一个获胜者(即最后找到的最大值)进行比较。当新ADC数据大于前一个数据时,它将在OUT+输出处生成脉冲。我们使用OUT+信号用新获胜者更新SPI块。
一个全局时钟信号驱动ADC转换和一般时间。一旦转换执行,ADC的INT输出信号脉冲,与ADC并行数据输出协调时间。我们还使用INT输出来增加一个由Matrix1中的DFFs实现的3位二进制计数器,这有三个有用的原因:
- 计数器输出线寻址外部模拟多路复用器,从而服务于ADC的下一个输入电压;
- 计数被冻结到3位寄存器(在Matrix1中实现)中,以在扫描期间存储临时赢家;
- 一旦扫描完成,计数被解码以更新第二个3位寄存器(在Matrix0中实现)。
逻辑实现
ADC模块依次提供所有输入电压的转换数据,一个接一个,无限期。一旦多路复用器被寻址为0b111(十进制7),计数器滚到0b000(十进制0)从而开始输入电压的新扫描。
在扫描期间,当并行数据输出有效时,产生ADC INT输出信号。当该信号脉冲时,模拟多路复用器必须切换到下一个输入,为PGA提供相应的电压。因此,ADC INT输出是图2的3位二进制计数器的直接时钟信号,其3位并行output字直接寻址外部模拟多路复用器(图1中的“V选择”)。
现在让我们来看一个例子,其中输入电压应该有以下关系:
a) V0 < V1 < V2 b) V2 > V3, V4 c) V5 > V2
图3为max决策机制的主要信号:
由于数据最终与INT脉冲同步时钟进入SPI缓冲区寄存器,存在一个比较窗口,其中SPI缓冲区内容与下一个ADC转换结果进行比较。这个特殊的定时导致在DCMP输出处产生OUT+脉冲。我们可以利用这些脉冲将新值加载到SPI缓冲区寄存器中。
从上图的SPI缓冲区数据行可以明显看出,SPI寄存器总是一次一次地包含8个输入中的最大值,并且只有在DCMP模块检测到较大值时才会更新(参考图中的DCMP OUT+输出线,丢失的脉冲会导致V2在与V5比较之前保持锁存在寄存器中)。
解决死锁
如果实现的逻辑与上面描述的一样,很明显我们会遇到死锁的情况:系统只能检测比存储在SPI缓冲区寄存器中对应的电压高的电压。这也适用于这种情况下,该电压将下降,然后另一个输入,直到现在更低,成为最高:它将永远不会被检测到。
这种情况在图4中得到了更好的解释,为了清晰起见,图4中只有3个输入电压:
迭代2时,V3下降,V1为实际的最大电压。但是DCMP模块不提供脉冲,因为存储到SPI缓冲寄存器(对应0.6 V)的数据比V1 (0.4 V)的数据大。
然后,系统将表现为一个“绝对”max finder,并且不会正确地更新输出。
克服此问题的一个好方法是,当系统完成所有通道的完整轮询周期时,强制将数据重新加载到SPI缓冲寄存器中。
事实上,如果在输入电压仍然是最高的,没有什么变化和安全控制的推移(指上面的图4中,这是循环迭代的情况下0和1)。另一方面,如果输入的电压在机会降低值小于另一个输入,然后重新加载该值,使DCMP模块有可能在与新的最大值进行比较时产生OUT+脉冲(这是循环迭代2和3的情况)。
为了克服这个问题,需要一个逻辑电路。当循环到达实际的最大输入时,它必须生成一个时钟信号给SPI组件,从而迫使重新加载其更新的数据字到SPI缓冲区寄存器。这将在下面的7.2和7.6节中讨论。
设备配置
SLG46620G有两个Matrix块,如图2所示。下图显示了各自的设备配置。
Matrix0电路
电路的上部是由3个dff (DFF0, DFF1和DFF2)实现的“循环寄存器”。在输入多路复用器的每个循环后刷新,将“winner”的二进制数发送到一个7段显示驱动器,即在最后一次扫描中具有最高电压的输入。DFFs的时钟和数据都来自Matrix1中实现的逻辑,分别通过端口P12、P13、P14和P15。
下部为引脚8输入的模拟前端,增益为x1的PGA。ADC INT输出通过P0端口进入SPI的时钟逻辑和Matrix1,在那里它将作为实现的计数器的时钟信号。
ADC和SPI并行数据输出分别标记为NET11和NET15,连接到Matrix1中的DCMP组件。
SPI时序逻辑
正如前面在“逻辑实现”一节指出的那样,每次实际存储值和新的ADC转换数据之间的比较在DCMP out +输出产生一个脉冲时,SPI缓冲区寄存器都会更新。
信号的完整性是确保,如果这个信号是与与ADC INT输出。这避免了任何尖峰和虚假触发。
我们还强调了要跳过死锁情况,必须在循环到达实际赢家数据时更新SPI Buffer。
三个信号然后在游戏中为适当的SPI时钟:
- ADC INT输出(LUT0-IN1)
- DCMP输出+输出(通过端口P10的LUT0-IN0)
- 计数等于锁存信号(通过端口P11的LUT0-IN2)
前两个是and -ed和OR-ed,后者在LUT0中,其实现配置如图6所示:
Matrix0组件属性
下图显示了属于Matrix0的其余组件属性窗口:
|
|
|
|
Matrix1电路
3-bit二进制计数器
电路的上部包含逻辑元件,主要是一个由ADC INT输出时钟的3位二进制计数器,如前所述。这个计数器是用一个相当“标准”的原理图实现的:
本设计通过DFF9、DFF10、DFF11触发器和INV1、LUT4、LUT8实现该计数器。DFF9的输出是LSB,而DFF11是MSB:
LUT4被配置为XOR,而LUT8执行图12中的AND-XOR逻辑。
计数器输出到三个数字输出引脚,以寻址外部模拟多路复用器。
当扫描完成时,LUT10解码计数器的代码,并通过DLY8和端口P12向Matrix0提供脉冲。这是简单地通过和和计数器的输出来完成的,从而解码数字7 dec (0b111二进制,循环结束)。
3-bit比较逻辑
图15显示了用于检测环路何时在当前“赢家”地址迭代的电路。在这种情况下,如前所述,数字脉冲应该强制重新加载当前的ADC结果,以解决可能的死锁情况。
“赢家”地址存储在Matrix1的临时寄存器中(见下面),而当前地址由二进制计数器输出。
当两个输入相等时,XNOR门提供一个真正的(逻辑1或'高')输出。当两个二进制代码都是相同的时候,将这个信号与所有位(LUT9)连接起来会给我们一个脉冲。关于异或门作为奇偶校验器的详细信息可以在参考[9]中找到。
' counter -equal - latch '信号通过端口P11传递到Matrix0。
数字比较逻辑与临时寄存器
图11下方(图16突出显示)为本设计的决策部分——DCMP模块:
DFF6、7和8组成一个3位寄存器,在循环运行时存储临时输入数“winner”。触发器的输入是3位二进制计数器输出,如图11中的全局Matrix1电路所示,为了清晰起见,这里略过。
该寄存器的输出不能直接驱动7段显示器,因为此处存储的值在扫描过程中发生变化,只有在扫描结束时才被视为“有效”。
由于这个原因,临时寄存器输出通过矩阵间端口P13、P14和P15连接到Matrix0的环路寄存器。
很重要的一点是,在图16中,当ADC-SPI寄存器比较结果发现一个新的最大值时,临时寄存器被DCMP OUT+输出时钟时钟。
同样的OUT+信号通过P10端口传递到Matrix0, SPI CLK Logic。
Matrix1组件属性
下图显示了属于Matrix1的组件属性窗口:
|
|
结果
为了测试实现,我们构建了一个评估板原型,其中8个模拟输入电压是通过使用TrimPots的一系列电阻分压器获得的(如图20所示):
所使用的多路复用器是ADG508,这是一个可以单电源(12v)工作的部件。
7段显示驱动程序是74LS47。它解码一个并行输入字和直接驱动共阳极7段显示。
评估板有一个2x10的直角连接器,直接插入GreenPAK高级开发平台的扩展连接器:
与GreenPAK Advanced Development Platform的结合使得测量信号以进行快速检查变得非常简单。例如,图22显示了由HP 54620A逻辑分析仪捕获的一组信号(分别为时钟、ADC INT输出和DCMP OUT+输出)。波形由OUT+信号的上升沿触发(在标记为“a>B”的范围内),因此,当在模拟输入中检测到新的最大电压时,这是波形捕获。事实上,它是通过旋转评估板的一个微调器来增加相应的电压得到的:
图23展示了评估板的示意图:
结论
在本应用笔记中,我们实现了一个八通道最大(或最小)电压查找器,用于多通道控制系统的通用附加。提出的方法利用了GreenPAK组件的高级特性,并展示了如何将模拟和数字功能集成到单个芯片中。可以用Dialog GreenPAKs替换一些商业IC,从而降低应用程序的规模和成本。