mini2440系統引導(五)串列埠UART

2022-03-27 00:08:50 字數 1788 閱讀 7782

s3c2440a 的通用非同步收發器(uart)配有 3 個獨立非同步序列 i/o(sio)埠,每個都可以是基於中斷或基

於 dma 模式的操作。換句話說,uart 可以通過產生中斷或 dma 請求來進行 cpu 和 uart 之間的資料傳輸。

uart 通過使用系統時鐘可以支援最高 115.2kbps 的位元率。

串列埠通訊對資料格式有如下約定:規定有空閒位、起始位、資料位、奇偶校驗位、停止位。

起始位:先發乙個邏輯「0」訊號,表示傳輸字元的開始;

資料位:緊接在起始位之後。資料位的個數可以是4、5、6、7、8等,從最低位開始傳送,靠時鐘定位。

奇偶校驗位:資料位加上這一位後,使得「1」的位數應為偶數(偶校驗)或(奇校驗),以此校驗資料傳送的正確性。

停止位:它是乙個字元資料的結束標誌。

空閒位:處於邏輯「1」狀態,表示當前線路沒有資料傳送。

uart初始化:1.設定波特率; 2.設定資料傳輸格式;3.選擇通道工作模式;

一.設定波特率:(ubrdiv)

在s3c2440中,通過ubrdiv(p352)暫存器可以設定uart的波特率。uart0、uart1、uart2分別對應ubrdiv0,ubrdiv1、ubrdiv2

到底ubrdiv暫存器中的值與波特率有何關係?

ubrdiv=(int)(uart clock / (buad  rate *16))-1

(uart clock:pclk or fclk/ n or uextclk)

如波特率為115200bps,uart時鐘為40mhz

ubrdiv =(int) (40mhz /(115200*16))-1

二.設定資料傳輸格式(ulcon)

在s3c2440中,通過ulcon,可以設定傳輸格式(有多少個資料位、是否使用校驗位、是奇校驗還是偶校驗,有多少個停止位、是否使用流量控制)

uart0、uart1、uart2分別對應ulcon0、ulcon1、ulcon2.

三.設定通道工作模式(ucon)

在s3c2440中,通過ucon(page342),可以設定uart通道的工作模式,(中斷模式、查詢模式、或dma模式)

uart0、uart1、uart2分別對應ucon0、ucon1、ucon2.

uart傳送緩衝暫存器utxh

uart 接收緩衝暫存器urxh

以下**是初始化uart0的範例

void uart_init(int pclk,int

baud)

mini2440硬體篇之系統時鐘

一般系統的時鐘又外部晶振促發,通過內部電路產生時鐘源。2440時鐘控制邏輯給整個晶元提供了三種時鐘,fclk用於cpu核,hclk用於ahb匯流排裝置,如cpu核 儲存控制器 中斷控制器 ldc控制器 dma pclk用於apb匯流排裝置,如看門狗 iis iic pwm定時器 mmc adc ua...

mini2440系統移植篇之kernel編譯

linux核心的 makefile分為5 個部分 makefile 頂層 makefile config 核心配置檔案 arch arch makefile 具體架構的 makefile scripts makefile.通用的規則等。面向所有的 kbuild makefiles。kbuild ma...

Mini2440串列埠通訊之DMA

dma direct memory access 是一種硬體單元,可以實現在不需要cpu的干預下直接實現記憶體與外設的資料交換,從而可以提高cpu的使用效率,2440有乙個四通道的dma。char buf hello world 儲存資料的源位址 1 初始化 初始化源位址 disrcc0 0 1 0...