立创STM32G474-Color-Board硬件解析:宽压供电、CANFD/RS485接口与BOOT0复用难题解决
立创STM32G474-Color-Board硬件解析宽压供电、CANFD/RS485接口与BOOT0复用难题解决大家好最近在做一个工业项目需要用到CANFD和RS485通信同时供电环境比较复杂电压范围比较宽。正好用到了立创的这块STM32G474-Color-Board开发板它完美地解决了我的需求。不过在使用的过程中我遇到了一个“坑”——BOOT0引脚被复用了导致一开始板子连不上调试器折腾了好一阵。今天我就把这块板子的硬件设计亮点以及如何解决这个BOOT0复用问题的实战经验手把手分享给大家希望能帮到正在使用或打算使用这块板子的朋友。1. 板子概览一款为工业应用而生的开发板拿到这块板子第一感觉就是“接口很全用料扎实”。它基于意法半导体的STM32G474CEU6微控制器这是一颗性能强劲的Cortex-M4内核芯片主频高达170MHz还带硬件浮点运算单元FPU做复杂计算很给力。板子上集成了几个非常实用的工业通信接口一路CANFD比传统CAN总线速度更快数据量更大是汽车和工业控制的新趋势。一路RS485经典的差分串行总线抗干扰能力强适合远距离通信。一路USART通用的异步串口可以用来连接GPS、蓝牙模块或者和电脑调试通信。一路USB可以用来实现USB设备功能比如虚拟串口、HID设备或者供电。最方便的是板载了ST-LINK V2.1调试下载器。这意味着你只需要一根USB线连接到电脑就能同时给板子供电、下载程序、在线调试省去了外接调试器的麻烦对初学者和快速原型开发特别友好。电源部分是其一大亮点支持3.3V到38V的宽电压输入。这意味着你可以直接用12V、24V这种常见的工业电源给它供电板子内部的电源芯片会帮你稳稳地转换成芯片需要的3.3V和5V适应性非常强。2. 核心硬件电路深度解析2.1 电源架构从宽压输入到稳定内核供电工业现场电源波动大宽压输入设计至关重要。这块板子的电源设计是两级降压第一级宽压降压至5V (24V - 5V)芯片RY8411。这是一款同步降压转换器。关键特性输入电压范围4.5V-40V最大输出电流1A。这意味着即使输入电压在很大范围内波动它都能输出稳定的5V。它还集成了过压和过流保护提高了系统的可靠性。作用将外部的3.3V-38V输入首先转换为中间电压5V为板上的5V外设如部分接口电平和下一级稳压器供电。第二级5V转3.3V核心供电 (5V - 3.3V)芯片XC6210B332MR。这是一颗低压差线性稳压器LDO。作用将5V电压进一步转换为极其干净、稳定的3.3V直接供给STM32G474微控制器内核、IO口以及其它3.3V器件。LDO的优点是输出噪声小纹波低能确保MCU稳定运行。提示这种“DC-DC LDO”的组合是常见的电源设计思路。DC-DC如RY8411效率高适合大幅压差转换LDO如XC6210B332MR虽然效率相对低一些但能提供更纯净的电压适合给对噪声敏感的核心芯片供电。2.2 通信接口电路设计CANFD接口收发器NXP的TJA1051TK/3/1。这是一款高速CAN收发器支持CAN FD协议。电路特点电路包含了必要的共模电感、ESD保护二极管和终端匹配电阻通常为120Ω。这些元件能有效抑制总线上的电磁干扰保护芯片并保证信号完整性。连接收发器的TXD、RXD直接连接到STM32G474的CAN FD控制器引脚具体引脚需查看原理图CANH和CANL则连接到绿色的接线端子。RS485接口收发器SIT3088ETK。电路特点电路包含了自动收发控制通常由MCU的一个GPIO控制收发方向和终端电阻。同样有保护电路。连接收发器的RO、DI引脚连接MCU的USART的RX、TXA、B线连接到接线端子。板载ST-LINK V2.1主控STM32F103CBU6。这是一颗经典的Cortex-M3芯片专门用来实现调试器功能。作用它通过SWD串行线调试接口与主MCUSTM32G474连接。当你用USB线连接电脑和板子的“ST-LINK”口时电脑上的IDE如Keil、IAR就能通过这个内置的ST-LINK识别到目标芯片进行程序下载和调试。2.3 拓展IO板子将STM32G474未使用的GPIO引脚通过排针引了出来方便用户连接自己的传感器、显示屏或其他外设模块。具体引脚定义需要参考官方原理图。3. 实战踩坑BOOT0引脚复用与解决方案这是本次分享的重点也是一个非常典型的硬件设计取舍带来的软件配置问题。3.1 问题根源BOOT0引脚去哪了STM32芯片通常有两个特殊的引脚BOOT0和BOOT1。它们的状态接高电平或低电平决定了芯片上电后从哪里开始执行程序。最常见的模式是BOOT00从主闪存Flash启动也就是运行我们平时下载进去的程序。BOOT01, BOOT10从系统存储器启动用于串口下载ISP模式。为了让开发板功能最大化设计者将STM32G474的BOOT0引脚通常是PB2复用为了CANFD的接收引脚CANFD_RX。这是一个很巧妙但也带来麻烦的设计。带来的问题由于BOOT0硬件上被固定用于CAN通信无法再通过外部跳线帽或按钮将其拉高进入串口下载模式。更麻烦的是在某些情况下比如你第一次使用或者程序完全跑飞如果芯片错误地进入了非主闪存启动模式板载的ST-LINK将无法通过SWD接口连接并调试芯片因为SWD访问可能被禁止。你会看到调试器报“找不到设备”或“无法连接”的错误。3.2 解决方案启用“软件BOOT0”模式STM32提供了一个强大的功能选项字节Option Bytes。我们可以通过配置选项字节将BOOT0的控制权从硬件引脚转移到软件内部这就是“软件BOOT0”模式。开启后PB2引脚就彻底解放了可以当作普通的CANFD_RX或者GPIO来用芯片的启动模式完全由选项字节里的设置决定。有三种方法可以修改选项字节我推荐第三种因为它最直观、最简单。方法一在用户程序中编程使用HAL库或LL库的函数去读写选项字节。这种方法灵活但相对复杂不适合在已经“变砖”连不上的情况下救急。方法二使用STM32CubeProgrammer这是一个功能强大的官方工具支持通过ST-LINK、UART、USB等多种方式连接芯片并修改选项字节。功能全面但软件体积较大。方法三使用STM32 ST-LINK Utility推荐这是一个轻量级的专用工具只能通过ST-LINK连接但修改选项字节非常直观。下面我们手把手演示这种方法。3.3 手把手操作使用STM32 ST-LINK Utility解锁芯片假设你的板子现在ST-LINK连不上可以按以下步骤尝试恢复硬件连接用USB线将开发板的“ST-LINK”接口连接到电脑。下载安装从ST官网下载并安装“STM32 ST-LINK Utility”软件。连接芯片打开软件点击菜单栏的Target-Connect。关键点如果一次连接失败先别急。尝试点击Target-Option Bytes...。有时候即使连接状态不正常这个窗口也能打开并读取/修改选项字节。修改选项字节在弹出的“Option Bytes”窗口中找到BOOT_ADD0和nBOOT0相关选项。我们需要将nBOOT0设置为0。根据原始资料中的图示具体操作是找到nBOOT0这一行它可能显示为nBOOT0 bit。将其值从1表示硬件BOOT0修改为0表示软件BOOT0。同时确保BOOT_ADD0的值是0x0800 0000主闪存起始地址。应用修改点击窗口下方的Apply按钮。软件会提示你确认并自动执行擦除、编程、校验等操作。重新连接关闭选项字节窗口。再次点击Target-Connect或者给板子重新上电。此时ST-LINK应该能正常识别到芯片了。注意修改选项字节后芯片的启动行为就固定为从主闪存启动了因为我们在软件里设置了。以后无论PB2原BOOT0引脚接什么芯片都会从你的用户程序启动。如果需要使用串口ISP下载就需要在STM32 ST-LINK Utility里临时把启动地址改成系统存储器的地址或者用其他方法进入DFU模式。完成以上操作后你的板子就“复活”了可以正常下载和调试程序同时PB2引脚也能放心地用作CANFD_RX功能。这个坑我当初踩了快两个小时希望你看完这篇教程后能五分钟搞定。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2408971.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!