
DSP驱动
文章平均质量分 98
UCASers
后海电子厂民工
展开
-
TMS320C6747的I2C模块
1.X1226的CCR(Clock/Control Register,时钟/控制寄存器)地址为1101111(0x6f)(忽略最后一位R/W位,从第二位开始,I2C的7位寻址模式),故从I2C从设备地址SCL应为0x6f。(X1226手册P12)在往CCR写入之前,主设备必须先往状态寄存器(SR)先写入一个02h,再写入一个06h才行。状态寄存器的地址为0x003f,对应跟在slave原创 2017-03-17 16:56:32 · 2074 阅读 · 1 评论 -
TMS320C6748_SPI_FLASH
目录1.主函数流程2.初始化2.1 PSC初始化2.2 UART初始化2.3 管脚复用配置2.4 DSP中断初始化2.5 SPI中断初始化2.6 SPI初始化2.6.1.2.6.2.2.6.3.2.6.4.2.6.5.2.6.6.2.6.7.2.6.8.3.读写SPI外设3.1 SPI FLASH写使能3.2 擦除SPI ...原创 2017-11-28 18:34:47 · 5442 阅读 · 4 评论 -
TMS320C6748_GPIO_KEY_TIMER_EventCombine
组合事件中断初始化EventCombineInterruptInit();函数完成组合事件中断初始化,其中 // 使能 定时器 / 计数器 中断TimerIntEnable(SOC_TMR_1_REGS,TMR_INT_TMR34_NON_CAPT_MODE);该函数使能了定时器中断。 SOC_TMR_1_REGS 为(0x01C21000),即timer1的地址,如原创 2017-10-21 10:14:24 · 2351 阅读 · 0 评论 -
TMS320C6748_PWM
目录1.主函数执行流程2.外设使能配置3.GPIO管脚复用配置4.DSP中断初始化5.PWM中断初始化6.产生波形6.1 时间基准配置/时钟配置6.2 配置周期6.3 禁用输入同步信号6.4 禁用输出同步信号6.5 仿真模式行为配置6.6 配置计数比较器子模块6.6.1 加载比较器A值6.6.2 加载比较器B值6.7 功能限定配置(输出引...原创 2017-11-30 23:10:20 · 3385 阅读 · 0 评论 -
TMS320C6748_ECAP_APWM
目录1.主函数流程2.外设使能配置3.GPIO管脚复用配置4.DSP中断初始化5.PWM中断初始化6.产生波形6.1 配置ECAP2为APWM模式6.2 配置周期及占空比(比较计数器值)6.3 输出相位配置6.4 启动比较计数器7.中断服务函数7.1 禁用中断7.2 清除中断标志7.3 使能中断8.参考文献1.主函数流程...原创 2017-12-01 23:26:04 · 4629 阅读 · 2 评论 -
TMS320C6748_PWM_ECAP
1.主函数流程此程序的作用是实现eCAP(增强型捕获模块)的输入捕获功能,将ECAP2_APWM2设置为输入捕获模式,检测由EPWM1_A管脚输出的方波频率。将EPWMN0_TZ[0](ECAP2_APWM2和EPWMN0_TZ[0]引脚功能复用)和EPWM1_A短接,即可看到串口输出EPWMN0_TZ[0]脚所捕获到的EPWM1_A引脚输入的方波频率信息。主函数如下:int ...原创 2017-12-02 21:59:04 · 2147 阅读 · 0 评论 -
TMS320C6748_UART_EDMA
通过EDMA来实现UART的收发,可以减轻CPU的负担。主函数如下:int main(void) { // 外设使能配置 PSCInit(); // DSP 中断初始化 InterruptInit(); // EDMA3 中断初始化 EDMA3InterruptInit();原创 2017-10-25 23:11:06 · 7799 阅读 · 5 评论 -
TMS320C6748_RTC
1.主函数流程此程序的作用是实现RTC计时功能。运行程序后,依次设定小时、分钟、秒、日、月、年,程序会按照设定时间开始计时,并将实时时间打印出来。主函数如下:int main(void){ // 初始化串口终端 使用串口2 UARTStdioInit(); // 打印串口终端信息 UARTPuts("Tronlong RTC Applicat...原创 2017-12-11 20:09:54 · 1775 阅读 · 0 评论 -
TMS320C6748_看门狗
目录1.主函数流程2.初始化串口终端3.定时器/计数器初始化3.1 配置定时器/计数器1为看门狗模式3.2 设置周期/64位3.3 使能看门狗定时器4.打印串口终端信息5.主循环5.1 等待输入字符5.2 复位看门狗定时器"喂狗"1.主函数流程此程序的作用是实现看门狗功能,使用定时器1。用于在程序运行过程中出现错误或陷入死循环等异常情况下复位程序...原创 2017-12-03 17:23:02 · 2358 阅读 · 2 评论 -
TMS320C6748_NMI
目录1.主函数流程2.外设使能配置3.GPIO管脚复用配置4.DSP中断初始化5.GPIO管脚初始化6.中断服务函数1.主函数流程此程序的作用是实现不可屏蔽中断功能。NMI(NonMaskableInterrupt)——不可屏蔽中断(即CPU不能屏蔽),无论状态寄存器中IF位的状态如何,CPU收到有效的NMI必须进行响应。主函数如下:int main(vo...原创 2017-12-03 22:32:46 · 2312 阅读 · 0 评论 -
TMS320C6748_EMIF_NandFlash_访问异步地址
CS3有效,则外部存储设备基地址为0x6200 0000 (手册P24)nandflash命令锁存周期时序如图: (nandflash手册P43)nandflash地址锁存周期时序如图所示: (nandflash手册P44) ALE接EMA_A1,CLE接EMA_A2。锁存地址时,CLE为低,ALE为高,则EMA_A2为低,EMA_A1为高,对应的EMIF地原创 2017-12-12 23:31:05 · 2434 阅读 · 0 评论 -
TMS320C6748_EDMA_SPI_FLASH
目录1.主函数流程2.外设初始化2.1串口初始化2.2 EDMA初始化2.3 SPI初始化3.请求EDMA通道4.使能4.1 使能SPI4.2 写使能4.1.设置EDMA发送的PaRAM寄存器4.2.注册EDMA发送的回调函数4.3.设置EDMA接收的PaRAM寄存器4.4.注册EDMA接收的回调函数4.5.assert对应SPI Flash...原创 2017-11-28 17:14:21 · 3534 阅读 · 0 评论 -
TMS320C6748_RS485
使用C6748的UART1作为收发串口,输入的ttl电平信号通过ttl转485电平转换电路转为485信号,再送到485通信设备,ttl转485电平转换电路如图: 主函数如下:int main(void) { // 外设使能配置 PSCInit(); // GPIO 管脚复用配置 GPIOBank原创 2017-10-26 14:19:13 · 1196 阅读 · 0 评论 -
TMS320c6747的外部中断
/*DSP6747 & FPGA */#include "stdio.h"#include "C6747.h"Uint16 *LED = (Uint16 *)0x64000012; ///led addUint16 led0[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};Uint16 led1[8]={0x原创 2017-03-12 14:43:27 · 3114 阅读 · 0 评论 -
TMS320C6747的定时器
6747的定时器配置如下:1. 设置引脚复用寄存器PINMUX8,将3脚功能选择为定时器输出,注意,该脚与I2C0的SCL重合。(用户手册P203)2. 设置定时器setup_TIMER0();在setup_TIMER0函数中清除TIMER0的高32位计数器TIMER34和低32位计数器TIMER12,然后选择32位unchained模式,预分频系数为1,设置周期数寄存原创 2017-04-09 10:49:06 · 4047 阅读 · 1 评论 -
TMS320C6747的emifa访问异步外部存储
C6747访问adc,电路如图:当CS4片选信号有效,EMA_A12为1时,74LV139译码电路的1Y1脚将有效,从而启动ADC转换。 AD7656为16位芯片,C6747的EMIFA将其作为16位异步外部存储设备访问。在片选初始化的时候(void CEint()函数),片选4的异步数据总线选择为16位。 AEMIF_A3CR = 0 //CE4原创 2017-04-28 15:01:32 · 1833 阅读 · 2 评论 -
TMS320C6747移植dspbios的一些问题及解决方法
在研旭6747开发板led例程的基础上移植dspbios,目的是通过操作系统dspbios让led实现亮灭。一开始出现的问题是有声明重复定义了,查找原因发现是研旭led程序中c6474.h这个头文件里定义了unsigned int,unsigned char.int,char等等这些数据类型为uint,uchar,ushort之类的宏,而dspbios的头文件里刚好有typedefine原创 2017-07-18 14:29:51 · 1517 阅读 · 1 评论 -
TMS320C6748_I2C
此程序实现C6748的IIC模块对IICEEPROM设备的数据读写功能,地址是0x50(高7位)。程序先写入并读出一个字节数据,然后写入并读出一页数据,接着对比写入和读出的数据,根据结果判断IICEEPROM设备读写是否成功,主函数如下:int main(void) { int i,result; unsigned char buf原创 2017-10-27 22:23:13 · 2774 阅读 · 3 评论 -
TMS320C6748定时器64位模式
定时器初始化函数如下:void TimerInit(void) { // 配置 定时器 / 计数器 2 为 64 位模式 TimerConfigure(SOC_TMR_2_REGS, TMR_CFG_64BIT_CLK_INT); // 设置周期 TimerPeriodSet(SOC_T原创 2017-10-21 20:03:50 · 3514 阅读 · 2 评论 -
TMS320C6748定时器32位模式
C6748的定时器在32位模式下有两种模式选择,一种是关联模式(chained mode),另一种是非关联模式(unchained mode)。可以通过设置定时器全局寄存器(timer global control register (TGCR))的TIMMODE位来配置定时器的模式。在关联模式下,高位的32位定时器timer34被用来作为低位的32位定时器timer12的时钟预分频器原创 2017-10-21 22:21:15 · 2381 阅读 · 0 评论 -
TMS320C6748_UART中断
UART2输入时钟为PLL1_SYSCLK2,PLL1_SYSCLK2是PLL1_SYSCLK1的2分频,PLL1_SYSCLK1的频率默认为456MHz,PLL时钟树如图: (指南P130) (指南P131)定义UART2输入时钟频率如下:// 时钟 #define SYSCLK_1_FREQ (456000000) #define SYSCLK_2_原创 2017-10-22 21:08:54 · 4336 阅读 · 3 评论 -
TMS320C6748_UART轮询模式
UART轮询模式比中断模式要简单得多,UART初始化代码如下:void UARTInit(void) { // 配置 UART1 参数 // 波特率 115200 数据位 8 停止位 1 无校验位 UARTConfigSetExpClk(SOC_UART_1_REGS, UART_1_FREQ, BAUD_115200, UA原创 2017-10-22 22:39:53 · 2107 阅读 · 0 评论 -
TMS320C6748EDMA_GPIO_中断学习笔记
// 申请 EDMA3 通道 EDMA3RequestChannel(SOC_EDMA30CC_0_REGS, chType, chNum, tccNum, evtQ);这句函数中,chNum指的是所申请的通道的number,cc0和cc1各有32个DMA通道,每个通道对应一个特定的事件(event),如cc0的channel6对应GPIObank0的中断 (指南P439原创 2017-10-25 09:43:56 · 4819 阅读 · 1 评论 -
TMS320C6748_EMIF时钟配置
创龙TL6748开发板中,EMIFA模块使用默认的PLL0_SYSCLK3时钟,使用AISgen for D800K008工具加载C6748配置文件C6748AISgen_456M_config(Configuration files,在TL_TMS6748/images文件夹下),由图可以看到DIV3等于4,注意这里的DIV3就是实际的分频值(x),而不是写入相应PLL寄存器的值(x-1)。原创 2017-12-15 10:14:16 · 4034 阅读 · 4 评论