第1章 产品概述】 - 【第2章 硬件资源介绍】 - 【第3章 MDK例程的使用】 - 【第4章 Linux系统指南】 - 【第5章 Android系统指南

3.1 概述

MDK示例程序是无操作系统的裸机程序,这里使用的开发工具是MDK-ARM 4.53。此章节主要介绍如何使用和编写板载的各个设备的测试程序,内容如下:

  1. MDK开发环境的搭建和配置;
  2. MDK示例程序的调试,编译和下载;
  3. 测试程序的功能介绍、使用方法、现象描述等,包括板子启动、DMA、ADC、LCD、存储系统、以太网等等。

3.2 准备工作

  1. 安装MDK-ARM(版本要求是4.53)开发工具,并安装好License。
  2. 准备好MYD-SAM9X5开发板套件。

MYD-SAM9X5系列开发板包括:

  • MYD-SAM9G15
  • MYD-SAM9G25
  • MYD-SAM9G35
  • MYD-SAM9X25
  • MYD-SAM9X35

3.2.1 MDK的配置和编译

打开需要测试的工程。这里以示例程序getting-startred为例,首先找到“04-MDK_Source\01_getting-started\Project”文件夹,双击打开工程文件getting-started.uvproj,然后进行工程配置,步骤如下:

注意:一般情况是默认设置好的,直接编译下载烧写程序即可,如果不能够编译和下载才有必要去检查和设置。

(1)选取工程点击右键,选择Option for target ‘MYS-SAM9X35’或者按Alt+F7,打开设置窗口如图3-1所示:

图 3-1

(2) 在Device中选择Atmel芯片SAM9X35(注意:这里仅以SAM9X35为例,其它型号类似),如下图3-2所示:

图 3-2

当芯片默认配置完成之后,Target选项会自动默认配置,如图3-1所示。

(3) Output选项(包含生成的中间文件),如下图3-3所示:

图 3-3

点击“Select Folder For Objects…”弹出目标存放路径选择对话框,点击“OK”即可,用户可以自行定义可执行文件的名称。

(4)Listing选项卡主要是选取存放Output选项中生成的中间文件的文件夹,如下图3-4所示:

图 3-4

(5)User选项卡配置如下图3-5所示:

图 3-5

上面红色框标注的命令主要是指定生成的可执行文件存放的路径,用户可以自行修改。

(6)C/C++选项配置,用户可以添加或者删除编译包含的路径,如图3-6所示:

图 3-6

(7)Linker选项配置如下图3-7所示:

图 3-7 (1)

图 3-7 (2)

图3-7 ⑴所示的是getting-started工程(生成ddram.bin,其中绝大部分的MDK例程都是生成ddram.bin)的Linker设置,图3-7 ⑵所示的pmc_clock_switching工程(生成sram.bin)的Linker设置,两者均是选择.sct文件,只是名字不同而已。

(8)选择projectRebuild all target files编译工程,或者点击快捷图标进行编译,如下图3-8所示:

图 3-8

编译完之后就可以在Output选项设置的目录下看到生成的可执行bin文件,或者在编译信息栏可以看到已经执行了用户命令的提示,如图3-9所示:

图 3-9

至此,MDK工程的配置和编译工作已经完成。

3.2.2 MDK例程的调试

以下是MDK示例程序的调试配置,前提是开发者拥有硬件仿真器ULink2,如果需要请联系本公司购买。

(1)打开工程文件之后,打开目标设置对话框,选择Debug,如下图3-10所示:

图 3-10

(2)检查硬件仿真器ULink2是否是好的 如果ULink2通过USB线连接到开发板后,上面的RUN和COM指示灯先变蓝色后熄灭,而USB指示灯则变红色,并一直保持不变。由此,表明ULink2没问题。

(3)点击图3-10所示的Setting可以看到ULink2和开发板的连接状态,这也能说明ULink2是好的,并且它能够识别开发板处理器的核,如下图3-11所示:

图 3-11

(4)按快捷键Ctrl+F5或者点击工具栏上的快捷图标或者选择Debug→Start/Stop Debug Session开始程序的调试,操作如下图3-12所示:

图 3-12

3.2.3 超级终端配置和下载准备

超级终端配置

打开超级终端,配置的主要参数如下:

  • 选择您使用的端口:comX,比如您用串口com1,那么X就是1;
  • 波特率:115200;
  • 数据位:8;
  • 奇偶校验位:None;
  • 停止位:1。

注意:如果没有特别说明,在MDK示例程序的测试中,串口线均连接DBGU口。

下载准备

  1. 安装atmel的sam-ba软件(sam-ba软件安装包在光盘上的03-Tools\SAM-BA文件夹里面),要求2.11版以上(如果您已经安装sam-ba的2.11以下版本,需要先卸载干净)。
  2. 开发板通过mini USB连接PC机,并给它上电。
  3. 将SW1,SW2拨为off(注意要断开底板JP8跳线,否则电脑无法识别开发板),按NRST复位开发板,若干时间后可以在任务栏中看到安装驱动提示,并最终在设备管理器下看到如图3-13所示:



图 3-13

注意:SW1 on则使能板载的NANDFLASH;SW2 on则使能板载的DATAFLASH。此处将SW1,SW2拨为off是为了让芯片不从这两种介质中启动,从而使能USB连接。

如果驱动自动安装不正确可以手动安装,点击右键更新驱动软件程序(注意:示例的已经正确安装),选择手动查找并安装,如下图3-14至图3-18所示:

图 3-14

选择手动查找并安装驱动程序软件。

图 3-15

点击红色框中选项,进入驱动程序列表中选择,具体操作如下图3-16所示:

图 3-16

点“确定”之后,开始安装驱动,如图3-17所示,当安装完之后如图3-18所示:

图 3-17



图 3-18

sam-ba驱动安装完之后就可以下载程序到开发板上。程序下载有两种方式:自动下载和手动下载,下面将详细介绍。

3.2.4 手动下载

以getting-started为例说明手动下载流程。首先将SW1,SW2拨为off(注意要断开底板JP8跳线,否则电脑无法识别开发板),按NRST复位开发板,完成后打开sam-ba软件,它的启动界面如图3-19所示:

图 3-19



图 3-20

按照图3-18所示操作即可,主要是正确选择开发板的型号,即step 2(注意:示例使用MYD-SAM9X35开发板,故选择at91sam9x35-ek,若使用MYD-SAM9X5系列的其它型号,则需要选择对应的型号,如图3-20所示);然后点击Connect,进入主界面如图3-21所示:

图 3-21

进入主界面之后,将SW2拨为on,按图3-22所示进行操作,首先选择SerialFlash AT25/AT26,然后脚本设置为Enable Serialflash (SPI0 CS0),执行“Execute”:

图 3-22

将dataflash使能之后,会出现“(sam-ba_2.11) 3 % SERIALFLASH::Init 0 ”,使能结束之后下载dataflashboot.bin (位置:04-MDK_Source\01_getting-started\Download\9×35),具体操作如图3-23所示:

图 3-23

下载完dataflashboot文件之后下载ddram.bin文件,具体操作如图3-24所示:

图 3-24

注意:Scripts项不用改动,它和上一步骤相同。

最后将ddram.bin发送,发送完之后,按NRST 复位开发板(如果尚未打开超级终端,则先打开超级终端,配置参数见3.2.3小节),在超级终端上可以看到终端有信息输出,开发板的两个灯交替闪烁。在终端按下数字“1”时,仅仅是红灯亮,再按下“1”,两灯闪烁交替。 上述描述就是手动下载的全部过程。

3.2.5 自动下载

以下以getting-started为例子,描述自动下载的过程和操作。找到位置:04-MDK_Source\01_getting-started\Download\9×35,目录下的文件如图3-25所示:

图 3-25

首先点击右键编辑SAM9X35_MDK_dataflash.bat,修改COM端口,如图3-26所示:

图 3-26

本机使用的端口是COM13,故将COM3改为COM13(如果不知道您的机器使用的哪个端口可以在3.2.3的步骤中看到),改后保存关闭。注意:其它不要改动。

然后将SW1,SW2拨为off(注意要断开底板JP8跳线,否则电脑无法识别开发板),按NRST复位开发板,待复位完成后再将SW2拨为on,双击SAM9X35_MDK_dataflash.bat,则开始自动下载,若干时间之后会弹出logfile,详细记录下载的步骤和信息(若下载失败也有相关信息记录)。

下载完成之后,按NRST复位,程序则开始运行。至此,自动下载过程已经结束。自动下载和手动下载,最终效果完全一致,建议使用自动下载,这样能够节省时间。

3.3 MDK例程介绍

MDK的示例程序是比较丰富的,基本囊括了板上的各种设备的测试和使用,通过以下的一些示例程序能够使您快速地熟悉板上的各种资源。 特别声明:有关下载步骤和终端配置请参考3.2节,以下示例程序的测试不再描述如何下载和终端配置。示例程序的测试均要求提前做好相关准备工作。

3.3.1 getting-started

目的

帮助新用户熟悉Atmel的AT91系列微控制器。这个基本的应用显示了芯片的启动流程以及如何使用它的核心外围设备。

功能描述

这个示例程序使板上的两个LED灯以由定时器计时产生的固定频率闪烁,并且可以通过在PC的超级终端按数字键“1”或者“2”来控制两个LED灯的灭和亮。

使用流程

下载完成后按NRST复位开发板,可以在终端看到相关信息输出。在终端按下数字“1”启动或停止LED1(红灯),终端输出“1 2”或者全部输出“2”;在终端按下数字“2”启动或停止LED2,终端输出“1 2”或者全部输出“1”。

现象说明

终端显示信息:

-- Getting Started Example 2.0 --
-- SAM9XX5-EK
-- Compiled: Jul  9 2012 11:13:49 --
Configure PIT 
              Configure TC.
Configure LED PIOs.
No push buttons, uses DBG key 1 & 2 instead.
Press 1 to Start/Stop the blue LED D1 blinking.
Press 2 to Start/Stop the green LED D2 blinking.
1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 1 2 2 1 2 2 1 2 2 2 1 2 2 1 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 1 2 2 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2

3.3.2 adc_adc10

目的

演示如何使用ADC外设。

功能描述

此程序的目的是演示在有无DMA情况下如何使用ADC。当有DMA时,用于外设的缓存较大,并且在没有CPU的干涉下直接进行存储。实现步骤:

  • 以预期的参数初始化ADC
  • 配置和使能ADC中断
  • 使能DMA中断
  • 如果不使用DMA,则在ADC中断处理中检查最后一个转换通道

使用流程

下载完成后按NRST复位开发板,可以在终端看到相关信息输出。在终端输入字符“d”使能/失效DMA;字母“s”改变通道模式;数字0-3分别表示4个触发模式;3个数据分别显示3个AD采样的数据值。

现象说明

终端信息显示:

-- ADC12 Example 2.0 --
-- SAM9XX5-EK
-- Compiled: Jul  9 2012 13:34:14 --
=================================
- d: DMA Enable/Disable
- s: Channel sequence switch
- 0, 1,  2,       3: TRIGGER mode:
  SW EXT Periodic Continuous
  Refresh slow --> fast ....
=================================
= DMA: Enabled; Trigger mode: 0
= Sequence: 09 00 02
=================================
Vols(mV): #09:3300 #00:3300 #02:3232
=================================
- d: DMA Enable/Disable
- s: Channel sequence switch
- 0, 1,  2,       3: TRIGGER mode:
  SW EXT Periodic Continuous
  Refresh slow --> fast ....
=================================
= DMA: Disabled; Trigger mode: 0
= Sequence: 09 00 02
=================================
Vols(mV): #09:3300 #00:3300 #02:3232

3.3.3 adc_touchscreen

目的

演示如何使用ADC触摸屏模式去获取触屏事件。它可以帮助您熟悉触摸屏的配置和使用,也能够进一步实现触屏驱动和其它与触屏有关的应用程序。

功能描述

该程序首先初始化LCD和触屏控制器,然后让用户校验触摸屏。当校验成功后,用户触摸LCD,终端将会输出笔所触摸到的坐标。

使用流程

此程序仅适用于MYD-SAM9G15/G35/X35。 下载完成后按NRST复位开发板,可以在终端看到相关信息输出,然后在LCD出现小红点,触摸小红点,对触摸屏进行校验,校验结果会在终端和LCD上显示;若校验成功后,触摸LCD会输出其坐标。若校验不成功则重新校验直到成功为止。

现象说明

终端信息显示:

-- ADC_Touchscreen Example 2.0 --
-- SAM9XX5-EK
-- Compiled: Jul  9 2012 14:52:50 --
-I- I cache is already enabled.
-I- P0: (154,872)
-I- P1: (916,388)
-I- P2: (958,227)
-I- P3: (167,217)
-I- Slope: 2070, -1916
-I- TP: 542, 469 -> 239, 242
-W- X 239, Y 242; Diff -1, 106
-E- Error too big ! Retry...
-I- P0: (156,782)
-I- P1: (940,876)
-I- P2: (957,366)
-I- P3: (172,219)
-I- Slope: 2091, -2520
-I- TP: 548, 438 -> 239, 166
-I- Calibration successful !

Pressed(236,192,10219)
Move   (236,192,10219)
Release(236,192)

Pressed(177,145, 4147)
Move   (213,179, 3087)
Release(213,179)

3.3.4 can

目的

演示如何使用CAN外设。

功能描述

该程序目的是演示如何使用CAN。CAN的测试有: 简单的CAN测试: CAN1 Mailbox 5 发送数据到 CAN0 Mailbox 1。 向同一个Mailbox发送消息测试。CAN1 Mailbox 5和6发送数据(Mailbox 6先发送),CAN0 Mailbox 2接收这两个数据,但是最后一个数据(即CAN1 Mailbox 5发送的数据)将被忽略。 向同一个Mailbox发送消息测试。CAN1 Mailbox 6和5先后发送数据,ID分别0x40和0x41,并且这两个ID都可以被CAN0 Mailbox 3接收,此时CAN0 Mailbox 3接收到的前一个消息将被后一个消息覆盖。 远程数据接收。 CAN1 Mailbox 5 发送远程请求到CAN0 Mailbox 4,然后获得响应数据。

使用流程

该例程只能在MYD-SAM9X25 / MYD-SAM9X35开发板上使用。 下载完成后断开JP6,连接JP8,使J19接口的引脚7(CAN1H)和9(CAN0H)相连,引脚8(CAN1L和10(CAN0L)相连,串口线连接UART0口,按NRST复位开发板,然后在终端可以看到相关信息输出。

现象说明

-- CAN Example 2.0 --
-- SAM9XX5-EK
-- Compiled: Jul 16 2012 10:59:15 --
- Test start, DBGU not available now

-I- 0:  210000
- CAN0 Sync OK
-I- 1:  210000
- CAN1 Sync OK

-I- 0:20a00002
-I- 1:  a00060
-I- 0:20a00006
-I- 1:  a00060
-I- 1:40a00040
- CAN0.1: Simple test data received
- CAN0.2: Messages to 1 Mailbox received
-I- 0:  a0000e
- CAN0.3: Messages to 1 Mailbox(OVR) received
-I- 1:20a00060
-I- 0:  a0001e
- CAN1.5: Remote requested data received

-I- 1:20a00062
-I- 0:  a0007e
-I- 1:20a00066
-I- 0:  a0007e
-I- 0:40a0005e
- CAN1.1: Simple test data received
- CAN1.2: Messages to 1 Mailbox received
-I- 1:  a0006e
- CAN1.3: Messages to 1 Mailbox(OVR) received
-I- 0:20a0007e
-I- 1:  a0007e
- CAN0.5: Remote requested data received
-I- 0:  10007e
-I- 1:  10007e

- Press any key to test again

3.3.5 dma

目的

帮助新用户熟悉Atmel的AT91系列微控制器。

功能描述

该程序用于测试DMA数据传输。可用的DMA类型多个缓冲传输之间可以由相应的响应按键切换。

使用流程

下载完成后按NRST复位开发板,可以在终端看到相关信息输出。0-9,A,B是DMA 缓冲区传输选择,s是开始传输,h显示menu。

现象说明:

终端信息显示:

-- DMA Example 2.0 --
-- SAM9XX5-EK
-- Compiled: Jul  9 2012 16:01:08 --
Menu :
------
- 1-9, A, B: Programming DMAC for Multiple Buffer Transfers
    1: Single Buffer or Last buffer of a multiple buffer transfer 
    2: Multi Buffer transfer with contiguous DADDR
    3: Multi Buffer transfer with contiguous SADDR
    4: Multi Buffer transfer with LLI support 
    5: Multi Buffer transfer with DADDR reloaded
    6: Multi Buffer transfer with SADDR reloaded
    7: Multi Buffer transfer with BTSIZE reloaded and contiguous DADDR 
    8: Multi Buffer transfer with BTSIZE reloaded and contiguous SADDR
    9: Automatic mode channel is stalling BTsize is reloaded
    A: Automatic mode BTSIZE, SADDR and DADDR reloaded
    B: Automatic mode BTSIZE, SADDR reloaded and DADDR contiguous
- s: Start DMA transfer
- h: Display this menu

Programming DMAC for Multiple Buffer Transfers in row 1
Programming DMAC for Multiple Buffer Transfers in row 2 
Programming DMAC for Multiple Buffer Transfers in row 10
-I- Start DMA transfer
-I- The Source Buffer content before transfer
00  01  02  03  04  05  06  07  08  09  0a  0b  0c  0d  0e  0f  
00  02  04  06  08  0a  0c  0e  10  12  14  16  18  1a  1c  1e  
00  03  06  09  0c  0f  12  15  18  1b  1e  21  24  27  2a  2d  
00  04  08  0c  10  14  18  1c  20  24  28  2c  30  34  38  3c  

-I- The Destination Buffer content before transfer
5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  
5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  
5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  
5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  

-I- The Source Buffer content after transfer
00  01  02  03  04  05  06  07  08  09  0a  0b  0c  0d  0e  0f  
00  02  04  06  08  0a  0c  0e  10  12  14  16  18  1a  1c  1e  
00  03  06  09  0c  0f  12  15  18  1b  1e  21  24  27  2a  2d  
00  04  08  0c  10  14  18  1c  20  24  28  2c  30  34  38  3c  

-I- The Destination Buffer content after transfer
00  01  02  03  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  
5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  
5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  
5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a  5a
Done

3.3.6 lcd

目的

演示如何配置LCD控制器(LCDC)去使用板上的LCD。(注意:此处以4.3寸屏为例)

功能描述

该例子配置LCDC,让LCD能够显示,然后进行画图测试模式。

使用流程

此程序仅适用于MYD-SAM9G15/G35/X35。 下载完成后按NRST复位开发板,然后可以在终端看到相关信息输出,在LCD上可以看到图形图像。

现象说明

终端信息显示:

-- LCD Example 2.0 --
-- SAM9XX5-EK
-- Compiled: Jul  9 2012 16:17:36 --
-I- I cache is already enabled.
- Test Pattern: 480 x 272 [80 x 68]
- Test Cursor: 32 x 32
- LCD ON
Show: 82,37 32x48 0
Show: 164,76 64x192 0
Show: 246,45 64x-192 0
Show: 328,6 -64x-192 0
Show: 410,31 -64x192 0
Show: 339,70 32x48 0
Show: 257,51 64x192 0
Show: 175,12 192x64 90
Show: 93,135 -192x64 90
Show: 11,80 64x192 180
Show: 70,42 192x64 270
Show: 152,165 192x-64 270
Show: 234,80 64x192 0

3.3.7 periph_protect

目的

演示如何阻止程序操作一个PIO控制器的行为。

功能描述

该程序演示PIO控制器的保护机制。例子启用或禁用PIOB写保护的用户接口。当写保护时,任何写行为均会被中止,因此寄存器的值不会被修改,并且写保护寄存器保存寄存器的偏移地址。

使用流程

下载完成后按NRST复位开发板,可以在终端看到相关信息输出。在终端输入字母“l”则进入写保护模式,输入字母“u”则是未保护模式。

现象说明

终端信息显示:

-- Peripheral Protect Example 2.0 --
-- SAM9XX5-EK
-- Compiled: Jul  9 2012 16:42:32 --

Enter 'l' to enable Write Protect and enter 'u' to disable Write Protect.
Select the register to be written by a value(0x12345678).
  0 : PIO Enable Register       (0x0000)
  1 : PIO Disable Register      (0x0004)
  2 : PIO Output Enable Register        (0x0010)
  3 : PIO Output Disable Register       (0x0014)
  4 : PIO Input Filter Enable Register  (0x0020)
  5 : PIO Input Filter Disable Register (0x0024)
  6 : PIO Multi-driver Enable Register  (0x0050)
  7 : PIO Multi-driver Disable Register (0x0054)
  8 : PIO Pull Up Disable Register      (0x0060)
  9 : PIO Pull Up Enable Register       (0x0064)
a : PIO Peripheral ABCD Select Register 1     (0x0070)
  b : PIO Peripheral ABCD Select Register 2     (0x0074)
c : PIO Output Write Enable Register  (0x00A0)
  d : PIO Output Write Disable Register (0x00A4)
  e : PIO Pad Pull Down Disable Register        (0x0090)
  f : PIO Pad Pull Down Enable Register (0x0094)

The Write Protect is enabled.
Write protect violation is detected!
The offset of the write-protected register is 0x0070.
Write protect violation is detected!
The offset of the write-protected register is 0x0094.
The Write Protect is disabled.
No write protect violation is detected.
No write protect violation is detected.

3.3.8 pmc_clock_switching

目的

演示从不同的时钟(PLLA, UPLL, SLCK, MAINCK)进行系统时钟切换。

功能描述

启动时,该程序为DBGU、PCK配置合适的PIOs,DBGU的波特率设置为1200bps。首先是程序打印当前的配置信息,然后等待PC终端上输入“’”去切换系统时钟到下一个配置。

使用流程

此例程与其它例子有所区别。首先配置终端的波特率要改为1200bps,其它设置不变;其次是手动下载有点变化,请按以下的步骤下载: 将SW1,SW2拨为off,按NRST复位,打开sam-ba2.11,和3.2.4手动下载类似。然后将SW2拨为on,使能SerialFlash,然后下载sram.bin,具体操作如图3-27、3-28所示:

图 3-27



图 3-28

下载完之后重启开发板,在终端上就可以看到相关信息输出,并提示按“’”切换系统时钟。

现象说明

终端信息显示:

** Switch to 1200 bps for DBG **

-- PMC Clock Switching example 2.0 --
-- SAM9XX5-EK
-- Compiled: Jul  6 2012 14:32:53 --

 --- Current PMC clock from lowlevel pmc configuration --- 
The slow clock source is internal 32 kHz RC oscillator 
PLLA clock is 800 MHz 
PLLA clock is the source of Master clock 
MCK Master Clock is prescaler output clock divided by 3 

-I- Select main clock as the master clock  
-I- Please measure the clock on PCK to make sure it is 12000000 Hz...
-I- Press ` to switch next clock configuration...

-I- Select PLLA clock as the master clock  
-I- Please measure the clock on PCK to make sure it is 12500000 Hz...
-I- Press ` to switch next clock configuration...

-I- Select UTMI PLL clock as the master clock  
-I- Please measure the clock on PCK to make sure it is 7500000 Hz...
-I- Press ` to switch next clock configuration...

-I- Switch the XTAL 32K crystal oscillator to be the source of the slow clock
-I- Please measure the clock on PCK to make sure it is 32768 Hz...
-I- Debuging in EWARM IAR C_SPY, the JLINK will disconnect on some PC! 
-I- Press ` to switch next clock configuration...

3.3.9 pwm

目的

演示一个简单的关于两个PWM信道的配置,用于产生可变的周期和频率信号。当连接板上的PB18, PWM0(PC10)或者PB18,PWM1(PC11)时会让两个LEDs闪烁。

功能描述

配置两个PWM信道产生两个PWM信号。

使用流程

下载完成后连接导线再启动开发板,可以在终端看到相关信息输出。

  1. 导线连接:J2的7号引脚与J2的8号引脚相连,可以看到蓝色LED灯以f1频率闪烁。
  2. 导线连接:J2的7号引脚与J2的10号引脚相连,可以看到蓝色LED以f2频率闪烁。

现象说明

两种不同的导线连接方式使LED灯闪烁频率不同。

3.3.10 ssc_dma_audio

目的

使用AT91SAM9xx5的同步串行控制器输出音频流,它通过板上的音频解码器(WM8731 CODEC)输出。

功能描述

该程序播放预先加载进入flash的WAV文件。通过与板子相连的WM8731的SSC接口传输音频流,并且需要一对好的耳机。发送的音频格式要求为: Format: WAV Sample rate: 48 kHz

使用流程

下载完成后按NRST复位开发板,可以在终端看到相关信息输出。当看到信息:

-- ssc_dma_audio --
Menu :
------
x: Receive WAV file with XModem Protocol
  X: Receive WAV file through DBGU
  

在终端输入“x”选择

Transfer wav file with 1K XModem, Ctr+ D to cancel

然后按照图3-28和3-29操作即可:

图 3-29



图 3-30

点击“打开”后便开始进行 xmodem 传输,按 Ctrl+C 取消传输,等传输结束时提示:

100%     274 KB    5 KB/s 00:00:49      0 Errors
-- ssc_dma_audio --
Menu :
------
 W: Play the WAV file loaded
  I: Display the information of the WAV file	
  x: Receive WAV file with XModem Protocol
  X: Receive WAV file through DBGU

输入W选择播放WAV文件,I输出音频信息,如下:

-- ssc_dma_audio --
Menu :
------
W: Play the WAV file loaded
I: Display the information of the WAV file

按下“W”加载wav音频文件,终端信息显示:

-- ssc_dma_audio --
Menu:
------
   I: Display the information of the WAV file
  S: Stop playback
 

I输出音频信息,如下:

-- WAV file @ 22000000
Wave file header information --------------------------------
  - Chunk ID        = 0x46464952
  - Chunk Size      = 281028
  - Format          = 0x45564157
  - SubChunk ID     = 0x20746D66
  - SubchunNRST Size  = 16
  - Audio Format    = 0x0001
  - Num. Channels   = 2
  - Sample Rate     = 48000
  - Byte Rate       = 192000
  - Block Align     = 4
  - Bits Per Sampl= 16
  - Subchunk2 ID    = 0x61746164
  - Subchunk2 Size  = 280992

-- Press any key to return to menu

现象说明

终端有详细信息输出,耳机有音频输出。

3.3.11 twi_eeprom

目的

使用TWI外设去访问外部串行EEPROM芯片。

功能描述

该程序测试EEPROM模块。

使用流程

下载完成后按NRST复位开发板,可以在终端看到相关信息输出,

现象说明

终端信息显示:

-- TWI EEPROM Example 2.0 --
-- SAM9XX5-EK
-- Compiled: Jul 10 2012 16:46:29 --
-I- Filling page #0 with zeroes ...
-I- Filling page #1 with zeroes ...
-I- Read/write on page #0 (polling mode)
-I- 0 comparison error(s) found
-I- Read/write on page #1 (IRQ mode)
-I- Callback fired !
-I- Callback fired !
-I- 0 comparison error(s) found

3.3.12 usart_serial

目的

将USART0模拟DBGU口传输数据。

功能描述

板子启动时,debug信息通过DBGU端口打印,终端可以看到相关信息。当终端连接USART0时,可以回显任何输入的字符,当然也可以发送文本文件,并在终端显示。

使用流程

下载完成后按NRST复位开发板,可以在终端看到以下信息输出:

-- USART Serial Example 2.0 --
-- SAM9XX5-EK
-- Compiled: Jul 10 2012 17:08:53 --
-- Start to echo serial inputs --

将串口线从DBGU(J18)拔出,插入UART0(J16),终端显示:

Start waiting data by using DMA:

(1)此时按键盘会回显对应的字符:

Start waiting data by using DMA: 
aa21dsdgfjhtcgfhdtrasrasssssssssssss

(2)此时也可以向其发送txt文档。在PC建立一个txt文档,然后发送。比如图3-31和图3-32所示:

图 3-31



图 3-32

发送完之后终端显示:

 -- USART Serial Example 2.0 --
-- SAM9XX5-EK
-- Compiled: Jul 10 2012 17:08:53 --
-- Start to echo serial inputs --
Start waiting data by using DMA: 
                                                                                                                                                           TEST MYD-SAM9X5!

现象说明

现象如上说明。

3.3.13 emac0

目的

测试Ethernet MAC和板上的以太网收发器来响应PC发出的ping命令。

功能描述

程序启动时自动配置一个默认的IP地址192.168.2.115和MAC地址。配置完成后可以在PC机上使用ping命令确认板上的IP地址是否正确配置。

使用流程

此程序适用于MYD-SAM9G25/G35/X25/X35,并且要求使用网口J11。

  1. 将开发板连入网络或者用交叉网线直接将开发板和PC相连,然后将主机IP设置为192.168.2.XX,注意:XX不能是115。
  2. 下载程序后按NRST复位开发板,可以在终端看到相关信息输出。
  3. 打开PC终端,输入命令:ping 192.168.2.115。

现象说明

终端信息显示:

-- EMAC Example 2.0 --
-- SAM9XX5-EK
-- Compiled: Jul 11 2012 08:35:19 --
-- MAC 0:45:56:78:9a:bc
-- IP  192.168.2.115
-I- ** Valid PHY Found: 0
-I- AutoNegotiate complete
P: Link detected

在PC终端输入命令:ping 192.168.2.115,如图3-33所示:

图 3-33

3.3.14 emac1

目的

测试Ethernet MAC和板上的以太网收发器来响应PC发出的ping命令。

功能描述

程序启动时自动配置一个默认的IP地址192.168.2.115和MAC地址。配置完成后可以在PC机上使用ping命令确认板上的IP地址是否正确配置。

使用流程

此程序仅仅适用于MYD-SAM9X25,并且要求使用网口J10。

  1. 将开发板连入网络或者用交叉网线直接将开发板和PC相连,然后将主机IP设置为192.168.2.XX,注意:XX不能是115。
  2. 下载程序后按NRST复位开发板,可以在终端看到相关信息输出。
  3. 打开PC终端,输入命令:ping 192.168.2.115。

现象说明

终端信息显示:

-- EMAC Example 2.0 --
-- SAM9XX5-EK
-- Compiled: Jul 25 2012 11:36:30 --
-- MAC 0:45:56:78:9a:bc
-- IP  192.168.2.115
-I- ** Valid PHY Found: 0
-I- AutoNegotiate complete
P: Link detected

在PC终端输入命令:ping 192.168.2.115,如图3-34所示:

图 3-34

3.3.15 hsmci_multimedia_card

目的

帮助用户熟悉SAM微控制器上的HSMCI接口,同样也可以帮助用户熟悉SD/MMC的操作。

功能描述

程序运行之前打开超级终端,运行之后你可以在超级终端看到测试信息,这些信息包括:初始化,性能等。

使用流程

下载完成后按NRST复位开发板,可以在终端看到相关信息输出,然后插入SD卡。

现象说明

终端信息显示: 尚未插入SD卡时:

-- Basic MultiMedia Card Project 2.0 --
-- SAM9XX5-EK
-- Compiled: Jul 11 2012 09:09:37 --
-I- Cannot check if SD card is write-protected

插入SD卡之后:

==========================================
-I- SdMmcIdentify.Cmd5: 3
-I- SD MEM
-I- Card Type 2, CSD_STRUCTURE 0
-W- SD 4-bit mode
-I- HS Not Supported in SD Rev 0x0
-I- Set SD/MMC clock to 22222K
-I- SD/MMC card initialization successful
…

按一个回车键之后:

-!- MCK is 133MHz
-!- Buffer@2000b754,size 0x400000
# i,I   : Re-initialize card
# t     : Disk R/W/Verify test
# T     : Disk performance test
# p     : Change number of blocks in one access for test
# m     : Change MCI interface used

输入对应命令进行不同操作。如输入t:

==========================================
-!- Test code: 1.clr, 2.wr, 3.rd
-I- Testing block [783232 - 791423]…

==== 3.3.16 hsmci_sdcard ====

目的

帮助用户熟悉SAM微控制器的HSMCI接口,同样也可以帮助用户熟悉SD卡的操作,为以后使用自己的SD卡驱动和应用程序打下基础。

功能描述 该程序检测、初始化插入的SD/MMC卡,然后进行读写性能测试。

使用流程

下载完成后按NRST复位开发板,可以在终端看到相关信息输出,当提示“Please insert a card”时插入SD卡,开始对SD卡进行初始化以及性能测试。

现象说明

终端信息显示:

-- Basic HSMCI SD/MMC Example 2.0 --
-- SAM9XX5-EK
-- Compiled: Jul 11 2012 09:48:44 --
-I- Cannot check if SD card is write-protected
-- 

==========================================
-I- SdMmcIdentify.Cmd5: 3
-I- SD MEM
-I- Card Type 2, CSD_STRUCTURE 0
-W- SD 4-bit mode
-I- HS Not Supported in SD Rev 0x0
-I- Set SD/MMC clock to 22222K
…(中间省略)
==========================================
-!- MCI 0, code: 1.clr, 2.wr, 3.rd
-I- Testing block [783232 - 791423]…

==== 3.3.17 smc_nandflash ====

目的

演示如何读写数据到与NandFlash连接的SMC,并且考虑ECC和坏块标记。

功能描述

该程序测试了开发板的Nandflash模块,需要配置Nandflash与SMC的接口,在终端输入提示的对应命令,显示相应的结果信息。

使用流程

下载完成后,连接将SW1拨为on,按NRST复位开发板,可以在终端看到相关信息输出。

现象说明

终端信息显示:

-- SMC NandFlash Example 2.0 --
-- SAM9XX5-EK
-- Compiled: Jul 11 2012 10:37:14 --
-I- Nandflash ID is 0x9580DA2C
Menu :
------
- i: Dump Nand flash information
- d: Enable or disable DMA
- r: Performance test (Raw without ECC) 
- s: Performance test (Software ECC) 
- p: Performance test (PMECC) 
- h: Display this menu

输入i:

-I- Size of the whole device in bytes : 0x10000000 
-I- Size in bytes of one single block of a device : 0x20000 
-I- Number of blocks in the entire device : 0x800 
-I- Size of the data area of a page in bytes : 0x800 
-I- Number of pages in one block : 0x40

输入d:

-I- Initialize DMA done.
-I- Disable DMA done.
-I- Initialize DMA done.
-I- Disable DMA done

输入r:

-I- Erase block 10 
-I- Write block 10 
-I- Raw block write speed 4228K/s
-I- Read block 10 
-I- Raw block Read speed 6553K/s
Menu :
------
- i: Dump Nand flash information
- d: Enable or disable DMA
- r: Performance test (Raw without ECC) 
- s: Performance test (Software ECC) 
- p: Performance test (PMECC) 
- h: Display this menu

输入s:

-I- Disable PMECC using Software ECC.
-I- Erase block 10 
-I- Write block 10 
-I- Raw block write speed 1506K/s
-I- Read block 10 
-I- Raw block Read speed 1899K/s
Menu :
------
- i: Dump Nand flash information
- d: Enable or disable DMA
- r: Performance test (Raw without ECC) 
- s: Performance test (Software ECC) 
- p: Performance test (PMECC) 
- h: Display this menu

输入p:

-I- Initialize PMECC.
-I- Erase block 10 
-I- Write block 10 
-I- Raw block write speed 3542K/s
-I- Read block 10 
-I- Raw block Read speed 5041K/s
Menu :
------
- i: Dump Nand flash information
- d: Enable or disable DMA
- r: Performance test (Raw without ECC) 
- s: Performance test (Software ECC) 
- p: Performance test (PMECC) 
- h: Display this menu

输入h则显示menu。

3.3.18 spi_serialflash

目的

演示如何建立SPI,然后对serial dataflash进行初始化和读写操作。

功能描述

该程序测试了对dataflash的每一页进行擦除、读写操作,并且测试了读写带宽。

使用流程

下载完成后按NRST复位开发板,可以在终端看到相关信息输出(注意:SW2状态为on)。

现象说明

终端信息显示:

-- SPI with Serialflash Example 2.0 --
-- SAM9XX5-EK
-- Compiled: Jul 11 2012 11:02:31 --
DMA driver initialized with IRQ
SPI and AT25 drivers initialized
ID read: 471f
AT25DF321 serial flash detected
Flash unprotected
Chip is being erased...
经过若干时间之后:
Checking erase ...
Checking page #16383
Erase successful.
Programming a walking 1 on all pages ...
Programming page #16383
Walking 1 test successful.

3.3.19 usb_audio_looprec

目的

帮助用户熟悉AT91SAM系列微控制器上的USB设备端口UDP和DACC,同样也可以帮助用户熟悉USB架构。

功能描述

该程序模拟了一个有麦克风的USB Desktop Speaker,但是它不能讲话,只能回送声音作为麦克风的输入。将运行该程序的开发板用USB线与主机连接(比如 PC),开发板作为主机的Desktop speaker。主机播放音乐时,音频流可以传送到开发板上,与此同时,开发板将接收到的音频流传回主机用来录音。

使用流程

下载完成后按NRST复位开发板,可以在终端看到相关信息输出,当用USB线连接PC时提示发现新的USB设备(第一次连接audio speaker到PC)。

现象说明

启动开发板,连接PC机,提示发现新硬件,并自动安装,在设备管理器可以看到“USB Audio Device”,如下图3-35所示:



图 3-35

终端信息显示:

-- USB Device Audio LoopREC Example 2.0 --
-- SAM9XX5-EK
-- Compiled: Jul 13 2012 10:02:27 --
USBD_Init

3.3.20 usb_cdc_serial

目的

帮助用户熟悉AT91SAM 微控制器的USB设备端口(UDP)和USART接口,此外还可以熟悉USB架构。

功能描述

该程序模拟实现了一个USB转换为RS-232串口。

使用流程

下载完成后按NRST复位开发板,可以在终端看到相关信息输出,PC机提示发现新硬件(注意:有部分电脑可能不提示),在设备管理器可以看到新硬件,然后安装驱动后可看到多了一项串口设备。

现象说明

在设备管理器可以看到图3-36:

图 3-36

然后点右键更新驱动,驱动所在位置为:04_MDK_Source\libraries\usb\device,当安装驱动之后,可以在端口看到新添加的“AT91 USB to Serial Converter(COM18)”,如下图3-37所示:

图 3-37

终端信息显示:

USB Device CDC Serial Project 2.0 --
-- SAM9XX5-EK
-- Compiled: Jul 11 2012 11:44:04 --
-I- CDCDSerial_Initialize
-I- CDCDSerialPort_Initialize
USBD_Init
-- ESC to Enable/Disable ECHO on cdc serial --
-- TAB to Enable/Disable DEBUG log output   --
-I- VBus configuration
-I- conn

3.3.21 usb_core

目的

帮助用户熟悉AT91SAM 微控制器的USB设备端口(UDP)的接口。

功能描述

该程序实现了开发板USB模块简单的实现。当用USB线连接主机PC时,主机提示发现USB设备。

使用流程

下载完成后按NRST复位开发板,可以在终端看到相关信息输出,用USB线连接PC时,主机提示发现USB设备(特别声明:有部分电脑可能没有提示,在设备管理器看到的也可能是未知设备,如下左图所示),在设备管理器中可以查看。

现象说明

在设备管理器中可以查看到新的硬件USB设备,如下图3-38所示:



图 3-38

特别声明:左边是在Windows7系统下测试的效果,右边是在WindowsXP下测试的。

终端信息显示:

     USB Device Core Project 2.0 --
-- SAM9XX5-EK
-- Compiled: Jul 13 2012 09:06:43 --
-I- USB initialization
USBD_Init
-I- Connecting device
-I- VBus configuration
-I- conn
Rsm Susp Rsm Std gDesc Dev Std sAddr SetAddr(5) Std gDesc Dev Std gDesc Cfg Std gDesc Cfg Std gDesc Cfg

3.3.22 usb_hid_keyboard

目的

帮助新用户熟悉AT91SAM 微控制器的USB设备端口(UDP)的接口,此外还可以熟悉USB架构,该框架可以用来兼容快速发展的USB类驱动程序,比如USB HID。

功能描述

该程序模拟一个简单的键盘。将运行该程序的开发板用USB线连接时,主机提示发现新硬件,如下图3-39所示:

图 3-39

待驱动安装完成后,可以在人体输入设备中看到新增加的USB设备,如图3-40所示:

图 3-40

使用流程

下载完成后按NRST复位开发板,可以在终端看到相关信息输出,PC机提示发现新硬件,并自动安装驱动,待安装完成后,在设备管理器的人体学输入设备中添加一项新的USB输入设备。

现象说明

在设备管理器中看到新添加的USB输入设备,如上图3-39所示。 在终端信息显示:

  USB Device HID Keyboard Project 2.0 --
-- SAM9XX5-EK
-- Compiled: Jul 13 2012 10:33:42 --
-- : DBG key 1 2 used as buttons
-- : 1st press to push, 2nd press to release
-I- HIDDFunction_Initialize
USBD_Init
-I- VBus configuration
-I- conn

在PC终端上按数字键“1”,终端不断输入字符“a”,再按“1”,停止输入字符“a”

-I- Key 0 pressed
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-I- Key 0 released
-I- Key 0 pressed
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-I- Key 0 released
-I- Key 0 pressed
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-I- Key 0 released

3.3.23 usb_hid_mouse

目的

帮助新用户熟悉AT91SAM 微控制器的USB设备端口(UDP)的接口,此外还可以熟悉USB架构。

功能描述

该程序实现了开发板USB模块按键控制鼠标。当运行该程序的开发板用USB与主机连接时提示发现新硬件,然后通过在键盘按“wsad”可以控制主机的光标。

使用流程

下载完成后按NRST复位开发板,可以在终端看到相关信息输出,主机提示发现新硬件,自动安装,完成后可以在设备管理器中看到新安装的硬件,然后在键盘按“wsad”(分别表示:上下左右)可以移动主机光标(注意:此时光标要在终端上)。

现象说明

在设备管理器看到新添加的USB设备,如图3-41所示:

图 3-41

终端信息显示:

USB Device HID Mouse Project 2.0 --
-- SAM9XX5-EK
-- Compiled: Jul 13 2012 10:52:08 --
-- Press W S A D to move cursor
-I- HIDDFunction_Initialize
USBD_Init
-I- VBus configuration
-I- conn

在键盘按“WSAD”可以移动主机光标(光标要在终端上)。

3.3.24 usb_hid_msd

目的

帮助新用户熟悉AT91SAM 微控制器的USB设备端口(UDP)和其它的一些接口,此外还可以熟悉USB架构。

功能描述

该程序模拟了一个集成键盘和存储的USB设备。将运行该程序的开发板与主机(PC)连接时,主机提示发现新硬件,自动安装完成后,PC端出现一个10M的可移动磁盘,格式化后可以当作普通磁盘使用。

使用流程

下载完成后按NRST复位开发板,可以在终端看到相关信息输出。连接开发板和主机时提示发现新硬件,自动安装完成后,PC端出现一个10M的可移动磁盘,格式化后可以当作普通磁盘使用。

现象说明

启动开发板之后,提示发现新硬件,如下图3-42所示:

图 3-42

当驱动安装完成之后,弹出是否格式化磁盘的对话框,如下图3-43所示:

图 3-43

选择格式化磁盘,弹出格式化可移动磁盘对话框,如下图3-44所示:

图 3-44

格式化完成之后,可以看到一个10M的磁盘,可以当作普通的磁盘使用如图3-45所示:

图 3-45

终端信息显示:

USB HIDMSD Device Project 2.0 --
-- SAM9XX5-EK
-- Compiled: Jul 13 2012 11:03:53 --
-- : DBG key 1 2 used as buttons
-- : 1st press to push, 2nd press to release
-I- LUN init
RamDisk @ 22000000, size 10485760
-I- RAM Disk init
-I- LUN init
-I- LUN: blkSize 1, size 20480
-I- HIDDFunction_Initialize
-I- MSDFun init
MSDReset USBD_Init
-I- VBus configuration
-I- conn
------------------------------
Inquiry Sending 
Inquiry Sent Cplt 
SendCSW ok
------------------------------
Inquiry Sending
Inquiry Sent Cplt 
SendCSW ok
------------------------------
-W- MSDD_ProcessCommand: Unknown cmd 0x23
StaIN Cplt StallIn WaitHALNewReq Kbd T 
SendCSW ok
------------------------------
ReqSense
ReqSense Cplt 
SendCSW ok
------------------------------
.....(.信息较多,不全部展示)

3.3.25 usb_hid_transfer

目的

帮助新用户熟悉AT91SAM微控制器的USB设备端口(UDP)的接口和PIO接口。此外也可以熟悉USB架构,该架构可以用来兼容快速发展的USB类驱动程序,比如USB Humen设备(HID)。

功能描述

该例程模拟了一个主机的自定义HID设备,它包含了指示灯和按钮的信息数据流。将运行该程序的开发板用USB线与主机连接(比如 PC),主机提示发现新硬件,然后可以对它进行读写操作。

使用流程

  1. 下载完成后按NRST复位开发板,可以在终端看到相关信息输出。
  2. 当USB连接到电脑时,LED灯闪烁,硬件设备列表出现新硬件,待驱动安装完成后,打开软件(04_MDK_Source\25_usb_hid_transfer\hidTest.exe)对它进行检测。
  3. 查找HID设备,VID:03EB,PID:6201 ,选择项目类型以查看其属性。
  4. 在输入框中输入想要发送的数据,使用右侧的按钮发送,并且可以在终端看到发送的数据。

现象说明

启动开发板,之后主机提示发现新硬件,驱动会自动安装,如下图3-46所示:

图 3-46

待驱动安装完成后,可以在人体学输入设备中看到新添加的USB输入设备和HID-compliant device,如下图3-47所示:

图 3-47

打开软件(04_MDK_Source\25_usb_hid_transfer\hidTest.exe),点击“Read”读取HID设备ID号,点击LED1,LED2分别控制开发板上蓝灯和红灯,如下图3-48所示:

图 3-48

终端信息显示:

USB Device HID Transfer Project 2.0 --
-- SAM9XX5-EK
-- Compiled: Jul 13 2012 11:20:38 --
-- : DBG key 1 2 used as buttons
-- : 1st press to push, 2nd press to release
-I- HIDDFunction_Initialize
USBD_Init
-I- VBus configuration
-I- conn
81 4f 00 20 00 00 00 00
 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 05
 00 00 00 00 00 00 00 01
Data In(32):
 83 4f 00 20 00 00 00 00
 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 05
 00 00 00 00 00 00 00 01
Data In(32):
 82 4f 00 20 00 00 00 00
 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 05
 00 00 00 00 00 00 00 01
Data In(32):
 83 4f 00 20 00 00 00 00
 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 05
 00 00 00 00 00 00 00 01

3.3.26 usb_iad_cdc_cdc

目的

帮助新用户熟悉AT91SAM微控制器的 USB设备端口(UDP)和其他的一些接口。此外也可以熟悉USB框架,该框架可以用来兼容快速发展的USB类驱动程序,如USB通信设备类 (CDC ),以及了解如何将两个USB功能和一个复合设备结合(如Dual CDC端口)。

功能描述

此程序实现了2个USB转换为RS-232串口的功能。将运行该程序的开发板与主机连接时,主机提示发现新硬件。

使用流程

下载完成后按NRST复位开发板,可以在终端看到相关信息输出。当USB连接到电脑时,指示灯闪烁,主机提示一个新的USB设备连接。用户可以在终端发送数据到该端口,可以在与USART端口或者USB串口相连的其他终端看见。

现象说明

启动开发板之后,主机提示发现新硬件,一般情况会自动安装驱动。

图 3-49

如果驱动没能成功安装(如图3-49),可以手动安装(驱动在:04_MDK_Source\libraries),安装方法可以参考3.2.3小节,安装完成后可以看到新添加两个COM设备,如图3-50所示:

图 3-50

终端信息显示:

USB Dual CDC Device Project 2.0 --
-- SAM9XX5-EK
-- Compiled: Jul 13 2012 11:43:44 --
-I- DUALCDCDDriver_Initialize
-I- CDCDSerialPort_Initialize
-I- CDCDSerialPort_Initialize
USBD_Init
-I- VBus configuration
-I- conn

3.3.27 usb_iad_cdc_hid

目的

帮助新用户熟悉AT91SAM微控制器的 USB设备端口(UDP)和其他的一些接口。此外还可以熟悉USB框架,该框架可以用来兼容快速发展的USB类驱动程序,如USB通信设备类 (CDC ),以及了解如何将两个USB功能和一个复合设备结合(如CDC+HID)。

功能描述

该例演示模拟了USB复合设备,包含USB转RS232和USB HID键盘功能。将运行该程序的开发板用USB线与主机连接(比如 PC),主机提示发现新硬件,待驱动安装完成后设备管理器添加COM设备和键盘设备。

使用流程

下载完成后按NRST复位开发板,可以在终端看到相关信息输出。当USB连接到主机时,指示灯闪烁,主机提示一个新的USB设备连接,驱动安装完成之后可以看到新添加的设备“AT91 USB to Serial Converter”和“HID keyboard Device”,在终端按下数字键“1”时终端不断输入数字“a”,再次按“1”时,终端停止输入字符“a”。

现象说明

启动开发板,主机提示发现新硬件,自动安装驱动,安装完成之后可以在设备管理器看到如下图3-51所示:

图 3-51

注意:如果驱动安装不正确需要手动安装(驱动在04_MDK_Source\libraries),驱动安装方法可以参照3.2.3小节。

终端信息显示:

USB CDCHID Device Project 2.0 --
-- SAM9XX5-EK
-- Compiled: Jul 13 2012 14:15:47 --
-- : DBG key 1 2 used as buttons
-- : 1st press to push, 2nd press to release
-I- CDCDSerial_Initialize
-I- CDCDSerialPort_Initialize
-I- HIDDFunction_Initialize
USBD_Init
-I- VBus configuration
-I- conn

在终端按数字“1”不断输入字符“a”,再次按数字键“1”时终端停止输入字符“a”。

-I- Key 0 pressed
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-I- Key 0 released
-I- Key 0 pressed
aaaaaaaaaaaaaaaaaaaaaaaaa-I- Key 0 released
-I- Key 0 pressed
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-I- Key 0 released
-I- Key 1 pressed
-I- Key 1 released
-I- Key 0 pressed
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-I- Key 0 released

3.3.28 usb_iad_cdc_msd

目的

帮助新用户熟悉AT91SAM微控制器的USB设备端口(UDP)和一些其他的接口。此外也可以熟悉USB框架,该框架可以用来兼容快速发展的USB类驱动程序,如USB通信设备类 (CDC ),以及了解如何将两个USB功能和一个CDCMSD设备结合(如CDC+ ,MSD)。

功能描述

该例模拟了一个USB复合设备,该设备集成了USB转RS232的功能和U盘功能。将运行该程序的开发板用USB线与主机连接(比如 PC)时,主机提示发现新硬件,待驱动安装完成后增加一个COM设备和一个10M的可移动磁盘。

使用流程

下载完成后按NRST复位开发板,可以在终端看到相关信息输出,将运行该程序的开发板和主机连接时,指示灯闪烁,主机提示发现一个USB设备连接,待驱动安装完成后,可以看到新添加了一个USB转串口设备(AT91 USB to Serial Converter)和磁盘驱动设备“ATMEL Mass Storage MSD USB Deice”。在PC端新添加的10M可移动磁盘经格式化后可以当作普通磁盘使用。

现象说明

启动开发板,待驱动安装完成后,新添加一个COM设备和弹出可移动磁盘格式化对话框,格式化后磁盘可以当作普通磁盘使用如图3-52所示:



图 3-52

终端信息显示:

-- USB CDCMSD Device Project 2.0 --
-- SAM9XX5-EK
-- Compiled: Jul  6 2012 15:36:27 --
-I- LUN init
RamDisk @ 22000000, size 10485760
-I- RAM Disk init
-I- LUN init
-I- LUN: blkSize 1, size 20480
-I- CDCDSerial_Initialize
-I- CDCDSerialPort_Initialize
-I- MSDFun init
MSDReset USBD_Init
-I- VBus configuration
-I- conn
Rsm Susp Rsm NewReq Cdcf Msdf Std gDesc Dev NewReq Cdcf Msdf Std sAddr SetAddr(5) NewReq Cdcf Msdf Std gDesc Dev NewReq Cdcf Msdf Std gDesc Cfg NewReq Cdcf Msdf Std gDesc Str0 NewReq Cdcf Msdf Std gDesc Str1 NewReq Cdcf Msdf Std gDesc Dev NewReq Cdcf Msdf Std gDesc Cfg NewReq Cdcf Msdf Std gDesc Cfg NewReq Cdcf Msdf Std sCfg SetCfg(1) MSDFunCfg MSDReset -I- USB Connect
NewReq Cdcf Msdf Std gDesc Str1 NewReq Cdcf Msdf Std gDesc Str1 NewReq Cdcf Msdf Std gDesc Str1 NewReq Cdcf Msdf Std gDesc Str1 NewReq Cdcf Cdcs gLineCoding NewReq Cdcf Cdcs sControlLineState(0, 0) NewReq Cdcf Cdcs Msdf gMaxLun 
------------------------------
Inquiry Sending
Inquiry Sent Cplt 
SendCSW ok
------------------------------
Inquiry Sending
Inquiry Sent Cplt 
SendCSW ok
(信息较多,部分选取)

3.3.29 usb_massstorage

目的

帮助新用户熟悉AT91SAM 微控制器的USB设备端口(UDP)的接口,此外还可以熟悉USB架构,该架构用于兼容快速发展的USB类驱动程序,如USB海量存储(MSD)等。

功能描述

该例模拟一个10M字节的USB磁盘。将运行该程序的开发板用USB线与主机连接(比如 PC),开发板作为主机的USB磁盘,然后可以对磁盘进行格式化,读写。如果开发板上有SDRAM,磁盘则可以到达10M,可以用来进行读写速度的测试,若没有SDRAM而只有内部Flash,磁盘约为30KB,则只可以测试小文件。

使用流程

下载完成后按NRST复位开发板,可以在终端看到相关信息输出。将运行该程序的开发板与主机用USB线连接时,主机会提示一个新的USB设备连接,设备自动安装,然后在主机的设备管理器可以发现“ATMEL Mass Storage MSD USB Deice”。主机弹出对话框询问是否格式化可移动磁盘,选择格式化可移动磁盘,然后该磁盘可当作普通磁盘使用。

现象说明

在设备管理器可以看到增加一个磁盘设备,如图3-53:

图 3-53

询问是否格式化磁盘,如图3-54和3-55所示,将其格式化后,可以将其当作普通磁盘使用。

图 3-54



格式化之前

格式化之后
图 3-55

终端信息显示:

-- USB Device Mass Storage Example 2.0 --
-- SAM9XX5-EK
-- Compiled: Jul 11 2012 14:27:44 --
-I- LUN init
RamDisk @ 22000000, size 10485760
-I- RAM Disk init
-I- LUN init
-I- LUN: blkSize 1, size 20480
-I- MSDFun init
MSDReset USBD_Init
-I- VBus configuration
-I- conn
Rsm Susp Rsm NewReq Msdf Std gDesc Dev NewReq Msdf Std sAddr SetAddr(5) NewReq Msdf Std gDesc Dev NewReq Msdf Std gDesc Cfg NewReq Msdf Std gDesc Str3 NewReq Msdf Std gDesc Str0 NewReq Msdf Std gDesc Str2 NewReq Msdf Std gDesc Dev NewReq Msdf Std gDesc Cfg NewReq Msdf Std gDesc Cfg NewReq Msdf Std gDesc Str0 NewReq Msdf Std gDesc Str0 NewReq Msdf Std gDesc Str3 NewReq Msdf Std gDesc Str3 NewReq Msdf Std sCfg SetCfg(1) MSDFunCfg MSDReset NewReq Msdf gMaxLun 
------------------------------
Inquiry Sending
Inquiry Sent Cplt 
SendCSW ok
------------------------------
Inquiry Sending
Inquiry Sent Cplt 
SendCSW ok
------------------------------
-W- MSDD_ProcessCommand: Unknown cmd 0x23
StaIN Cplt StallIn WaitHALNewReq Msdf ClrFeat Hlt Std cFeat Hlt T 
SendCSW ok
…(部分省略)

3.3.30 rs485

目的

帮助新用户熟悉rs485通信接口,有助于用户在该例程的基础上快速上手rs485的使用。

功能描述

该例程通过rs485来实现两块板之间的通信,演示了rs485通信的使用。一块板作为发送端,不断地向另一块板发送一个字符串;另一块板作为接收端,负责接收发送端发送过来的数据,并检验所接收到的数据是否正确,在终端上显示结果。

使用流程

使用该例程需要用到两块MYD-SAM9X5开发板,下载完成后(两块板都要下载该例程的程序),用杜邦线将两块板J19的485_A互相连接、485_B互相连接,然后重启开发板,一块板选择作为发送端,另一块板选择作为接收端,观察终端上的输出信息。

现象说明

发送端终端信息显示:

RomBOOT
Start AT91Bootstrap...
Init DDR... Done!
Loading 1-Wire info...
sn: 0x4010424;   rev: 0x8421
Downloading image...
detected dataflash id = 0x1f 0x47 0x1 0x0 0x0.
Done!
 
-- RS485  Project 2.0 --
-- SAM9XX5-EK
-- Compiled: Feb 22 2013 18:04:27 --
---Press 1 It will be send host-------
---Press 2 It will be receive host----
-----It is sending ------
-----Send data:RS485 TEST OK!!!

接收端终端信息显示:

RomBOOT
Start AT91Bootstrap...
Init DDR... Done!
Loading 1-Wire info...
sn: 0x4010424;   rev: 0x8421
Downloading image...
detected dataflash id = 0x1f 0x47 0x1 0x0 0x0.
Done!
 
-- RS485  Project 2.0 --
-- SAM9XX5-EK
-- Compiled: Feb 22 2013 18:07:56 --
---Press 1 It will be send host-------
---Press 2 It will be receive host----
-----It is  receiving -------
-----Received Data:
RS485 TEST OK!!!
RS485 TEST OK!!!
RS485 TEST OK!!!
RS485 TEST OK!!!
RS485 TEST OK!!!
RS485 TEST OK!!!

3.4 资源下载

打印/导出
语言
本页面的其他翻译: