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:
Opal-6 SoM IOMux File (in development)
Opal-6 Development Kit IOMux File (in development)
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.
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).
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
If your design boots from NAND flash, you should include at least the switch to enable USB boot for programming. Including switches to also allow SD boot will provide more options for programming during manufacture.
Serial Port
One serial port should be accessible for debug. UART4 is used on our development kit so should be your first choice.
USB OTG Port
This port should be available in USB function mode if your design boots from NAND flash. This is required to program the flash.
Ethernet
Ethernet is useful for download and debug, and required 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.
Add Comment