音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

這樣做為什么得不到正確數(shù)據(jù)?

作者:蘭天白云 欄目:單片機
這樣做為什么得不到正確數(shù)據(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;     //標志位清零
    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三個引腳,當讀進一個數(shù)據(jù)時,SDI引腳波型是10101100,但x卻=FE。各位朋友,看一看這函數(shù)有沒有問題?

2樓: >>參與討論
蘭天白云
SPI共有4種模式
SPI共有4種模式,我所使用的存儲器需要0和3模式,但本人并不知道3模式到底是怎樣?
只好一一試過來。
PIC18F系列單片機有兩個位控制實現(xiàn)4種模式
1:(CKP=0,CKE=0)在時鐘的上升沿發(fā)送數(shù)據(jù),結果得到數(shù)據(jù)是FE,示波器上有波型,按波型應該是AC
2:(CKP=0,CKE=1)在時鐘的下降沿發(fā)送數(shù)據(jù),結果得到數(shù)據(jù)是FF,示波器上有波型,全高電平
3:(CKP=1,CKE=0)在時鐘的下降沿發(fā)送數(shù)據(jù),結果得到數(shù)據(jù)是FF,示波器上有波型,全高電平
4:(CKP=1,CKE=1)在時鐘的上升沿發(fā)送數(shù)據(jù),結果得到數(shù)據(jù)是FE,示波器上有波型,按波型應該是AC
如果傳輸完全正確,數(shù)據(jù)應該是AC,由此可知,第1,第4次的設定應該是正確的。為什么得到的數(shù)據(jù)是FE
而不是AC?經(jīng)查,我所使用的存儲器是時鐘的上升沿接受數(shù)據(jù),時鐘的下降沿輸出數(shù)據(jù)。而PIC單片機只能
設定上升沿或下降沿。
存儲器是先接受指令,后輸出數(shù)據(jù)(也就是說先要時鐘的上升沿有效,再時鐘的下降沿有效)
大家?guī)臀蚁胂,對這種存儲器如何操作?存儲器是AT45DB161B。

3樓: >>參與討論
蘭天白云

 

4樓: >>參與討論
蘭天白云
CH[11]接單片機的SDI腳
 
5樓: >>參與討論
蘭天白云
沒人理我?
 
6樓: >>參與討論
martin
把SMP位置0看看
 
7樓: >>參與討論
sam zheng
looks should be 35 for up-trigger,FE for down-trigger?
 
8樓: >>參與討論
蘭天白云
sam zheng
我不懂你說的,用漢語行嗎?

9樓: >>參與討論
蘭天白云
martin
SMP位置0,我試過了,不行。對于AT45DB161B存儲器是否只能軟件模擬SPI?

10樓: >>參與討論
newer_zhk
能不能問下樓主
我現(xiàn)在做的程序也需要捕捉SDI和SCK的信號
可是我不太會用示波器   
示波器要怎么設置啊

11樓: >>參與討論
蘭天白云
謝謝martin
再看圖
1:如果上升沿讀進數(shù)據(jù)則=10101100(AC)
2: 如果下降沿讀進數(shù)據(jù)則=XXXX1X0X  X--從圖上看不出
實際單片機讀到FE,與以上兩個結果都不符
如果單片機讀寫正確,結果應該是同1,而AT45DB161資料上有這么一句
數(shù)據(jù)總是在上升沿寫入AT45DB161,AT45DB161總是在時鐘的下降沿輸出數(shù)據(jù)。
這就更無法理解了。
我查了很多資料,清一色用軟件實現(xiàn),可能硬件真的不行。 

參與討論
昵稱:
討論內(nèi)容:
 
 
相關帖子
急,求救~~~~~~~~``
緊急求援 !! 18F452 仿真器 ....
解釋一下弱電上拉是怎么回事?
晶振工作不正常,請問如何解決?
LIN2.0
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號