网志

深度嵌入式设计示例-逻辑替换

吉恩·布雷尼曼2011年7月9日

我一直认为,某些低成本,低引脚数,资源少的产品 微处理器将是替换分立逻辑组件的绝佳选择。 在这些情况下,深度嵌入式微处理器将不再是通用计算机,而是更多的 逻辑替换,提供与外界无关的规定功能。 在一个更大,更快,更昂贵的世界中,这是一个令人愉快的转变。 拥抱更小,更便宜的产品,并建立一个更好的捕鼠器。 以下是这种保证的说明。

最近,我参与了一个降低成本项目的设计审查,其中一个较旧的设计正在更新。 新设计是两种不同设计的合并,包括一些 更新了零件和一些现有控件。 该设计包括六个10Amp H桥驱动器和相关的控制逻辑。 某些早期测试显示出一些相当大的电流尖峰,并且也有一些超出理想水平的电磁干扰(EMI)。 一直在协助类似设计(主要是针对EMI问题)的顾问建议对电路进行一些时序更改。 随着会谈的继续,讨论了涉及更改时间的两种不同方案。在这一点上,我已经提出并建议我们拔出所有控制电路,并用小型微处理器或CPLD代替它,从而使我们有一定的自由来更改时序方案。 我的经理称我的建议为“小玩笑”,但我向他保证我是认真的。

几天后,我与经理会面,我们讨论了在小型微处理器内部处理桥控制逻辑的想法。 在我们同意实际上是有可能的(也是这样做的一个好主意)之后,我们快速定义了所需的控制级别以及我们需要考虑的不同延迟范围。

太好了,我们有一个计划和方向。 在开始工作之前,让我们花点时间分析一下当前电路,以确定当前的功能和实际的延迟时间,以便更好地了解我们的起点。 电路上的全局视图实际上非常简单。 “方向”行中的更改要求对电流源和桥驱动器进行适当的排序。 在方向改变时,当前选择的驱动器(相对侧,顶部和底部MOSFET)与可编程电流源一起被禁用。 然后,在启用另一组MOSFET之前会发生一个延迟,在重新启用电流源之前会发生另一个延迟。  这些动作的顺序和时间延迟会影响我们的六个H桥的运行以及由此产生的EMI特性。

在上面的示意图中,有两个不同的延迟电路(使用10K和0.1uF的两个副本,使用10和3.9uF的两个副本)。 每个方向控制电路使用两个不同的逆变器(集电极开路型-SN7406和施密特触发器型-74HTC14)。 这些反相器中的每一个都用于控制转换的不同边沿,施密特触发器通过将充电电流通过串联电阻施加到定时电容器(0.1uF)中以引起固定的延迟,从而控制上升沿(使能)。集电极开路逆变器通过使用电容器上电荷的大电流转储来实现接近零延迟的关闭,从而控制下降沿(禁用)。 两种逆变器类型的组合实际上是一种聪明的方法。 施密特触发器设备在〜4ma时驱动高电平和低电平,而Open Collector设备在高电平时不提供驱动,但在低电平时可以沉入〜40ma,从而提供受控的上升时间和快速下降时间。

第二延迟电路用于通过在方向改变期间暂时禁用电流源来控制可编程电流源。 该阶段使用单个Open Collector反相器,使反相器处于高电平时(通过10K电阻至VCC)对时序帽进行充电,然后在其输出为低电平时通过器件快速放电。 当方向改变并且两个延迟电路中的一个延迟开关禁用时,其输出变为高电平(U4E或U4F),而另一个输出为高电平(等待变为低电平或启用),则第一个NAND门进入使能链将其两个输入都视为高电平,从而导致输出变为低电平。 这导致第二与非门输出变为高电平,进而使反相输出变为低电平,从而使3.9uF电容器快速放电,这导致第二反相器变为高电平,从而禁用了电流源。 当发生延迟的H桥使能时,第一个NAND看到高电平和低电平输入,导致 它的输出变为高电平,进而导致第二个NAND输出变为低电平,集电极开路反相器输出变为高电平。 这将启动充电(延迟)周期开始,并保持禁用电流源。  Once the 3.9uF充电可为 施密特触发器输入,其输出切换 并且当前源已重新启用。 

对于上述电路,时间延迟大致如下(组件变化将影响结果-所有时间均与方向输入中检测到的变化有关):

  • 驱动器关闭时间-〜6us
  • 电流源禁用-〜300us
  • 驱动器对面的开启时间-约750us
  • 重新启用电流源-〜30ms

好的,看来我们只需要监视方向线并 提供两条线来控制通过我们的H桥的电流方向,并提供一条线来启用/禁用电流源。 该资源要求似乎与PIC10F200器件非常匹配。 这是一个六引脚,8位微控制器。 它提供一个4MHz的内部时钟,产生1us的指令周期。 凭借高达256个指令字(FLASH),16字节SRAM和8位定时器/计数器,它应该完全可以应付当前的任务。

生成更新的原理图的任务非常简单,因为每个通道只有很少的组件。 查看下面的新原理图和材料清单(BOM)中的更改,其简单性非常明显。 由于电路在电路板上重复了六次,因此总共减少了120个元件,总共节省了4.092美元。 仅零件成本只是开始。 在电路板不动产和组装成本方面的节省将增加节省。

 
 

在进入我们的设计代码之前,我们应该首先概述规格。 桥控制器设计 基于PIC10F200T-E / OT的6引脚微控制器。 PIC的目的是取代现有的分立逻辑电路来控制电源的方向 H桥,由“ DIRECTION”输入确定并控制“ ISOURCEENABLE”线(将“ 和”线连接到全局电流源使能线)。

启动时,PIC将配置定时器和看门狗,然后对“ DIRECTION”线进行采样以确定H桥的启动状态。  此起始状态将用于对防反跳逻辑进行预处理,该反跳逻辑将用于帮助抑制“方向”输入上的杂散噪声。 PIC然后应使用启动状态以正确的启动方向调节H桥。

在去抖动循环中,PIC应该重复采样“ DIRECTION”输入的状态,以等待连续八次读取同一电平(同时为看门狗定时器提供服务)。 当检测到变化时,PIC应该首先禁用当前源,等待1 ms,关闭所有桥接驱动器,等待100us然后启用所需的桥接驱动器,然后等待100us再重新启用当前源。 在此过程之后,PIC应该恢复为对“ DIRECTION”线进行采样。

PIC已配置 将配置为使用以下引脚分配:

 

销号

名称

方向

功能说明

1

GP0

输出量

电流控制器启用(有线‘AND’ to global enable)

2

VS

地面

 

3

GP1

输出量

桥左高/右低启用

4

GP2

输出量

桥右高/左低启用

5

Vdd

Vcc

 

6

GP3

输入值

热/冷输入

此外,PIC固件将被设计为将以下资源配置为以下状态/条件:

  • 内部4MHz振荡器。
  • 没有Mclr功能(启用了GP3)。
  • 看门狗定时器被启用为“失控”保护,无分频器,约16 ms。
  • 启用弱上拉,禁用引脚更改唤醒。
  • 定时器0,Fosc(4MHz)/ 4/16或〜16us时钟源(提供对时间延迟的支持)。

好的,现在我们有了编写所需控制功能程序所需的一切。 该代码分为两个模块,第一个是实际代码(PWMcontrol.ASM),第二个是为各个端口和寄存器定义的必要位和字节(PWMcontrol.INC)。 源代码是用汇编语言编写的,以便专注于对PIC资源的最有效控制,并充分暴露各种循环等的时间延迟。 这是支持我们的设计的汇编语言的最终清单。

 

PWMcontrol.INC文件包含PIC10F200中各种端口和寄存器的必要位和字节定义,以及针对我们实现的其他定义。

组装并测试完所有组件之后,PIC10F200中使用的资源的最终汇总如下:

  • 256个Flash单词中的62个(24%)
  • 16个SRAM字节中的4个(25%)
  • 1个8位计时器(100%)
  • 4个I / O引脚中的4个(100%)

上图显示,将来仍需要进行更改。 我们选择这种方法是为了为可控的时序变化提供灵活性。 在此设计之后的测试和评估中,我们能够改变延迟,更改开/关顺序并精确调整总体设计的性能,从而满足我们已建立的所有目标,即最大化性能(效率)。 ),同时将EMI效应降至最低。 在撰写本文时,总体设计正在通过可靠性和环境测试继续向前发展,即将作为对现有产品的更新发布。

再次感谢您的关注。  Happy embedding!

基因


要发布对评论的回复,请单击每个评论所附的“回复”按钮。要发布新评论(而不是回复评论),请查看评论顶部的“写评论”标签。

注册后,您可以参加所有相关网站上的论坛,并获得所有pdf下载的访问权限。

注册

我同意 使用条款隐私政策.

试试我们偶尔但很受欢迎的时事通讯。非常容易退订。
或登录