5502_图像板学习参考

news/2024/12/5 8:40:23/

以下是我调试5502图像板所累积的认识和经验,仅供参考,有错请指正。

 

前提

1.  请安装CCS和仿真器驱动,并配置CCS C5502 XDS510 Emulator

 

第一个程序------点亮LED

       打开工程 LED_TEST和文件 LED_TEST.C ,仔细浏览程序。程序由C语言编写,简单易懂。由于Ti提供了50006000系列DSPCSL库,调用CSL库的函数使得配置芯片更容易,CSL库中的函数请参考TMS 320C 55x Chip Support Library API Reference Guide,使用CSL库函数前需要一些简单配置,请参考TMS 320C 55x Chip Support Library API Reference Guide 第二章 How to Use CSL。一般的程序都可以参考LED_TEST的框架结构。

       CSL_init();  /*初始化CSL*/  

    PLL_setFreq(1, 0xF, 0, 1, 3, 3, 0);   /*设置系统的运行速度为300MHz*/

       // SYSCLK1(Fast Peripherals)=150MHz SYSCLK2(Slow Peripherals) = SYSCLK3(EMIF Internal Clock) = 75MHz

       CHIP_RSET(XBSR,0x0001);  /* EMIF为全EMIF接口 */

    EMIF_config(&MyEmifConfig);  /*初始化DSPEMIF接口*/

       IRQ_setVecs((Uint32)(&VECSTART)); /*中断向量表设置为VECSTART ,在vectors.s55 文件中*/

       IRQ_globalDisable();/* Temporarily disable all maskable interrupts */

要完全理解程序,您需要参考TMS320VC5502 Data Sheet了解5502的工作原理和寄存器设置以及CSL库函数的详细说明。

#define Led     (*(volatile Uint16 *)(0x 40000A )) 定义了Led端口,其字地址是0x 40000A

向其低四位写1可以点亮Lec,写0熄灭Led Led = 0xf 点亮4Led

       使用IRQ_plug(EventId0,&Timer0Isr);来设置定时器的中断服务程序,其余的请自行学习。需要说明的另一个问题是地址的分配,5502CE0—CE3  4块空间,参考DSP手册,其中片内的双口RAM 64KDARAM0  : origin = 0001000h, length = 000F 000h60k用来存放程序,所以程序一般不可以 >60K,否则请自行调整储存配置文件,CE1空间分配给FLASH CE2空间给FPGAUSBCE3空间给SRAM。初始化时需要设置各空间存储器的访问时序,即 EMIF_config(&MyEmifConfig)

 

 

第二个程序-----烧些FLASH

       本程序的目的是将用户程序烧些至FLASH中,然后上电程序即可运行。图像板可以通过跳线选择多种启动方式,用跳线短路J4156引脚可以选择从FLASH启动。C5502 ROM中的BootLoader可以自动将FLASH中的程序导到DARAM中,然后运行。下面以上一个程序LED_TEST为用户程序,介绍将其烧入FLASH中的过程。关于BootLoader请参考Using the TMS320VC5501C5502 Bootloader

首先要生成LED_TEST.out的可执行文件,然后通过LED_TEST/Debug目录下的hex55.exe 程序生成LED_TEST.hex 文件,在命令行输入hex55.exe -boot -v5510:2 -parallel16 -map LED_TEST.map -a -delay 0x100 -o LED_TEST.hex LED_TEST.out ,接着把LED_TEST.hex转化成可导入CCSLED_TEST.dat,在命令行输入hex2dat.exe LED_TEST.hex LED_TEST.dat,下一步在Load Program FLASHBOOT.out以后,通过 File-->Data-->LoadLED_TEST.dat导到DARAM中,然后运行程序即可把LED_TEST程序正确烧写到FLASH中。需要注意用户程序的起始地址(一般是DARAM0 : origin = 0001000h)和必须与FLASHBOOT程序中的#define BIGSECT_ADDRESS  0x00001000 相同。

 

 

第三个程序-----采集原始图像

       本程序的目的是通过FPGA实现图像采集的功能。首先需要介绍一下FPGA程序,在FPGA程序中设置了两个全局的寄存器,一个是系统状态寄存器,一个是系统控制寄存器。

/*System Status Register*/

#define SYSSTATA 0x400020 /*系统外设状态寄存器在IO空间的地址。只读*/

 

/*D07   D06    D05      D04        D03            D02          D01             D00

* res           res      res  USBVBUS   USBRDY   USBFLAGC   USBFLAGB  USBFLAGA

*各控制位说明:

*                   USBFLAGCUSBFLAGC的状态;

*                USBFLAGBUSBFLAGB的状态;

*           USBFLAGAUSBFLAGA的状态;

*           USBRDY   USBREADY的状态;

*           USBVBUS  USB连线的的状态;

 

/*System Control Register */

#define SYSCNTLA 0x400021 /*系统设置寄存器在IO空间的地址。读写*/

 

/*D07     D06   D05     D04   D03     D02     D01       D00

* res            res   res    res    res   res   COLLECT   USBWAKE

*各控制位说明:

*            USBWAKE USB唤醒信号

*                          其值为0时:不唤醒USB

*                          其值为1时: 唤醒USB(默认值)。

*            COLLECT 1使7113采集图像,一帧图像采集完后自动清0

*/

这样图像采集程序就非常简单了,只要向SYSCNTLCOLLECT位写1即可启动采集,一帧图像采集完成后FPGADSPINT1发送中断,图像大小为360*288,从SRAM0地址开始存放。只需在SYSCNTL = 0x03;下方的一条语句加个端点,然后执行程序,执行FileàDataàSave 保存地址为0x600000,长度为0x19500的图像数据为.dat文件,此图像文件存储的是YUV格式的数据,通过VC程序show_yuv_image.exe可以转化成RGB的图像显示,在命令行输入show_yuv_image.exe *.dat即可,请安装OpenCV来支持图像显示。修改了7113的色饱和度值使色彩更逼真,想要改变7113输出图像的设置,请修改数组init7113[102]中的值,该数组的值通过I 2C 总线写入到7113的寄存器中,具体的寄存器功能请参考7113的手册。


http://www.ppmy.cn/news/344566.html

相关文章

modbus数据采集通过http/websocket对外提供访问

本软件是用go语言编写,可以运行在windows、linux等系统上,实现了通过modbus tcp采集modbus从站数据,对外提供http接口给用户查询实时数据和控制modbus地址写值,且还对外提供了websocket服务,用户可以直接通过websocket…

CCS编译错误与解决办法 :fatal error: #error NO CHIP DEFINED

错误内型: "C:/CCStudio_v3.3/C5500/csl/include/csl_chiphal.h", line 201: fatal error: #error NO CHIP DEFINED 解决办法: Project --> Build Options --> Preprocessor --> Pre-define Symbols 中加入CHIP_5502 错误原因分析: 查看文件 C:/CCStud…

前端简易服务器之vscode篇(可供项目预览手机访问电脑网页等)

几种方案本质其实都是启动一个简易服务器然后手机访问来实现的,一般来说使用webpackia脚手架搭建的项目都会自动启动一个服务所以并不需要使用这些方案再重复启动了,直接在config配置下host即可 前端简易服务器之远程服务篇 前端简易服务器之杂项篇(ngin…

Oracle安装-Oracle12cR2+Centos7.5+ASM

目录 一、系统准备 二、系统设置 三、安装软件包 四、创建目录、组、用户 五、配置内核参数 六、配置ASM属性 七、创建分区 八、安装 九、启动关闭 一、系统准备 VMware Workstation12 Centos 7.5 Oracle 12.2.0.1 Grid 12.2.0.1(可选)也可…

cisco asa 5505 配置说明

ASA5505工作模式介绍: 注意:asa5505 在配置上分为 pre-8.3 和 post-8.3 两种版本类型,原因是从 8.3 版 开始,cisco 对 asa设备进行了大改,导致配置方式发生很大改变,分析学习官网和其他配置文章时&#xf…

【Oracle 19c】解决 Oracle EM(Enterprise Manager) Express 切换回旧版后无法访问的问题

文章目录 问题描述解决方案解决过程1、按 Oracle EM Express 提示下载 Adobe Flash Player PPAPI 版1、按 F12 查看 HTTP 请求头2、找到问题后使用其他浏览器尝试 问题描述 由于从 Oracle Database 19c 开始,Oracle EM(Enterprise Manager) Express(Ora…

如何在 FoxyProxy 中设置 YiLu Proxy

目录 YiLu Proxy配置 1.YiLu Proxy设置 2.本地端口转发 3.多端口转发 4. 动态IP端口转发 5.端口转发列表 FoxyProxy 设置 1. 打开 FoxyProxy 的选项 2.点击“添加新代理” 3.填写代理信息 4.单击 FoxyProxy 扩展图标并选择配置的代理。 5.检查代理IP FoxyProxy 是一…

Uncaught TypeError: Object(...) is not a function at resetStoreState (vuex.esm-browser.js?5502:1

目录 原因:Vue 2.x和Vuex 4.x版本不对应 同样的问题也会出现在vue-router等依赖包上 问题 控制台报错 vuex源码报错 google浏览器源代码 VSCode 解决 补充:运行Vue项目 原因:Vue 2.x和Vuex 4.x版本不对应 Vue 3 匹配 Vuex 4 &#xff…