完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
从去年年末接触EtherCAT总线以来,由于其他一些工作原因,前期设计的基于STM32F303+LAN9252开发板一直未能跑通,仅实现了LAN9252这部分电路与Twincat的通讯,MCU与LAN9252未能成功通信交互数据。近段时间又返回重新开始了这部分内容,终于是将下位机调试成功。之前在选择MCU时考虑很多,最后在网上找到了这样一份答案,选取EtherCAT主控单片机时应选择FLASH在25KB、RAM在32KB以上的MCU,考虑成本及一些功能要求在这里我用的是FLASH为128KB,RAM为40KB的STM32F303CBT6这片单片机。整体思路是采用STM32CubeMX生成基础工程,连接适配好EtherCAT协议包的相关API,编写相关的XML文件,在学习时看了丁丁大佬开发EtherCAT的相关文章,受益匪浅。
关于我的设计 由于本次前已完成硬件上的调试,故本次只对下位机软件进行一个记录和说明。 一、STM32CubeMX配置外设等基础工程 首先,STM32与LAN9252的通信主要涉及到以下内容: 1、SPI: 与LAN9252通讯,读写LAN9252的接口,受单片机功能限制,在这里我只能选择4线标准SPI通信 2、3个外部中断:IRQ总中断、SYNC0、SYNC1两个时钟同步中断,EtherCAT主从通信中如果选择使用分布式时钟功能,这两个中断要配上。(el9800hw.c、el9800hw.h) 3、1ms定时器:用于超时差错,调用ECAT_CheckTimer()函数,配置好后让协议栈自己调用。 配置好这些基本的外设,剩下的就是和协议栈相结合一个萝卜一个坑进行移植,移植过程中千万细心不要出现低级错误。 二、配置MCU外设的一些主要截图 1、引脚 2、时钟 3、SPI 4、外部中断 三、KEIL主要外设代码 为方便快速开发,本次设计直接移植了开发板的EtherCAT包,STM32从站部分已经实现IO、DA、AD等功能,只需对相关变量和SDO进行操作,即可实现特定的功能和应用。 从站修改步骤大体是: 1.自定义对象字典,参考《从站添加对象字典操作流程-R1.2》; 2.在STM32从站程序中,添加外设驱动,初始化过程写在HW_Init()函数中。 四、测试 单片机程序、EEPROM和twincat软件目录下的XML文件,三者必须对应,否则会出错。 1、按键测试 2、LED测试 3、AD测试 4、DA测试 同AD测试一样,我们通过单片机产生PWM波输入到外围电路,通过外围运放电路的转换形成一个0~2.5V的电压信号输出,改变PWM波的占空比进而达到不同电压信号的输出。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1602 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1536 浏览 1 评论
967 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
680 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1579 浏览 2 评论
1860浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
640浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
513浏览 3评论
527浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
500浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-19 13:33 , Processed in 0.839261 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号