AM335X 硬件开发使用指南
AM335x硬件开发使用指南
Functional Block Diagram
基本硬件开发的所有335X的接口资源都在上图中显示出来了。
下面来详细分析下Functional Block Diagram里面的一些资源
一、串形数据类
1、UART:
拥有6路的UART ,所有的UART都支持IrDA和CIR模式。
电路中如果需要用到485、232通信基本都在这6路UART里转换
2、RS485:
3、SPI:
拥有2路的SPI,一般其中一路会用来接FLASH(SPI FLASH)
另外一路则外开发的扩展功能使用,当然有时候也会将SPI FLASH舍去
4、McASP:
拥有2路的McASP,即我们的音频信号接口,涉及到I2S
5、CAN:
拥有2路的CAN
硬件上CAN总线的设计,记得末端的阻抗匹配,因为以往看到的很多电路图中,很多人都会把这个电阻给遗忘点,虽然不加这个电阻,硬件电路也是能用的,但是一旦涉及到了较高速的时候,就有丢失数据的风险了。
6、USB 2.0 HS:
注意这里使用的USB 2.0 HS,即支持USB2.0的最高传输速度(High-speed模式)
PS:的USB2.0标准将USB接口速度划分为三类,分别是传输速率在25Mbps-400 Mbps (最大480 Mbps)的High-speed接口(简称HS);传输速率在500Kbps-10Mbps(最大12Mbps)的Full-speed接口(简称FS);传输速率在10kbps-400 100kbps (最大1.5Mbps)的Low-speed接口(简称LS)
如果硬件电路上需要使用到HS模式的话,USB这对查分线需要做一定的处理:HUB_USBx_DM,HUB_USBx_DPshould be routed in 90 ohm differential impedance matching control
7、网络控制单元,Ethernet Media Access Controller (EMAC)(2-port) 10M, 100M, 1G IEEE 1588v2, and switch(MII, RMII, RGMII):
达到1G速率的网口功能,支持IEEE 1588V2 协议的高精度时钟。
二、系统端资源
1、Enhanced direct memory access(eDMA)
EDMA用于:传输到片上存储器和从片上存储器传输和传输到外部存储器(EMIF,GPMC,从器件外设)上。简单的来说,EDMA(增强型DMA控制器)是从硬件角度处理数据传输的问题,大大加速了数据复制速度,而不过多占用软件资源。
同时AM335X芯片的EDMA 具有三个第三方传输控制器(TPTC)和一个第三方通道控制器(TPCC) ,支持多达64个可编程逻辑通道和八个QDMA通道。
由此判断从硬件的角度出发,用AM335X来开发大数据处理是没什么问题的。
如果真的对用AM335X开发大数据有兴趣的,建议可以看下EDMA的引擎和TCD单元。
PS:eDMA模块包括两个主要模块:eDMA引擎和传输控制描述符TCD单元。其中,eDMA引擎的功能主要包括源地址和目的地址的计算和实际的数据搬移操作;TCD单元的功能是为每个通道定义传输的源地址和目的地址、次循环的大小、单次传输的字节量及传输方式等信息。
2、Timers
拥有8个的Timers。
3、WatchDog Timer(WDT)
Watchdog Timer,几时就是一个定时器电路,对系统频率进行分频计数,定时器溢出时,对系统进行复位。
一般有一个输入,叫喂狗(kicking the dog or service the dog),一个输出到MCU的RST端。MCU正常工作的时候,每隔一段时间输出一个信号到喂狗端,给WDT清零,如果超过规定的时间不喂狗(一般在程序跑飞时),WDT定时超过预先设定值,就会给出一个复位信号到MCU,使MCU重新开始工作。看门狗的作用就是防止程序发生死循环,或者叫程序跑飞。
就目前来看,现在几乎大部分的芯片,基本都集成WDT功能,因此对WDT的实现目前都基于软件开发了。
为了大家更好的理解,这里贴一张以前对于WDT的电路设计
而软件模拟看门狗,只要有个timer就可以模拟。
一般可以调用一个类似watchdog(void)的函数,因为由于软件平台不一样可能对WDT的软件处理方式不一样,但是原理基本一致,这一点所有软件包括了以前的电路设计都是一样的,只不过现在基于方便性和成本,而用软件来处理同一件事罢了。
4、Real-time clock(RTC)
时钟电路,为了不掉电,一般都需要长期有电。这个也是为什么你电脑主机里面有个纽扣电池的原因。
5、Enhanced high-resolution PWM modules(eHRPWM)
拥有3路的eHRPEM。
脉宽调制子系统的组成之一,另外两个则是强采集(eCAP),强正交编码脉冲(eQEP)
可以在最小的CPU开销下产生复杂的脉宽波形。 这个设计到低层驱动的问题了。不加讨论。
6、Enhanced quadrature encoder pulse (eQEP)
拥有3路的eQEP。
增强的正交编码器脉冲主要功能单元
•每个引脚(GPIO MUX的一部分)的可编程输入资格
•正交解码器单元(QDU)
•用于位置测量的位置计数器和控制单元PCCU)
•用于低速测量的正交边缘捕获单元(QCAP)
•用于速度/频率测量的单位时基(UTIME)•用于检测失速的看门狗定时器(QWDOG)
7、Power, Reset, and Clock Management (PRCM)
一个电源、复位和时钟的管理系统。
8、Enhanced capture modules (eCAP)
拥有3路的eCAP
三、并行接口类
AMR335X包含多媒体卡(MMC),安全数字(SD)和安全数字I / O(SDIO)3个高速接口模块(MMCHS)。AMR335X为MMC,SD存储卡或SDIO卡提供接口。
而且对于这3个接口(MMC/SD/SDIO)来说都是使用以下的几个引脚:
• MMC_CMD This pin is used for two-way communication between the connected card and the MMC/SD/SDIO controller. The MMC/SD/SDIO controller transmits commands to the card and the memory card drives responses to the commands on this pin;
• MMC_DAT7-0 Depending on which type of card you are using, you may need to connect 1, 4, or 8 data lines. The number of DAT pins (the data bus width) is set by the Data Transfer Width (DTW) bit in the MMC control register (SD_HCTL). For more information, see the registers section of this document;
• MMC_CLK This pin provides the clock to the memory card from the MMC/SD controller;
• MMC_POW Used for MMC/SD card’s cards on/off power supply control. When high, denotes power-on condition;
• MMC_SDCD This input pin serves as the MMC/SD/SDIO carrier detect. This signal is received from a mechanical switch on the slot;
• MMC_SDWP This input pin is used for the SD/SDIO card’s write protect. This signal is received from a mechanical protect switch on the slot (system dependant). Applicable only for SD and SDIO cards that have a mechanical sliding tablet on the side of the card。
1、Multimedia Card(MMC)
用AMR335X设计多媒体基本准从如下
用到CLK时钟脚/CMD命令脚和DATA[0:7]八位数据线
2、SD
SD卡的通信支持两种方式一种是SD总线模式、一种是SPI模式(对几个使用的定义不一样)而实际使用中,我们是可能插SD卡使用,也有可能不插SD卡使用,因此不插SD卡使用时,这几个信号交就存在浮空状态了,因此硬件设计中会通过给CMD和DATE脚上拉个10K的电阻来处理浮空问题。
3、Secure Digital I/O (SDIO)
AMR335X拥有3路的SDIO
4、GPIO
AMR335X一共有4组通用输入输出 ,每组输入输出有32个引脚。
你可要用这些GPIO来开发很多东西,包括了键盘、或则PWB捕获等等。
其中第一组GPIO0和其他三组有点小区别:
GPIO0 is in the Wakeup domain and may be used to wake up the device via external sources. GPIO[1:3] are located in the peripheral domain.
四、Display
1、24-bit LCD controller
24位的液晶显示控制,有时候开发的也会用到16位,需要根据不同需求来确定。
AM335X中LCD由两个独立的控制器,光栅控制器和LCD接口显示驱动器(LIDD)控制器组成。每个控制器都独立于另一个控制器运行,并且在任何给定时间只有其中一个控制器处,由下图可以知道数据在寄存器后分为了两条线:Raster controller、LIDD controller。
TTL信号是TFT-LCD能识别的标准信号,就算是以后用到的LVDS TMDS 都是在它的基础上编码得来的。
TTL信号线基本都是由以下的信号线组成:
RGB三基色
水平同步(行同步)HSYNC
垂直同步(帧同步)VSYNC
使能信号DE
时钟信号PCLK
数据信号DATA[0..23]
LVDS(低压差分信号)的工作原理是用一颗专门的IC,把输入的TTL信编码成LVDS 信号
6位为4组差分(6位屏就没有D3- D3+这一组信号)
8位为5组差分
数据线名称为D0- D0+ D1- D1+ D2- D2+ CK- CK+ D3- D3+
在屏的另一边,也有一颗相同功能的解码IC,把LVDS信号变成TTL信号,屏最终用的还是TTL信号,因为LVDS信号电平为1V左右,而且-线和+线之间的干扰还能相互抵消。所以抗干扰能力非常强。 很适合用在高分辩率所带来高码率的屏上。
2、Touch screen controller
AM335X中触摸屏控制器(TSC)和模数转换器(ADC)子系统(TSC_ADC)是一款8通道通用ADC,可选支持4线,5线或8线交叉TSC转换电阻面板。 TSC_ADC子系统可以配置为在以下应用程序中使用:
• 8 general-purpose ADC channels
• 4-wire TSC with 4 general-purpose ADC channels
• 5-wire TSC with 3 general-purpose ADC channels
• 8-wire TSC.
而我们在实际应用中,使用比较多触摸屏往往是四导线制,并且用的I2C或则SPI方案。
下图为使用的SPI方案,Input和Output引脚接的是SPI的DATE_IN 和 DATE_OUT
如果是使用I2C方案的话,输入引脚就只涉及到了时钟脚SLK和IO脚SDA了。
五、Programmable Real-Time Unit and Industrial Communication Subsystem (PRU-ICSS)
关于AM335X的Functional Block Diagram第五个内容PRU-ICSS官方文档的资料是比较少的,下面这个介绍表明了他支持了哪些总线协议,先贴上图片。
由上图可以看出AM335X支持了例如以下的这些总线协议。
• EtherCAT®
• PROFINET
• EtherNet/IP™
• PROFIBUS
• POWERLINK
• SERCOS III
而实际开发中,我们选型了AM335X型号后,你是没法直接使用部分协议的,例如我们之前选的AM3352型号,硬件外围设备开发了EtherCAT总线,而实际上是用不了了。
那后来是怎么处理的呢,得去 EtherCAT官方购买该总线的liscen。其实这些问题在很多开发的过程中都是存在的,例如你选中的CPU支持某个协议,而该协议由受到保护,你就得花钱买一个liscen,或则买人家一年的使用权。
总线的优势:
(1)节省硬件数量与投资:设备和设备通过一条总线进行通讯,简化了拓扑结构,对于后续的设计简化了系统,包括增加其余设备也变得简单。
(2)提高了系统的准确性与可靠性:现场设备的智能化、数字化,与模拟信号相比,从根本上提高了测量与控制的精确度,减少了传送误差。简化的系统结构,设备与连线减少,现场设备内部功能加强,减少了信号的往返传输,提高了系统的工作可靠性。
(3)维护较容易:单个节点失效不影响整个网络的正常通信。但是如果总线一断,则整个网络或者相应主干网段就断了。