三大电机控制方案之DSP篇:TMS320F28335
沿或者正负边沿触发,并且可被启用或禁用(包括XNMI 在内)。 XINT1, XINT2,和 XNMI 还包含一个 16 位自由运行的上数计数器,当检测到一个有效的中断边沿时,该计数器复位为 0。 这个计数器可被用于为中断精确计时。 与 281x 器件不同,没有用于外部中断的专用引脚。 XINT1,XINT2 和 XINT 中断可接受来自 GPIO0-GPIO31 引脚的输入。 XINT3–XINT7 中断可接受来自 GPIO32-GPIO63 引脚的输入。
电机相关应用领域
电机控制:AC 感应
电机控制:低电压
电机控制:步进电机
电机控制:永久磁性
电机控制:高电压
工程师开发过程中常见问题总结
1.SPI驱动TLE7241E出现返回值不对的问题。主要是由于时序的不对,导致TLE7241E输入采样时数据还没有建立,所以TLE7241E收到的命令不正确,所以返回值不正确。
2.SPI驱动EEPROM时,如果用金属物触到clock pin时,能正确运行,否则不能正确运行。出现次问题也是由于时序的问题,金属物触到clock导致clock出现微小幅度的偏移,导致正好和 eeprom的时序对上,而不用金属物触碰时时序不正常,当使dsp MOSIpin数据发送提前半个周期后,eeprom工作正常。
3.示波器有时会导致显示的波形被消尖,所以用示波器测量时周期不能太大。
TMS320F28335部分模块使用经验
1.TMS320F28335+总线:
硬件连接情况(28335+cpld+ad7606):Cpld负责对地址译码,16位数据线接并口AD7606的D0~D15,再用几个GPIO分别接ad7606的busy、reset、CONVST.
软件思想:timer0控制采样速率,busy配置为外部中断输入脚,转换完成即可触发中断,在外部中断函数里把转换结果读取。
遇到问题:数据线上只有D0~D7有数据变换,D8~D15全为0。
问题分析:D8~D15和地短路了,busy时间太短、不能触发中断,ad配置为了8位模式,等等…
解决问题:把问题一个个排除,最后原因是数据线D8~D15在cpld连接部分未定义。
2.TMS320F28335+SCI模块:
硬件连接:F28335有三个串口,SCIA、SCIB、SCIC,这里用SCIC+232芯片接口即可与 PC机通信。
功能验证:使用串口调试助手发送数据,28335收到数据后再发给PC
软件设计:使用FIFO、查询方式发送和接收数据、配置好相应的寄存器就可以使用了,主要代码分享如下。
for()
{
while(ScicRegs.SCIFFRX.bit.RXFFST == 0); { }
data = ScicRegs.SCIRXBUF.all;
ScicRegs.SCITXBUF= data;
while(ScicRegs.SCIFFTX.bit.TXFFST != 0);
}
void scic_init() //初始化
{
ScicRegs.SCICCR.all =0x0007;
ScicRegs.SCICTL1.all =0x0003; // enable TX, RX, internal SCICLK,
// Disable RX ERR, SLEEP, TXWAKE
ScicRegs.SCICTL2.all =0x0;
#if (CPU_FRQ_150MHZ)
ScicRegs.SCIHBAUD =0x0001; // 9600 baud @LSPCLK = 37.5MHz.
ScicRegs.SCILBAUD =0x00E7;
#endif
#if (CPU_FRQ_100MHZ)
ScicRegs.SCIHBAUD =0x0001; // 9600 baud @LSPCLK = 20MHz.
ScicRegs.SCILBAUD =0x0044;
#endif
ScicRegs.SCIFFTX.bit.TXFIFOXRESET=0;
ScicRegs.SCIFFRX.bit.RXFIFORESET=0;
ScicRegs.SCIFFTX.all=0xE040;
ScicRegs.SCIFFRX.all=0x2040;
ScicRegs.SCIFFCT.all=0x0;
ScicRegs.SCICTL1.all =0x0023; // Relinquish SCI from Reset
}
3.TMS320F28335+I2C模块:
注意一下两点
(1)、从机地址:
由于28335的I2C模块会自动添加R/W位,应将从机地址右移一位。如:选用模块7位地址模式时,若使用的I2C芯片从机地址为0xD0,则设置时应置从机地址为0x68。
(2)、子地址:
I2C器件的子地址有的是8位、有的是16位,16位的发送子地址的时候要发送2次、分别发高8位和低8位,因为28335的I2C模块数据发送寄存器是8位的。
4.TMS320F28335+SPI模块:
(1)、主设备配置SPI模块的时钟模式时要根据从设备的时钟要求,要搞清楚从设备发送和接收数据是在时钟的上升沿还是下降沿。时钟配置正确后,数据才能被准确的发送和接收。
(2)、主设备读取数据时必须先发送一个无意义的数以启动时钟。
典型设计案例
1.高速数据采集电路设计
针对超声波流量计中高速数据采集的需求,采用
DSP TMS320F28335 相关文章:
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)
- 基于 DSP Builder的FIR滤波器的设计与实现(06-21)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- FPGA的DSP性能揭秘(06-16)
- 用CPLD实现DSP与PLX9054之间的连接(07-23)
- DSP+FPGA结构在雷达模拟系统中的应用(01-02)