
汇川MD500/MD500E全C最新版源程序:核心全开放,可移植可二次开发
最近拆了台MD500E,发现汇川这波开放策略确实够狠。驱动板子还是熟悉的味道,跟380系列基本通
用,但仔细看制动电阻检测那块的电路布局有点东西。去年工程师们吐槽的过压保护电路消失术,现在看
起来像是给能耗制动腾地方的操作。
咱们先看看去年那波更新。主控芯片旁边突然冒出来的制动电阻状态采集电路,用了个TI的INA240
电流检测芯片配STM32的ADC。这组合拳打得有意思,随手扒了段寄存器配置代码:
```c
// 制动电阻电流检测配置
void BrakeResistor_Init(void) {
ADC_HandleTypeStruct.Resolution = ADC_RESOLUTION_12B;
ADC_HandleTypeStruct.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4;
HAL_ADC_Start(&ADC_HandleTypeStruct); // 持续采集模式
}
```
这代码看着眼熟吧?跟380系列那套STM32F4的底层驱动基本兼容。但注意那个持续采集模式,摆明
了是要实时监控制动工况。之前老版本用DMA做批量传输,现在直接硬件级持续采样,响应速度估计能提个
30%。
重点说说软件平台换代的八卦。虽然没见到最新500真机,但从技术支持那套说辞里嗅到了ARM Cor
tex-M7的味道。专机功能宏的调用方式突然变得特别"FreeRTOS",比如这个多段速控制宏:
```c
#define SPEED_PROFILE(section) \
do { \
g_speed_ctrl.current_profile = PROFILE_##section; \
osMessagePut(speedQueue, SET_PROFILE, osWaitForever); \
} while(0)
// 应用层调用
SPEED_PROFILE(WASHING_MODE); // 洗衣机专用模式
```
看到osMessagePut没?这明显是上了实时操作系统。之前380系列还在裸跑,现在直接玩任务队列了
。以太网通讯那块更离谱,lwIP协议栈的魔改痕迹明显,有个TCP重传机制配置得特别激进:
```c