九鼎创展论坛中文版English
登录 | 立即注册 设为首页收藏本站 切换到宽版
查看: 6787|回复: 1
打印 上一主题 下一主题

S3C2442串口使用

[复制链接]
跳转到指定楼层
楼主
发表于 2012-7-19 11:46:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
S3C2442使用心得
S3C2442有五种工作模式:
正常模式,慢速模式,空闲模式,停止模式,睡眠模式。
慢速模式下不使用PLL,从而降低了功耗。
空闲模式下FCLK停止工作,只给CPU core供电。这时任何的中断都能使CPU从空闲模式切换到主模式正常工作。
停止模式所有时钟全部关闭,外围器件的时钟也通过禁能PLL而被关掉。这时通过RTC或RTC alarm能够从停止模式唤醒。
睡眠模式下关断了内部电源。这时片内除了唤醒逻辑单元和CPU外电源全部关闭。CPU用于开关机的管理,这时EINT[0..15]或RTC的alarm能够唤醒睡眠模式。睡眠模式下,VDDi,VDDiarm,VDDMPLL和VDDUPLL将会关闭,这些电源受控于PWREN管脚。如果PWREN为高,VDDi,VDDiarm将会受外部的电压调整器供电。这里外部的电压调整器受控于PWREN脚。当PWREN脚为低电平时,VDDi和VDDiarm都会关闭。睡眠模式下如果不使用触摸屏,XP,XM,YP,YM应该悬空,不能接地。
S3C2442串口使用方法:
S3C2442自带三个串口,使用方法基本上相同,这里描述使用串口0的详细过程。
要想正确使用处理器的串口,必须正确设置串口的时钟。CPU有四个时钟需要注意:Fin,FCLK,HCLK,PCLK。其中Fin即外部晶振产生的频率。这里假定使用外部晶振模式,如果外部接一个12M的晶振,则Fin=12MHz。FCLK与Fin有一定的对应关系。当处理器工作在SLOW MODE下时,Fin=FCLK。这时禁能了PLL。当处理器工作在NOMOALMODE下时,FCLK=MPLL,即PLL倍频所产生的频率。这里倍频由寄存器MPLLCON设置。一般这些设置放在启动代码里面。具体计算公式为:
Mpll = (2 * m * Fin) / (p * 2s)
m = (MDIV + 8), p = (PDIV + 2), s = SDIV
使用串口时需要正确设置串口的波特率。其设置公式如下:
UBRDIVn = (int)( UART clock / ( buad rate x 16) ) –1
可见,寄存器UBRDIVn的值依赖于波特率和串口时钟。串口时钟又依赖于PCLK,PCLK/n,UEXTCLK。具体串口时钟由上述三种中的哪一个决定,是由寄存器uCON[11..10]决定。当为00,10时选择PCLK,01时选择UEXTCLK,11时选择FCLK/n。为11时应配合uCON[15..12]使用。
例如:uCON[11..10]选择00,uCON[15..12]选择00,则UART clock为PCLK。现假设外部晶振为12MHz,设置UPLLCON将频率倍频到100MHz,则可以设置m=100,p=6,s=2。即MDIV=92,PDIV=4,SDIV=2。这样FCLK=100MHz。PCLK与FCLK有一个对应关系,需要设置寄存器CLKDIVN。具体FCLK:HCLKCLK关系如下表:
  
CLKDIVN
  
FCLK:HCLKCLK
0
1:1:1
1
1:1:2
2
1:2:2
3
1:2:4
4
1:4:4
5
1:4:8
6
1:3:3
7
1:3:6
如果CLKDIVN=7,则PCLK=FCLK/7,这样已知PCLK,如果设置波特率为115200,则可以计算出UBRDIV如下:
rUBRDIV0=PCLK/16/115200-1。
这些寄存器以及参数都正确设置后,就可以正确的使用串口了。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳市九鼎创展科技官方论坛 ( 粤ICP备11028681号-2  

GMT+8, 2024-4-20 17:36 , Processed in 0.016896 second(s), 16 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表