十一以来工作突然忙碌起来不夸张地说连续几周从周一干到周天,因为赶到项目交付,所以博客更新变慢,感谢粉丝和订阅朋友们支持,但这段时间笔者依然在准备,依然在学习,工科生读文学书少,但不由地想起了那句名言:要么读书,要么旅行,身体和灵魂总有一个在路上!如读过的书,并非每本都是你喜欢的,但是你必须读;如走过的路,并不是每条路都是你想要走的,但是你必须要走。
找遍整个淘宝发现难找到一块称心如意的STM32开发板,不是说人家的教程写得不好板子做得不好,相反地笔者刚参加工作的时候,手上野火、原子、安富莱等至少一块,但工作四五年后再去看这些板子的说明教程或者在线的网课培训,有点浅显都是一个个小demo,感觉学来学去脑子里残存的只是知识碎片,反反复复面对整个项目哪些功能应该放到STM32,哪些功能应该放到FPGA还是很懵圈,面对产品的稳定性和可靠性更没有人去告诉你该怎么做,这就导致没有一个系统的学习方向,技术上很难得到提高。
巧妇难为无米之炊,想写STM32博客却没有一块称心的硬件支撑,有些粉丝私信我说“博主为什么不更新STM32只更新FPGA了,我们也想学STM32,博主你会不会这个”,说真的突然不知道该怎么回答这个问题,很想说不会但对不起四年半的项目经验,想说会点大家会觉得不写有点怂,想说很会但感觉太厚脸皮而且没有找到一个合适的硬件平台去写,所以保证着沉默不做回答,老老实实、本本分分写一个FPGA博客就好。
这种感觉非常类似之前写FPGA专栏,没有找到一块合适的硬件平台去写这么多内容后来索性自己动手画了一块,也把XC7A35T-2FTG256这款经典芯片的资源全部榨干,关于这块板子的设计也写了一篇博客如下:基于Xilinx Artix7的PCB设计总结_青青豌豆的博客-CSDN博客_artix-7
直到上个月十月份时候,整天忙忙碌碌一天又一天,一周又一周,晚上回家突然萌生了一个大胆的想法,既然“FPGA 20个例程”专栏即将结束,代码已经调完只是博客因为这段时间工作太忙没来及整理,那么为何不出一个姊妹篇“STM32 10个例程”专栏呢,恰巧单位刚来本科生感觉学了几个月STM32但工作中却不知道如何下手,于是乎这个想法愈加强烈,那么画板子写专栏的工作就提上了日程。
笔者在10月份下班,说实话真的是八九点回家拖着疲惫的身体,无数次去说服自己,抽空画了这块STM32F103RCT6的板,这块板子将作为后期“STM32 10个例程”的硬件平台选取了四层PCB板,目前原理图和PCB基本完成,物料从云汉和立创上已经下单预计下周三之前可以到,下下打样焊接了10块,站在四年半的工作经验上绘制了原理图,会选取3-5块免费赠送给CSDN粉丝(回头抽个奖,哈哈),今天周六忙完一天工作想对着电脑,结合硬件原理图来说明STM32后期例程。
如图1所示是整个STM32F103RCT6引脚分配原理图,参考了市面大部分经典开发板的设计,有EEPROM,FLASH和电阻屏、USB、RS232串口等,这些可以说是项目中必备的。
为什么这么说呢,例如在做仪器仪表或者医疗器械等工控设备的时候,免不了要掉电保存一些来回切换的设置值或者状态等,EEPROM可以说是小批量数据存储的首选,同时STM32本身外挂一颗FLASH也给了嵌入式软件留下很多的设计空间,典型地我们把一些开机LOGO和图标压缩存储在FLASH内,把一些仪器仪表等的校准参数保存在FLASH内等,STM32F103不像STM32F429那样功能强大,例如可以外挂SDRAM达到总线操控电容屏的目的,以及作为USB主机实现U盘读写等,所以电阻屏对于STM32F103RCT6来说显得性价比拉满,同时也不忘把USB接口引出来,例程中写写USBTMC总线的移植,上位机程控USB和RS232后面会有远程IAP升级,远程下载本地开机LOGO光标等转产项目的例程。
图1 整个STM32F103RCT6引脚分配原理图
同时笔者也把编码器和蜂鸣器加上了如图2所示,那么为什么要加这两个东西呢,选取了经典的医疗设备编码器型号EC12E2424407,该编码器自带左拧右拧和按键功能,以方便大家对电阻屏的操作,旋转两个编码器即可以像标准的仪器仪表一样,达到选择光标和设置值等功能,按下编码器按键响起蜂鸣器清脆的响声,是不是有种在做实战项目的感觉,最后如果检测到后端FPGA异常等就会发出长响的报警声。
图2 编码器和蜂鸣器原理图
但是既然画原理图当然要把需求想清楚,这块STM32F103RCT6板的目的即作为“STM32 10个例程”的硬件平台,同时也是STM32+FPGA实战项目的前端,所以和FPGA通信显然必不可少,站在实战角度,不去搞FPGA与DSP的EMIF总线STM32也压根不支持,也不去搞 FPGA与STM32的FMCS总线没这么大数据吞吐率,站在研发角度SPI和UART最为实用,两者本身也支持DMA传输,不管STM32和FPGA之间报文如何定义,SPI和UART都可以配置DMA模式,也极大地释放这颗STM32F103RCT6的潜力。
注意到在这里笔者把STM32F103两个UART都引出,UART1作为和上位机RS232的通信接口,UART2作为和FPGA的通信接口,同时因为电阻屏LCD把STM32F103的PB引脚全部占用,所以实际上只有一组SPI可用,当然有同学会说我们可以用IO模拟的方式搞SPI,但是笔者实际测试过不好用,IO口模拟IIC通信不快没啥问题,模拟SPI数据快了不好用,且不支持DMA传输,于是取了折中的方式,即FPGA占用这组硬件引脚上可以配置的SPI接口4根线,FLASH也占用这组SPI的3根线即MOSI、MISO、CLK,不同的是重新选择IO口定义了CS总线,因为预计FLASH读写仅限于初始化开机LOGO和图标,所以和FPGA通信并不冲突,硬件上通过F103插针连接A7的CMOS摄像头处。
图3 STM32F103和A7通信原理图
最后关于板子供电,考虑到单独使用以及和FPGA连接使用两种情况, 硬件上通过磁珠把两个供电隔离,同时选择AMS1117作为经典地LDO芯片把适配器5V转为3.3V供给STM32F103使用,从适配器得到的5V和3.3V与从FPGA的CMOS摄像头座上的5V和3.3V隔离,用户使用一种供电方式即可。
图4 STM32F103不同供电方式原理图文章来源:https://www.toymoban.com/news/detail-463191.html
文章来源地址https://www.toymoban.com/news/detail-463191.html
到了这里,关于结合原理图关于STM32后期例程的更新说明的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!