-
VCC供电是多少,如果是5V供电的话,输出到4.5V就基本饱和了
-
1. 先对变量PieVectTable做一些说明
在PicVect.h中声明了extern struct PIE_VECT_TABLE PieVectTable;但PieVectTable的定义在GlobalVariableDefs.c中
#ifdef __cplusplus
#pragma DATA_SECTION("PieVectTableFile")
#else
#pragma DATA_SECTION(PieVectTable,"PieVectTableFile");
#endif
struct PIE_VECT_TABLE PieVectTable;
最后在.cmd文件中将PieVectTable的位置锁定在2812指定的向量空间地址
SECTIONS
{
PieVectTableFile : > PIE_VECT, PAGE = 1
}
MEMORY
{
PAGE 0: /* Program Memory */
PAGE 1: /* Data Memory */
DEV_EMU : origin = 0x000880, length = 0x000180 /* device emulation registers */
PIE_VECT : origin = 0x000D00, length = 0x000100 /* PIE Vector Table */
}
到此变量PieVectTable就与2812指定的中断向量地址空间对应起来了
2. 再说一下PieVectTableInit
在PieVect.c中定义了这个变量用实际中断服务函数的入口地址初始化该变量,这个变量在内存(仿真器调试)或Flash(烧写Flash之后)中的位置是随意的,你说的那个InitPieVectTable()函数就是完成将变量PieVectTableInit的内容拷贝到变量PieVectTable中,也就是将实际的中断服务函数入口地址拷贝到2812指定的中断向量空间
-
我不是TI的工程师,但我觉得可以简单算一下,电流环采样频率是25kHz,也就是说8个电机的电流环每40us就要刷新一次,即每个电机电流环刷新的时长不能超过5us,2812主频驱到150MHz,在这5us的时间最多执行750条指令(汇编指令,不是C语言),再考虑上进中断需要的时间、读取ADC写和DAC的时间、速度环和位置环所要的时间,就算算法都用汇编语言写也是很吃力的。最好将电流环和速度环下放到FPGA中,用一些简单的控制算法,2812只负责位置环、更新FPGA中速度环命令和控制参数(也包括电流环的控制参数)。最好再选个主频高一点儿的DSP,有三四百兆主频的
-
推荐一个集成芯片ULN2003,输入兼容5V的TTL和CMOS电平,输出带有二极管保护
-
推荐一个集成芯片ULN2003,输入兼容5V的TTL和CMOS电平,输出带有二极管保护