
埃斯顿TMS320F2812+FPGA量产方案:绝对值编码器伺服控制器全C代码与硬件图纸详
解
# 埃斯顿量产方案:绝对值编码器伺服控制器探秘
最近在研究埃斯顿的量产方案,涉及绝对值编码器伺服控制器,这里面从代码到硬件,内容相当丰
富,和大家分享分享。
## 一、TMS320F2812 + FPGA量产方案
这个方案中,DSP采用全C代码,FPGA则用VHDL语言编程。
### DSP的C代码
以初始化GPIO为例,在TMS320F2812中,我们可能会用到类似这样的代码:
```c
#include "DSP28x_Project.h"
void InitGpio(void)
{
EALLOW;
GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 0; // 将GPIO0配置为通用I/O
GpioCtrlRegs.GPADIR.bit.GPIO0 = 1; // 设置GPIO0为输出方向
EDIS;
}
```
这段代码通过`EALLOW`开启对受保护寄存器的访问,将`GPIO0`配置为通用I/O口并且设置为输出
方向,最后通过`EDIS`关闭对受保护寄存器的访问。这样我们就可以利用`GPIO0`进行一些外部设备的控
制,比如连接编码器的某个信号引脚。
### FPGA的VHDL代码
假设我们要实现一个简单的计数器模块,VHDL代码如下:
```vhdl
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;