电子说
在电子设计领域,不断地对原有的产品进行升级和优化是推动技术进步的重要途径。今天我们要探讨的AT43USB380,就是Atmel公司对AT43USB370进行的一次重要升级,它在支持USB 2.0 On - The - Go(OTG)规范方面表现出色。
文件下载:AT43USB380E-AC.pdf
AT43USB380是AT43USB370主机/功能处理器的直接升级版本,旨在支持USB 2.0 OTG规范。它既可以作为单芯片主机/功能处理器独立工作,也可以与外部Atmel电荷泵配合,构成完整的OTG解决方案。
从功能上看,AT43USB380作为主机/功能处理器与AT43USB370基本等效,在现有AT43USB370设计中,只需进行少量硬件修改,就可以用AT43USB380替代AT43USB370。不过,两者在引脚分配上存在差异,这主要是因为AT43USB380增加了片上OTG接口。
为支持OTG功能,AT43USB380增加了片上OTG接口。该接口包含ID、DISCHARGE、PUMP、CONTROL、EN、SESS_VLD、SESS_END、SESS_HIGH和SESS_LOW等信号。在OTG会话期间,这些信号用于确定AT43USB380和连接的支持OTG的USB设备的角色,是作为主机还是功能设备。大家在设计时,要特别关注这些信号的连接和配置,以确保OTG功能的正常实现。
AT43USB380具有可变宽度的通用主机处理器接口,而AT43USB370仅支持32位主机接口。AT43USB380主机接口的宽度由固件配置决定,这为设计带来了更大的灵活性。在实际应用中,我们可以根据具体需求选择合适的接口宽度,以优化系统性能。
与AT43USB370相比,AT43USB380不再需要用于握手的GPIO。系统处理器可以直接写入AT43USB380寄存器,从而消除了PROG、SEL、READY、DONE、MORE、INTR_IN等信号的需求。WAIT_N信号也仅作为SYS_CLK同步的预防措施,并非必需。这种简化的设计减少了硬件复杂度,提高了系统的稳定性。
GPIO引脚与主机处理器接口复用。当主机处理器接口为8位或16位时,主机处理器接口中最多16个未使用的引脚可以用作GPIO引脚。同时,还提供了高级API来访问这些GPIO引脚,方便开发者进行功能扩展。
在固件开发环境方面,AT43USB380与AT43USB370共享相同的高级API和低级固件库。此外,AT43USB380的固件套件还增加了以下内容:
新增的高级API数量少于10个,这些API为开发者提供了方便的接口,用于实现OTG功能。
AT43USB380硬件中嵌入了支持主机协商协议(HNP)和会话请求协议(SRP)的低级OTG固件。这些协议对于OTG会话的建立和管理至关重要,开发者需要深入理解并正确使用。
同时,AT43USB380与AT43USB370共享相同的调试工具。在开发过程中,可以将AT43USB380视为一个黑盒,通过少量(少于25个)符合ANSI C标准的高级API与它进行通信。实际的USB协议(包括HNP和SRP)对主机处理器是透明的。
| AT43USB380的引脚功能丰富,涵盖了系统接口、USB接口、电荷泵接口、振荡器和时钟、JTAG接口、测试引脚以及电源/接地引脚等多个方面。详细的引脚描述如下表所示: | 信号名称 | 方向 | 极性 | 宽度 | 描述 |
|---|---|---|---|---|---|
| System Interface | |||||
| SYS_CLK | I | 1 | 主机系统时钟输入,用于WAIT_N和DREQ_N的同步(同步要求可通过内部寄存器设置启用/禁用) | ||
| A[7:0] | I | 8 | 系统地址总线 | ||
| CS_N | I | LO | 1 | 来自系统(ARM®)的CHIP_SELECT信号 | |
| D[15:0] | B | 16 | 系统数据总线[15:0] | ||
| D[31:16]/ GPIO[15:0] | B | 16 | BWIDTH[1:0]=1x : 系统数据总线[31:16] BWIDTH[1:0]=0x : GPIO[15:0] | ||
| DACK_N | I | LO | 1 | 来自系统(ARM)的DMA确认 | |
| DREQ_N | O | LO | 1 | 向系统(ARM)的DMA请求 | |
| INTR_OUT | O | HI | 1 | 向系统(ARM)的中断 | |
| OE_N | I | LO | 1 | 来自系统(ARM)的OUTPUT_ENABLE | |
| WAIT_N | O | LO | 1 | 向系统(ARM)的WAIT | |
| WE_N | I | LO | 1 | 来自系统(ARM)的WRITE_ENABLE | |
| BWIDTH[1:0] | I | 2 | 系统数据总线大小: 00 : 8位接口D[7:0] 01 : 16位接口D[15:0] 1x : 32位接口D[31:0] | ||
| WAKEUP_N | I | LO | 1 | 来自系统的唤醒请求 | |
| USB Interface | |||||
| DM | B | 1 | USB线(D - ) | ||
| DP | B | 1 | USB线(D + ) | ||
| ID | I | 1 | OTG设备类型识别;用于区分Mini - A和Mini - B插头 | ||
| RPU_EN | O | 1 | 启用D + 线的电阻上拉 | ||
| RPD_EN | O | 1 | 启用D + /D - 线的电阻下拉 | ||
| Charge Pump Interface | |||||
| CPClk | O | 1 | 电荷泵时钟输出 | ||
| EN | O | 1 | 电荷泵;启用电荷泵 | ||
| PUMP_EN | O | 1 | 电荷泵;启用电荷泵 | ||
| SESS_VLD | I | 1 | 电荷泵;当VBUS > VSESS_VLD时为高电平,否则为“0” | ||
| SESS_END | I | 1 | 电荷泵;当VBUS > VSESS_END时为高电平,否则为“0” | ||
| SESS_LOW | I | 1 | 电荷泵;当VBUS > VSESS_LOW时为高电平,否则为“0” | ||
| SESS_HIGH | I | 1 | 电荷泵;当VBUS > VSESS_HIGH时为高电平,否则为“0” | ||
| LOW_CUR | O | 1 | 限制电荷泵的电流输出。在配置为B设备时,用于VBUS脉冲期间 | ||
| DISCHARGE | O | 1 | 电荷泵;将VBUS接地 | ||
| Oscillator, Clocks | |||||
| XTAL1 | I | 1 | 振荡器输入 | ||
| XTAL2 | O | 1 | 振荡器输出 | ||
| LFT | I | 1 | PLL环路滤波器 | ||
| CLK_SEL | I | 1 | 晶体和外部振荡器之间的时钟源选择 | ||
| RESET_N | I | LO | 1 | USB处理器的复位 | |
| Jtag Interface | |||||
| TCK/SI | I | 1 | TP3 = 0: JTAG时钟 - 来自JTAG控制器;TP3 = 1: SI - EEPROM | ||
| TDI/SCK | I | 1 | TP3 = 0: JTAG串行数据输入 - 来自JTAG控制器;TP3 = 1: SCK - EEPROM | ||
| TDO/SO | O | 1 | TP3 = 0: JTAG串行数据输出 - 来自JTAG控制器;TP3 = 1: SO - EEPROM | ||
| TMS/CS | I | 1 | TP3 = 0: JTAG模式选择 - 来自JTAG控制器;TP3 = 1: CS - EEPROM | ||
| TRST_N | I | LO | 1 | 来自JTAG控制器的JTAG复位 | |
| Test Pins | |||||
| TP0 | I | 1 | 测试引脚0 | ||
| TP1 | I | 1 | 测试引脚1 | ||
| TP2 | I | 1 | 测试引脚2 | ||
| TP3 | I | 1 | 测试引脚3 | ||
| TP4/SCAN_EN | I | 1 | 测试引脚4/SCAN_EN | ||
| TP_CLK /D_CLK | O | 1 | 时钟测试输出/SIE DPLL提取的时钟 | ||
| TP_RCV_DATA /RCV_DATA | O | 1 | 提取的串行数据测试输出 | ||
| Power/Ground Pins | |||||
| VEXT18 | O | 3 | 1.8V稳压输出 | ||
| VDD | I | 5 | 3.3V输入 | ||
| VSS | 10 | 接地 |
同时,文档还给出了详细的引脚分配表,这里就不一一列举了。大家在进行硬件设计时,一定要仔细对照引脚描述和分配表,确保引脚连接正确。
在主机模式下,AT43USB380的USB和电荷泵连接如图所示(文档中的Figure 1)。从图中可以看到,需要连接多个电阻、电容等元件,并且要正确连接电荷泵的各个引脚,以确保系统正常工作。大家在实际设计中,要根据电路图仔细进行元件选型和布局,注意信号的干扰和电源的稳定性。
总之,AT43USB380为电子工程师提供了一个强大的USB 2.0 OTG解决方案。通过对其硬件特性、固件开发环境和引脚等方面的了解,我们可以更好地利用这个芯片进行产品设计。大家在使用过程中,遇到问题可以随时查阅相关文档,或者与Atmel的技术支持人员沟通。你在设计中是否使用过类似的芯片呢?有没有遇到过一些独特的问题?欢迎在评论区分享你的经验。
全部0条评论
快来发表一下你的评论吧 !