现代微控制器可重新配置之美

2019-04-26  本文已影响0人  黄文666

早期的微控制器有固定的IO,虽然内部外设可以连接到IO引脚,但是这些引脚是有限的,不可能调整这些输出。一些现代微控制器不仅可以将外围设备路由到任何I/O引脚,还可以根据特定的需要配置和定制输出。本文讨论如何在PSoC上使用此功能来简化项目测试。

       我写过关于测试我设计的产品的文章(参见“测试艺术第1部分:电路板,元件和产品”,“测试艺术第2部分:控制测试”,“测试艺术”第3部分:经验教训)。我尝试将这些概念构建到新产品中(参见图1),我可以看到有许多I / O连接。使用的嵌入式微控制器是PSoC5LP,我已经谈了很多关于这个器件,我会再做一次!

我认为解决这个问题的最佳方法是使用内置测试来激活响应某些输入的输出。这将使测试夹具更简单,因为它只需要硬件,不需要对外部设备进行额外编程。

       图1:基于psoc5lp的控制器,大多数组件安装在底部。请注意,胶带是用来保护相关个人信息的。它让我想起了迪伯特的漫画。(资料来源:作者)

        有个问题困扰着我。该产品有一个串行端口和它的RS-485接口(半双工)使用通用的MAX485。如果没有某种形式的外部UART,您将如何进行测试?示波器可以用来检查接收信号,但是相反方向的数据呢?以前有MC14469的UART交换设备,但是已经停产了,所以这个想法行不通。

我理性地认为我不想检查UART是否正常,但是支持硬件正在工作。所以我所要做的就是在第一次测试中激发微控制器输出,触发微控制器输入,然后在第二次测试中读取它。我本可以使用UART的中断功能(如果是的话,我会在PSoC5LP设备上实现它),尽管它需要额外的中断。老实说,直到我开始写这篇文章的时候,我才想出了这个想法。

        图2:具有半专用I / O引脚的微控制器上的典型嵌入式UART。 (来源:作者/PSoC Creator)

在典型的微控制器上,UART连接被绘制到一组或多组I/O管脚上,然后通过配置寄存器来启用,如图2所示。在一些可重新配置的微控制器上,特别是PSOC5LP,可以添加寄存器,并且可以设置UART管脚和微控制器物理I/O管脚之间的设备,如图3所示。

(资料来源:作者/“PSoC Creator“)

SerInRead:

状态寄存器:状态寄存器

clock:时钟

status:状态

调制解调器:网络通信协议

中断:中断

reset:重置

MBUS testing: MBUS testing

控制区域:控制寄存器

control:控制

       UART的输出引脚通过多路复用器连接到I≈O引脚。控制寄存器选择多路复用器端口,使微控制器可以直接控制输出引脚,从而完全排除UART。Rx输入被馈送到与UART Rx输入平行的数字输入寄存器。

       当控制寄存器的第二位低时,UART输出连接到物理输出引脚。UART正常工作。TX引脚通过外部线连接到PCB上MAX 485的DI引脚上。TX引脚用于控制数据流的方向(!Re和DE快捷键在MAX 485上)。MAX 485 RO引脚驱动Rx输入引脚。当控制寄存器的第二位被设置为高级(在测试软件中)时,另外两个控制寄存器位被连接到物理输出引脚。然后,微控制器可以设置这些引脚以产生硬件信号,以直观地检查输出。当MAX 485的方向通过TxEN输出改变时,输入可以在状态寄存器(Status Reg)中读取。

        这不仅允许在器件内部进行重新配置,而且我不需要改变我的PCB设计。我只需要设计一个带有另一个MAX485和一个LED的小配线架来指示输出状态,以及两个开关,一个用于改变通信方向,另一个用于被测设备读取。

谁不喜欢可配置性?

上一篇下一篇

猜你喜欢

热点阅读