配置M5113波特率實現高速數據傳送.pdf
實現230400/460800bps波特率高速數據傳送
M6117系列板卡上使用的多路I/O芯片是ALi M5113。它支持快速通用異步收發,最高波特率可達460800 bps。下面是實現這種功能的DOS C語言范例代碼:
/* DM&P/ICOP M6117D 系列板卡上ALi M5113范例代碼。*/
#
include <conio.h>
void M5113_Write(unsigned char cIdx, unsigned char cData)
{
outportb(0x3f1, 0x51);
outportb(0x3f1, 0x29);
inportb(0x3f1);
outportb(0x3f1, cIdx);
outportb(0x3f1, cData);
}
unsigned char M5113_Read(unsigned char cIdx)
{
outportb(0x3f1, 0x51);
outportb(0x3f1, 0x29);
inportb(0x3f1);
outportb(0x3f1, cIdx);
return inportb(0x3f1);
}
void main()
{
unsigned char cTemp;
/* 上面提到的ALi M5113寄存器數據的相關資料在http://www.dmp.com.tw/tech/dmp-hw/misc/m5113.pdf CR8和CR9的16,17頁上。*/
/* Enable UART1 hi-speed baud rate */
cTemp = M5113_Read(0x88);
/* 設置通用異步收發器1 達到最大波特率。*/
cTemp |= 0x20; /* set CR8 bit5 to 1 */ /* 設置CR8 bit5到1 */
M5113_Write(0x88, cTemp);
/* 設置通用異步收發器2 達到最大波特率 */
cTemp = M5113_Read(0x99);
cTemp |= 0x20; /* set CR9 bit5 to 1 */ /* 設置 CR9 bit5到1 */
M5113_Write(0x99, cTemp);
}
/* 參考表格 5-5, 用戶在初始化UART的過程中:
使用32770 作為除法因子達到230400 的波特率。
使用30769 作為除法因子達到460800 的波特率。
*/
文章版權歸西部工控xbgk所有,未經許可不得轉載。