NOTICE: The Processors Wiki will End-of-Life on January 15, 2021. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.
DM36x Hardware Design Guide
Hardware Design Timeline →[edit]
Introduction[edit]
Welcome to the Hardware Design Guide. The purpose of this guide is to walk hardware designers through the various stages of designing a board on this platform. The guide follows the structure shown in the Hardware Design Timeline above. Each design stage in the Timeline links to a collection of useful documentation, application notes, and design recommendations pertaining to that stage. Using this Guide, hardware designers can efficiently locate the resources they need at every step in the board design flow.
Constructing the Block Diagram[edit]
The first step in designing the hardware platform is to create a detailed block diagram. The block diagram should contain all major system ICs and illustrate which I/O ports are used for device interconnection. Below is a collection of resources to aid in the Block Diagram creation process.
- The DM36x EVM is always a good source from which to start building a reference design for DM368 and DM365 devices. The technical documentation for the EVM is available from DM368 Spectrum Digital Support site and includes a block diagram.
- The following document provides useful information on some analog complementary devices available for DM36x platform
- In addition, there are a series of application specific block diagrams with suggested part numbers for your reference
Selecting the Boot Mode[edit]
The block diagram should also indicate which interface will be used for booting this device.
- In the DM36x family, The ARM can boot from either Asynchronous EMIF (OneNand/NOR) or from ARM ROM Boot loader (RBL); furthermore, the RBL supports seven distinc boot modes
- NAND Boot mode
- MMC0/SD0 Boot mode
- UART0 Boot mode
- USB Boot mode
- SPI0 Boot mode
- EMAC Boot mode
- HPI Boot mode
- If the first boot source fails to boot, the ROM will move on to the next one in the sequence. Keep in mind that some boot sources take some time to timeout if that boot source isn't avaiable.
- Read the following document to learn about the possible boot options
- Key Boot Considerations:
- It is recommended to include population options for other boot modes to aid in development
- Boot pins often have other functions after reset. Make sure your board design takes this into account when choosing pullup/down resistors for the boot pins.
- It is recommended to include population options for other boot modes to aid in development
Confirming Pin Multiplexing Compatibility[edit]
The device uses internal pin multiplexing to allow for maximum functionality in the smallest and lowest cost package. Due to this pin multiplexing, not all processor interfaces are always available simultaneously.See the Terminal Functions section of the datasheet for complete details on the pin multiplexing.
Confirming Electrical and Timing Compatibility[edit]
A key step in the hardware design before beginning schematic capture is to confirm both DC and AC electrical compatibilitly between this devices and the other ICs connected to it.
- The DM36x datasheet has important information with regards to timing and electrical characteristics.
- This link provides access to IBIS model DM36x devices
- PCB layout specifications/reccomendations that would eliminate the need to perform electrical analysis.
Designing the Power Subsystem[edit]
Once the block diagram has been validated for pin multiplexing, electrical, and timing compatibility, the power sub-system can be designed. See the below resources on estimating power consumption and designing a matching power subsystem.
- Key Considerations:
- Make sure to follow the supply sequencing requirements listed in the datasheet
- Make sure to properly filter the PLL power supply according to the recommendations listed in the datasheet
DM36x Power Estimation Spreadsheet
Designing the Clocking Subsystem[edit]
In addition to the power subsystem, the clocking subsystem needs to be designed to provide appropriate clocks to all ICs in the system. These clocks can be created by pairing crystals with internal osciallators within the system ICs, or they can be created by a separate clock generator. See the below information on designing the clocking subsystem for your design.
The device operation requires one primary clock for operation; for more details, please refer to DM36x Datasheet
Floorplanning the PCB[edit]
Before beginning schematic capture, it is recommended to floorplan the system PCB to determine the interconnect distances between the various system ICs. See the below information on floorplanning your PCB.
- TBD: Why and How to floorplan your PCB before starting schematic capture
Creating the Schematics[edit]
At this point in the design, it is time to start capturing the schematics. See the below collection of information to aid you in creating the scheamtics.
- Key Considerations:
- SDRAM (and other) output clocks are internally looped back
- Don’t forget to install a JTAG connection
- JTAG: Make sure to use the RTCK pin
- It is often helpful to refer to example schematics throughout the schematic capture process; one can refer to DM368 EVM schematics
- Make sure to use the canned schematics in the datasheet for the following interfaces:
- DDR
- Below is a link to the IBIS Simulation Models to aid in the design of the device interconnects:
Laying out the PCB[edit]
After completing schematic capture, see the below information on laying out the PCB:
- It is often helpful to refer to an example layout when designing a custom PCB such as DM368 EVM layout
- Make sure to follow the Layout Specifications for the following Critical Interfaces:
- DDR - See Datasheet
- SATA - See datasheet
- General Information Articles:
Testing/Debugging[edit]
Once your custom CB has been produced and assembled, refer to the below information on bringing-up and debugging the system.
In the DM36x platform, th development and debugging is done on the ARM9 side.
For some advice on debugging on Linux refer to debugging overview article
In addition, there are many useful wiki articles on debugging on this site, all you need to do is search. Many of these articles were written some time ago for various platforms that were available at that point; however, many are still applicable to other processors available today.