|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
這個(gè)在C6000上外擴(kuò)的一個(gè)輸出端口,很不穩(wěn)定。 |
| 作者:boy364 欄目:DSP技術(shù) |
C6000的DSP,用鎖存器LVC574外擴(kuò)了一個(gè)輸出口,輸出口用的是C3空間。接八個(gè)發(fā)光二極管,如圖所示。該輸出端口的地址由A7、A8、A9決定(網(wǎng)絡(luò)標(biāo)號(hào)用“T”打頭的是由EMIF總線端接33歐電阻的信號(hào)) CE3空間配置為八位異步存儲(chǔ)器,Space CONTROL Register(CECTL3)中的各項(xiàng)參數(shù)都按最大的配,也就是復(fù)位后的默認(rèn)值0xffffff03.編了個(gè)測(cè)試程序,讓八個(gè)二極管周期性閃爍。把程序放在外部SDRAM時(shí)候,只有一個(gè)二極管閃爍,把程序放在內(nèi)部L2 Cache中,有四個(gè)閃爍。應(yīng)該八個(gè)二極管都閃爍才對(duì),說明給LVC574的信號(hào)沒有正確鎖存。估算了一個(gè),寄存器(CECTL3)配置應(yīng)該完全能滿足LVC574的建立和保持時(shí)間的,但是實(shí)際卻是這樣,很是迷惑。 * - 本貼最后修改時(shí)間:2006-2-10 11:46:44 修改者:boy364 在c6000上外擴(kuò)的是個(gè)輸出端口 |
| 2樓: | >>參與討論 |
| 作者: boy364 于 2006/2/10 9:39:00 發(fā)布:
頂起來 |
|
| 3樓: | >>參與討論 |
| 作者: shixiudong 于 2006/2/11 21:03:00 發(fā)布:
回答: 故障原因:74LVC574在CLK信號(hào)的上升沿鎖存數(shù)據(jù),而不是在下降沿。 解決方法:把SN74LVC02換成SN74LVC32,即可解決問題。 回答完畢。 |
|
| 4樓: | >>參與討論 |
| 作者: boy364 于 2006/2/13 10:07:00 發(fā)布:
我試一下 確實(shí)不一樣,用1G32的話,是在地址或者寫信號(hào)失效時(shí)(最先失效的那個(gè))產(chǎn)生上升沿(鎖存信號(hào)),用1G02的話,是在地址和寫信號(hào)都有效時(shí)產(chǎn)生上升沿(鎖存信號(hào))。1G32的鎖存信號(hào)教1G02來的晚一些。換成1G32后再給大家公布結(jié)果,希望能成功。 * - 本貼最后修改時(shí)間:2006-2-13 10:39:24 修改者:boy364 |
|
| 5樓: | >>參與討論 |
| 作者: boy364 于 2006/2/13 13:55:00 發(fā)布:
郁悶,換上1G32,還是不穩(wěn)定 買了LVC573以后,再換鎖存器看看行不行 * - 本貼最后修改時(shí)間:2006-2-13 13:57:38 修改者:boy364 |
|
| 6樓: | >>參與討論 |
| 作者: lxg133 于 2006/2/13 14:49:00 發(fā)布:
我也在6000的CE1空間上擴(kuò)展了8個(gè)LED 我也在6000的CE1空間上擴(kuò)展了8個(gè)LED,映射的地址為0x9008 0011,是用邏輯做的,沒遇到什么問題。 沒有仔細(xì)分析你的電路,看著蠻復(fù)雜的,把我的邏輯貼出來看看,希望有幫助: //-------------------------------------------------------------------- // this version is a solution for DM642's EPLD // HARDWARE Version: II // 2005.09.16 lxg //-------------------------------------------------------------------- MODULE top( system_reset, awe, aoe, are, tea22,tea8,tea7,tea6,tea5,tea4,tea3, ted, // data bus [7:0] tce1, // EMIFA ce1 iic_sel, // i2c bus SELECT dsp_scl0, // i2c clock uart_inta,uart_intb, // uart cs eprom_ce, FLASH_ce, emifa_oe, emifa_dir, uart_csa,uart_csb, dsp_scl1, dsp_scl2, FLASH_add, user_led, dsp_extint4, // DM642ÍⲿÖжÏÐźÅ4 dsp_extint5, // DM642ÍⲿÖжÏÐźÅ5 ); // input signal input system_reset; wire system_reset; input awe; // write enable input are; // read input aoe; // OUTPUT enable input tea22; // address 22 input tea8; input tea7; input tea6; input tea5; input tea4; input tea3; input [7:0] ted; input tce1; input uart_inta; input uart_intb; input iic_sel; input dsp_scl0; // OUTPUT signal OUTPUT dsp_scl1; OUTPUT dsp_scl2; OUTPUT dsp_extint4; OUTPUT dsp_extint5; OUTPUT emifa_oe; // EMIFA bus OUTPUT enable OUTPUT emifa_dir; // EMIFA bus direction OUTPUT FLASH_ce; // FLASH.html">FLASH chip SELECT OUTPUT eprom_ce; // EPROM chip SELECT OUTPUT uart_csa; // COM0 chip SELECT OUTPUT uart_csb; // COM1 chip SELECT OUTPUT [5:0] FLASH_add; // extend address OUTPUT [7:0] user_led; // user defined led reg [5:0] FLASH_add; reg [7:0] user_led; //reg emifa_oe; //reg emifa_dir; wire write_FLASH_addr; wire OUTPUT_user_led; wire write_cs_CONTROL; reg cs_sel; // cs_sel = 0 SELECT EPROM // cs_sel = 1 SELECT FLASH // emifa_dir = 0 : write // emifa_dir = 1 : read // aoe = 0 when DM642 read. assign emifa_oe = tce1; assign emifa_dir = ~(tce1 | aoe); assign dsp_scl1 = (iic_sel==1'b1) ? dsp_scl0 : 1'bz; assign dsp_scl2 = (iic_sel==1'b1) ? dsp_scl0 : 1'bz; assign dsp_extint4 = uart_inta; assign dsp_extint5 = uart_intb; //00000-7ffff assign eprom_ce = (cs_sel==1'b0) ? (tce1 | tea22) : 1'b1; //00000-7ffff assign FLASH_ce = (cs_sel==1'b1) ? (tce1 | tea22) : 1'bz; //80000-80007 assign uart_csa = tce1 | ~tea22 | tea7 | tea6 | tea8; //80008-8000f assign uart_csb = tce1 | ~tea22 | tea7 | ~tea6 | tea8; //80010 Ext address assign write_FLASH_addr = tce1 | ~tea22 | tea6 | ~tea7 | tea8 | tea5 | tea4 | tea3; //80011 user led assign OUTPUT_user_led = tce1 | ~tea22 | tea6 | ~tea7 | tea8 | tea5 | tea4 | ~tea3; //80012 EPROM or FLASH.html">FLASH cs CONTROL reg assign write_cs_CONTROL = tce1 | ~tea22 | tea6 | ~tea7 | tea8 | tea5 | ~tea4 | tea3; //OUTPUT FLASH address always @ (negedge awe or negedge system_reset) begin if(~system_reset) begin FLASH_add <= 6'b000000; // set A24-A19 to 0 cs_sel <= 1'b1; // SELECT FLASH user_led <= 8'hff; // turn off led at reset //emifa_oe <= 1'b0; //emifa_dir <= 1'b0; end else if (~write_FLASH_addr) begin FLASH_add <= ted[5:0]; // latch the address end else if (~OUTPUT_user_led) begin &n |
|
| 7樓: | >>參與討論 |
| 作者: lxg133 于 2006/2/13 14:56:00 發(fā)布:
抱歉,寫錯(cuò)了,我的是在CE1空間擴(kuò)展的 抱歉,寫錯(cuò)了,我的是在CE1空間擴(kuò)展的 |
|
| 8樓: | >>參與討論 |
| 作者: boy364 于 2006/2/15 10:55:00 發(fā)布:
試了LVC573,好像也不成功 咋回事呢,難道一定要用CPLD? |
|
|
|
| 免費(fèi)注冊(cè)為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |