AT43DK370 USB Host/Function开发套件使用指南
作为电子工程师,在进行USB相关项目开发时,一款实用的开发套件能起到事半功倍的效果。今天就来详细介绍一下AT43DK370 USB Host/Function开发套件,涵盖其特点、使用步骤、硬件描述、软件工具以及固件构建等方面。
文件下载:AT43DK370.pdf
一、开发套件简介
AT43DK370是一款针对AT43USB370主机/功能处理器的完整入门套件和开发系统,可用于实时固件开发和评估。它具有以下显著特点:
- 硬件配置丰富:包含ARM系统处理器、1MB Flash ROM、2MB静态RAM、USB Type A/B端口、RS - 232串口、MII扩展连接器、通用8位扩展连接器、20针JTAG接口连接器、复位按钮和电源指示灯,还具备系统内固件编程能力。
- 软件资源完善:配备USB固件库,包括USB主机栈、用户类设备驱动程序和C语言高级API,以及USB Clinic在线仿真工具。
二、开始使用
静电警告
AT43DK370开发板采用防静电包装运输,在处理电路板时,务必佩戴接地带或类似保护设备,避免接触元件引脚或其他金属部件,防止高静电电位对电路板造成损坏。
开箱检查
开发套件包含AT43DK370参考设计板和Atmel产品CD - ROM。若发现套件中缺少上述物品,可联系当地Atmel经销商或发送邮件至usb@atmel.com。
系统要求
硬件方面,需要486处理器(推荐奔腾处理器)、128MB RAM、10MB可用硬盘空间和Windows 98/2000/ME/XP操作系统,同时需要RS - 232端口(COM端口)。
硬件连接
按照以下步骤连接AT43DK370评估板:
- 将评估板上J5的串口电缆连接到PC的COM端口。
- 将电源的交流输入连接器连接到交流壁式插座(110 VAC)。
- 将电源的直流输出连接器连接到评估板上的J1。
安装与启动
- 将“Atmel AT43DK370”CD插入PC或笔记本的CD - ROM驱动器,按照提示进行安装。默认安装目录下,AT43USB370文档、固件和软件将安装在C:Program FilesATMEL USBAT43DK370 。
- 安装完成后,可通过桌面快捷方式或“开始”菜单中的“Atmel USB Clinic”启动USB Clinic程序。
硬件测试
从USB Clinic主菜单点击“Connection”,该按钮可测试RS - 232串口和AT43DK370开发板的连接。在进入连接菜单前,确保AT43DK370通过随附的串口电缆或标准串口电缆与PC物理连接。USB Clinic会自动检测并显示COM1至COM4端口的可用性,用户可选择可用端口并点击“Connect to Target”打开所选端口,点击“Test Connectivity with Target”验证连接,在输出窗口查看“Connection verified”信息,同时该操作还会检查AT43DK370固件版本是否支持当前USB Clinic版本。
三、硬件描述
AT43DK370开发板默认配置为独立(Flash)模式下的USB主机,也可通过跳线配置实现其他设置。开发板由带有32位外部总线的ARM®处理器、AT43USB370主机/功能处理器、2MB闪存ROM、2MB SRAM、USB A/B端口和RS - 232串口组成。AT43USB370通过其32位通用主机接口连接到ARM处理器,RS - 232端口可访问ARM处理器和AT43USB370,并实现SRAM的系统内编程。
跳线设置
-
操作模式:支持独立(Flash)模式和ICE(在线仿真器)模式。不同模式的跳线设置如下表所示: 独立模式(默认) ICE模式 JP4 (nRCS<4> is 1) 闭合:3 - 5, 7 - 9, 2 - 4 闭合:1 - 3, 5 - 7, 2 - 4 JP7 闭合:1 - 2 闭合:2 - 3 -
USB角色配置:AT43USB370可配置为全速/低速主机或全速设备,具体配置由跳线设置决定,如下表所示: USB主机(默认) USB功能FS JP5 闭合:2 - 3 闭合:1 - 2 JP8 打开 打开 JP9 闭合 打开 JP10 打开 闭合 JP11 闭合 打开 -
时钟源设置:正常操作使用6 MHz晶体时钟源,调试时可使用外部48 MHz振荡器作为时钟源,通过跳线设置如下: 内部PLL与6 MHz晶体(默认) 外部48 MHz振荡器 JP1 闭合:1 - 2 闭合:2 - 3 JP2 闭合:1 - 2 闭合:2 - 3
四、USB Clinic工具
USB Clinic是基于图形用户界面(GUI)的诊断和调试工具,通过RS - 232串口对AT43USB370 USB主机/功能处理器进行基本控制,其主要功能包括用户固件下载/执行、直接读写AT43USB370内部内存、操作USB设备枚举、通过各种端点进行数据传输、选择集线器端口功能以及控制USB设备状态等。
主菜单
安装完成后,可通过双击USB Clinic图标或从Windows“开始”菜单启动。主菜单包含七个功能类别:连接、下载代码、填充/读取内存、枚举、数据传输、集线器端口功能和设备状态控制。后四个类别与AT43USB370库API直接相关。
输出窗口
执行任何功能按钮都会弹出输出窗口,包括命令/状态窗口和用户程序输出窗口。命令/状态窗口显示USB Clinic命令执行的所有消息和输出,点击“Clear”按钮可清除窗口内容;用户程序输出窗口显示用户开发固件的文本消息和输出,在用户固件源代码中,需在每个消息打印语句末尾插入 n 以确保消息正确显示,点击“Clear”按钮也可清除窗口内容。
连接功能
从主菜单点击“Connection”可测试RS - 232串口和AT43DK370开发板的连接。USB Clinic会自动检测并显示COM端口的可用性,用户选择端口并点击“Connect to Target”打开端口,点击“Test Connectivity with Target”验证连接,同时检查AT43DK370固件版本和USB Clinic应用代码版本。“Check Device Enumerated”命令可检查连接的目标USB设备是否已枚举,通过检查设备地址是否分配来判断。
下载代码
“Download Code”按钮用于将用户开发的固件下载到系统处理器的程序内存空间进行调试和测试,但不能用于下载AT43DK370固件。ARM代码需要32位Intel Hex文件格式,入口地址为0x108000。选择合适的ARM固件后,可通过双击文件或点击“Download Now!!”开始下载,下载完成后,用户可选择再次下载固件而不执行代码,或点击“Execute Now”执行下载的固件。重置AT43DK370开发板不会擦除ARM内存空间中的固件。
内存操作
- 填充内存:允许用户以小端格式向目标设备的内存位置写入所需数据大小。用户需选择数据大小(8位、16位或32位),输入要填充的数据大小(4位十进制值)、起始地址(十六进制值)和要写入目标地址的模式(十六进制值)。
- 读取内存:允许用户以小端格式读取目标设备的所需内存位置。用户需选择要读取的数据大小(8位、16位或32位),输入起始地址(十六进制值),输出每行最多显示8个地址值(8字节或4字或2长字)的十六进制值,按地址从低到高显示。AT43DK370开发板的可用内存地址范围高达0x3FFFFFFF,用户无法读写超出此限制的内存地址。
枚举功能
枚举功能可在设备成功连接和枚举后检索并可能更改USB设备接口设置,包括获取设备描述符、获取配置描述符、获取字符串描述符、设置配置和设置接口。
- 获取设备描述符:用户需输入目标USB设备的设备地址(范围为1至7,按设备连接到AT43DK370主机的枚举顺序分配),以获取设备描述符。
- 获取配置描述符:用户需输入正确的设备地址和配置索引(当前固件不支持多个配置,配置描述符索引0始终检索第一个配置描述符),以获取第一个配置的配置描述符。
- 获取字符串描述符:用户需先确定字符串索引,可从设备、配置或接口描述符中获取。输入字符串索引0x00时,无论语言ID如何,输出窗口将显示设备支持的语言ID列表。USB Clinic Rev. 1.2仅解码美国英语(语言ID 0x0409)字符串,其他语言ID仅显示字符串描述符而不进行正确解码。
- 设置配置:用户需输入设备地址和与目标设备关联的配置编号,将设备设置为特定配置。由于AT43USB370库不支持多个配置设置,该命令主要用于枚举阶段,将设备从地址阶段设置为配置状态。
- 设置接口:对于具有多个接口/备用设置的配置,用户需输入设备地址、接口编号和与目标设备关联的备用编号,以设置特定的接口/备用接口设置。
数据传输
数据传输功能包括各种数据交换方法,如获取/发送ISO数据(用于同步传输)、获取/发送数据(用于中断、批量和控制传输)、控制传输(用于控制传输)和自定义传输(适用于所有传输类型)。
- 获取ISO数据:用户需输入设备地址、正确的ISO端点、数据包大小和为此操作分配的缓冲区大小,从USB设备的同步(ISO)端点获取数据。
- 发送ISO数据:用户需输入设备地址、正确的ISO端点、数据包大小和为此操作分配的缓冲区大小,向USB设备的同步(ISO)端点发送数据。
- 获取数据:用户需输入设备地址、目标端点、允许的重试次数、允许的NAK次数和为此操作分配的缓冲区大小,从USB设备的非同步端点(如中断、批量和控制)获取数据。
- 发送数据:用户需输入设备地址、目标端点、允许的重试次数、允许的NAK次数和为此操作分配的缓冲区大小,向USB设备的非同步端点(如中断、批量和控制)发送数据。
- 控制传输:用户需输入设备地址、控制端点、8字节设置数据的最低4字节(在Setup Hi字段中)、8字节设置数据的最高4字节(在Setup Lo字段中)、数据阶段字段和为此操作分配的缓冲区大小,对设备的控制端点进行传输。
- 自定义传输:用户可自定义传输类型,支持所有传输类型的端点(同步、中断、批量和控制)。用户需输入设备地址、目标端点、数据包类型、数据切换、允许的重试次数、允许的NAK次数、如果使用ISO端点则输入ISO数据包大小以及为此操作分配的缓冲区大小。
端口功能
端口功能用于启用或禁用所选集线器端口上的特定功能,包括设置端口功能和清除端口功能。
- 设置端口功能:用户需输入集线器设备地址、端口和要启用的功能,以启用所选集线器端口上的特定功能。
- 清除端口功能:用户需输入集线器设备地址、端口和要禁用的功能,以禁用所选集线器端口上的特定功能。
设备状态控制
设备状态控制允许主机控制下游设备的状态,包括重置设备、暂停设备和恢复设备。
- 重置设备:通过输入设备地址选择要重置的设备,将其状态重置为默认状态。
- 暂停设备:主机可强制所选设备进入暂停状态。如果设备具有远程唤醒功能(配置描述符的bmAttributes字段的第5位设置)且主机启用了DEVICE_REMOTE_WAKEUP(0x1)功能,设备可从暂停状态自行唤醒;否则,只能使用“Resume Device”命令唤醒设备。
- 恢复设备:主机可通过输入设备地址选择要唤醒的处于暂停状态的设备。
其他注意事项
- 目标信息列出了USB Clinic版本兼容性和DK硬件的相关信息,不包含任何函数调用。
- 输入提示前带有0x时,需要输入十六进制值(0至9,A/a至F/f)。
- 硬件电源循环或重置后(有时取决于重置条件),用户需点击“Connect to Target”建立AT43DK370开发板与PC之间的串行连接,该连接在点击“Connect to Target”按钮之前处于非活动状态。
- 单次传输有1000字符的限制,用户需将文本分段以符合此限制。
- 每个窗口都有“Help”按钮,可描述如何使用该窗口中的功能。
五、构建固件
开发AT43DK370的固件需要选择能够构建Intel 32位Hex文件格式ARM代码的ARM开发工具,本文以ARM® Developer Suite™版本1.2(ADS)为例进行说明。固件有三种模式:Flash模式、ICE模式和Download模式。
示例目录和文件结构
默认示例代码目录为C:Program FilesAtmel USBAT43DK370Firmware,从ADS中打开USBP_Library.mcp项目文件,该文件包含示例源代码和所需ARM库的构建信息。项目的目录结构如下:
- USBP_Library:项目主目录,包含主项目文件USBP_Library.mcp和所有项目文件夹,使用ADS 1.2版本构建。
- USBP_StandAlone_Lib:包含AT43USB370的固件和所有高低级API的二进制库USBP_StandAlone_lib.a,以及独立库的头文件USBP_lib.h。
- USBP_lib_port:包含用户需要实现并集成到USBP库中的处理器特定端口,包括头文件USBP_lib_port.h、处理器特定的汇编C端口文件USBP_lib_port_asm.s和处理器特定的C端口文件USBP_lib_port_c.c。
- ks32c50100_port:包含示例目标处理器ks32c50100的端口文件,如启动代码文件ks32c50100_start.s、处理器定义文件ks32c50100_config.h、系统管理器初始化例程文件ks32c50100_config.s、外设初始化函数文件ks32c50100_init.c和分散加载文件ks32c50100_scat_l.scf。
- Application:包含项目的应用程序(系统处理器软件)代码,如MSD目录包含USB_MSD_Library.a、msdlib.h和MSD应用程序代码;Application.h是应用程序的头文件;HEAP.c包含应用程序的堆管理代码;Clinic.c包含适用于USB Clinic的所有源例程;IdeCmds.h包含USB Clinic应用程序代码与PC USB Clinic之间使用的协议;main.c包含应用程序代码的入口点;EG.c包含应用程序代码。
ADS设置
为了构建项目,ADS需要知道编译代码的格式和如何链接其对象,这些信息存储在分散文件中。通过点击ADS IDE右上角的DebugRel设置图标,在弹出的窗口中设置分散文件路径。同时,还需进行以下设置:
- 生成Intel 32位Hex格式文件:在DebugRel设置窗口中,检查Linker下的ARMfromELF,若不存在则在Target > Target Settings中选择,然后在ARMfromELF窗口中设置Hex输出格式为Intel 32位Hex,并可指定输出文件名。
- ICE模式的固件入口点:在Linker > ARM Linker > Options中,将Image entry point设置为0x1000。
- 创建支持文件:在Linker > ARM Linker > Listings中,勾选Image Map和Symbols复选框,并在List file name提示中输入文件名,可创建Image Map文件和Symbol文件,但创建Symbol文件会显著增加构建时间。
修改示例应用程序
在USBP_Library.mcp项目文件中,双击EG.c文件可编辑源代码。ARM固件在执行期间可通过调用UART0XmitStr()函数并在文本字符串末尾添加 n 将消息打印到USB Clinic的输出窗口。编辑源文件后,若只想重新编译单个或几个选定的文件,可右键点击每个文件最右端的向下箭头图标,选择“Touch”,然后选择“Project > Make”仅编译已触摸的文件。输出文件(ICE模式的axf文件、Flash/Download模式的hex文件)将放置在指定目录下,可使用USB Clinic下载并执行该固件。
六、模式转换
默认示例模板配置为ICE模式,可转换为Flash模式生成Hex文件编程到DK闪存集,或转换为Download模式生成Hex文件使用USB Clinic下载到DK SRAM。转换步骤如下:
从ICE模式转换到Flash模式
- 在ADS中,进入DebugRel > Linker > ARM Linker > Options,将Image entry point指定为0x0。
- 在项目视图中,修改ks32c50100_scat_l文件以仅使用Flash模式部分
-
使用指南
+关注
关注
1文章
161浏览量
7425
发布评论请先 登录
AT43DK370 USB Host/Function开发套件使用指南
评论