百问网精智JZ2440开发板使用手册 S3C2440
- 格式:pdf
- 大小:2.84 MB
- 文档页数:44
第十六章ADC和触摸屏接口16.1概述10位CMOS的ADC(模数转换器)是有8通道模拟输入的循环类型设备。
其转换模拟输入信号到10位的数字编码,最大的转换率是在2.5MHz转换时钟下达到500KSPS。
AD转换器支持片上采样和保持功能及掉电模式。
触摸屏接口可以控制或选择触摸屏触点用于XY坐标的转换。
触摸屏接口包括触摸触点控制逻辑和有中断产生逻辑的ADC接口逻辑。
16.2特点-分辨率:10位-微分线性误差:±1.0LSB-积分线性误差:±2.0LSB-最大转换速率:500KSPS-低功耗-供电电压:3.3V-输入模拟电压范围:0~3.3V-片上采样保持功能-普通转换模式-分离的XY坐标转换摸-自动连续XY坐标转换模式-等待中断模式16.3ADC及触摸屏接口操作模块图如图16-1所示AD转换器和触摸屏接口的功能模块图。
注意AD转换器设备是一个循环类型。
注意(图标)当触摸屏接口使用时,XM或PM应该接触摸屏接口的地。
当触摸屏设备不使用时,XM或PM应该连接模拟输入信号作为普通ADC转换用。
16.4功能描述16.4.1AD转换时间当GCLK频率为50MHz和预分频器(预定标器)值为49,总共10位转换时间如下:AD转换器频率=50MHz/(49+1)=1MHz转换时间=1/(1MHz/5cycles)=1/200KHz=5us注:AD转换器设计在最大2.5MHz时钟下工作,所以转换率最高达到500KSPS。
16.4.2触摸屏接口模式(1)正常转换模式单个转换模式可能多数是使用在通用目的的ADC转换。
该模式可以通过设置ADCCON(ADC控制寄存器)来初始化并且完成对ADCDAT0的读写操作(ADC数据寄存器0)。
(2)分离XY坐标转换模式触摸屏控制器可以在两种转换模式中的一种模式下操作。
分离的XY坐标转换模式由以下方法操作。
X坐标模式写X坐标转换数据到ADCDAT0,触摸屏接口产生中断源到中断控制器。
操作步骤
1.将LCD背光板与LCD板相连,LCD板接入12V直流电源(用重量较轻的开关电源)。
注:背光板输入电源端子的1、2、5是连在一起的,接12V;3、4是连在一起的,接地(即1脚接正,3脚接地即可,1脚标识为金属面朝自己的最右边第一脚)。
2.用交叉串口将2440板子的串口(USB设备接口附近、下面的那个)与PC机的串口相连,起动超级终端,波特率为115200。
3.给2440板子电源接12V(用重量较重的铁心电源),按复位按钮。
4.当超级终端出现“Initiating image download in 14 seconds.”时,按“空格”键,输入“boot”回车。
5.当超级终端出现“Enter your selection: ”时,选择“L”键后,将启动WinCE。
如果无法启动时,请将2440板子与LCD连接的排线不要连接,用上述方法启动winCE。
如果LED出现闪烁,说明WinCE正常启动,再重新接上LCD 的排线,重复上述步骤。
6.关于USB鼠标和USB键盘:在双层的USB HOST接口最底层可以接USB 鼠标或者USB键盘或者U盘;当需要同时接以上设备时,请用USB HUB引出来再接在USB HUB上。
第八章直接存储器存取概述s3c2440支持在系统总线和外围总线之间的4路DMA控制器。
每一路DMA控制器可以自由的执行数据在系统总线和(或)外围总线之间的动作。
换句话说,每一路可以在下列列4种情况下运行:1.源设备和目标设备都在系统总线上2.源设备在系统总线上,目标设备在外围总线上3.源设备在外围总线上,目标数据在系统总线上4.源设备和目标设备都在外围总线上DMA的主要优点是它可以不通过CPU直接调用数据。
DMA工执行可以软件开始,也可以从内部的外设请求或者外部的引脚请求开始。
DMA请求源每一路DMA控制器都可以从4种开始请求中选择一路,如果DCON寄存器选择H/W DAM 请求模式(注意,选择S/W时这个DMA请求源没意义)。
表8--1列出了4种请求和每一路的关系:表8--1.DMA开始请求和每一路关系这里nXDREQ0和nXDREQ1表示两个外部源(Extermal Devices),12SSDO和12SSDI分别表示IIS的传输和接收。
DMA 工作状态DMA应用3态FSN(有限状态机),它可以描述为以下3步:State--1. 作为起始状态,DMA等待DMA请求,一旦请求到来马上转到State--2,在这个状态,DMA ACK和INT REQ是0.State--2. 在这个状态,DMA ACK变为1,计数器(CURR_TC)从DCON[19:0]装载。
DMA ACK保持1,直到它被清0。
State--3. 在这个状态,控制DMA原子操作的子FSM被初始化了。
子FSM从源地址读取数据后把它写入目标地址。
在这个操作中,数据宽度和传输大小(单次或突发)应给与考虑。
在完整服务模式中,这种操作不断重复直到计数器(CURR_TC)变为0。
然而在单一模式中只进行一次,当子FSM完成每个原子操作时,主FSM对CURR_TC倒计时。
另外,当CURR_TC为0和中断设置DCON[29]为1 时,主FSM发出INT REQ信号(中断请求信号)。
1.1基于S3C2440控制的嵌入式开发板设计框图详解:1、支持USB接口,USB_HOST接口作为外设可接如U盘等设备。
USB_DEVICE接口与PC机相连,传输数据。
2、10个引角的JTAG接口,用于NAND FALSH 或者Nor FLASH 中没有uboot时,使用该接口下载Uboot程序,使嵌入的系统可以运行。
3、支持LCD扩展,本开发板选择40引脚的LCD显示器。
4、支持IIS音频接口,与UDA1341TS芯片相连,音频信号可以输入和输出。
5、电源:使用AS1117芯片产生3.3V电压,支持大部分芯片的工作电压,使用MAX8860产生1.2V电压供ARM内核使用。
6、支持系统复位,使用复位芯片MAX811应对系统的复位。
7、串口电路,DB-9支持RS232标准电压,使用SP3232或者MAX3232芯片进行电压转换,复合ARM芯片的LVTTL标准电压。
8、GPIO接口,当微控制器或芯片组没有足够的I/O端口,或当系统需要采用远端串行通信或控制时,GPIO产品能够提供额外的控制和监视功能。
该电路使用了7个按键,与ARM的GPIO引脚相连,分别被10K电阻上拉,一般情况下,GPIO处为高电平,一旦按下按键,GPIO的引脚电平变为低电平。
可以使用程序检测该口的电压,或者中断来获取该处电平的变化。
9、ARM型号S3C2440内部有5个16位定时器0,1,2,3支持PWM蜂鸣器电路。
开发板可以通过PWM推动来发出不同频率的声音的蜂鸣器。
只需对驱动口输出驱动电平并通过三极管放大驱动电流就能使蜂鸣器发出声音。
10、S3C2440支持IIC总线接口,IIC电路使用AT24C02A作为主设备通过串行数据线SDA 和串行时钟数据线SCL在总线主从设备上传递信息。
保证各个芯片与ARM的数据传输。
11、支持SD卡扩展。
可读可写。
12、以太网接口,通过DM9000并使用H1102进行网络电压转换来扩展出网络接口RJ45 。
s3c2440中⽂⼿册第6章-nandflash第六章Nand Flash控制器6.1概述⽬前,Nor Flash价格较⾼,⽽SDRAM和Nand Flash存储器相对经济,这样促使⼀些⽤户在NAND Flash上执⾏启动代码,在SDRAM上执⾏主程序。
s3c2440A的驱动代码可以在外部的NAND Flash存储器上被执⾏。
为了⽀持NAND Flash的boot loader,s3c2440A配备了⼀个内部的SRAM缓冲器名为“Steppingstone”。
启动时,NAND Flash上的前4KByte字节将被装载到Steppingstone上别且装载到Steppingstone上的启动代码会被执⾏。
⼀般情况下,启动代码会拷贝NAND Flash上的内容到SDRAM。
使⽤硬件的ECC,NAND Flash的数据被检查。
在完成拷贝的基础上,主程序将在SDRAM上被执⾏。
6.2特性(1)⾃动启动:启动代码在重启时被传输到4kbytes的Steppingstone上。
传输后代码会在Steppingstone上被执⾏(2)NAND Flash存储器接⼝:⽀持256字、512字节、1000字和2000Byte页(3)软件模式:⽤户可以直接访问NAND Flash,例如这个特性可以被⽤于对NADN Flash 存储器的读/擦除/编程。
(4)接⼝:8/16微的NADN Flash存储器接⼝总线(5)硬件ECC⽣成,检测和指⽰(软件纠错)(6)SFR接⼝:⽀持⼩端模式,对于数据和ECC数据寄存器的字节/半字/字访问,对于其他寄存器的字访问。
(7)Steppingstone接⼝:⽀持⼤⼩端,字节/半字/字访问(8)Steppingstone4kB内部SRAM缓冲器可以在NAND Flash启动后被⽤于其他⽬的。
6.2.1模块图6.2.2Boot loader功能在重启期间,NAND Flash控制器通过引脚状态得到连接NAND Flash的信息(NCON(Adv flash),GPG13(页⼤⼩),GPG14(地址周期),GPG15(总线宽度)–参考引脚配置)。
百问网·精智JZ2440使用手册提示:除了QT外,可以不看本手册,参考《嵌入式Linux应用开发完全手册》及视频即可第1章嵌入式Linux开发环境构建 (4)1.1 安装Ubuntu 9.10 (4)1.1.1 安装VMware (4)1.1.2 安装Ubuntu 9.10 (13)1.2 安装Ubuntu下的开发工具 (20)1.3 安装Windows下的开发工具 (22)第2章精智JZ2440开发板烧写程序方法 (23)2.1 使用JTAG工具烧写开发板 (23)2.1.1 Windows下并口JTAG驱动安装 (23)2.1.2 Windows下OpenJTAG驱动安装 (29)2.1.3 Ubuntu下驱动程序的安装 (29)2.1.4 JTAG烧写软件oflash的用法 (29)2.2 通过u-boot烧写整个系统 (29)2.2.1 在Windows下使用dnw和u-boot烧写系统 (30)2.2.2 在Linux下使用dnw和u-boot烧写系统 (31)第3章板上Linux系统搭建 (33)3.1 修改、编译、使用u-boot (33)3.1.1 使用补丁修改、编译u-boot (33)3.1.2 u-boot使用方法 (33)3.2 修改、编译、使用Linux内核 (36)3.2.1 使用补丁修改、编译内核 (36)3.2.2 使用uImage (36)3.3 修改、编译QT (36)3.3.1 编译依赖的软件 (36)3.3.2 使用补丁修改、编译QT (39)3.4 构造根文件系统 (39)3.4.1 基于最小根文件系统制作QT文件系统 (39)3.4.2 制作YAFFS2、JFFS2文件系统映象文件 (42)第1章 嵌入式Linux开发环境构建1.1 安装Ubuntu 9.10注意:如果使用光盘上已经制作好的虚拟机,那么1.1或1.2的内容可以忽略。
《嵌入式Linux应用开发完全手册》里使用的主机开发环境是Ubuntu 7.10,现在最新的Ubuntu版本是9.10。
如果想在Windows下进行开发,那么要先安装一个虚拟机,比如VMware。
它将虚拟出一台主机,可以在这台虚拟主机上安装Ubuntu。
1.1.1 安装VMware从VMware的官方网站下载到VMware工具,安装后,参照以下方法创建一台虚拟机。
建议建立两个虚拟硬盘,一个用来存放Ubuntu本身,另一个用来存放我们的工作资料。
①启动VMWare,如图1.1所示,点击“New Virtual Machine”即可开始创建一个虚拟主机:图1.1 启动VMware②在后续界面中使用默认选项,直到出现如图1.3所示的界面,在里面选择“Custom”自己定制虚拟机器。
图1.2 选择定制虚拟机 ③选择虚拟机的操作系统,我们使用Ubuntu:图1.3 选择定制虚拟机①给虚拟机建一个名字:图1.4 输入虚拟主机名字、存储位置②指定虚拟机的内存容量,在图1.4所示的界面中有推荐值及取值范围:图1.5 指定内存容量③指定虚拟机的网络连接类型,一般使用桥接方式(bridge networking),如图1.8所示。
安装完华后可以再进行修改。
图1.6 指定虚拟机的网络连接类型⑦以下4个步骤是用来建立一个15G的虚拟硬盘:图1.7 指定硬盘I/O adapter图1.8 选择创建新的虚拟硬盘图1.9 指定硬盘容量图1.10 设置虚拟硬盘的名字⑧在上图中单击“完成”按钮后,就创建了一个虚拟机器,得到如图1.11所示的界面。
图1.11 建立好的虚拟机还要创建一个硬盘,点击下图的“Edit virtual machine settings”进行设置。
参照以下图1.12、1.13、1.14及步骤⑦增加一个容量为40G的虚拟硬盘,命名为work.vmdk(用来作为工作硬盘)。
想让虚拟机支持并口、USB口,也是仿照图1.12、1.13、1.14的步骤进行。
图1.12 修改虚拟机的设置图1.13增加新硬件图1.14 选择增加新硬盘1.1.2 安装Ubuntu 9.10Ubuntu 9.10的安装光盘名为ubuntu-9.10-desktop-i386.iso,可以从网上下载,也可以在开发板光盘的os目录下获得。
在虚拟机上安装Ubuntu与在真实电脑上安装Ubuntu的过程大致相同。
在虚拟机上安装时,要先设置虚拟机的光盘使用下载的iso文件,如图1.15所示。
进入虚拟机的编辑界面,选中“CD-ROM”,在右边的界面中,选择“Connnect at power on”(表示开启虚拟机时就连接光盘);然后选择“Use ISO image”,如果有实际的光盘,可以选择“Use physical drive”。
图1.15 在虚拟机上使用光盘文件启动虚拟机,或是使用Ubuntu 9.10的安装光盘启动真实主机,然后按照以下图示及说明即可安装。
图1.16 使用安装光盘启动电脑时,选择“Install Ubuntu”图1.17 选择语言,建议选择English图1.18 选择语言,建议选择English图1.19 选择时区图1.20 选择“自己进行分区”图1.21 双击/dev/sda,开始分区图1.22 双击free space,划分/boot分区,大小为100M图1.23 双击free space,划分swap分区,大小为1G图1.24 双击free space,划分/分区,大小为剩下的所有容量图1.25 双击/dev/sdb,开始分区图1.25 双击free space,划分/work分区,大小为所有容量图1.26 设置用户名、密码1.2 安装Ubuntu下的开发工具刚安装好的Ubuntu,还缺乏很多开发工具。
这些工具都可以通过网络进行安装。
如果网络不佳,也可以使用光盘中的工具包。
如果要使用光盘中的工具包,先把光盘linux目录下的apt_packages目录复制到Ubuntu 里/work目录下;然后修改/etc/apt/sources.list文件,增加下面一行(注意最后的斜杠“/”不可少):deb file:/work/ apt_packages/注意:如果提示网络错误,请修改/etc/apt/sources.list文件,只保留“deb file:/work/ apt_packages/”这一行,其他的都去掉。
不管是否使用光盘中的工具包,均是使用以下命令进行安装:①更新软件源$ sudo apt-get update②安装、配置、启动ftp服务。
执行以下命令安装,安装后即会自动运行:$ sudo apt-get install vsftpd修改vsftpd的配置文件/etc/vsftpd.conf,将下面几行前面的“#”号去掉。
#local_enable=YES#write_enable=YES上面第一行表示是否允许本地用户登录,第二行表示是否允许上传文件。
修改完华之后,执行以下命令重启ftp服务:$ sudo /etc/init.d/vsftpd restart③安装、配置、启动ssh服务。
执行以下命令安装, 安装后即会自动运行:$ sudo apt-get install openssh-server它的配置文件为/etc/ssh/sshd_config,使用默认配置即可。
④安装、配置、启动nfs服务。
执行以下命令安装, 安装后即会自动运行:$ sudo apt-get install nfs-kernel-server portmap它的配置文件为/etc/exports,在里面增加以下内容,以后将通过网络文件系统访问/work/nfs_root目录:/work/nfs_root *(rw,sync,no_root_squash)修改完华之后,执行以下命令重启nfs服务:$ sudo /etc/init.d/nfs-kernel-server restart⑤安装、配置tftp服务软件:$ sudo apt-get install openbsd-inetd tftpd tftp打开/etc/inetd.conf文件,里面有一行如下:tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /srv/tftp 把“nobody”改为“root”,把“/srv/tftp”改为“/work/nfs_root”,表示tftp目录。
⑥使用以下命令安装基本的开发环境:$ sudo apt-get install build-essential texinfo⑦安装工具bison、flex,它们分别是语法、词法分析器:$ sudo apt-get install bison flex libtool automake autoconf⑧安装C函数库的man手册,以后就可以通过类似“man read”的命令查看函数的用法了:$ sudo apt-get install manpages-dev⑨安装ckermint工具:$ sudo apt-get install ckermit使用kermit之前,先在/homt/book(假设用户名为book)目录下创建一个名为.kermrc(注意,是“点kermrc”)的配置文件,内容如下:set line /dev/ttyS0set speed 115200set carrier-watch offset handshake noneset flow-control nonerobustset file type binset file name litset rec pack 1000set send pack 1000set window 5然后,运行“$ sudo kermit -c”命令即可启动串口;要想关闭串口,先同时按住“Ctrl”和“\”键,然后松开再按“C”键,最后输入“exit”并回车。
在Linux中,可以使用kermit连接串口以操作目标板。
(10) 安装ddd工具:$ sudo apt-get install ddd(11) 安装QT开发环境:$ sudo apt-get install x-dev libx11-dev x11proto-xext-dev libxext-dev libqt3-mt-dev$ sudo apt-get install kdevelop konsole(12) 安装ncurses:ncurses是一个能提供功能键定义(快捷键)、屏幕绘制以及基于文本终端的图形互动功能的动态库。
如果没有它,在执行“make menuconfig”命令配置程序时会出错。