久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

AVR單片機(jī)學(xué)習(xí)(八)SPI串行口與DS1302

作者:zww 1988   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時間:2014年04月18日   【字體:
  • 同步串行口SPI的基本原理
  • DS1302的接口時序圖
  • DS1302的使用
  • M16的SPI的使用
  • SPI基本原理

    spi 它是一種最常用的同步串行接口:同步的意思就是利用時鐘線對串行數(shù)據(jù)進(jìn)行同步在時鐘的上升沿或下降沿極性鎖存數(shù)據(jù).所以它的線至少有時鐘線和數(shù)據(jù)線.

    一、同步串行口

       利用時鐘線對串行數(shù)據(jù)進(jìn)行同步

       上升沿或者下降沿鎖存數(shù)據(jù)

    二、4線SPI:全雙工 (它的兩根數(shù)據(jù)線一個是收一個是發(fā)收發(fā)是可以同時進(jìn)行的,還有2根 SS SCLK SS是用來幀同步的控制線,時鐘是SCLK 上升合下降 

      SS 、SCLK、MOSI、MISO 

    三、3線SPI:半雙工(半雙工,收和發(fā) 用同一根 DIO )

       SS、SCLK、DIO

    四、SPI時序圖

    五、按照時序圖編寫IO程序

    一、上升沿:

    PORTB &= ~(1<<5);

    asm("NOP");

    PORTB |= (1<<5);

    二、下降沿:

    PORTB |=(1<<5);

    asm("NOP");

    PORTB &= ~(1<<5);

    下圖是DS1302的時序圖


    從上圖可以看到它是屬于3線的SPI接口

    讀操作:

          單字節(jié)讀的時序

          在CE它是一個幀同步在空閑的時候它是拉低的,它把CE拉高標(biāo)示這一幀就要開始,然后在每一個SCLK的上升沿(S估計(jì)就是串行的意思CLK時鐘)我們看到每個上升沿上標(biāo)了一個小箭頭然后在每個I/O 數(shù)據(jù)線上,記住前8位叫做輸入地址的這樣的數(shù)據(jù),可以看到在每個時鐘的上升沿講每個數(shù)據(jù)寫入這個DS1302,在這個后8位這個DS1302的I/O口就要有輸入狀態(tài)轉(zhuǎn)變?yōu)檩敵隹梢钥吹阶兂上陆笛厣狭耍栽谧x數(shù)據(jù)的時候是在SCLK的下降沿上進(jìn)行輸出的。
    然后單片機(jī)就可以用I/O將這8位數(shù)據(jù)一位一位的讀回來,一幀2個字節(jié)16位結(jié)束之后呢?CE這根線就要拉低,表示這一幀結(jié)束了

    寫操作:

         這是一個單字節(jié)寫的時序

         它與單字節(jié)讀非常類似的也是CE 這根線的拉高與拉低表示這一幀數(shù)據(jù)的開始和結(jié)束所不同的是這16位數(shù)據(jù)都是要輸入到DS1302里面去的也就是DS1302這個I/O一直是處于輸入狀態(tài)這個數(shù)據(jù)呢每個數(shù)據(jù)都是在每個數(shù)據(jù)的上升沿之中鎖入到DS1302之中、

    這個是DS1302的時序圖,下面看看ATmega16的SPI接口的時序圖

     





    可以看出他有4種模式 上升 下降 有兩種 共4種

    等后面操作詳細(xì)講說時序。

    解釋:相對于串行數(shù)據(jù),SCK的相位合極性有4種組合。CPHA和CPOL控制組合的方式。SPI數(shù)據(jù)傳輸格式見Figture 67與Figure 68,每一位數(shù)據(jù)的移出和移入發(fā)生于SCK不同的信號跳變沿,以保證有足夠的時間使數(shù)據(jù)穩(wěn)定。這個過程在Table 56 和Table 57 有清楚的說明:sample(采樣)rising(上升) setup(設(shè)置)falling(下降) 呵呵英語不好。

    Figure 67 是CPHA =0 時候的傳輸格式

    Figure 68 是CPHA =1 時候的傳輸格式

    ATmega 16 支持以上四種全部的模式 有的是上升沿鎖存有的是下降沿鎖存這四種模式,這四種模式我們一會在說到ATmega 16 的SPI接口的時候會詳細(xì)給你們菜鳥說: 

    好了再看了SPI的時序圖之后要怎樣按照時序?qū)λ幊棠兀?/p>

    在基本的邏輯里面同步都是靠時鐘的上升沿來進(jìn)行同步,也就是說我們需要掌握這個I/O口讓他產(chǎn)生一個時鐘,它上升沿或者下降沿的方法,上升沿就是低跳變到高,我們以PORTB 它的第五位作為輸出口為例來進(jìn)行講解,產(chǎn)生上升沿首先它原先必須要是低輸出一個低電平0  PORTB =~(1<<5)  拉低  然后一個延遲延遲也可以去掉要看接受方的SPI接受速度是怎么樣的了,不過一般的器件它的SPI速率都是非常高的,我們沒有必要考慮單片機(jī)是否過快對它有所影響因此這個asm("NOP");這條語句可以去掉不過這個是什么意思呢?asm 在C語言中插入一條匯編指令,NOP呢?NOP是匯編語言中的一條空指令表示的是CPU在接下來的一個CPU時鐘里面它是什么都不干,干等著這么一個CPU時鐘周期,所以就實(shí)現(xiàn)一個非常小的延時。然后呢再將PORTB |=(1<<5)  它的第五位拉高,這樣就產(chǎn)生一個上升沿,同理下下降沿也是一樣的。接下來咱么講一下DS1302的時序圖吧。

    DS1302的接口時序圖與AVR的接線圖

    • 時序圖

         見DS1302的官方技術(shù)文檔

    •   與AVR之間的接線圖

            3線SPI與4線SPI的互聯(lián)

     


    這個時序圖上面已經(jīng)說過了,那么這個DS1302屬于3線的SPI 而ATmega 16 是4線的SPI接口那么3線合4線之間怎樣進(jìn)行互聯(lián)呢?我們看以采用下面的這種方法。

    來看下電路圖


    上圖的PB5  PB6   PB7 是單片機(jī)的三個I/O口。 可以看他它的第二功能是SPI功能

    PB5可以看到MOSI   M是主  S 是從 意思就是主機(jī)輸出 從機(jī)輸入

    同理PB6 MISO  是主機(jī)輸入 從機(jī)輸出 也就是AVR的SPI正常工作的時候PB6這個引腳它應(yīng)該是處于一個輸入的狀態(tài)PB5應(yīng)該是一個輸出的狀態(tài)。我們就將PB5 與PB6之間串上一個10K的電阻然后再將PB6直接接到I/O上,下面我們可以簡單的分析一下原理圖是怎樣正常工作的,首先這個DS1302對它處于寫的狀態(tài)的時候呢,DS1302的I/O口是處于輸入的,而PB6呢也是一個輸入口始終是一個輸入口。

     

     

     

     



    關(guān)閉窗口

    相關(guān)文章

    主站蜘蛛池模板: 国产乱人伦精品一区二区 | 欧美中文一区 | 网页av| 亚洲免费观看视频 | 亚洲一区二区在线电影 | 日韩精品一区二区三区在线播放 | 欧美成年黄网站色视频 | 国产一区二区三区四区三区四 | 国产精品免费视频一区 | 中文在线观看视频 | 国产一区二区精品在线观看 | 色婷婷综合久久久中字幕精品久久 | 久久精品国产一区 | 精品视频一区二区 | 精品二区视频 | 日韩在线欧美 | 一区二区三区四区电影视频在线观看 | 日韩视频一区二区 | 亚洲天堂精品一区 | 国产91视频一区二区 | 午夜在线影院 | 精品免费国产 | 日韩欧美在线观看 | 国产一二三区电影 | 日日操夜夜干 | www.黄色片视频 | 久久亚洲一区二区三区四区 | 四虎影院在线观看免费视频 | 日韩性在线 | 99re在线免费视频 | 古装三级在线播放 | 中文字幕在线视频观看 | 亚洲午夜精品 | 福利精品在线观看 | www.国产精品 | 欧美一区二区三区在线 | 91国内视频在线 | gav成人免费播放视频 | 男人的天堂avav | 嫩草视频网 | 日韩欧美在线观看 |