找回密码
 注册
关于网站域名变更的通知
查看: 232|回复: 2
打印 上一主题 下一主题

通过应用外部设备解决MCU I/O扩展问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-9-22 09:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 Ele_insect 于 2022-9-26 16:05 编辑
& ?8 a7 x- V8 s% z3 N
7 i. U& w7 _6 E. N$ s9 j9 O设计人员通常面临两个微控制器I / O问题。第一种是最适合应用的微控制器没有正确的I / O功能组合。当已经启动的产品线需要额外的I / O时,第二个出现。! F/ x; X4 s2 r5 l! E$ g
在第一种情况下,开发人员经常面临购买更昂贵且功能更强的微控制器的问题。在第二种情况下,切换到新微控制器的成本以及随之而来的软件移植可能会花费成本和时间。$ ]) ~8 z- d- S5 b" s
这两个问题的一个潜在解决方案是使用通常连接到微控制器的SPI或I 2 C总线的外部I / O扩展设备。这些避免了在引脚数量以及可能的性能和占用面积方面过度指定微控制器的需要。同时,这种方法将面临功能蠕变,目标市场扩展,客户特征请求以及微控制器选择(它发生)时的产品设计。* ?. D& k' p; G+ i& @

/ o/ J; D# v" M+ L9 |- K
% v& f, q) d6 g1 O% a
本文将讨论典型的微控制器I / O要求,并介绍一些合适的外部扩展器件。然后,它将展示如何使用这些可提供额外通用输入和输出,存储器存储,脉冲宽度调制(PWM)甚至看门狗定时器功能的片外资源。
: q4 R" M3 _2 o* X0 J
! V. i$ s) Z) z8 e/ _1 i; h

# g7 p0 F1 t, o' \9 ]$ `- i8 z6 r
选择扩展界面微控制器在片上具有多个不同的外围接口,可用于与外部设备通信。根据微控制器的不同,这些接口可能仅举几例:
/ R1 Q  |5 O' B) W
  • 串行外设接口(SPI)
  • 内部集成电路(I 2 C)总线
  • 通用串行总线(USB)
  • 通用异步接收器/发送器(UART)
  • 控制器局域网(CAN)
  • 的Wi-Fi
    4 `- t$ S- p- |% A. I$ ~
最适合与外部扩展设备通信的接口是I 2 C和SPI。
( f8 L( g% s9 N' o: f8 ^- C2 MI 2 C是一种双线总线,传统上以100千比特/秒(Kbits / s)或400 Kbits / s运行,尽管有一些高速设备支持1 Mbit / s或更快。一根线是专用时钟引脚,另一根线用于主机和从机之间的双向通信。通常,微控制器充当主设备,外部设备充当从设备。可以使用7位或10位寻址方案寻址从器件。
* Y3 M- r; Y5 O$ O8 r, ^9 dSPI是一种三线总线接口,工作速率介于1 Mbit / s和12 Mbits / s之间。SPI总线具有专用的主输出数据线,从输出数据线和时钟。微控制器再次配置为主设备,使用“从选择”线与从设备通信。连接到微控制器的每个从器件都需要一个专用输出引脚来选择它进行通信。很容易想象,如果开发人员有许多他们想要连接的外部设备,他们可能会快速耗尽I / O线来选择从设备。
+ x+ X9 R$ Q- _5 s% Y$ m4 b例如,如果开发人员使用STMicroelectronics的 STM32L011D4P7,他们将有11条I / O线可供使用(图1)。SPI数据和时钟只需要三条I / O线,剩下八条线与从机设备通信,并执行系统所需的任何其他功能。这对于许多应用程序来说都非常好,但在某些时候,设计人员可能需要扩展I / O.0 B0 o0 \- g  L
4 h& _/ C( e# z# `& b' }$ m' w- e
图1:STM32L011D4P7是一个臂®  皮质® -M7处理器被销限制与11 I / O。(图片来源:STMicroelectronics)* B6 j5 g: c% h' E' l- w
一般来说,经验法则很简单:添加以下功能时使用I 2 C总线:
+ h" ~: z4 F( n1 ~. Y3 ^
  • I / O.
  • PWM
  • EEPROM
  • 看门狗定时器
    # D6 k$ p) _" r' C! t0 W
应使用SPI总线来增加SD卡的高速存储器访问等功能。  q0 H$ W& q/ b
扩展通用I / O.有很多IC支持通过I 2 C接口扩展输入和输出。一些有趣的例子包括:
6 w3 l4 E* |) j6 v4 `
  • 德州仪器的 TCA9534PWR
  • 恩智浦半导体的 PCA8574
  • Semtech Corporation的 SX1520I087TRT/ O) O( F7 h+ n1 c1 q( ?
PCA8574特别有趣,因为它只包含一个用于执行输入和输出的寄存器。单个寄存器大大简化了配置器件以及读取和写入引脚所需的软件数量(图2)。微控制器通过I 2 C与PCA8574通信,并根据A0至A2引脚的配置方式寻址器件。这增加了设计的灵活性,因此开发人员可以选择PCA8574的从地址,并在一个设计中使用多个地址。
& S1 X. u) Z0 L7 Y  S
# R7 G& k# i9 `- a( p, V) h图2:NXP的PCA8574是一个准双向的8位I / O I2C扩展器。它只有一个I 2 C寄存器来读写,以便在其引脚上执行I / O功能,使其成为一个非常简单和时尚的器件。(图片来源:恩智浦半导体)
6 F# i; X; ?. q# U" U. I默认情况下,P0至P7在上电时配置为输入。读取单个内部寄存器将给出器件上每个引脚的状态,无论它是配置为输入还是输出。PCA8574允许引脚同时作为输入和输出,因此写入寄存器也会设置相应的位输出。5 {( r5 ^( B( j4 l
输出驱动由弱内部电阻上拉,内部电阻很容易因输入值而过载。如果任何输入状态发生变化,INT引脚将切换为低电平,让微控制器知道输入状态发生了变化。然后,微控制器可以进行I 2 C调用以读取新值。
' C+ y/ Q: u. W- |. P' o5 v扩展PWM一个非常有用的扩展设备是PWM扩展器。该器件在驱动LED时特别有用。当微控制器没有做任何事情时,它可以进入休眠状态,PWM扩展器可以负责驱动LED状态。
! b% C9 x: n( O3 `4 p8 j用于PWM膨胀是如何使用的一个很好的例子常常在使用一个RGB按钮电路示出了PV6F240SSG从RGB按钮E-开关,或3-101-399从SPST RGB按钮商Schurter电子元件  (图3)。
# D% k* W* Q* N3 w  A- H+ m  Y/ w" q: ~: f) C: x+ [
图3:Schurter的RGB按钮在按钮周围包含一个红色,绿色和蓝色LED,允许开发人员创建一个亮色图案。这些类型的器件非常适合由PWM扩展芯片驱动。(图片来源:Schurter)
6 m: i/ j! z" h+ jSchurter的RGB按钮在SPST按钮周围有一个红色,绿色和蓝色LED,允许开发人员创建一个亮色图案。这些类型的应用非常适合PWM扩展芯片。
0 S! w- M: b1 F3 n( G适用于I 2 C 的PWM扩展芯片是Maxim Integrated的 MAX7315。MAX7315提供8个PWM端口,并具有LED强度控制功能。这很容易涵盖驱动RGB开关所需的三个通道,允许单个设备驱动几个开关和一些独立的LED。还有第九个端口,可用作转换检测中断或通用输出。0 a8 Q6 B+ F& [0 l2 v1 _
MAX7315 I 2 C接口比NXP的PCA8574稍微复杂一些,因为它包含多个寄存器。因此,开发人员必须寻址从设备,提供它有兴趣阅读或写入的内存地址,然后执行写入或读取。MAX7315的存储器映射如图4所示。+ W; X6 V% w$ Y! ?
[td]
寄存器
地址代码(十六进制)
自动增量地址
Rad输入端口为0x000x00(无变化)
闪烁阶段0输出0×010x01(无变化)
端口配置×030x03(无变化)
闪烁阶段1输出×090x09(无变化)
大师,O8强度为0x0E0x0E(无变化)
组态为0x0F0x0F(无变化)
输出强度P1,P0为0x10为0x11
输出强度P3,P2为0x110×12
输出强度P5,P40×120×13
输出强度P7,P60×13为0x10
图4:MAX7315 PWM控制器有8个输出端口,包括LED强度功能。器件的寄存器映射非常简单,可以轻松访问高级PWM功能。(图像来源:Maxim Integrated)
" v9 d9 H. d# M9 zMAX7315的寄存器映射非常简单,可以轻松访问高级PWM功能。
: b8 P9 R' j8 V2 n, }& n0 S* O组合扩展器,带WDT,EEPROM和PWM如图所示,当用作独立设备时,I 2 C总线I / O扩展器可以非常强大。也就是说,它们只包含I / O或PWM等特定功能。像扩展赛普拉斯半导体公司的 CY8C9520A多端口I / O扩展器包括单个IC封装内的多个外围扩展。CY8C9520A有三种类型:20位,40位或60位扩展。然后可以将这些引脚配置为用作输入,输出或PWM(图5)。- @& i6 j3 I4 i% D; m' X# B. b7 ]: ?) G

2 @: L8 p, K- A  P/ r7 v; X3 F图5:赛普拉斯半导体CY8C9520是一款带EEPROM的20位,40位或60位I / O扩展器。它允许将扩展引脚配置为输入,输出或PWM。(图片来源:赛普拉斯半导体)% B8 h' j" Q' ~5 d8 y2 k9 n# `
除I / O扩展外,CY8C9520还包括EEPROM,可用于存储重要的应用设置,如序列号,以及其他重要的配置参数。
! H8 [+ Z; `) v% C4 e3 F0 ?  W仔细查看图5,可以看到GPort 2上的WD6引脚。这是一个看门狗定时器输出引脚,如果它无法通信并“接收”CY8C9529看门狗,它可用于复位微控制器。看门狗设置是完全可配置的,可用于为应用程序代码添加额外的健壮性级别。! n6 _' _; ~, o
扩展微控制器功能的提示和技巧有许多技术可以帮助扩展微控制器的功能。以下是一些有用的提示和技巧:2 V. V# A, w# c' @% V2 b4 L2 ^
  • 使用I 2 C连接外部设备。该接口只需要两个引脚,可以支持多个从设备。
  • 在将部件设计到硬件之前,购买开发板或将芯片焊接到扩展板以测试它是否满足您的所有系统需求。
  • 使用I 2 C总线工具与扩展设备连接并了解其工作原理。这将大大加快软件开发速度。
  • 在软件开发期间使用总线分析器监视与外部设备的通信,以最大限度地缩短调试时间。
  • 如果可能,请选择具有外部看门狗定时器的设备。这可以是为系统设计增加额外稳健性的工具。
  • 当与片外存储器连接配置数据以外的数据时,请使用SPI等高速接口。
  • 如果设备返回否定确认(NAK)或拖拽总线,请确保微控制器的I 2 C驱动程序可以处理它。如果收到意外响应,这些驱动程序忽略错误并进入无限循环并不罕见。
    & Z9 E: I2 S& w( _& w
结论
3 |9 J& a& t; Z3 V4 q当设计达到微控制器不再具有I / O的程度时,开发人员不需要撕掉他们的设计并从第一个开始。相反,他们可以使用外部外围芯片,允许他们为他们的系统添加额外的功能。2 y4 a6 N( Z/ C

该用户从未签到

2#
发表于 2022-9-22 10:47 | 只看该作者
本帖最后由 RGB_lamp 于 2022-9-26 19:06 编辑
  p( y; G- F8 O3 A. u8 G5 X8 y4 y, Z
I 2 C连接外部设备。该接口只需要两个引脚,可以支持多个从设备。

该用户从未签到

3#
发表于 2022-9-22 17:01 | 只看该作者
本帖最后由 dragongfly 于 2022-9-26 20:17 编辑
, R& X* U( V! Y" m. H/ [& z$ J  u  A
+ M. L4 V, f$ J  u) h) e$ d9 u使用单片机的时候,有时候会出现IO口不够用的情况
. T! }0 l/ D/ v+ O做某些东西的时候又不能缺少按键
, H; d: Q9 [0 g. O- e/ [因此我们要采取一些方法来扩展单片机的IO口,控制按键所占的单片机IO口
. g1 B- B) l1 E  f$ }
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-10-12 05:45 , Processed in 0.125000 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表