0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

MAX3485在MCU芯片AS32S601-485通信外设中的应用

安芯 ? 来源:jf_29981791 ? 作者:jf_29981791 ? 2025-07-05 23:45 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在工业通信领域,RS-485 总线因其良好的抗干扰性、长传输距离和多节点通信能力而被广泛应用。MAX3485 作为一款 3.3V 供电的半双工 RS-485/RS-422 收发器芯片,在构建 485 通信外设时具有重要价值。本文将详细介绍 MAX3485 芯片的核心特性、硬件设计要点、软件功能实现以及在MCU芯片AS32S601-485通信外设中应用注意事项,旨在为相关工程技术人员提供专业的技术参考。

一、核心特性

  1. 供电范围 :MAX3485 芯片支持 3.0V 至 3.6V 的单电源工作模式,这一特性使其能够与 3.3V 系统设计无缝兼容,确保了在不同系统架构中的稳定供电。
  2. 通信速率 :具备最高达 12Mbps 的传输速率,能够满足高速数据传输的需求,适用于对通信速度要求较高的工业自动化控制系统
  3. 节点容量 :支持最多 256 个节点并联在同一总线上,为构建大规模的分布式监测与控制系统提供了硬件基础,可实现多个设备之间的协同通信与数据共享。

二、硬件设计要点

  1. 引脚功能
    1. RO 引脚(1 号引脚)通常与微控制器(MCU)UART 控制器的 RX 相连接,用于接收对端发送的数据。
    2. RE 引脚(2 号引脚)对 RO 起控制作用。当 RE 为低电平时,RO 可接收数据;当 RE 为高电平时,RO 不接收数据。
    3. DE 引脚(3 号引脚)对 DI 起控制作用。DE 为高电平时,DI 可输出数据;DE 为低电平时,DI 不输出数据。
    4. DI 引脚(4 号引脚)通常与 MCU UART 控制器的 TX 相连接,用于将数据发送到对端。
    5. GND 引脚(5 号引脚)在串口通信中起到关键作用,必须保证所有设备共地,以确保信号传输的准确性和稳定性。
    6. A 引脚(6 号引脚)与对端的 A 线相连接,输出为正电压。
    7. B 引脚(7 号引脚)与对端的 B 线相连接,输出为负电压,与 A 线共同构成差分信号。
    8. VCC 引脚(8 号引脚)为 MAX3485 芯片提供工作电源

2.电气特性:

MAX3485为半双工通信,即本端要发送数据时,应保证所有对端都不发送数据。本地处于接收数据的状态,不应该进行数据发送。

MAX3485的总线电平由A线电平 - B线B电平得出,A - B > 2V,总线为高电平,A - B < -2V,总线为低电平;属于差分信号。

A/B线的信号由芯片对DI上的电平做转换得到,RO的电平由芯片对A/B线的信号转换得到。

3.终端电阻与布线要求:

在总线首尾节点需接入匹配电阻,典型值为 100Ω,以减少信号反射和驻波效应,确保通信质量。

在非恶劣环境下,可省略偏置电阻(R1/R2/R3)。但在复杂电磁环境下,适当的偏置电阻有助于稳定总线电平。

采用 “手拉手” 拓扑结构连接多个节点,避免使用星型结构,以减少信号传输的延迟和失真,保证通信的可靠性。

三、软件功能实现

(一)GPIO 初始化

通过配置 GPIO 引脚的功能,使其能够与 USART5 进行通信。以下是 GPIO 初始化代码示例:

void MAX3485_GPIO_Init(void)

{

    GPIO_InitTypeDef  GPIO_InitStructure;  

GPIOG_CLK_ENABLE();  

    */* Set GPIO multiplex mapping */*

    GPIO_PinAFConfig(GPIOG, GPIO_PinSource12, GPIO_AF_USART5);       */* USART5_TX */*

    GPIO_PinAFConfig(GPIOG, GPIO_PinSource13, GPIO_AF_USART5);       */* USART5_RX */*

    GPIO_InitStructure.GPIO_Pin       = GPIO_Pin_11| GPIO_Pin_12|GPIO_Pin_13;

    GPIO_InitStructure.GPIO_Mode      = GPIO_Mode_OUT;

    GPIO_InitStructure.GPIO_OType     = GPIO_Out_PP;

    GPIO_InitStructure.GPIO_OStrength = GPIO_OStrength_18mA;

    GPIO_Init (GPIOG, &GPIO_InitStructure);

}   

}

(二)USART 初始化

对 USART5 进行初始化设置,包括波特率、字长、停止位、校验位等参数的配置。以下是 USART 初始化代码示例:

void User_Print_Init(uint32_t BaudRate)

{

USART_InitTypeDef USART_InitStructure;

PLIC_InitTypeDef PLIC_InitStructure;

    USART5_CLK_ENABLE();

    */* GPIO Configure */*

    RE_DE_Init();        

    USART_DeInit(USART5);

    USART_StructInit(&USART_InitStructure);

*/* Initializes the USART5 */*

    USART_InitStructure.USART_BaudRate     = BaudRate;

    USART_InitStructure.USART_WordLength   = USART_WordLength_8b;

    USART_InitStructure.USART_StopBits     = USART_StopBits_1;

    USART_InitStructure.USART_Parity       = USART_Parity_No;

    USART_InitStructure.USART_Mode         = USART_Mode_Rx | USART_Mode_Tx;

    USART_InitStructure.USART_OverSampling = USART_OverSampling_16;

    USART_Init(USART5, &USART_InitStructure);

    USART_Cmd(USART5, ENABLE);

(三)软件收发逻辑

半双工控制 :在发送数据时,需将 DE 引脚置为 1,同时将 RE 引脚置为 1,以关闭接收功能;接收数据时,将 DE 引脚置为 0,RE 引脚置为 0。以下是发送数据的代码示例:

void MAX3485_Send(void)

{

   GPIO_SetBits(GPIOG,GPIO_Pin_11);

   USART_SendData(USART5,0xBA);

   delay_ms(1);

   GPIO_ClearBits(GPIOG,GPIO_Pin_11);

}

空闲状态 :保持接收模式,即 DE 引脚与 RE 引脚都为低电平,使 RO 使能,DI 不使能,以便监听总线上的数据。

四、应用注意事项

  1. 协议设计 :在使用 MAX3485 构建的半双工总线通信系统中,应用协议必须确保同一时间只有一个设备处于发送状态,其他设备处于接收状态。虽然总线上存在多个设备,但协议应实现点对点通信,对于不属于自己的数据应进行过滤。
  2. DE/RE 控制时机 :DE 和 RE 引脚的控制对收发影响显著,需要通过多次实验确定控制这两个引脚的精确时机,以避免通信冲突和数据丢失。
  3. 数据接收问题 :在 DI 使能时,若让 RO 也使能,可能会导致 MCU 的 TX 发送的数据被 RX 接收到,进而引起数据异常。
  4. 共地通信 :所有连接在一起的设备必须共地通信,以确保信号传输的准确性和稳定性。
  5. 共模电阻配置 :共模电阻应根据实际情况进行调整。有时在本端加入共模电阻可能会导致在接收数据时,首先接收到一个 0 字符的情况,需要针对具体应用场景进行优化。
  6. 发送时序控制 :芯片一般处于接收模式,即 DE 与 RE 都为低电平时,RO 使能,DI 不使能。在发送数据前,MCU 通过拉高与 DE/RE 相连接的引脚电平,使 MAX3485 处于发送模式,然后通过 UART 控制器发送比特位数据。MCU上一次数据发送完成后,需要等待20个bits的时间后再将DE/RE相直连的引脚拉低,因为MCU上最后一个字节发送后,其实只是写入到了UART寄存器中,此时MAX3485至少还需要有一个字节的时间处于发送状态,即DI应该还处于使能状态。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    18001

    浏览量

    368034
  • 485总线
    +关注

    关注

    1

    文章

    30

    浏览量

    17011
  • MAX3485
    +关注

    关注

    1

    文章

    6

    浏览量

    9505
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RS485通信串口轮询发送完成后立即拉低MAX3485芯片EN引脚,数据未能全部发出是为什么?

    你们有没有使用RTthread uart tx_poll的时候遇到问题,我要用485通信,然后我要发送数据之前会设置max3485为发送模式,然后调用rt_device_write之
    发表于 07-25 06:27

    max3485接收出现错码

    我用MAX3485做单片机与PC机通讯,中间通过一个RS485转RS232转换器,再接RS232转USB口进入PC机,出现的问题是:当波特率超过38400后,单片机的接收就会出现错码,但发送没问题。不知哪位大侠给分析一下。
    发表于 09-19 04:39

    MAX3485串口通信,无法接收数据

    现象:当主机发送数据时(RTX),接收端能接收数据,本机同样能接收数据当接收机发送数据,本机却接收不到跪求各位大佬指正~~~硬件原理图MAX3485芯片
    发表于 09-12 18:49

    使用STM32驱动MAX3485进行485通信

    近期使用STM32驱动MAX3485进行485通信,发现STM32F103C8并不自带硬件485首发功能,需要软件上控制IO高低来驱动MAX3485
    发表于 08-13 07:57

    RS-485接口电路MS3485,可兼容MAX3485,瑞盟一级代理

    MS3485/MS3485M/MS3485D 是瑞盟科技推出的一款半双工、±20kV ESD,可应用于 RS-485 通信系统的收发
    发表于 08-19 10:29

    MAX3485原理设计和程序该如何去实现呢

    MAX3485原理设计和程序代码TBU选用TUB-CA065-200-WH,GDT选用2031-23T-SM-RPLF,TVS选用SMBJ6.8CA_C383713,R12、R13选3.3K欧姆
    发表于 01-10 06:28

    怎样去解决485通信乱码/延时的问题呢

    485通信乱码/延时问题好久没写单片机相关的内容了,这两天由于之前项目的关系,重新温习了一遍485通信。首先是基础概念,485
    发表于 02-18 07:30

    请问MAX3485通信时最多可以挂多少个发送器?

    MAX3485通信时最多可以挂多少个发送器?
    发表于 10-13 08:01

    MAX3483, MAX3485, MAX3486 pdf

    The MAX3483, MAX3485, MAX3486, MAX3488, MAX3490, and
    发表于 10-14 14:50 ?9次下载

    MAX3485芯片使用方法

    本文主要介绍了MAX3485芯片使用方法。MAX3485可以实现最高10Mbps的传输速率。驱动器具有短路电流限制,并可以通过热关断电路将驱动器输出置为高阻状态,防止过度的功率损耗。接收器输入具有
    发表于 01-18 16:14 ?3.4w次阅读
    <b class='flag-5'>MAX3485</b><b class='flag-5'>芯片</b>使用方法

    max3485max485区别详解(解析为什么max3485不能代替max485

    本文主要介绍max3485max485区别,max3485能代替max485吗?答案是不能。MAX3485是3.3V供电,
    发表于 01-18 16:40 ?10.5w次阅读
    <b class='flag-5'>max3485</b>与<b class='flag-5'>max485</b>区别详解(解析为什么<b class='flag-5'>max3485</b>不能代替<b class='flag-5'>max485</b>)

    MAX3485工作原理详解(MAX3485引脚图_内部结构_典型应用电路)

    本文主要介绍了MAX3485工作原理详解(MAX3485引脚图_内部结构_典型应用电路)。可以实现最高10Mbps的传输速率。驱动器具有短路电流限制,并可以通过热关断电路将驱动器输出置为高阻状态,防止过度的功率损耗。接收器输入具有失效保护特性,当输入开路时,可以确保逻辑高
    发表于 01-18 17:18 ?17.9w次阅读
    <b class='flag-5'>MAX3485</b>工作原理详解(<b class='flag-5'>MAX3485</b>引脚图_内部结构_典型应用电路)

    EXAR品牌RS485通讯收发芯片:SP3485

    以及RS422通讯协议,可以与同品牌通讯芯片SP481、SP483、SP485 PIN TO PIN替换,亦可与Maxim品牌RS485\422芯片
    发表于 07-05 11:10 ?4522次阅读
    EXAR品牌RS<b class='flag-5'>485</b>通讯收发<b class='flag-5'>芯片</b>:SP<b class='flag-5'>3485</b>

    MAX3485资料手册

    电子发烧友网站提供《MAX3485资料手册.zip》资料免费下载
    发表于 03-04 15:15 ?2次下载

    适用于工业控制设备的RS485通信芯片CN3485

    适用于工业控制设备的RS485通信芯片CN3485
    的头像 发表于 04-17 10:01 ?358次阅读
    适用于工业控制设备的RS<b class='flag-5'>485</b><b class='flag-5'>通信</b><b class='flag-5'>芯片</b>CN<b class='flag-5'>3485</b>