2017年1月6日 星期五

DIY - PIC24:PIC24FJ64GA008 DS1302 實時時鐘模塊(六十四)

DIY - PIC24PIC24FJ64GA008 DS1302 實時時鐘模塊(六十四): 

由於在某寶有現成的 DS1302 實時時鐘模塊(DS1302 RTC Module)購買,不用自己銲接,而價格是合理,所以筆者便購買這款 DS1302 RTC 模塊,但不要期望是原廠 Maixm(美信)DS1302 晶片,看到晶片是沒有印上 Maixm(美信)品牌,心裡想法是可以穩定運行便對得起價格了!

DS1302 實時時鐘模塊DS1302 RTC Module
這片 DS1302 RTC 模塊也經是包含後備電池(Backup Battery),安裝了後備鈕形電池(CR2032 3.0V),晶片是 DS1302 0902A4 107AA DIP 8腳封裝,再加上旁邊的石英晶體(Quartz Crystal),振盪頻率是標準 32768Hz,接口是單行 1x5 腳的排針,非常簡單的模塊。

DS1302 實時時鐘RTC模塊的正面
DS1302 實時時鐘RTC模塊的背面
DS1302 實時時鐘RTC模塊規格:
Signal
Description
型號
DS1302
介面
3 I/O
驅動晶片
Maixm(美信)DS1302
電池
CR2032,電壓3V,電流 260mAh
工作電壓
3.3V / 5.0V
工作溫度
0~70
模塊尺寸
44mm × 23mm × 1.6mm
重量
9g

DS1302 實時時鐘RTC模塊 5 I/O 的定義
DS1302 實時時鐘RTC模塊 5 I/O 的定義:
Pin
Signal
Description
描述
1
VCC
2.7 ~ 3.3V
電源輸入
2
GND
Ground
地線
3
CLK
Serial Clock Input
串列時鐘線
4
DAT
Serial Data Input
串列資料線
5
RST
Reset (Active Low)
復位

Microchip PIC24FJ64GA008 DS1302 實時時鐘(RTC模塊 5 I/O 程式定義:
#define DS1302_CLK_TRIS_BIT       TRISFbits.TRISF6  // Set Output=0, Input=1
#define DS1302_CLK_LAT_BIT        LATFbits.LATF6    // Output Data

#define DS1302_RST_TRIS_BIT       TRISEbits.TRISE0  // Set Output=0, Input=1
#define DS1302_RST_LAT_BIT        LATEbits.LATE0    // Output Data

#define DS1302_DAT_TRIS_BIT       TRISFbits.TRISF8 // Set Output=0, Input=1
#define DS1302_DAT_LAT_BIT        LATFbits.LATF8   // Output Data
#define DS1302_DAT_PORT_BIT             PORTFbits.RF8    // Input Data

Microchip PIC24FJ64GA008 DS1302 實時時鐘(RTC模塊 初始化程式
void rtc_init() {

// Start Reset Device
// Set I/O as Input=1/Output=0
RST_TRIS_BIT = 0;   // Reset = Output = 0
DAT_TRIS_BIT = 0;  // Data D0~D7 = Output = 0
CLK_TRIS_BIT = 0;  // SCLK = Output = 0

// Hardward Reset LCD Device
RST_LAT_BIT = 0;  // Reset LCD On = 0 >100ms
CLK_LAT_BIT = 0;
delayms(250);

// Init Device DS1302
unsigned char x;
   write_ds1302(DS1302_CLOCK_BURST,0);  // CMD=0x8E=1000,1110 Data=0000,0000
   write_ds1302(DS1302_TRICKLE,0xA6);    // CMD=0x90=1001,0000 Data=1010,0110 TCS,DS
   x=read_ds1302(DS1302_SECONDS);      // Read 0x81 = Second
   if((x & 0x80)!=0)
   write_ds1302(DS1302_SECONDS,0);      // CMD=0x80=1000,0000 Data=0000,0000 Second=0
}

Microchip PIC24FJ64GA008 DS1302 實時時鐘(RTC)模塊電路
Microchip PIC24FJ64GA008 DS1302 實時時鐘(RTC)模塊電路試驗
2017年 1月 6日 天氣報告
氣溫:21.0@ 21:50
相對濕度:百分之 85%
天氣:大致多雲

沒有留言:

張貼留言