|
|||||||||||
| 技術(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 |
窮人也來(lái)秀板子---放程序了!!! |
| 作者:st_z 欄目:單片機(jī) |
很窮,沒(méi)錢(qián)做板子,,,呵呵,,,, 其實(shí)也不想做板子,萬(wàn)一畫(huà)錯(cuò)了一條線(xiàn),改起來(lái)麻煩死了。。。 這是最近無(wú)聊搞的一塊M32/M16 的開(kāi)發(fā)板,還可以直接把CPU換成STC8051。 板上資源有: RS232串口:MAX202; USB1.1: PHILIPS D12; 4 X 4 掃描鍵盤(pán); PS/2標(biāo)準(zhǔn)鍵盤(pán); M32/16 CPU; Nand FLASH: K9F1G08; CPLD一片:XC9536 - 5V; 12864LCD:STC920 音頻放大:TDA2822M。 板子還沒(méi)有焊完,呵呵,,先把照片發(fā)上來(lái)給大伙瞧瞧,,, * - 本貼最后修改時(shí)間:2005-11-2 12:40:08 修改者:st_z
|
| 2樓: | >>參與討論 |
| 作者: qjy_dali 于 2005/10/19 20:47:00 發(fā)布:
你的耐力令人贊嘆 |
|
| 3樓: | >>參與討論 |
| 作者: ipman 于 2005/10/19 21:17:00 發(fā)布:
正面還不錯(cuò),反面會(huì)很恐怖啊 |
|
| 4樓: | >>參與討論 |
| 作者: zhongwei 于 2005/10/19 22:03:00 發(fā)布:
高!我最服氣那些搞得很正常而看上去亂亂的板子! - |
|
| 5樓: | >>參與討論 |
| 作者: st_z 于 2005/10/20 8:24:00 發(fā)布:
等反面全部焊好了也發(fā)個(gè)照片上來(lái),,, 呵呵,,, |
|
| 6樓: | >>參與討論 |
| 作者: javie 于 2005/10/20 18:53:00 發(fā)布:
到時(shí)候反面就如同鳥(niǎo)窩了 |
|
| 7樓: | >>參與討論 |
| 作者: st_z 于 2005/10/21 11:19:00 發(fā)布:
背面連線(xiàn)圖 現(xiàn)在已經(jīng)調(diào)通了LCD、FLASH、掃描鍵盤(pán)和串口部分,也只連接了這些部分。今天焊USBD12的連線(xiàn)。 目前看來(lái)還不象鳥(niǎo)窩吧,,,呵呵,,, 背面連線(xiàn)圖 |
|
| 8樓: | >>參與討論 |
| 作者: javie 于 2005/10/22 19:14:00 發(fā)布:
做的還真是不錯(cuò) |
|
| 9樓: | >>參與討論 |
| 作者: kanprin 于 2005/10/25 8:13:00 發(fā)布:
不像鳥(niǎo)窩,穩(wěn)定性也不能保證吧! 不過(guò)佩服。 |
|
| 10樓: | >>參與討論 |
| 作者: st_z 于 2005/10/25 10:13:00 發(fā)布:
LCD 遇到一個(gè)小問(wèn)題 LCD采用的是 ST920 為控制器的12864模塊,為了節(jié)省IO口,我用的是串口方式,時(shí)鐘線(xiàn)和數(shù)據(jù)線(xiàn)與別的功能線(xiàn)是復(fù)用的。在調(diào)試的時(shí)候發(fā)現(xiàn),當(dāng)片選為高(無(wú)效)時(shí),時(shí)鐘線(xiàn)和數(shù)據(jù)線(xiàn)的信號(hào)也會(huì)被讀進(jìn)去,不過(guò)很奇怪,沒(méi)有顯示亂碼,只是把我要顯示的地址更改了;后來(lái)把這兩條線(xiàn)單獨(dú)使用兩個(gè)IO口,問(wèn)題就沒(méi)有了。不知道大家遇到過(guò)沒(méi)有。 |
|
| 11樓: | >>參與討論 |
| 作者: terrence 于 2005/10/26 18:49:00 發(fā)布:
頂一個(gè)~~!! |
|
| 12樓: | >>參與討論 |
| 作者: jinggx 于 2005/10/26 21:44:00 發(fā)布:
還說(shuō)是窮人, 用的都是很高檔的東西,芯片下的插座比較貴吧,板子留了好多的空余啊. |
|
| 13樓: | >>參與討論 |
| 作者: ligong 于 2005/10/28 15:39:00 發(fā)布:
不錯(cuò)! |
|
| 14樓: | >>參與討論 |
| 作者: st_z 于 2005/10/31 8:56:00 發(fā)布:
兩天沒(méi)有上網(wǎng),居然加了酷。。。 感謝斑主看得起,過(guò)幾天我再把電路原理圖也會(huì)貼上來(lái)的,陸續(xù)還有一些程序。 |
|
| 15樓: | >>參與討論 |
| 作者: zhaoxi322 于 2005/10/31 14:04:00 發(fā)布:
佩服,佩服,做得很好,能個(gè)電路圖上來(lái)吧 |
|
| 16樓: | >>參與討論 |
| 作者: javie 于 2005/10/31 14:45:00 發(fā)布:
我要求程序啊 |
|
| 17樓: | >>參與討論 |
| 作者: st_z 于 2005/11/2 9:59:00 發(fā)布:
發(fā)一個(gè)FLASH 的讀、寫(xiě)和擦除程序。 沒(méi)有什么技巧,完全是按照時(shí)序直接走的,跟匯編差不多。 //------------------------------------ #define DATA_OUT PORTC #define DATA_DIR DDRC #define DATA_IN PINC #define CTRL_OUT PORTB #define CTRL_IN PINB #define CTRL_DIR DDRB #define FLASH_CE PB0 #define FLASH_RE PB5 #define FLASH_WE PB6 #define FLASH_RB PB7 #define FLASH_ALE PD6 #define FLASH_CLE PD7 //--------------------------------- unsigned CHAR FLASH_Erase(unsigned CHAR Block_High, unsigned CHAR Block_Low) { unsigned CHAR TMP; DATA_DIR = 0x00; CTRL_DIR |= (1 << FLASH_CE)|(1 << FLASH_WE)|(1 << FLASH_RE)|(1 << LCD_CS); CTRL_OUT |= (1 << FLASH_CE)|(1 << FLASH_WE)|(1 << FLASH_RE); CTRL_OUT &= ~(1 << LCD_CS); PORTD &= ~((1 << FLASH_CLE)|(1 << FLASH_ALE)); DATA_OUT = 0x60; CTRL_OUT &= ~(1 << FLASH_CE); Delay(0x04); DATA_DIR = 0xFF; PORTD |= 1 << FLASH_CLE; NOP(); CTRL_OUT &= ~(1 << FLASH_WE); NOP(); CTRL_OUT |= 1 << FLASH_WE; NOP(); PORTD &= ~(1 << FLASH_CLE); PORTD |= 1 << FLASH_ALE; DATA_OUT = Block_High; NOP(); CTRL_OUT &= ~(1 << FLASH_WE); NOP(); CTRL_OUT |= 1 << FLASH_WE; NOP(); DATA_OUT = Block_Low; NOP(); CTRL_OUT &= ~(1 << FLASH_WE); NOP(); CTRL_OUT |= 1 << FLASH_WE; NOP(); PORTD &= ~(1 << FLASH_ALE); PORTD |= 1 << FLASH_CLE; DATA_OUT = 0xD0; NOP(); CTRL_OUT &= ~(1 << FLASH_WE); NOP(); CTRL_OUT |= 1 << FLASH_WE; NOP(); PORTD &= ~(1 << FLASH_CLE); Delay(0x05); while(!(CTRL_IN & (1 << FLASH_RB))) NOP(); DATA_OUT = 0x70; PORTD |= 1 << FLASH_CLE; NOP(); CTRL_OUT &= ~(1 << FLASH_WE); NOP(); CTRL_OUT |= 1 << FLASH_WE; NOP(); PORTD &= ~(1 << FLASH_CLE); DATA_DIR = 0x00; NOP(); NOP(); TMP = DATA_IN; CTRL_OUT |= 1 << FLASH_RE; CTRL_OUT |= 1 << FLASH_CE; return TMP; } |
|
| 18樓: | >>參與討論 |
| 作者: st_z 于 2005/11/2 10:01:00 發(fā)布:
剛才那個(gè)是擦除的,這個(gè)讀的,下一個(gè)是寫(xiě)的 void Flash_Read(unsigned CHAR Addr1,unsigned CHAR Addr2,unsigned CHAR Addr3, unsigned CHAR Addr4,unsigned CHAR *String,unsigned int ReadNumber) { unsigned int GetNumber; CTRL_OUT |= (1 << Flash_WE)|(1 << Flash_RE)|(1 << Flash_CE); CTRL_OUT &= ~(1 << LCD_CS); PORTD &= ~((1 << Flash_CLE)|(1 << Flash_ALE)); PORTD &= ~(1 << Flash_ALE); PORTD |= 1 << Flash_CLE; DATA_DIR = 0xFF; DATA_OUT = 0x00; CTRL_OUT &= ~(1 << Flash_CE); NOP(); NOP(); CTRL_OUT &= ~(1 << Flash_WE); NOP(); CTRL_OUT |= 1 << Flash_WE; NOP(); PORTD &= ~(1 << Flash_CLE); PORTD |= 1 << Flash_ALE; DATA_OUT = Addr1; NOP(); CTRL_OUT &= ~(1 << Flash_WE); NOP(); CTRL_OUT |= 1 << Flash_WE; NOP(); DATA_OUT = Addr2; NOP(); CTRL_OUT &= ~(1 << Flash_WE); NOP(); CTRL_OUT |= 1 << Flash_WE; NOP(); DATA_OUT = Addr3; NOP(); CTRL_OUT &= ~(1 << Flash_WE); NOP(); CTRL_OUT |= 1 << Flash_WE; NOP(); DATA_OUT = Addr4; NOP(); CTRL_OUT &= ~(1 << Flash_WE); NOP(); CTRL_OUT |= 1 << Flash_WE; NOP(); DATA_OUT = 0x30; PORTD &= ~(1 << Flash_ALE); PORTD |= 1 << Flash_CLE; NOP(); CTRL_OUT &= ~(1 << Flash_WE); NOP(); CTRL_OUT |= 1 << Flash_WE; NOP(); PORTD &= ~(1 << Flash_CLE); DATA_DIR = 0x00; while(!(CTRL_IN & (1 << Flash_RB))) NOP(); CTRL_OUT &= ~(1 << Flash_RE); for(GetNumber = 0 ; GetNumber < ReadNumber ; GetNumber++) { NOP(); CTRL_OUT &= ~(1 << Flash_RE); NOP(); *String++ = DATA_IN; CTRL_OUT |= 1 << Flash_RE; } CTRL_OUT |= 1 << Flash_CE; } * - 本貼最后修改時(shí)間:2005-11-2 10:03:16 修改者:st_z |
|
| 19樓: | >>參與討論 |
| 作者: st_z 于 2005/11/2 10:04:00 發(fā)布:
Flash_Program unsigned CHAR Flash_Program(unsigned CHAR Addr1,unsigned CHAR Addr2,unsigned CHAR Addr3,unsigned CHAR Addr4, unsigned CHAR *String, unsigned int Bytes) { unsigned CHAR TMP; unsigned int WriteByte; CTRL_OUT |= (1 << Flash_WE)|(1 << Flash_RE)|(1 << Flash_CE); CTRL_OUT &= ~(1 << LCD_CS); PORTD &= ~((1 << Flash_CLE)|(1 << Flash_ALE)); PORTD &= ~(1 << Flash_ALE); PORTD |= 1 << Flash_CLE; DATA_DIR = 0xFF; DATA_OUT = 0x80; CTRL_OUT &= ~(1 << Flash_CE); Delay(0x04); CTRL_OUT &= ~(1 << Flash_WE); NOP(); CTRL_OUT |= 1 << Flash_WE; NOP(); PORTD &= ~(1 << Flash_CLE); PORTD |= 1 << Flash_ALE; DATA_OUT = Addr1; NOP(); CTRL_OUT &= ~(1 << Flash_WE); NOP(); CTRL_OUT |= 1 << Flash_WE; NOP(); DATA_OUT = Addr2; NOP(); CTRL_OUT &= ~(1 << Flash_WE); NOP(); CTRL_OUT |= 1 << Flash_WE; NOP(); DATA_OUT = Addr3; NOP(); CTRL_OUT &= ~(1 << Flash_WE); NOP(); CTRL_OUT |= 1 << Flash_WE; NOP(); DATA_OUT = Addr4; NOP(); CTRL_OUT &= ~(1 << Flash_WE); NOP(); CTRL_OUT |= 1 << Flash_WE; NOP(); PORTD &= ~(1 << Flash_ALE); Delay(0x04); for(WriteByte = 0; WriteByte < Bytes ; WriteByte++) { DATA_OUT = *String++; NOP(); CTRL_OUT &= ~(1 << Flash_WE); NOP(); CTRL_OUT |= 1 << Flash_WE; NOP(); } PORTD |= 1 << Flash_CLE; DATA_OUT = 0x10; NOP(); CTRL_OUT &= ~(1 << Flash_WE); NOP(); CTRL_OUT |= 1 << Flash_WE; while(!(CTRL_IN & (1 << Flash_RB))) NOP(); DATA_OUT = 0x70; NOP(); CTRL_OUT &= ~(1 << Flash_WE); NOP(); CTRL_OUT |= 1 << Flash_WE; NOP(); PORTD &= ~(1 << Flash_CLE); DATA_DIR = 0x00; CTRL_OUT &= ~(1 << Flash_RE); NOP(); NOP(); TMP = DATA_IN; NOP(); CTRL_OUT |= 1 << Flash_RE; CTRL_OUT |= 1 << Flash_CE; return TMP; } |
|
| 20樓: | >>參與討論 |
| 作者: st_z 于 2005/11/2 10:10:00 發(fā)布:
電路圖晚一點(diǎn)給出來(lái) 這幾天覺(jué)得引腳安排得不是很合理,想改,但又覺(jué)得工程量好大! 程序還有一些,陸續(xù)都帖上來(lái),都是已經(jīng)調(diào)通的,請(qǐng)各位大俠們指導(dǎo)指導(dǎo)。拜托了,,呵呵,,,, |
|
| 21樓: | >>參與討論 |
| 作者: javie 于 2005/11/2 15:11:00 發(fā)布:
我狂頂你啊 真好 |
|
| 22樓: | >>參與討論 |
| 作者: ylst 于 2005/11/2 15:34:00 發(fā)布:
厲害! 搞到這個(gè)水平,再這一行業(yè)做了多久了啊? |
|
| 23樓: | >>參與討論 |
| 作者: st_z 于 2005/11/4 9:37:00 發(fā)布:
做這樣的板子已經(jīng)很長(zhǎng)時(shí)間了 讀高中時(shí)就在這樣的板子上搭收音機(jī),,,呵呵,, 不過(guò)接觸AVR 還是去年的事情,從M48開(kāi)始,覺(jué)得這款MCU確實(shí)挺不錯(cuò)的。 下午放LCD的程序!大家?guī)兔σ黄痦敯。。?br> |
|
| 24樓: | >>參與討論 |
| 作者: bbear 于 2005/11/6 23:44:00 發(fā)布:
搭成這樣還算可以吧,呵呵。 我也介紹一下我用萬(wàn)能板搭電路時(shí)的一個(gè)方法,希望對(duì)大家有點(diǎn)幫助: 一般我在布線(xiàn)軟件中把GRID設(shè)成2.5,線(xiàn)寬設(shè)為2.2,(或者按你手上的實(shí)際板的尺寸來(lái)設(shè)置)然后擺放元件幾次,再試著走幾次線(xiàn)。盡量使走線(xiàn)在板上連通。最后實(shí)在在板上走不通的就留在那兒靠飛線(xiàn)。在這過(guò)程中再按需要及時(shí)調(diào)整BOARD的大小。電腦中搞好后,接著就是裁板,插元件,焊接,飛線(xiàn)這些不傷害腦細(xì)胞的活了。 這樣萬(wàn)能板搭電路,很快,也不浪費(fèi)萬(wàn)能板,而且,還實(shí)現(xiàn)了‘文檔化’,更新/查錯(cuò)很方便,搭好后板看來(lái)也比較‘專(zhuān)業(yè)’。 不過(guò)如果是私人玩單片機(jī)的話(huà),我推薦盡量用感光法或熱轉(zhuǎn)印法來(lái)搭電路。 |
|
| 25樓: | >>參與討論 |
| 作者: qinxg 于 2005/11/8 13:11:00 發(fā)布:
你有的受了.K9F1G08的一頁(yè)就是2K,我看你怎么用32L處理! 要修改K9F1G08的某一頁(yè)時(shí),必須先把此塊拷貝到其他塊里.可惡的是1G08取消了5608U0B的COPY-BACK的功能 |
|
| 26樓: | >>參與討論 |
| 作者: zhiwei 于 2005/11/9 8:56:00 發(fā)布:
應(yīng)該布板的 看你水平那么高,覺(jué)得你可以做PCB出來(lái)的。 |
|
| 27樓: | >>參與討論 |
| 作者: liusuozhu 于 2006/1/10 13:01:00 發(fā)布:
還請(qǐng)問(wèn) FLASH 問(wèn)題 請(qǐng)高手指點(diǎn): 1 我也有類(lèi)似的電路,現(xiàn)在發(fā)現(xiàn)一個(gè)問(wèn)題,就是我在 Byte Program 時(shí),寫(xiě)完 2048 個(gè)字節(jié)后, 進(jìn)入下一個(gè) 2048 個(gè)區(qū)域,但在此區(qū)域內(nèi),我發(fā)現(xiàn)讀出的與寫(xiě)入的完全不一樣。而前 2048 個(gè)一直沒(méi)問(wèn)題,還請(qǐng)問(wèn)原因。 2. 如何判斷 Page 地址呢,不懂 3. 擦除: Datasheet 里只有 Block Erase 選項(xiàng),但是擦除范圍太大了,在做 u 盤(pán)時(shí),怎么處理數(shù)據(jù)的更改的。 還請(qǐng)指點(diǎn), 謝謝 ! |
|
| 28樓: | >>參與討論 |
| 作者: dmcz 于 2006/1/10 19:06:00 發(fā)布:
都說(shuō)我看不懂匯編,這不我也可以啊~哈哈 贊一個(gè),如果我有你一半的耐性就好了 |
|
| 29樓: | >>參與討論 |
| 作者: lag3631 于 2006/1/11 15:29:00 發(fā)布:
回 厲害 佩服佩服 |
|
| 30樓: | >>參與討論 |
| 作者: chjman 于 2006/1/13 16:34:00 發(fā)布:
老大你的鍵盤(pán)有點(diǎn)臟,該CLR一下了 但比我的干凈多了哈哈。。。 |
|
| 31樓: | >>參與討論 |
| 作者: zhouh314 于 2006/1/13 20:24:00 發(fā)布:
請(qǐng)問(wèn)你K9F1G08的讀寫(xiě) 看了K9F1G08的資料,發(fā)現(xiàn)當(dāng)我要初始化搜索壞塊的時(shí)候怎么也沒(méi)辦法直接尋址它的spare area中的字節(jié)。請(qǐng)問(wèn)怎么解決? |
|
| 32樓: | >>參與討論 |
| 作者: zhouh314 于 2006/1/13 20:29:00 發(fā)布:
怎么讀寫(xiě)K9F1G08的spare area? 看了K9F1G08的資料,發(fā)現(xiàn)當(dāng)我要初始化搜索壞塊的時(shí)候怎么也沒(méi)辦法直接尋址它的spare area中的字節(jié)。請(qǐng)問(wèn)怎么解決? |
|
| 33樓: | >>參與討論 |
| 作者: muziguo711 于 2006/4/12 12:43:00 發(fā)布:
你用的是什么編譯環(huán)境啊 你好啊,可以和你聯(lián)系嗎?我還有很多問(wèn)題想和你請(qǐng)教呢~~ |
|
| 34樓: | >>參與討論 |
| 作者: hotpower 于 2006/4/12 12:51:00 發(fā)布:
7920就是有這個(gè)缺點(diǎn),片選不管用所以時(shí)鐘不能與其他IO復(fù)用 |
|
| 35樓: | >>參與討論 |
| 作者: alzilithe 于 2006/4/12 20:32:00 發(fā)布:
很不錯(cuò)啊, |
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |