1擴3串口擴展芯片數(shù)據(jù)手冊_第1頁
1擴3串口擴展芯片數(shù)據(jù)手冊_第2頁
1擴3串口擴展芯片數(shù)據(jù)手冊_第3頁
1擴3串口擴展芯片數(shù)據(jù)手冊_第4頁
1擴3串口擴展芯片數(shù)據(jù)手冊_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、SP2327/8DP 數(shù)據(jù)應(yīng)用手冊1述SP2327/8DP 系采用低功耗CMOS 工藝設(shè)計的 UART 多串口擴展可實現(xiàn)將一個較高波特率 UART 串口擴展為三個較低波特率 UART 串口 它主要是為解決目前大多數(shù) 8 位和 16 位單片機 UART 接口太少絕大多數(shù)都只有一個UART 口而特別設(shè)計的串口擴展同時該也很好的解決了許降低開發(fā)成本和生產(chǎn)多使串口單片機的串口配置問題 明顯縮短開發(fā)周期成本23性寬工作電壓低工作電流寬工作速率24V55V典型電流為 37mA三個子串口都為75bps4800bps4800bps波特率設(shè)置簡單 不需設(shè)置只需更改輸入時鐘頻率即可四個 UART 串口都為全雙工異

2、步工作模式具有節(jié)電模式進入節(jié)電模式后典型靜態(tài)電流小于 12uA任意一個 RX 端口有數(shù)據(jù)出現(xiàn)時自動喚醒SP2327/8DP每個串口的數(shù)據(jù)輸出波特率誤差小 典型誤差小于 0.375%每個串口的數(shù)據(jù)接收波特率范圍寬 小于 2.5%時所有數(shù)據(jù)能可靠接收數(shù)據(jù)傳輸誤碼率極低 小于 10 - 9(接收的數(shù)據(jù)波特率誤差小于 2%時)用領(lǐng)域采用電池供電的或通信設(shè)備集中監(jiān)視及控制系統(tǒng)或設(shè)備高穩(wěn)定性低速 MODEM 池 多路MODEM應(yīng)用取代部分多串口卡應(yīng)用 降低系統(tǒng)成本 減少串口連接電纜數(shù)量提高系統(tǒng)穩(wěn)定性和可靠性其他對成本 功耗敏感的多路數(shù)據(jù)傳輸應(yīng)用4多路數(shù)據(jù)需要同時進行電氣腳說明傳輸?shù)臄?shù)據(jù)傳輸應(yīng)用圖 1DIP

3、 和 SOIC 封裝第圖 2SSOP 封裝表 1第管 腳 名稱管 腳 編 號( DIPSOIC )管腳編號( SSOP )管 腳類 型管 腳 描 述ADRI01820I串口 3 發(fā)送數(shù)據(jù)地址線 0ADRI11719I串口 3 發(fā)送數(shù)據(jù)地址線 1ADRO011O串口 3 接收數(shù)據(jù)地址線 0ADRO122O串口 3 接收數(shù)據(jù)地址線 1RX089I串口 0 數(shù)據(jù)接收TX0910O串口 0 數(shù)據(jù)發(fā)送RX11112I串口 1 數(shù)據(jù)接收TX11011O串口 1 數(shù)據(jù)發(fā)送RX21314I串口 2 數(shù)據(jù)接收TX21213O串口 2 數(shù)據(jù)發(fā)送RX367I串口 3 數(shù)據(jù)接收TX378O串口 3 數(shù)據(jù)發(fā)送OSCI1

4、618I時鐘輸入OSCO1517O時鐘輸出VCC3414341516-電源GND556-參考地5設(shè)計選型SP232 XXXABC表 26功能框圖圖 3 內(nèi)部功能框圖第代碼內(nèi)容A一個 UART 串口擴展為三個UART 串口芯片系列B發(fā)送 接收的數(shù)據(jù)位為 7 位數(shù)據(jù)發(fā)送 接收的數(shù)據(jù)位為 8 位數(shù)據(jù)CDP雙列直插封裝SO雙列寬體貼片封裝SS雙列縮小窄體貼片封裝7應(yīng)用說明SP2327DP 適用于 7 位數(shù)據(jù)位的應(yīng)用SP2328DP 適用于 8 位數(shù)據(jù)位的應(yīng)用串口 0串口 2 為三個較低波特率的子串口串口 3 為較高波特率的母串口 它的數(shù)據(jù)傳輸速率是子串口的 4 倍 例如如輸入的時鐘頻率為 4.00MH

5、z則串口 3 的波特率為 4800bps串口 0串口 2 的波特率為 4800bps/4=1200bps如果需要在串口 0串口 2 上獲得波特率 K則只需按下面的公式輸入的時鐘頻率=4.00*K/1200改變輸入時鐘頻率即可10分別對應(yīng)三個子串它也是SP2327/8DP 等的功ADRI1ADRI0 為下行地址線0001口串口 0串口 2能配置地址地址線11為串口 3 的地址具體應(yīng)用參見例子需要先將ADRI1 置為的 UART 口送出即可如果上位機需要將數(shù)據(jù)0X28由串口 2 發(fā)送出去 則1ADRI0 置為 0再將數(shù)據(jù) 0X28通過上位機向串口 3地址為11寫入數(shù)據(jù)0X35或0XB50X55芯片

6、將實現(xiàn)芯片軟件復(fù)位 復(fù)位時間為 21.75mS如果寫入的數(shù)據(jù)為或 0XD5Wake up則芯片將進入Sleep模式條件為向串口 0串口 3 中的任意一個串口發(fā)送數(shù)據(jù)由于 SP2327/8XX 的喚醒時間需要 25mS 左右 用于芯片喚醒的數(shù)據(jù)將不能夠被接收建議芯片喚醒處理流程 先發(fā)送一個用于喚醒芯片的數(shù)據(jù) 建議發(fā)送0X63延時至少 25mS 后即可進行有效的數(shù)據(jù)傳輸注 由于串口 3 的波特率是串口 0串口 1串口 2 的波特率的 4 倍 同時由于沒有數(shù)據(jù)發(fā)送完標志為了快速可靠的傳輸大量的數(shù)據(jù)可以采用下面的方法完全有效的解決波特率不匹配的問題如上位機只有數(shù)據(jù)需要由串口 1 發(fā)送則可先向串口 2

7、發(fā)送完有效的數(shù)據(jù)地址 2 為01個字節(jié)的無用數(shù)據(jù)后再向地址11串口 3 的地址 連續(xù)發(fā)送三如0XFF0XB5但不能發(fā)送以下的四個數(shù)據(jù)0X350X550XD5其后再發(fā)送下一個有效的數(shù)據(jù) 再向串口 3 發(fā)送三個字節(jié)無用數(shù)據(jù)以此方式循環(huán)發(fā)送有效數(shù)據(jù)即可如果上位機有數(shù)據(jù)需要同時向兩個子串口發(fā)送則可以先分別向兩個子串口發(fā)送有效的數(shù)據(jù)后 再向串口 3 發(fā)送兩個字節(jié)的無用數(shù)據(jù) 再循環(huán)發(fā)送兩個子串口的有效數(shù)據(jù)即可如果上位機有數(shù)據(jù)需要同時向三個子串口發(fā)送則可以在分別發(fā)送完三個子串口的有效數(shù)據(jù)后再向串口 3 發(fā)送一個字節(jié)的無用數(shù)據(jù)送三個子串口的有效數(shù)據(jù)即可再循環(huán)發(fā)具體應(yīng)用可以參見后面我公司提供的例子程序在應(yīng)用中為

8、了節(jié)省單片機有限的資源 提高數(shù)據(jù)傳輸速率和可靠性 建議不要采用定時中斷方式處理上位機串口數(shù)據(jù)發(fā)送中斷時間太短如果定時中斷時間太長則數(shù)據(jù)的有效傳輸速率將降低如果定時將發(fā)生數(shù)據(jù)丟失問題ADRO1ADRO0 為上行數(shù)據(jù)的串口地址線對應(yīng)串口 0串口 1串口 2000110分別串口 3 接收數(shù)據(jù)處理 當(dāng)上位機的UART 接收到由串口 3 送來的數(shù)據(jù)時立即讀取地址線 ADRO1 和 ADRO0 的狀態(tài)到的數(shù)據(jù)是由哪個串口上傳的根據(jù)兩個地址線的狀態(tài)即可判斷接收第8SP2327/8XX 極限參數(shù)工作溫度 0C70C 或-40C 85C 可選-65C125C存儲溫度最高工作電壓 6.0V9直流電氣特性測試溫度

9、0C70CVCC=5.0V5%GND=0V表 3第特性最小值典型值最大值單位測試條件工作電壓2.45.5V輸入低電平GND0.8V輸入高電平2.0VCCV輸入漏電流-1.00AInput pin at VCC or GND輸出低電平0.6VIOL=5.0mA輸出高電平3.7VIOH=4.0 mA輸入時鐘 1DC20.0MHzVCC=5.0V輸入時鐘 2DC16.0MHzVCC=3.3V工作電流 11.21.7mAFosc=4.0MHzInput pin at VCC Output pin floating工作電流 23.76.3mAFosc=16.0MHz Input pin at VCCOu

10、tput pin floating睡眠電流0.51.2AInput pin at VCC Output pin floating10典型應(yīng)用電路圖 4第11封裝信息DIP 封裝圖 5 DIP 封裝數(shù)據(jù)第SIOC 封裝圖 6SOIC 封裝數(shù)據(jù)第SSOP 封裝圖 7 SSOP 封裝數(shù)據(jù)第例子程序/*= REG51.HHeader file feneric 80C51 and 80C31 microcontroller.Copyright (c) 1988-2001 Keil Elektronik GmbH and Keil Software, Inc.s.=*/* BYTE Register */

11、sfr P0 sfr P1 sfr P2 sfr P3= 0 x80;= 0 x90;= 0 xA0;= 0 xB0;sfr PSW = 0 xD0; sfr ACC = 0 xE0; sfr B= 0 xF0; sfr SP = 0 x81; sfr DPL = 0 x82; sfr DPH = 0 x83; sfr PCON = 0 x87; sfr TCON = 0 x88;sfr TMOD = 0 x89; sfr TL0 = 0 x8A; sfr TL1 = 0 x8B; sfr TH0 = 0 x8C; sfr TH1 = 0 x8D; sfr IE = 0 xA8; sfr IP

12、 = 0 xB8;sfr SCON = 0 x98; sfr SBUF = 0 x99;/* BIT Register */* PSW sbit CY sbit AC sbit F0 sbit RS1 sbit RS0 sbit OV*/= 0 xD7;= 0 xD6;= 0 xD5;= 0 xD4;= 0 xD3;= 0 xD2;sbit P= 0 xD0;/* TCON */sbit TF1 = 0 x8F; sbit TR1 = 0 x8E; sbit TF0 = 0 x8D; sbit TR0 = 0 x8C; sbit IE1 = 0 x8B; sbit IT1 = 0 x8A; s

13、bit IE0 = 0 x89;第sbit IT0 = 0 x88;/* IE */sbit EA = 0 xAF; sbit ES = 0 xAC; sbit ET1 = 0 xAB; sbit EX1 = 0 xAA; sbit ET0 = 0 xA9; sbit EX0 = 0 xA8;/* IP */sbit PS = 0 xBC; sbit PT1 = 0 xBB; sbit PX1 = 0 xBA; sbit PT0 = 0 xB9; sbit PX0 = 0 xB8;/* P3 */sbit RD = 0 xB7; sbit WR = 0 xB6; sbit T1 = 0 xB5

14、; sbit T0 = 0 xB4; sbit INT1 = 0 xB3; sbit INT0 = 0 xB2; sbit TXD = 0 xB1; sbit RXD = 0 xB0;/* SCON */sbit SM0 sbit SM1 sbit SM2 sbit REN sbit TB8= 0 x9F;= 0 x9E;= 0 x9D;= 0 x9C;= 0 x9B;sbit RB8 = 0 x9A; sbit TI = 0 x99; sbit RI = 0 x98;/*=SP2328XX.c head file SP2328XX serial communication example.

15、Author: Chen Wei, 2002-4-22=*/#ifndef SP2328XX_ #define SP2328XX_/*structure of recieved data from SP2328XX*/ struct REC_DATAunsigned char m_PortIdx; /* index of sub serial port of SP2328XX,range of 02 */char m_Data;/* data of corresponding serial port */;第/* void InitSP2328XX(unsigned long nFosc, u

16、nsigned long nBRate)initialize the SP2328XX, mainly set the baud rate of hosts serial port.nFosc - nBRate-frequency of crystal oscillatory. baud rate*/void InitSP2328XX(unsigned long nFosc, unsigned long nBRate);/* void SP2328Reset(void)reset all the serial port of SP2328XX.*/void SP2328Reset(void);

17、/* void SP2328SetSleep(void)set the SP2328XX go into sleep mode.*/void SP2328SetSleep(void);/* struct REC_DATA SP2328ReceiveData(void)get one byte data from SP2328XX, store the data into a structure as struct REC_DATA.member m_PortIdx of the structure is the index of sub serial port of SP2328XX,and

18、member m_Data of it is the data of the corresponding sub serial port of SP2328XX*/ struct REC_DATA SP2328ReceiveData(void);/* void SP2328SendData(char sdata, unsigned char nPortIdx)send one byte data to a sub serial port of SP2328XX.sdata- nPortIdxthe data that sended.-the index of sub serial port o

19、f SP2328XX.*/void SP2328SendData(char sdata, unsigned char nPortIdx);#endif /* SP2328XX_ */第/*=SP2328XX.c source file SP2328XX serial communication example. for MCS51 MCUAuthor: Chen Wei, 2002-4-22=*/#include #include SP2328XX.h/* 1- compile with main(), 0- compile without main() */ #define _SUB_MOD

20、ULE_DEBUG_ 0#define ABS(val) (val)=0)?(val):(0-(val)sbit ADRO_0 sbit ADRO_1 sbit ADRI_0 sbit ADRI_1= P34= P35= P33= P32; /* connect to ping ADRO0 of SP2328XX */; /* connect to ping ADRO1 of SP2328XX */; /* connect to ping ADRI0 of SP2328XX */; /* connect to ping ADRI1 of SP2328XX */* void InitSP2328

21、XX(unsigned long nFosc, unsigned long nBRate)initialize the SP2328XX, mainly set the baud rate of hosts serial port.nFosc - nBRate-frequency of crystal oscillatory. baud rate*/ void InitSP2328XX(unsigned long nFosc, unsigned long nBRate)unsigned char TH_VAL_SMOD0,TH_VAL_SMOD1; float B_RATE_SMOD0,B_R

22、ATE_SMOD1;float B_RATE_ERR_SMOD0,B_RATE_ERR_SMOD1;unsigned char SMOD_VAL,TH_VAL,TL_VAL;ADRO_0 = 1;ADRO_1 = 1;ADRI_0 = 1;ADRI_1 = 1;TH_VAL_SMOD0 = 256-(unsigned char)(float)(1*nFosc)/(float)(32*12*nBRate); TH_VAL_SMOD1 = 256-(unsigned char)(float)(2*nFosc)/(float)(32*12*nBRate);B_RATE_SMOD0 = (float)

23、(1*nFosc)/(float)(256-TH_VAL_SMOD0)*32*12); B_RATE_SMOD1 = (float)(2*nFosc)/(float)(256-TH_VAL_SMOD1)*32*12);B_RATE_ERR_SMOD0 = ABS(B_RATE_SMOD0-nBRate); B_RATE_ERR_SMOD1 = ABS(B_RATE_SMOD1-nBRate);if( B_RATE_ERR_SMOD0 = B_RATE_ERR_SMOD1 )SMOD_VAL = 0;TH_VAL = TH_VAL_SMOD0;第elseSMOD_VAL = 1;TH_VAL =

24、 TH_VAL_SMOD1;TL_VAL = TH_VAL;/* timer 1 */TMOD=TMOD & 0 x0f;TMOD=TMOD | 0 x20; TH1=TH_VAL;TL1=TL_VAL; TR1=1;/* serial port */ PCON=(PCON&0 x7f)|(SMOD_VAL7); SM0=0;SM1=1; SM2=0; REN=1;/* set value of SMOD bit */* mode 1: 10 bit async */* enable receive */* interrupt */ ES=0;/*EA=0;*/ SP2328Reset();/

25、* void SP2328Reset(void)reset all the serial port of SP2328XX.*/ void SP2328Reset(void)TI = 0;ADRO_0 = 1;ADRO_1 = 1; SBUF = 0 x35;while(!TI);第/* void SP2328SetSleep(void)set the SP2328XX goo sleep mode.*/ void SP2328SetSleep(void)TI = 0;ADRO_0 = 1;ADRO_1 = 1; SBUF = 0 x55;while(!TI);/* struct REC_DA

26、TA SP2328ReceiveData(void)get one byte data from SP2328XX, store the data o a structure as struct REC_DATA.member m_PortIdx of the structure is the index of sub serial port of SP2328XX,and member m_Data of it is the data of the corresponding sub serial port of SP2328XX*/ struct REC_DATA SP2328Receiv

27、eData(void)struct REC_DATA rdata;while(!RI); rdata.m_Data = SBUF;rdata.m_PortIdx = (unsigned char)ADRO_1) 1) | (unsigned char)ADRO_0);RI = 0;return(rdata);第/* void SP2328SendData(char sdata, unsigned char nPortIdx)send one byte data to a sub serial port of SP2328XX.sdata- nPortIdxthe data that sended.-the index of sub serial port of SP23

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論