【雕爷学编程】Arduino动手做(140)---MAX3232串口转换板

发布时间 2023-06-30 08:43:46作者: 行者花雕

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞不掂的问题,希望能够抛砖引玉。

 

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)

实验一百四十:MCU mini RS232 MAX3232电平转TTL电平转换板 串口转换板

 

 

知识点:MAX3232芯片

采用专有低压差发送器输出级,利用双电荷泵在3.0V至5.5V电源供电时能够实现真正的RS-232性能,器件仅需四个0.1uF的外部小尺寸电荷泵电容。MAX3232确保在120kbps数据速率,同时保持RS-232输出电平。

MAX3232具有二路接收器和二路驱动器,提供1uA关断模式,有效降低功效并延迟便携式产品的电池使用寿命。关断模式下,接收器保持有效状态,对外部设备进行监测,仅消耗1uA电源电流,MAX3232的引脚、封装和功能分别与工业标准MAX242和MAX232兼容。即使工作在高数据速率下,max3232仍然能保持RS-232标准要求的正负5.0V最小发送器输出电压。

只要输入电压在3.0V至5.5V范围以内,即可提供+5.5V(倍压电荷泵)和—5.5V(反相电荷泵)输出电压,电荷泵工作在非连续模式,一旦输出电压低于5.5V,将开启电荷泵;输出电压超过5.5V,即可关闭电荷泵,每个电荷泵需要一个飞容器和一个储能电容,产生V+和V-的电压。

MAX3232在最差工作条件下能够保证120kbps的数据速率。通常情况下,能够工作于235kbps数据速率,发送器可并联驱动多个接收器和鼠标。

 

MAX3232是MAXIM公司生产的一款 232通讯的芯片,他可以将单片机的逻辑信号的电平转成RS232的电平。因为RS232是用,正负电平来表示0和1的信号,所以MAX3232要产生相应的正负电压。在使用MAX3232时,先确定一下系统接供的电压,因为此芯片,对不同的工作电压,要给不同的电容来产生电压。通电后,先检测一下2脚是否有+5.4V以上的电压,6脚有-5.4V以上的电压,16脚是否有电压, 如没有则要检查相应的电容。注意在16脚一定要有电容,要不然就可能不能产生相应的电压。

 

MAX3232器件包括两个线路驱动器,两个线路接收器以及一个双电荷泵电路,该电路的两端(±5 kV)ESD保护端子(串行端口连接端子,包括GND)均处于该状态。该设备符合TIA / EIA-232-F的要求,并在异步通信控制器和串行端口连接器之间提供电接口。电荷泵和四个小型外部电容器允许在3V至5.5V单电源下工作。这些器件以高达250 kbit / s的数据信令速率和最大30V / µs的驱动器输出压摆率工作。

MAX3232主要特征

使用人体模型(HBM)的RS-232总线端子ESD保护超过±15 kV

达到或超过TIA / EIA-232-F和ITU V.28标准的要求

使用3V至5.5VV CC电源工作

最高可运行250 kbit / s

两个驱动程序和两个接收器

低电源电流:300 µA(典型值)

外部电容器:4×0.1 µF

接受具有3.3V电源的5V逻辑输入

备用高速终端兼容设备(1 Mbit / s)

SN65C3232(–40°C至85°C)

SN75C3232(0°C至70°C)

电压范围:3V~5V
最高波特率:建议不要高于120kbps
尺寸:9.4mm*15.9mm

模块参考电原理图

 

下面为模块正反面图,两边的电源是接在一起的,只需接一边即可,两面分别的独立的两个通道,均可使用,箭头表示信号流向,向里说明是输入,向外说明是输出,靠近RS232字符端为RS232电平,靠近TTL字符端为TTL电平。

 

TTL电平逻辑1为+5V,逻辑0为0V。

RS232电平逻辑1为+3V~+15V,逻辑0为-3V~-15V。

也就是说我们所转换的数据电平+5V ->(+3V~+15V),0V->(-3V~-15V)即可。

我们的MAX232是5V供电的,+5V ->(+3V~+15V)的转换是很容易满足的,0V->(-3V~-15V)就需要内部产生一个负压电源然后去转换输出。MAX232的一般外接4个电容,C+对地之间,C-对地之间的电容用于稳定电荷泵输出的电压,由于C1+ C1-之间的电容加上C2+和C2-之间的电容。由于都是由VCC对它们进行循环充电,产生的V+<=2VCC,V->=-2VCC。这样也基本满足232的电平要求了。CMOS电平的转换同理。

 

Arduino实验开源代码

 

/*

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)

实验一百四十:MCU mini RS232 MAX3232电平转TTL电平转换板 串口转换板

 实验接线(TTL端)

 +   +5V

 -   GND

 TXD   2

 RXD   3

 实验接线(RS232端)

 +   +3.3V

 -   GND

 TXD   4

 RXD   5

*/



char val = 0;

int BluePin = 2;

int HelloPin = 3;

int RedPin = 4;

int GreenPin = 5;

void setup()

{

 Serial.begin(115200);

 pinMode(GreenPin, OUTPUT);

 pinMode(RedPin, OUTPUT);

 pinMode(BluePin, OUTPUT);

 pinMode(HelloPin, INPUT);

 digitalWrite(GreenPin, HIGH);

 digitalWrite(RedPin, HIGH);

 digitalWrite(BluePin, LOW); 

 delay(5000);

}

void loop()

{

 if (digitalRead(HelloPin) == HIGH)

  Serial.println("hello!");

 while (Serial.available())

 {

  digitalWrite(GreenPin, HIGH);

  val = Serial.read();

  if ((char)val == 'A')

  {

   digitalWrite(RedPin, HIGH);

   digitalWrite(GreenPin, LOW);

   delay(5000);

  }

 }

}

  实验串口返回情况

 

 

Arduino实验场景图

 

相关线上资料
RS232至TTL至Arduino(MAX232)
https://forum.arduino.cc/index.php?topic=475964.0