STM32+致远电子Dport模块的Ethercat从站开发
环境准备
硬件环境
2.stlink
3.千兆网线
4.安装有twincat3的上位机电脑(带千兆网口)
软件环境
1.TC31-FULL-Setup.3.1.4024.53.exe
2.mdk5开发环境
3.SSC Tool.exe
4.stm32cubemx
例程资料
1.致远电子官网
开发流程
1.底层硬件
EPC103-DP系统框图,可能使用et1100作为core
2.硬件抽象
sync0->PA1->EXTI1
sync1->PA2->EXTI2
PDI->PA0->EXTI0
3.软件操作:
打开8led的示例工程并烧录
注意这里的烧录器需要更改两处,并且文档包含中文路径,需要将code(包含ethercat文件夹)整体剥离出来,并且使用v5的编译器,否则无法生成browse info
.
我们梳理一下例程的数据流:
移植平台对示例文件的改动:
1.spi的收发函数
2.片选引脚
extern SPI_HandleTypeDef hspi1;
#define SPI_WRITE_AND_READ(TX_BUFFER,RX_BUFFER,Size) HAL_SPI_TransmitReceive(&hspi1, TX_BUFFER, RX_BUFFER,Size, HAL_MAX_DELAY)
#define SELECT_SPI HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_RESET)
#define DESELECT_SPI HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_SET)
3.外部中断(sync0,sync1)
例程内采用SM+DC模式,具体用哪种可以在上位机中切换
void DISABLE_ESC_INT(void){
#if AL_EVENT_ENABLED
HAL_NVIC_DisableIRQ(EXTI0_IRQn);
#endif
}
void ENABLE_ESC_INT(void){
#if AL_EVENT_ENABLED
HAL_NVIC_EnableIRQ(EXTI0_IRQn);
#endif
}
4.