AM387x To AM335x Hardware Migration Guide

=Introduction= This article documents the differences between the TI AM387x processor and the TI AM335x processor. Note AM387x is the ARM-only version of this processor. All of the documentation referenced in this migration guide can be found on the TI website located in the two device respective product folders. The device folders are found at the following web pages.

The device folders are found at the following web pages:
 * AM387x
 * AM335x

= Software Migration Guide =

For more information on software migration, please see:

TBD

= Basic Feature comparison =

The figures and table below show a comparison of the basic features of the AM387x and the AM335x. The remainder of this document presents a comparison of these features in greater detail, and also provides references to the appropriate documentation for further information.



=Module Comparison=

ARM Core
AM387x and AM335x are both based on the ARM Cortex-A8 processor. The table below shows a comparison between these two devices.

Note: Please refer to the AM387x and AM335x Datasheets for the latest OPP values.

Neon Co-processor
The Neon Coprocessor is the same between the two devices.

Graphics Engine
The SGX530 3D Graphics Engine is the same between both devices.

System DMA
The main differences between the two devices with respect to eDMA are the number of TPTCs supported and the TPTC parameters.

AM387x eDMA supports 1 Third Party Channel Contoller (TPCC) and 4 Third Party Transfer Controllers (TPTC). The TPTC FIFO size is 1024 bytes and the address width for internal FIFOs is 6.

AM335x eDMA supports 1 Third Party Channel Contoller (TPCC) and 3 Third Party Transfer Controllers (TPTC). The TPTC FIFO size is 512 bytes and the address width for internal FIFOs is 5.

On-Chip Memory
AM387x has 128KB RAM.

AM335x has 64KB RAM.

General Purpose Memory Controller
The GPMC module is binary compatible between the two devices. AM387x supports 8 chip selects. AM335x supports 7 chip selects. The ELM (ECC H/W mechanism) is binary compatible between the two devices.

DDR Memory Controller
AM387x supports a dual 32-bit LPDDR/DDR2/DDR3 SDRAM Interface, with up to LPDDR-400, DDR2-667, and DDR3-667. Up to eight devices and 2 GB (total) of address space are supported. The Dynamic Memory Manager (DMM) implements a Tiling and Isometric Lightweight Engine for Rotation (TILER), which supports 0/90/180/270 degree rotation in hardware.

AM335x supports a single 16-bit LPDDR (mDDR)/DDR2/DDR3 SDRAM Interface, with up to LPDDR-400, DDR2-532, and DDR3-606. Up to seven devices and 1 GB (total) of address space are supported. 0/90/180/270 degree rotation is not supported hardware.

Operating Performance Points
Note: Please refer to the AM387x Datasheet for the latest OPP values.

Note: Please refer to the AM335x Datasheet for the latest OPP values.

Voltage Rails
The following table compares the power supplies for AM387x and AM335x:

* Note: These voltage rails are not available in the 13x13 package.

Input Clocks
The AM387x has the option to obtain the 32KHz clock from the high frequency 20MHz clock using an internal RTCDIVDER. If this is used, an external 32KHz clock source is not necessary. The 32KHz provides a clock for the following modules:


 * RTC
 * GPIO0/1/2/3
 * TIMER1/2/3/4/5/6/7
 * ARM
 * SYNCTIMER

PLLs
AM387x has the following PLLs. All of these can be individually driven by either DEV or AUX input clocks:


 * PLL_ARM - for Cortex A8
 * PLL_SGX - for SGX530 Graphics Controller
 * PLL_L3 - for L3/L4 Interconnect, EDMA, MMU, GPMC, McASP, McBSP, UART3/4/5
 * PLL_DDR - for DDR
 * PLL_HDVPSS - for HD Video Processing SubSystem
 * PLL_USB - for USB0/1,SPI,I2C,UART0/1/2,HDMI
 * PLL_AUDIO - for McASP0/1/2,MCBSP CLKS,HDMI I2S
 * PLL_MEDIACTL - for Imaging SubSystem and Media Controller (ARM Cortex-M3 processor for HDVPSS and ISS)
 * PLL_VIDEO0/1/2 - for HDVPSS VENC, HDMI

AM335x has the following PLLs, driven by a crystal (CLK_M_OSC):


 * Core PLL - for SGX, EMAC, L3S, L3F, L4F, L4_PER, L4_WKUP, PRUSS IEP, Debugss
 * Peripheral (Per) PLL - for USB PHY, PRUSS UART, MMC/SD, SPI, I2C, UART
 * MPU PLL - for MPU Subsystem (includes Cortex A-8)
 * Display PLL - for LCD Pixel Clock
 * DDR PLL - for EMIF

Power Management Feature Comparison

 * * On 13x13 mm package option, VDD_CORE and VDD_MPU are merged.

Camera SubSystem
A camera subsystem is not supported on AM335x.

Display
AM387x has a display subsystem (DSS) with a video image coprocessor (HD-VICP) that supports up to HD 1080p.

AM335x has a simple LCD controller with no preprocessing operations such as preview, overlay, blending, resizing, etc. The AM335x LCD controller supports up to WXGA resolution.

MMC/SD
The AM335x MMC/SD interface is an upgraded version from the module in AM387x.

* Note the supported data width is subject to pinmux constraints.

USB
The AM335x USB interface is an updated version of the module in AM387x. Updates to the USB subsystem with respect to AM387x are listed below:


 * Added Infinite mode support in XDMA
 * Double packet buffering support for both TX/RX
 * Added CPPI 4.1 DMA streaming mode support
 * Added subword accesses to USBSS memory mapped registers
 * Added Tx Endpoint FIFO Empty interrupt: TX_FIFO[15:0]. This signal indicates when the TX data transmission is completed on the USB interface. TX_FIFO interrupt is to be used with the CPPI packet completion flag.  Setting a CPPI packet with the packet completion flag will generate the TX_FIFO when the transmit endpoint FIFO is empty after transmission.

I2C
The I2C ports are binary compatible between the two devices. AM387x supports 4 general I2C ports. The ports only support 100/400Kbps operation. No high speed mode is supported.

AM335x supports 3 general I2C ports. The ports only support 100/400Kbps operation. No high speed mode is supported.

UART
Both devices have six UARTs, which all support IrDA and flow control. Both devices incorporate dual 64 byte FIFOs for received and transmitted data.

On AM387x only UART0 supports full modem control. UART0/1/2 support up to 3.6864 Mbps. UART3/4/5 support up to 12 Mbps.

On AM335x only UART1 supports full modem control. All UARTs support a maximum baud rate of 3.6864 Mbps.

CAN
The CAN ports are binary compatible same between the two devices. Both AM387x and AM335x support 2 instances of CAN 2.0B.

MCBSP/McASP
AM387x has six McASP ports and one McBSP port. McASP0/1 support up to 10 McASP serializers, and McASP2/3/4/5 support up to 4 McASP serializers.

AM335x has two McASP ports and no McBSP ports. McASP0/1 support up to 4 McASP serializers.


 * Note McASP is a superset of McBSP, so it is suggested to use McASP for McBSP functionality.

Real-Time Clock (RTC)
The AM335x RTC is an updated version of the module in AM387x. Updates to the AM335x RTC subsystem with respect to AM387x are listed below:


 * Replaced software reset with RTC_PWRONRSTn (power on reset) input pin (ball B7 for 13 x 13 package, B5 for 15 x 15 package)
 * Only assert when RTC has lost power
 * De-assert when RTC voltage > Vmin
 * Remains de-asserted during normal operations
 * The AM335x RTC subsystem includes an integrated 32KHz oscillator, while the AM387x RTC subsystem does not—its clock is sourced from an external pin.
 * Added new Power Management IC (PMIC) control logic and PMIC_PWR_ENABLE output pin, which can be used to enable/disable an external PMIC. See TRM for more information.
 * Added external wakeup input pins EXT_WAKEUP[3:0]. See TRM for more information.

Ethernet
The AM335x EMAC interface is an updated version of the module in AM387x. AM335x supports the following new features with respect to AM387x:


 * Supports 1588 time-stamping, Industrial Ethernet protocols.
 * Switch:
 * 1588 Annex D support
 * DSCP priority mapping support
 * Device Level Ring (DLR) support
 * Port changes - added 2 additional clock inputs (and associated IPG DFT signals) to support separate RMII clocks versus RGMII

McSPI
AM387x includes four McSPI ports, each with four chip select signals.

AM335x includes two McSPI ports, each with two chip select signals.

SATA controller
The SATA controller does not exist on AM335x.

GPTimer
AM387x has 8 General Purpose Timers. All timers are extended to SoC pins.

AM335x has 7 General Purpose Timers. Only 4 timers are extended to SoC pins.

From a module perspective, the timers on both devices are identical.

WDTimer
Both AM387x and AM335x have one watchdog timer.

GPIOs
Both devices have 4 banks of GPIOs, each with 32 dedicated IO pins.

New interfaces in AM335x
The following are new interfaces in the AM335x device that do not exist in AM387x. Any details about these interfaces can be found in the Technical Reference Manual for AM335x.


 * eCAP
 * PWM
 * eQEP
 * PRUSS - Programmable Real-time Unit SubSystem
 * TS/ADC

Pin and package
The AM387x and the AM335x devices are offered different mechanical packages. The physical dimensions and pin out of the packages are also different. The table below lists the variations between the AM387x and the AM335x devices.