tag 标签: bf531

相关博文
  • 热度 15
    2013-3-18 15:10
    1869 次阅读|
    0 个评论
    今天比较闲,索性把以前写的一些ADI DSP的文来发一发。 作为电子开发工具,ADI仿真器难免会因为各种原因导致产品故障而无法使用,我们从2004年至今已经帮助客户维修了不下300个ADI仿真器,ADI仿真器维修也是我们的一个主营业务,有一些经验和常识可以给大家分享一下。 1. 发现ADI仿真器连不上开发板,报错的现象,不要着急,99%的ADI仿真器是可以修好的。 2. 连不上的现象出现后,首先检查自己的环境搭建是否有问题,比如说目标板和仿真器是否有都上电,如果确定搭建的环境没问题的话,就把目标板、仿真器都断电,然后把Visual DSP++软件关闭,并进入window任务管理器中,在进程里查找是否存在IDDE的进程,如果有,则关闭。然后再重新搭建环境进行连接,看之前的问题是否能够复现。通过此方法能够排除环境搭建的问题。 OP的经验:Visual DSP++软件并不是百分之百的稳定,就像微软做操作系统这么多年,电脑莫名其妙死机的情况仍不断出现一样,所以一次出现连接错误,可以重新再尝试,复现同样的问题,则需要真正的进入故障排查阶段了。 3. 若出现第二条的复现现象,则需要在插上ICE的情况下,打开设备管理器,看一下ICE的硬件是否被PC识别。   这个图是我的AD-HP530ICE(支持Blackfin和SHARC全系列)正常接入电脑后,设备管理器的显示情况。ADI原厂的仿真器和OpenADSP的仿真器在接入电脑驱动安装正常时,设备管理器里都会出现ADI Development Tools,下面跟随的是仿真器型号对应的设备名称。如果这里显示正常的话,就排除了ICE接入这一块的问题,进入下一步排查。 如果接入就发现不显示,则可能是驱动出现了问题,或者是ICE的USB接入模块硬件电路故障。驱动的问题,就需要重新插入ICE,在Window提示找到新硬件的情况下重装一下驱动。如果ICE怎么插入PC,设备管理器里都没有任何反应,恭喜你,ICE可以确定是硬件损坏,需要返厂维修了。 继续~ 4. 排除了ICE跟PC连接的驱动、硬件接入的问题之后,下一步就是用ADI仿真器专用的测试工具“Visual DSP++ Configurator”来进行故障排查。这一步我要详细讲一下,有不少用了多年ADI DSP的老客户都还不知道ADI的VDSP里有这么一个排查ICE故障的工具。 1)Visual DSP++ Configurator在安装目录下,见下图: 2)打开这个工具后,点这里: 3)TEST工具的详细说明: 按TEST按键进行检测。 “Opening Emulator Interface”如果第一步不通过,则99%是因为环境搭建、ICE驱动安装的问题。通常的解决办法是再仔细搭建一遍环境,并把ADI仿真器的驱动卸载重新安装一次。这里需要注意的是,ADI最新的ADZS-ICE-100B以及OpenADSP开源社区的AD-HP510ICE,AD-HP520ICE,AD-HP530ICE都需要安装Visual DSP++5.0 update8以上才可以正常安装驱动的,原因是ADI在软件Update8补丁之后才增加了对ICE-100B以及OpenADSP仿真器驱动支持的。建议软件环境安装Update10。驱动安装可能存在的问题我会专门开贴来讲。 “Reseting ICEPAC module”这一步没什么好说的,一旦打叉不通过,返修。 “Testing ICEPAC memory”这一步不通过,返修。 前三步是ICE的自检,第二第三步不通过,说明是ICE本身出了问题,需要返修。 “Determining scan pach  lenght”这一步不通过,原因需要再详细排查。 这一步是ICE到目标板的链路检查,问题可能出在ICE本身损坏,或者JTAG接口有问题,或者JTAG线缆有问题,也有可能出现在目标板上的JTAG设计不规范。第五步就不说了,一般真的连不上都会出现在第三或者第四步。 只能简单讲这些排查的办法,ICE的维修比较复杂,OpenADSP开源社区的用户仿真器产品都是至少保修2年的,有问题我们直接解决。其他的用户有需要维修ICE也可以联系我。
  • 热度 10
    2013-3-18 14:52
    1186 次阅读|
    2 个评论
    BF53X开发板上做了一个完整的MP3播放器应用。Blackfin在音频处理方面有特长,且看如何使用Blackfin来实现MP3播放器功能!   ADSP-EDU-BF53X开发板链接: http://item.taobao.com/item.htm?spm=a1z10.3.17-7491799917.27.4H7xhcid=9026190872 CMOS摄像头子卡链接: http://item.taobao.com/item.htm?spm=a1z10.3.17-7491799917.25.uZEPYLid=13882915273 LCD2.4液晶屏子卡链接: http://item.taobao.com/item.htm?spm=a1z10.3.17-7491799917.39.uZEPYLid=14678745051 AD-HP510ICE-FULL仿真器链接: http://item.taobao.com/item.htm?spm=a1z10.3.17-7491799917.17.boreV3id=8842330668
  • 热度 18
    2012-5-7 16:38
    1372 次阅读|
    0 个评论
    ******* classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" height="360" width="420"http://player.youku.com/player.php/sid/XMjg4Mjc1MTU2/v.swf 第6集更新,主要讲解了Blackfin的UART和SPORT接口。 3.7 BF53x_UART 3.71 接口功能介绍 UART(Universal Asynchronous Receiver/Transmitter (UART) port)接口,是全双工通用的串行接口,由RX和TX两根线组成,扩展RS232芯片可以直接和计算机串口通讯,通常作为调试用的命令和数据通讯接口。 ADSP-BF53x的UART接口,除了支持标准串口功能外,还支持IrDA模式,在硬件上增加一个红外通讯模块可以进行红外数据传输。 当设置IrDA模式后,输出的波形会与原数据相反,且信号宽度变窄,下图是IrDA模式下和正常模式下的比较。   UART接口通讯的波特率配置值可以通过下面公式进行计算: BAUD RATE = SCLK/(16 x Divisor) 3.72 接口寄存器说明     寄存器 功能 UART_THR UART传输数据寄存器 UART_RBR UART接收缓存寄存器 UART_DLL UART波特率配置低8位寄存器 UART_DLH UART波特率配置高8位寄存器 UART_IER UART中断使能寄存器 UART_IIR UART中断识别寄存器 UART_LCR UART线路控制寄存器 UART_MCR UART调制控制寄存器 UART_LSR UART线路状态寄存器 UART_SCR UART暂存寄存器 UART_GCTL UART全局控制寄存器   3.73 例子代码分析        *pUART_GCTL=0x0009;                                                                                               *pUART_LCR=0x0080;// DLAB=1 允许访问DLL 和DLH        *pUART_DLL=div;     //将变量div的值写入波特率配置寄存器        *pUART_DLH=div8; //DLL DLH分别赋值        *pUART_LCR=0x0003;//  允许访问 RBR THR 和IER        *pUART_IER=0x0001;//  接收中断允许          *pSIC_IAR0 = 0xffffffff;            *pSIC_IAR1 = 0xf3ffffff;     // UART 中断等级设置        *pSIC_IAR2 = 0xffffffff;                                      register_handler(ik_ivg10, UART_ISR);           // 注册UART中断等级为10,标志为UART_ISR        *pSIC_IMASK = 0x00004000;   //使能UART中断          *pUART_THR=TXbuf ;           //向UART传输数据寄存器写数据 while(!(*pUART_LSR0x0020));             //等待传输完成   EX_INTERRUPT_HANDLER(UART_ISR)                   //UART接收数据中断函数 {            if(*pUART_LSRDR)          //判断是否有新的数据。        {               if(cont512)                //防止buff溢出,测试代码,将接收到的数据重复写入512字节的buff               cont = 0;                      RXbuf =*pUART_RBR;     //读取数据               cont++;        } } 3.74 代码实现功能 代码实现了配置波特率为9600,设定了数据接收中断,运行代码后,会将数组Txbuf中的字符串通过串口发送出,当接收到数据后,会进入中断函数读取数据。    
  • 热度 20
    2012-5-7 16:25
    1119 次阅读|
    0 个评论
    Open ADSP开源社区的ADSP-EDU-BF53X开发板教学视频第四集,主要讲了一下Blackfin的PLL和EBIU总线及应用,详细可到网站视频区去查看,或者点击以下链接: http://www.openadsp.com/video.asp http://v.youku.com/v_show/id_XMjg3Mjg1Njk2.html   3.3 BF53x_PLL 3.31 接口功能介绍 PLL(Phase Locked Loop)是ADSP-BF53x的内核和时钟设置的机制,叫做锁相环。通过PLL配置当前处理器工作的内核和系统时钟。 PLL机制如图:   输入时钟送给ADSP-BF53x后,通过DF设置是否对输入时钟分频,然后将根据MSEL的值对时钟进行倍频,倍频后将时钟送给VCO,由VCO根据设置的分频系数,分出内核时钟和系统时钟。     MSEL占用6Bit,最大可设置64倍倍频。通常情况下,该倍频频率不要超过芯片允许的最大频率。     内核时钟分频系数占2Bit,最大可设置8倍分频,当为00时,内核时钟等于VCO时钟。设置的内核时钟不要超过芯片允许的最高频率。   系统时钟分频系数占4bit,最大进行15倍的分频。设置的系统时钟不要超过133MHz。 3.32 接口寄存器说明   寄存器 功能 PLL_DIV PLL分频寄存器,设置系统时钟和内核时钟分频系数 PLL_CTL PLL控制寄存器,设置VCO倍频系数和一些控制开关 PLL_STAT PLL状态寄存器,获取芯片当前工作的状态 PLL_LOCKCNT PLL计数器,用于设置计数时钟   3.33 例子代码分析        *pPLL_DIV = pssel;                   //设置系统时钟分频系数,内核不做分频        asm("ssync;");                                   //系统同步        new_PLL_CTL = (pmsel 0x3f) 9;            //将VCO倍频系数移位至需设置的位置        *pSIC_IWR |= 0xffffffff;            //将系统中断唤醒使能        if (new_PLL_CTL != *pPLL_CTL)   //判断是否已经配置过倍频系数        {               *pPLL_CTL = new_PLL_CTL;   //配置倍频系数               asm("ssync;");                            //系统同步               asm("idle;");                       //将处理器设置为空闲        } 配置完PLL后,系统必须将系统设置为空闲后,系统再一次唤醒后,设置的值才会生效。 3.34 代码实现功能 代码实现了将内核时钟配置为16倍倍频,将系统时钟配置为3倍分频。板卡上输入时钟为25MHz,所以VCO时钟配置后为25*16 =400MHz,内核时钟没有做分频,所以内核时钟等于VCO时钟,也为400MHz,系统时钟为400/3=133MHz。 3.35 测试结果 运行代码后,处理器的内核时钟会运行在400MHz,系统时钟运行在133MHz。 3.4 BF53x_EBIU 3.41 接口功能介绍 EBIU接口是ADSP-BF53x的外部总线接口,ADSP-BF53x的EBIU接口共有16根数据线,19根地址线,支持同步的SDRAM接入和异步的总线外设接入,ADSP-BF53x的异步EBIU接口共有4个BANK,每个BANK 1MByte,支持各种总线接口设备。 EBIU接口采用指针方式访问,通过宏定义出要访问的地址,然后通过指针进行读写数据操作。   上图是ADSP-BF53x处理器的内存分配表,其中地址0~0x08000000为SDRAM地址,地址0x20000000~0x203fffff为EBIU的异步Bank地址。 3.42 接口寄存器说明   寄存器 功能 EBIU_AMBCTL0 BANK0,BANK1时序配置寄存器 EBIU_AMBCTL1 BANK2,BANK3时序配置寄存器 EBIU_AMGCTL EBIU使能寄存器     3.43 例子代码分析 #define pADDR   (volatile unsigned short *)0x1000  //定义一个指针,地址指向0x1000   *pADDR = 0x1234;                          //向0x1000地址里写入数据0x1234     i = *pADDR;                                    //读出该地址数据     printf("addr is %x\n",pADDR);          //打印出当前访问的地址     printf("data is %x\n",i);                            //打印出当前地址中的数据      *pADDR = 0xaa55;                         //向0x1000地址里写入数据0xaa55     i = *pADDR;                                    //读出该地址数据     printf("addr is %x\n",pADDR);          //打印出当前访问的地址     printf("data is %x\n",i);                            //打印出当前地址中的数据 3.44 代码实现功能 代码实现了通过EBIU接口访问SDRAM空间地址0x1000,向0x1000地址中写入数据并读出,打印出访问的地址和读出的数据。 3.45 测试结果   优酷链接:http://v.youku.com/v_show/id_XMjg3Mjg1Njk2.html 清晰版下载地址:http://u.115.com/file/e6yal3r4    如需提取码,则是: e6yal3r4 开发板链接:http://item.taobao.com/item.htm?spm=1103Qmdt.3-3dfNy.h-1Akvusid=9026190872
  • 热度 24
    2012-3-7 13:54
    2045 次阅读|
    1 个评论
    ADSP开源社区的ADSP-EDU-BF53X开发板教学视频第一集发出来啦,详细可到网站视频区去查看,或者点击以下链接: http://www.openadsp.com/video.asp http://v.youku.com/v_show/id_XMjg0NDM3Nzk2.html   第一集很简单,主要是讲了一下Visual DSP++软件安装、序列号安装以及Update补丁安装。 下集预告:Visual DSP++环境搭建专题,通过使用510ICE挂载ADSP-EDU-BF53X板卡,来讲解如何搭建ADI DSP的开发环境,Visual DSP++软件在这部分所涉及到的技术点,以及一些比较实用的、少有人知的、非常规的挂载和调试方法等。  PS: 在安装补丁的过程有一段比较长的等待时间,等待时可以把进度条拖到9分30秒以后。   视频地址:http://v.youku.com/v_show/id_XMjg0NDM3Nzk2.html