请教2812问题,自己做的板子,调试出现问题

[复制链接]
6734|6
 楼主| takeshic 发表于 2008-6-17 20:19 | 显示全部楼层 |阅读模式
今天刚拿到板子,马上焊了最小系统,连上JATG程序下载正常,利用系统的时钟编写了一个定时器中断交替点亮2个LED的程序。程序在瑞泰2812实验箱上运行正常,可以在LED的驱动引脚上得到一个方波信号。说明程序运行正常,可以驱动LED灯闪烁运行。程序下载到开发板运行,给DSP供电的电源芯片ASM1117-5开始温度升高。运行程序,灯没有被驱动。发现2812芯片,与2812芯片供电电源芯片ASM1117-5温度升高到烫手,给外设供电的ASM1117-5没有发现温度大幅升高。给发迅速停止程序运行,芯片温度降低。可以推测为在2812开始运行时,电源芯片电流急剧增大。<br />附录程序<br />#include&nbsp;&quot;DSP281x_Device.h&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;DSP281x&nbsp;Headerfile&nbsp;Include&nbsp;File<br />#include&nbsp;&quot;DSP281x_Examples.h&quot;&nbsp;&nbsp;&nbsp;//&nbsp;DSP281x&nbsp;Examples&nbsp;Include&nbsp;File<br /><br />//&nbsp;中断服务程序函数原型声明<br />interrupt&nbsp;void&nbsp;cpu_timer0_isr(void);<br /><br />//*定义的各个外设寄存器的地址*//<br />#define&nbsp;LEDS&nbsp;*(int&nbsp;*)0xc0000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />//#define&nbsp;CTRGR&nbsp;*(int&nbsp;*)0x108000<br />//#define&nbsp;CTRLCDCMDR&nbsp;*(int&nbsp;*)0x108001<br />//#define&nbsp;CTRKEY&nbsp;*(int&nbsp;*)0x108001<br />//#define&nbsp;CTRLCDCR&nbsp;*(int&nbsp;*)0x108002<br />//#define&nbsp;CTRCLKEY&nbsp;*(int&nbsp;*)0x108002<br />//#define&nbsp;CTRLCDLCR&nbsp;&nbsp;*(int&nbsp;*)0x108003<br />//#define&nbsp;CTRLCDRCR&nbsp;*(int&nbsp;*)0x108004<br />//#define&nbsp;CTRLA&nbsp;*(int&nbsp;*)0x108005<br />//#define&nbsp;CTRLR&nbsp;*(int&nbsp;*)0x108007<br />#define&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LED1_ON&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GpioDataRegs.GPFDAT.bit.GPIOF6=0<br />#define&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LED1_OFF&nbsp;&nbsp;&nbsp;&nbsp;GpioDataRegs.GPFDAT.bit.GPIOF6=1<br />#define&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LED2_ON&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GpioDataRegs.GPFDAT.bit.GPIOF7=0<br />#define&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LED2_OFF&nbsp;&nbsp;&nbsp;&nbsp;GpioDataRegs.GPFDAT.bit.GPIOF7=1<br /><br />void&nbsp;Gpio_select(void);<br /><br />//声明全局变量<br />int&nbsp;i=0,nCount;<br />unsigned&nbsp;int&nbsp;uLBD,z;<br /><br />void&nbsp;main(void)<br />{&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />//&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;int&nbsp;uPort8000;<br /><br />&nbsp;&nbsp;&nbsp;InitSysCtrl();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//初始化cpu<br /><br />&nbsp;&nbsp;&nbsp;DINT;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//关中断<br /><br />&nbsp;&nbsp;&nbsp;InitPieCtrl();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//初始化pie寄存器<br />&nbsp;&nbsp;&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;IER&nbsp;=&nbsp;0x0000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//禁止所有的中断<br />&nbsp;&nbsp;&nbsp;IFR&nbsp;=&nbsp;0x0000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//清除所有的中断标志CPU级<br /><br /><br />&nbsp;&nbsp;&nbsp;InitPieVectTable();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//初始化pie中断向量表,使中断指向可知状态<br /><br /><br />&nbsp;&nbsp;&nbsp;EALLOW;&nbsp;&nbsp;//&nbsp;This&nbsp;is&nbsp;needed&nbsp;to&nbsp;write&nbsp;to&nbsp;EALLOW&nbsp;protected&nbsp;registers<br />&nbsp;&nbsp;&nbsp;PieVectTable.TINT0&nbsp;=&nbsp;&cpu_timer0_isr;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//指定中断服务子程序<br />&nbsp;&nbsp;&nbsp;EDIS;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;This&nbsp;is&nbsp;needed&nbsp;to&nbsp;disable&nbsp;write&nbsp;to&nbsp;EALLOW&nbsp;protected&nbsp;registers<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CpuTimer0.RegsAddr&nbsp;=&nbsp;&CpuTimer0Regs;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;CpuTimer0Regs.PRD.all&nbsp;&nbsp;=&nbsp;0xffff;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//定时计数器最大周期<br />&nbsp;&nbsp;&nbsp;&nbsp;CpuTimer0Regs.TPR.all&nbsp;&nbsp;=&nbsp;0x0010;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//定时器预定标寄存器,4分频<br />&nbsp;&nbsp;&nbsp;&nbsp;CpuTimer0Regs.TIM.all&nbsp;&nbsp;=&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//定时计数器<br />&nbsp;&nbsp;&nbsp;&nbsp;CpuTimer0Regs.TPRH.all&nbsp;=&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//定时器预定标寄存器<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;确定定时器停止:<br />&nbsp;&nbsp;&nbsp;&nbsp;CpuTimer0Regs.TCR.bit.TSS&nbsp;=&nbsp;1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//定时器停止状态位,停止<br />&nbsp;&nbsp;&nbsp;&nbsp;CpuTimer0Regs.TCR.bit.SOFT&nbsp;=&nbsp;1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//CPU定时器仿真模式(自由运行)<br />&nbsp;&nbsp;&nbsp;&nbsp;CpuTimer0Regs.TCR.bit.FREE&nbsp;=&nbsp;1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//CPU定时器仿真模式(自由运行)<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;重新使能定时器:<br />&nbsp;&nbsp;&nbsp;&nbsp;CpuTimer0Regs.TCR.bit.TRB&nbsp;=&nbsp;1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//定时器重新装载控制位<br />&nbsp;&nbsp;&nbsp;&nbsp;CpuTimer0Regs.TCR.bit.TIE&nbsp;=&nbsp;1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//定时器中断使能位<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;初始化定时器中断计数器:<br />&nbsp;&nbsp;&nbsp;&nbsp;CpuTimer0.InterruptCount&nbsp;=&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//定时器中断计数器&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br /><br />&nbsp;&nbsp;&nbsp;StartCpuTimer0();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//启动定时器0<br /><br />//&nbsp;Enable&nbsp;CPU&nbsp;INT1&nbsp;which&nbsp;is&nbsp;connected&nbsp;to&nbsp;CPU-Timer&nbsp;0:<br />&nbsp;&nbsp;&nbsp;IER&nbsp;|=&nbsp;M_INT1;<br /><br />//&nbsp;Enable&nbsp;TINT0&nbsp;in&nbsp;the&nbsp;PIE:&nbsp;Group&nbsp;1&nbsp;interrupt&nbsp;7<br />&nbsp;&nbsp;&nbsp;PieCtrlRegs.PIEIER1.bit.INTx7&nbsp;=&nbsp;1;<br /><br />//&nbsp;Enable&nbsp;global&nbsp;Interrupts&nbsp;and&nbsp;higher&nbsp;priority&nbsp;real-time&nbsp;debug&nbsp;events:<br />&nbsp;&nbsp;&nbsp;EINT;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Enable&nbsp;Global&nbsp;interrupt&nbsp;INTM<br />&nbsp;&nbsp;&nbsp;ERTM;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Enable&nbsp;Global&nbsp;realtime&nbsp;interrupt&nbsp;DBGM<br />&nbsp;&nbsp;&nbsp;//CTRGR=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;初始化ICETEK-CTR<br />&nbsp;&nbsp;&nbsp;//CTRGR=0x80;<br />&nbsp;&nbsp;&nbsp;//CTRGR=0;<br />&nbsp;&nbsp;&nbsp;//CTRLR=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;关闭东西方向的交通灯<br />&nbsp;&nbsp;&nbsp;//CTRLR=0x40;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;关闭南北方向的交通灯<br />&nbsp;&nbsp;//uPort8000=CTRCLKEY;<br />//&nbsp;&nbsp;&nbsp;&nbsp;Gpio_select();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Toggle&nbsp;I/Os&nbsp;&nbsp;using&nbsp;DATA&nbsp;register&nbsp;for&nbsp;ever<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(&nbsp;1&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gpio_select();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Toggle&nbsp;I/Os&nbsp;&nbsp;using&nbsp;DATA&nbsp;register&nbsp;for&nbsp;ever&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />}&nbsp;<br /><br /><br />//interrupt&nbsp;void&nbsp;cpu_timer0_isr(void)<br />//{&nbsp;&nbsp;//int&nbsp;j,k;&nbsp;<br />//&nbsp;&nbsp;&nbsp;z&nbsp;=&nbsp;CpuTimer0.InterruptCount++;<br /><br />&nbsp;&nbsp;&nbsp;//&nbsp;Acknowledge&nbsp;this&nbsp;interrupt&nbsp;to&nbsp;receive&nbsp;more&nbsp;interrupts&nbsp;from&nbsp;group&nbsp;1<br />//&nbsp;&nbsp;&nbsp;PieCtrlRegs.PIEACK.all&nbsp;=&nbsp;PIEACK_GROUP1;&nbsp;&nbsp;//清除中断标志<br />//&nbsp;&nbsp;&nbsp;CpuTimer0Regs.TCR.bit.TIF&nbsp;=&nbsp;1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//重启,计数器递减到零时会置位,定时器中断标志<br />//&nbsp;&nbsp;&nbsp;CpuTimer0Regs.TCR.bit.TRB&nbsp;=&nbsp;1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//定时器重新装载PRD寄存器周期值,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//并且PSC装载定时器分频寄存器TDDR中的值<br />//&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;nCount==0&nbsp;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />//&nbsp;&nbsp;&nbsp;{<br />//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LEDS=uLBD;<br />//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uLBD++;&nbsp;uLBD%=16;<br />//&nbsp;&nbsp;&nbsp;}<br />//&nbsp;&nbsp;&nbsp;nCount++;&nbsp;nCount%=194;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//取余运算<br /><br />//}<br /><br />void&nbsp;Gpio_select(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EALLOW;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;GpioMuxRegs.GPAMUX.all=&nbsp;0x0330;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//设置GPIOA9,8,5,4为外设功能,4,5为PWM,8,9为编码器解码;<br />&nbsp;&nbsp;&nbsp;&nbsp;GpioMuxRegs.GPBMUX.all=&nbsp;0x0300;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//设置GPIOB8,9为外设功能,8,9为编码器解码;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;GpioMuxRegs.GPDMUX.all=&nbsp;0x0000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//设置为GPIO<br />&nbsp;&nbsp;&nbsp;&nbsp;GpioMuxRegs.GPFMUX.all=&nbsp;0x003F;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//设置GPIOF5,4为SCI,设置GPIOF3,2,1,0为SPI;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;GpioMuxRegs.GPEMUX.all=&nbsp;0x0000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//设置为GPIO<br />&nbsp;&nbsp;&nbsp;&nbsp;GpioMuxRegs.GPGMUX.all=&nbsp;0x0030;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//设置GPIOG5,4为SCI;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;GpioMuxRegs.GPADIR.all=&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;GPIO作为输出口<br />&nbsp;&nbsp;&nbsp;&nbsp;GpioMuxRegs.GPBDIR.all=&nbsp;0x0012;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;GPIOB2,4作为输入口&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;GpioMuxRegs.GPDDIR.all=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;GpioMuxRegs.GPEDIR.all=&nbsp;0x0003;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;GPIOE0,1作为输入口<br />&nbsp;&nbsp;&nbsp;&nbsp;GpioMuxRegs.GPFDIR.all=&nbsp;0;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;GpioMuxRegs.GPGDIR.all=&nbsp;0;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;GpioMuxRegs.GPAQUAL.all=&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Set&nbsp;GPIO&nbsp;input&nbsp;qualifier&nbsp;values<br />&nbsp;&nbsp;&nbsp;&nbsp;GpioMuxRegs.GPBQUAL.all=&nbsp;0;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;GpioMuxRegs.GPDQUAL.all=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;GpioMuxRegs.GPEQUAL.all=&nbsp;0;<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;EDIS;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />//===========================================================================<br />//&nbsp;No&nbsp;more.<br />//========================================<br />//实验现象:LED灯约每0.1S变化一下状态<br />unsigned&nbsp;int&nbsp;Led_Flag;<br /><br />interrupt&nbsp;void&nbsp;cpu_timer0_isr(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;CpuTimer0.InterruptCount++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Acknowledge&nbsp;this&nbsp;interrupt&nbsp;to&nbsp;receive&nbsp;more&nbsp;interrupts&nbsp;from&nbsp;group&nbsp;1<br />&nbsp;&nbsp;&nbsp;PieCtrlRegs.PIEACK.all&nbsp;=&nbsp;PIEACK_GROUP1;&nbsp;&nbsp;//清除中断标志<br />&nbsp;&nbsp;&nbsp;CpuTimer0Regs.TCR.bit.TIF&nbsp;=&nbsp;1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//重启,计数器递减到零时会置位,定时器中断标志<br />&nbsp;&nbsp;&nbsp;CpuTimer0Regs.TCR.bit.TRB&nbsp;=&nbsp;1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//定时器重新装载PRD寄存器周期值,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//并且PSC装载定时器分频寄存器TDDR中的值<br />&nbsp;&nbsp;&nbsp;&nbsp;if(Led_Flag&nbsp;==&nbsp;1)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LED2_OFF;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LED1_ON;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Led_Flag&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LED2_ON;//&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LED1_OFF;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Led_Flag&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}
 楼主| takeshic 发表于 2008-6-17 20:32 | 显示全部楼层

原理图在这,有大侠帮帮忙,看看么,谢谢了,我在找错在

https://bbs.21ic.com/upfiles/img/20078/200782204315931.jpg<br /><br />https://bbs.21ic.com/upfiles/img/20078/200782204619397.jpg
 楼主| takeshic 发表于 2008-6-17 21:03 | 显示全部楼层

测试TDO引脚得1.4V,本来应该拉低,1.4伏算拉低吗??

TDO&nbsp;&nbsp;&nbsp;&nbsp;D12&nbsp;&nbsp;&nbsp;&nbsp;127&nbsp;&nbsp;&nbsp;&nbsp;93&nbsp;&nbsp;&nbsp;&nbsp;O/Z&nbsp;&nbsp;&nbsp;&nbsp;—&nbsp;&nbsp;&nbsp;&nbsp;JTAG扫描输出,测试数据输出。在TCK的下降沿将选择寄存器的内容从TDO移出<br />测试TDO引脚得1.4V,本来应该拉低,1.4伏算拉低吗??<br />
 楼主| takeshic 发表于 2008-6-17 22:29 | 显示全部楼层

有 新进展了

换了一个程序,灯被点亮了,但是电源芯片还是热。没以前那么热。到底是哪些初始化代码导致dsp芯片发烫呢??
 楼主| takeshic 发表于 2008-6-17 23:08 | 显示全部楼层

TPS767D318發燙的原因

請教--TPS767D318發燙的原因&nbsp;,--TPS767D318<br />自己做了一個2812的系統(沒有外部存儲器),電源芯片使用TPS767D318,現準備開始調試,我用TI的一個例子Example_281xFlash.c試驗,當LOAD&nbsp;PROGRAM後,開始運行(run)時,觀測輸入直流電源的電流明顯變大(達到400~500mA),接著TPS767D318芯片就非常的燙手,請問,是不是哪里出了問題?有人建議TPS767D318加散熱器,如何加?謝謝。&nbsp;<br /><br /><br />以下是&nbsp;請教--TPS767D318發燙的原因&nbsp;的答復&nbsp;<br />答復1:<br />你測試一下芯片,可能是短路了!測電源&地!&nbsp;<br /><br />答復2:<br />引用︰xiaoxu_79&nbsp;寫道︰<br />你測試一下芯片,可能是短路了!測電源&地!&nbsp;<br />未上電前我測試過,沒有短路,都正常,而且已經反復用了幾次,上電都正常,就是運行程序時出現上述情況,<br />難道到上電後再測試是否短路嗎?<br /><br />答復3:<br />不用加散熱片,應該是你的片子短路了&nbsp;<br /><br />答復4:<br />樓上的這麼肯定?我覺得應該沒有短路,今天又分析了一下,datasheet上介紹需要加散熱片的,我使用5v輸入,輸出為3.3v,輸入輸出壓差為1.7v,電流約為400mA,那麼弁茯軉?00mA*1.7V=600mW,我在輸入端接入一1.7歐電阻,器件的弁蚗雩茪p了些,可還需要散熱片,這個器件太小了,不知道該如何加,那位有圖參考一下,謝謝。&nbsp;<br /><br />答復5:<br />根本就不會到400ma的,除非你加了另外的器件,現在你只有DSP的話,不會到!<br />你關電測試就行了!上電前當然不會短路,電流到了幾百毫安後你再測!<br />如果你當時仔細觀察的話應該發現第一次上電時,開始電流不會那麼大的!&nbsp;<br /><br />答復6:<br />剛開始上電時,未load&nbsp;program時(即剛打開ccs),測試電流為120mA,當load後,點擊run,電流變大為375mA&nbsp;,這時候測試,沒有發現短路啊?&nbsp;<br /><br />答復7:<br />說不定是程序的問題。DSP如果工作頻率是150MHz,再加上所有的外設時鐘都使能了的話,可能電流真有那麼大。<br />D318兩路輸出都可以整到1A的啊,不要怕︰)&nbsp;<br /><br />答復8:<br />我得主頻是300Mhz也沒有那麼大!不過如果你的片子一直很正常工作的話,應該也沒有事!&nbsp;<br /><br />答復9:<br />剛問過一個朋友,也在用2812,電源芯片使用318,配置基本上和我的差不多,但據他說,程序運行起來,318也不會熱,看來我的肯定是哪里出了問題,各位還有類似的經驗嗎,請提供一下,謝謝,<br />另外,我好像每次發貼都是兩個貼,怎麼回事?版主幫我看一下,謝謝。&nbsp;<br /><br />答復10:<br />頂一下,是不是有可能程序不合適?我使用的例程如下,見附件。&nbsp;<br /><br />答復11:<br />頂一下,我也遇到了相同的問題,剛上電但不運行程序時318也並不熱,但一旦開始運行程序時就特別燙,我現在用的主頻是150MHz,我問了一個同學,他說他的也燙,但就那麼湊合著使,我本以為主頻高時就應該燙,可在此看到有的高手說正常的應該不燙,請各位高手指點指點啊,就怕那天片子燙的受不了給燒了&nbsp;<br /><br />答復12:<br />幾天沒來,發現有和我一樣的朋友,對于這個問題,目前我的認識如下︰<br />一個是可能是ccs的版本和我的仿真器不兼容,我用的是瑞泰icetek-5100pp型仿真器,當初我問SEED的技術人員,說需要ccs2.21版本,可是我的是ccs2.20,但也能用。<br />另一個是,就是318的焊接有問題,或者哪里壞掉了,如果再找不出原因,就等它燙壞後換一片,不過,直到現在使用,一直還沒&nbsp;燙壞。<br />各位大俠有何高見?<br /><br />答復13:<br />我也遇到了類似的問題,我用的是tps73hd301的電源,dsp主頻300Mhz。<br />如果只是load程序進去,不會發熱,但是一旦run起來,就開始發燙。電流也從60ma一下上到280ma,而且我的板子上還沒有焊接其他的外圍電路,只連接了dsp和jtag口&nbsp;232串口。<br />引用︰lianxiuxiu&nbsp;寫道︰<br />幾天沒來,發現有和我一樣的朋友,對于這個問題,目前我的認識如下︰<br />一個是可能是ccs的版本和我的仿真器不兼容,我用的是瑞泰icetek-5100pp型仿真器,當初我問SEED的技術人員,說需要ccs2.21版本,可是我的是ccs2.20,但也能用。<br />另一個是,就是318的焊接有問題,或者哪里壞掉了,如果再找不出原因,就等它燙壞後換一片,不過,直到現在使用,一直還沒&nbsp;燙壞。<br />各位大俠有何高見?&nbsp;<br /><br />答復14:<br />最近發現,只有當pll倍頻5,主頻150MHZ時,電流才變大,318發燙;當倍頻4以下時,電流不變化,318也就不燙了,這個怎麼解釋呢,還有就是,我將其他不用的外設時鐘關閉,也沒有作用。&nbsp;<br /><br />答復15:<br />原來以為是短路,怎麼測也每測出是短路,只好對付著用<br />誰然比較熱,不過沒有壞&nbsp;<br /><br />答復16:<br />我用5402&nbsp;也用TPS767D318(5V轉3.3和1.8)&nbsp;同樣發燙&nbsp;請問什麼原因呢&nbsp;系統配置如下︰5402+EPM7128+IS61LV6416+sst39VF400A+ad+da+運放+max232(TL16C550)<br />剛上電就有300ma多&nbsp;load程序時達到500ma<br />大家討論下吧&nbsp;郁悶中&nbsp;<br /><br />答復17:<br />應該是斷路了,其實我建議不要用318這個片子,可以用spx1117的5伏轉3.3和1.8也可以,其實上電的順序沒有那麼特別的嚴格了,我試了&nbsp;沒有問題。&nbsp;<br /><br />答復18:<br />請問樓主你的問題解決了嗎<br /><br />答復19:<br />我也認為正常的時候電源片子是不會發燙的,我有一會發現電源片子燙,結果就發現F2812已經燒了,所以各位還是小心為好!&nbsp;<br /><br />答復20:<br />我的板子也這樣的,318是比較燙,不過可以正常工作的,應該不用加散熱片。<br />seed2812的開發板上的電源芯片也是發燙的,一直用也沒事。&nbsp;<br /><br />答復21:<br />是不是器件壞了,換一個試試<br /><br />答復22:<br />這個問題我已經弄清楚了,就是輸入電壓為5v,輸出有兩個電壓,一個為3.3v,一個為1.8v,5v和3v的壓差不大,但是5v和1.8v的壓差就大了,而弁茯馬滫怐瑰ㄝt與輸出電流乘積的和,所以弁茪騆
 楼主| takeshic 发表于 2008-6-17 23:11 | 显示全部楼层

我猜我这个是软件的问题

可能我使用了开发板的初始化程序,而我的板子上没有开发板那么多的资源,初始化的时候会不会导致各类中断触发呢?而使得dsp发热的?对吧?<br /><br />我的xf引脚,没接上拉,是因为内部已经上拉了,应该没关系吧,pll使能。
 楼主| takeshic 发表于 2008-6-17 23:42 | 显示全部楼层

dsp已经不发热了……

确定是程序的问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

47

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部