
“埃斯顿TMS320F2系列伺服控制器C代码与硬件图纸”
# 埃斯顿量产伺服控制器:技术探秘与实践思考
最近在研究伺服控制器相关技术,发现埃斯顿这款基于TMS320F28335 + FPGA的量产伺服控制器还
挺有意思,跟大家分享分享。
## 代码架构
### DSP代码(C语言)
整个DSP部分是用全C语言来编写的。C语言在嵌入式领域那可是相当受欢迎,高效、灵活,能直接操
作硬件底层。就拿电机参数自动识别这个功能来说,代码里会涉及到一系列复杂的算法和寄存器操作。
```c
// 假设这里是获取电机反馈数据的部分代码
void get_motor_feedback(float *feedback_data) {
// 通过ADC读取电机相关模拟量数据
// 例如读取电流反馈
feedback_data[0] = AdcRegs.ADCRESULT0 >> 4;
// 读取电压反馈
feedback_data[1] = AdcRegs.ADCRESULT1 >> 4;
// 其他相关数据获取类似操作
}
```
在这段代码里,通过访问DSP的ADC寄存器(`AdcRegs`)来获取电机的电流和电压反馈数据。这些数
据后续会用于电机参数的计算和识别。
### FPGA代码(VHDL)
FPGA部分采用的是Lattice MXO1200,代码是用VHDL编写。VHDL对于并行处理和复杂逻辑控制有着
天然的优势。比如说在处理编码器信号时,FPGA可以利用其并行特性快速处理大量数据。
```vhdl
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity encoder_process is