上面的12节里,已经讲了2440有关串口的设置和操作。本来,2440,6410和210的串口操作应该是几乎一样的。在进行6410和210的设置的时候,发现在波特率的设置,6410和210的原理是一样的,但是跟2440有点不一样。所以下面以210为例子,说明6410和210波特率的设置。
寄存器:
UBRDIV0=(int)(PCLK_PSYS/(BAUD*16)-1);//UBRDIV0保存该公式计算后的整数部分。
UBRDIV0=(int)(66000000/(115200*16)-1)=(int)(35.8-1)=(int)(34.8)=34。即取整数部分为34.
//UDISLOT0=保存该公式计算后的小数部分*16。
0.8*16=12.8,查上表得出12对应UDISLOT0值为0xdddd。
由上面知道,还需要知道PCLK_PSYS的值:PCLK_PSYS=HCLK_PSYS/(PCLK_PSYS_RATIO+1);
要求得PCLK_PSYS需要先知道HCLK_PSYS的值: HCLK_PSYS=MPLL/(HCLK_PSYS_RATIO+1); 已知MPLL=667MHZ(参考时钟初始化那个专题)。
上面的值,都可以在手册查到,最后计算出PCLK_PSYS=66000000。
关键字:Smart210 串口驱动
引用地址:
13.Smart210串口驱动基于12的补充
推荐阅读最新更新时间:2024-11-07 20:14
《linux驱动:s3c2410_ts/s3c2440_ts模块加载流程》
前言 通过分析s3c2410_ts/s3c2440_ts模块加载流程,分析linux驱动中的总线-设备-驱动模型以及输入子系统框架。 主要流程分析图示 s3c2440_ts 主要流程分析 系统初始化 MACHINE_START(SMDK2410, SMDK2410 ) MACHINE_START(SMDK2410, SMDK2410 ) /* @TODO: request a new identifier and switch * to SMDK2410 */ /* Maintainer: Jonas Dietsche */ .phys_io = S3C2410_PA_UART, .io_pg_offst
[单片机]
Linux2.6.32移植到MINI2440(3)支持yaffs2文件系统
开发环境: 主机:fedora 14 虚拟机:vmware workstation 10 交叉编译工具:arm-linux-gcc 4.3.2 开发板:mini2440(2m nor ,64m sdram,256m nand) 一、获取yaffs2源码 我这里是从友善之臂的光盘里有一个压缩包,不过是zip格式的,可以在windows下解压,然后直接拷贝里面的yaffs2到虚拟机里面。 也可以使用git直接输入:git clonegit://www.aleph1.co.uk/yaffs2 我这里没有成功,也安装了git了,git –version显示1.7.3.1版本,错误提
[单片机]
26.3.4.2内核下的I2C驱动(一)
1.硬件协议 1.1mini2440 I2C设备如图所示 1.2 I2C协议如下: 1.3启动和停止信号如下图 1.4 I2C总线数据传输时序: 1.5 2440只负责发送,不知道数据含义,只有外设知道。如何写一个字节?参考AT24CXX手册 。 注意:I2C设备读之前先写! 2.软件框架 2.1总线-设备-驱动模型如下图所示 把某个结构体,左右的放入链表,一一比较,匹配调用probe函数 设备链表 driver链表, 总线提供了match函数 linux-2.6.22.6Documentationi2cinstantiating-devices 2.2如何构造I2C_CLIENT?设
[单片机]
RTEMS 的 MINI2440 QEMU 移植之bsp_libc_init与 rtems_libio_init
这段时间疯子一样的做RTEMS的移植,一直未果,遇到如下问题。 1. bsp_libc_init 问题,执行之前 gdb 调试信息 ricky@ricky-laptop:~/rtems/rtems-4.9.5/examples-4.9.5/hello_world_c$ arm-rtems4.9-gdb o-optimize/hello.exe GNU gdb 6.8 Copyright (C) 2008 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html This i
[单片机]
S3C2440 UART/串口(一)
串口: 作用:【1:打印调试信息 2:外接GPS,蓝牙等各种模块】 1:TTL/CMOS逻辑电平下5v对应逻辑‘1’,0v对应逻辑‘0’。在空闲时TX RX 保持高电平。 2:RS--232逻辑电平,通常情况下ARM芯片串口输出为TTL电平,需要通过电平转换芯片才能够将TTL电平转换成232电平。 串口发送需要满足一下几点: 发送,接收双方约定好1:波特率: 2:双方约定好数据格式【数据位,停止位,校验位,流控】 串口如何发送1Byte数据比如:‘A’ 'A' 0X41 ,01000001 1:双方约定好波特率【比如都是 115200】 2:数据格式保持统一 3:原来数
[单片机]
关于uboot的功能分析透彻方案
如果我们想快速的移植uboot,那么我们就要先将我们用到的uboot的功能分析透彻,uboot最终目的就是**引导内核**,但是在实际开发中为了方便开发调试,我们将uboot加入了很多功能,比如tftp下载,nfs启动,串口打印等功能;那么我们先按着执行的顺序来分析代码。 uboot并没有对2440进行支持,所以我们分析阶段先分析smdk2410的相关代码,分析完成以后我们在根据s3c2440的技术手册在2410的基础上进行移植。 Makefile分析 首先我们根据编译过程进行分析,编译需要执行命令: make smdk2410_config 我们查看根目录下Makefile文件,搜索smdk2410_config得到如下
[单片机]
S3C2440的内存情况在NAND FLASH或者NOR FLASH启动的情况下
1,从NANDFLASH启动时,在ARM上电时,ARM会自动把NANDFLASH前4K的内容拷贝到S3C2440内部SRAM中,同时把SRAM的地址映射到0X00000000。ARM上电后会从SRAM处开始运行。 2,从NOR FLASH启动时,因为NORFLASH接在bank0。地址映射是0X00000000。所以ARM上电后直接运行NORFLASH里的程序。此时S3C2440内部SRAM地址为0X40000000。 3,ARM上电启动都是从0X00000000开始运行。但是对于复位程序入口,ResetEntry的值在ARM上电运行时是0X00000000,在JTAG仿真时是0X30000000。这个值很关键,在拷贝程序
[单片机]
TQQ2440第三节:串口
做嵌入式的基本上都清楚,板子基本上跑起来了,第一个肯定要配置的是串口,便于我们后面调试信息的输出,和一些系统参数的输出,让我们有更直观看见程序的运行。 ————————————————————————————————————————————— 硬件平台:TQ2440 (S3C2440A) 开发环境:ADS1.2 时 间:2010-12-12 ————————————————————————————————————————————— 1:硬件电路: 底板电路 核心板上的连接管脚 由于TQ2440的板子上只引出了一个串口,也就是用的
[单片机]