|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
這樣做為什么得不到正確數(shù)據(jù)? |
| 作者:蘭天白云 欄目:單片機(jī) |
SPI的使用: void spi_initialize(void) { CSAT=1; //不選通 INTCONbits.PEIE=0; //禁止中斷 PIE1bits.SSPIE=0; //禁止SPI中斷 TRISCbits.TRISC5=0; //SDO輸出 TRISCbits.TRISC4=1; //SDI輸入 TRISCbits.TRISC3=0; //SCK輸出 PIR1bits.SSPIF=0; //標(biāo)志位清零 SSPCON1=0x31; //使能SPI,CKP=1,F(xiàn)OSC/16 SSPSTAT=0x80; //CKE=0上升沿發(fā)送數(shù)據(jù),模式3 } //---------------------------------- unsigned CHAR spi_out_in(unsigned CHAR x) { SSPBUF=x; while(PIR1bits.SSPIF==0) {;} PIR1bits.SSPIF=0; x=SSPBUF; return(x); } 用示波器觀察SCK,SDI,SDO三個引腳,當(dāng)讀進(jìn)一個數(shù)據(jù)時,SDI引腳波型是10101100,但x卻=FE。各位朋友,看一看這函數(shù)有沒有問題? |
| 2樓: | >>參與討論 |
| 作者: 蘭天白云 于 2004/12/31 10:31:00 發(fā)布:
SPI共有4種模式 SPI共有4種模式,我所使用的存儲器需要0和3模式,但本人并不知道3模式到底是怎樣? 只好一一試過來。 PIC18F系列單片機(jī)有兩個位控制實(shí)現(xiàn)4種模式 1:(CKP=0,CKE=0)在時鐘的上升沿發(fā)送數(shù)據(jù),結(jié)果得到數(shù)據(jù)是FE,示波器上有波型,按波型應(yīng)該是AC 2:(CKP=0,CKE=1)在時鐘的下降沿發(fā)送數(shù)據(jù),結(jié)果得到數(shù)據(jù)是FF,示波器上有波型,全高電平 3:(CKP=1,CKE=0)在時鐘的下降沿發(fā)送數(shù)據(jù),結(jié)果得到數(shù)據(jù)是FF,示波器上有波型,全高電平 4:(CKP=1,CKE=1)在時鐘的上升沿發(fā)送數(shù)據(jù),結(jié)果得到數(shù)據(jù)是FE,示波器上有波型,按波型應(yīng)該是AC 如果傳輸完全正確,數(shù)據(jù)應(yīng)該是AC,由此可知,第1,第4次的設(shè)定應(yīng)該是正確的。為什么得到的數(shù)據(jù)是FE 而不是AC?經(jīng)查,我所使用的存儲器是時鐘的上升沿接受數(shù)據(jù),時鐘的下降沿輸出數(shù)據(jù)。而PIC單片機(jī)只能 設(shè)定上升沿或下降沿。 存儲器是先接受指令,后輸出數(shù)據(jù)(也就是說先要時鐘的上升沿有效,再時鐘的下降沿有效) 大家?guī)臀蚁胂耄瑢@種存儲器如何操作?存儲器是AT45DB161B。 |
|
| 3樓: | >>參與討論 |
| 作者: 蘭天白云 于 2004/12/31 10:39:00 發(fā)布:
圖
|
|
| 4樓: | >>參與討論 |
| 作者: 蘭天白云 于 2004/12/31 10:42:00 發(fā)布:
CH[11]接單片機(jī)的SDI腳 |
|
| 5樓: | >>參與討論 |
| 作者: 蘭天白云 于 2005/1/6 10:12:00 發(fā)布:
沒人理我? |
|
| 6樓: | >>參與討論 |
| 作者: martin 于 2005/1/6 10:47:00 發(fā)布:
把SMP位置0看看 |
|
| 7樓: | >>參與討論 |
| 作者: sam zheng 于 2005/1/7 15:37:00 發(fā)布:
looks should be 35 for up-trigger,FE for down-trigger? |
|
| 8樓: | >>參與討論 |
| 作者: 蘭天白云 于 2005/1/17 20:12:00 發(fā)布:
sam zheng 我不懂你說的,用漢語行嗎? |
|
| 9樓: | >>參與討論 |
| 作者: 蘭天白云 于 2005/1/17 20:19:00 發(fā)布:
martin SMP位置0,我試過了,不行。對于AT45DB161B存儲器是否只能軟件模擬SPI? |
|
| 10樓: | >>參與討論 |
| 作者: newer_zhk 于 2005/1/18 10:06:00 發(fā)布:
能不能問下樓主 我現(xiàn)在做的程序也需要捕捉SDI和SCK的信號 可是我不太會用示波器 示波器要怎么設(shè)置啊 |
|
| 11樓: | >>參與討論 |
| 作者: 蘭天白云 于 2005/1/22 19:55:00 發(fā)布:
謝謝martin 再看圖 1:如果上升沿讀進(jìn)數(shù)據(jù)則=10101100(AC) 2: 如果下降沿讀進(jìn)數(shù)據(jù)則=XXXX1X0X X--從圖上看不出 實(shí)際單片機(jī)讀到FE,與以上兩個結(jié)果都不符 如果單片機(jī)讀寫正確,結(jié)果應(yīng)該是同1,而AT45DB161資料上有這么一句 數(shù)據(jù)總是在上升沿寫入AT45DB161,AT45DB161總是在時鐘的下降沿輸出數(shù)據(jù)。 這就更無法理解了。 我查了很多資料,清一色用軟件實(shí)現(xiàn),可能硬件真的不行。 |
|
|
|
| 免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 www.udpf.com.cn 浙ICP證030469號 |