Opal-6 Design Guide
- Martin Welford
This page provides specific information to consider before you start your Opal-6 design.
Please contact our support team with any questions you have during the design process and use our free design review when you have finished your design.
Starting a Design - using the IOMux tool
The i.MX6 can be confusing to design with as it uses a multiplexer to assign up to 8 different functions to each IO pin.
Freescale provides an IOMux tool (available on the i.MX6 "Software & Tools" tab, under "Software Development Tools -> Initialization/Boot/Device Driver Code Generation") which makes it easy to sort through these options.
For Opal-6 we have two IOMux files that we have generated for the Opal CPU Module and the Opal Development Kit:
In the case of the CPU Module file, this shows which pins have been used on the module and should be your starting point. All the pins NOT SELECTED are available on the interface for you to use in your design. The Development Kit file is a good reference to see which pins we used for the different functions in the kit.
The IOMux file you generate is also an excellent way to document your design, and is very useful for software developers when setting up Operating System images and device drivers.
Reference Designs
Where possible, we encourage you to use our development kit as a starting point for your design.
The advantages are:
- It minimizes software changes
- We are familiar with the circuit so can assist with debugging your design
- You have less design work to do!
We also encourage you to use the library symbols for the module, and development kit schematics, available from our web site.
Booting
Opal-6 boots from:
- On-board eMMC
- SD Card (SD2 controller)
- USB (for programming eMMC)
Other boot sources are possible, but not tested. Please contact use if you need something other than these options.
Several pins must be configured correctly in order for Opal to boot correctly. The following table includes the pins involved in the boot process and how they should be configured.
Settings for the table below are: 0=pull down, 1=pull up, X=don't care
Signal | Boot Function | eMMC Boot USDHC-4 | SD Boot USDHC-2 | uSD Boot USDHC-1 | USB Boot |
---|---|---|---|---|---|
BOOT_MODE0 |
| 0 | 0 | 0 | 1 |
BOOT_MODE1 |
| 1 | 1 | 1 | 0 |
BOOT_CONFIG_1 | BOOT_CFG1[5] | 1 | 0 | 0 | X |
BOOT_CONFIG_2 | BOOT_CFG2[3] | 1 | 1 | 0 | X |
BOOT_CONFIG_3 | BOOT_CFG2[4] | 1 | 0 | 0 | X |
BOOT_CONFIG_4 | BOOT_CFG2[5] | 1 | 1 | 1 | X |
BOOT_CONFIG_5 | BOOT_CFG2[6] | 1 | 0 | 0 | X |
The i.MX6 uses a large number of pins when selecting a boot source and configuration. Most of this has been taken care of on the Opal-6 module, with the small number of signals included on the interface to allow for selecting between SD/eMMC and USB. The Opal-6 module uses pull-up/down resistors to set up the balance of the signals, and you should ensure these are used as outputs only to avoid an external signal messing up the boot configuration. The signals are marked with * BOOT * on the schematics. Also, do not add external pull-up or pull-down resistors to any of these signals.
Connectors
Opal-6 uses 2 x 168-way Hirose FX10A-168S-SV.
The corresponding mating connector is: FX10A-168P-SV1(71).
JTAG
JTAG is not required, 10K pullups are still required on the following signals:
- JTAG_nTRST (J2-62)
- JTAG_nSRST (J2-63)
If these are not present your board may not boot.
Debug and Programming Connections
Even if you design does not need the following, we recommend you provide a way of accessing these connections in order to successfully debug during development and program during production.
Boot Switches | We recommend you include the ability to boot from USB or external SD somewhere on your board as it can be a useful way of booting and programming devices during production. |
---|---|
Serial Port | One serial port should be accessible for debug. UART4 is used on our development kit so should be your first choice to minimize software changes. |
USB OTG Port | This port should be available in USB function mode if your design boots from eMMC. |
Ethernet | Ethernet is useful for download and debug, and highly recommended for Windows Embedded Compact designs. |
Layout Recommendations
The development kit schematics include layout recommendations and these should be added to your own design.
The development kit board is 8-layers and it is likely that you will need at least 6 layers - or more if your device includes a lot of I/O.
When creating a PCB footprint, ensure:
- The location post holes are the correct size - one hole is 1.0 mm and the other is 0.9 mm in diameter.
- The location post holes are non-plated
- The distance between the connectors is exactly as specified.
Failure to do the above may result in the connectors not being located correctly relative to each other. This will cause stress on the connector and solder joints will break or become unreliable.