a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > AVR單片機與串行時鐘器件DS3231的應用設計

AVR單片機與串行時鐘器件DS3231的應用設計

作者: 時間:2012-06-07 來源:網絡 收藏

BIT6位:電池備份的方波使能(BBSOW)。當設定為邏輯1并且由VBAT引腳供電時,在沒有加載VCC的情況下,該位使能方波輸出。當BB-SQW設定為邏輯0時,若VCC降至低于電源故障門限值,則INT/SQW引腳變為高阻抗。初次上電時,該位清零(邏輯0)。

BIT5位:轉換溫度(CONV)。該位置為1時,強制溫度傳感器將溫度轉換成數字,并執行TCXO算法更新振蕩器的電容陣列。只在空閑期間有效。狀態位BSY=1時,禁止設定轉換溫度位。用戶在強制控制器開始新的TCXO操作之前。應檢查狀態位BSY。用戶啟動的溫度轉換不影響內部64 s更新周期。用戶啟動的溫度轉換在大約2 ms內不會影響BSY位。CONV位從寫入開始直到轉換完成一直保持為1,轉換完后,CONV和BSY均變為0。在監視用戶啟動轉換狀態時,應使用CONV位。

BIT4和BIT3位:頻率選擇(RS2和RS1),初次上電時,BIT4和BIT3設置為邏輯1。方波使能時用于控制方波輸出的頻率。RS1、RS2的邏輯值與方波輸出頻率的關系如表2所列。

點擊在新窗口中瀏覽產品

BIT2位:中斷控制(INTCN)。該位控制INT/SQW信號。INTCN置為0時,INT/SQW引腳輸出方波;INTCN置為1時,若計時寄存器與任一個鬧鐘寄存器相匹配,則會觸發INT/SQW信號(如果也使能鬧鐘的話)。匹配時相應的鬧鐘標志總是置位,而與INTCN位的狀態無關。初次上電時,INTCN位置為邏輯1。

BIT1位:鬧鐘2中斷使能(A2IE)。該位置為邏輯1時,允許狀態寄存器中的鬧鐘2標志位(A2F)觸發INT/SQW信號(當INTCN=1時)。當A2IE位置為0或者INTCN置為0時,A2F位不啟動中斷信號。初次上電時,A2IE位清零(邏輯0)。

BIT0位:鬧鐘1中斷使能(A1IE)。該位置為邏輯1時,允許狀態寄存器中的鬧鐘1標志位(A1F)觸發INT/SQW信號(當INTCN=1時)。當A1IE位置為0或者INTCN置為0時,A1F位不啟動INT/SQW信號。初次上電時,A1IE位清零(邏輯0)。

2.3 的數據交換及其格式

在I2C總線上作為從器件。通過執行START命令并且在驗證器件地址后才可以訪問。然后寄存器可以被訪問直到執行一個STOP命令為止。

所有在I2C總線上傳輸的地址包長度均為9位,它包括7個地址位,1個R/W控制位和1個應答位ACK,如果R/W為1,則執行讀操作;如果R/W為0,則執行寫操作。從機尋址后,必須在第9個SCL(ACK)周期通過拉低SDA做出應答,若從機忙或者無法響應主機,則應在ACK周期內保持SDA為高。然后主機發出STOP狀態或者REP START狀態重新開始發送。地址包包括從機地址和稱為SLA+R或者SLA+W的READ或者WRITE位。地址字節的MSB首先被發送。所有1111xxxx的地址均保留。以便將來使用。

所有在I2C總線上傳送的數據包長度均為9位,它包括8個數據位和1個應答位。在數據傳送中,主機產生時鐘及START與STOP狀態,而接收器響應接收。應答是由ACK在第9個SCL周期拉低SDA實現的。如果接收器拉高SDA,則發送NACK信號。如果接收器由于某種原因不能接收更多數據,應在最后一個數據字節后發出NACK信號告訴發送器停止發送,首先發送數據的MSB。

DS3231通過雙向數據線SDA和時鐘線SCL與外界進行數據交換,從其時序關系可看出,DS3231有兩種操作方式:

(1) 寫操作:把SDA數據線上的數據按RAM指定的首地址(Word Address)依次寫入N個字節數據。主器件首先傳輸從器件的地址字節,緊跟著是一系列數據字節。從器件每收到一個字節后返回一個應答位ACK。其格式如圖2所示。

點擊在新窗口中瀏覽產品

(2) 讀操作:按RAM指定的首地址依次讀取N個字節數據,主器件首先傳送從器件地址。從器件返回一個應答位。隨后是從器件傳輸的一系列數據字節。主器件收到除最后一個字節外的所有字節后返回一個應答位。在收到最后一個字節后,返回一個“非應答位”NACK。其格式如圖3所示。

點擊在新窗口中瀏覽產品

上述讀寫操作信號中:S為起始信號(START),1101 000為DS1307的口地址,A為應答信號ACK,A為非應答信號NACK,P為停止信號(STOP)。主器件產生所有的和START、STOP條件,通過傳輸STOP和重發START條件使其停止。

3 DS3231與的硬件接口

ATmega系列單片機片內集成2線制串行接口模塊。Atmel稱其為TWI接口。事實上,TWI與Philips的I2C總線是一回事。AVR硬件實現的TWI接口是面向字節和基于中斷的,相對軟件模擬I2C總線有更好的實時性和代碼效率,引腳輸入部分還具有毛刺抑制單元,可去除高頻干擾。圖4是DS3231與ATmega8的硬件接口電路原理圖。

點擊在新窗口中瀏覽產品

4 DS3231與的軟件接口

軟件設計中,首先要對AVR單片機ATMega8與實時鐘器件DS3231進行初始化。給DS3231準確的日期和時間。不論主控模式還是被控模式,都應當將TWI控制寄存器TWCR的TWEN位置為1,從而使能TWI模塊。TWEN位被置位后,I/O引腳 PC5和PC4轉換成SCL和SDA,對TWI 控制寄存器TWCR的操作可在總線上產生START和STOP信號,從START到STOP認為是主控模式的行為。將TWI地址寄存器TWAR的第一位TWGCE置為有效,同時將TWI控制寄存器TWCR的TWEA(應答允許)位置1,TWI模塊就可以在總線上對其尋址做出應答,并置狀態字。對TWI模塊的操作均為寄存器的讀寫操作,Avr-libc沒有提供專門的API,可以利用基于US-ART的標準I/O實現對DS3231讀寫日歷和時鐘的操作。下面的程序是DS3231與AVR單片機接口部分代碼:



評論


相關推薦

技術專區

關閉