- Use the same DDR Memory chips as used on the reference board
Why? Different DDR2 / DDR3 memory chips may require different memory controller settings. If the settings in memory controller registers are not correct, your board may not boot.
- Use the same FLASH memory chip as used on the reference board
Why? Different NAND FLASH may not be recognized by bootloader and board may not boot. For prototype, use exactly same chip & same size as used on the reference board.
- Use same peripheral chips as used on the reference board
e.g Audio, Ethernet, … Why? If you use same chips as used on the reference board, your peripherals will be already supported by the software delivered with the reference design. Otherwise, it may take a lot of effort to add a working driver.
- Map devices to the same address as on the reference board
e.g. use same chipselects, base address, … Why? Peripherals may not be recognized or found by bootloader or OS if mapped to a different place. Software modifications is then required.
Tip 2: Be aware of component availability
- Be sure, you can buy all the components from standard suppliers and in required quantity.
Some reference schematics are build from very hard or impossible to get components. Some component manufacturers ask design companies to use their chips to become more famous, but the manufacturer can be very small, hard to contact or – too famous (they will ignore you). These may be for example manufacturers of power supply chips, passive components or very specific peripherals. Don’t use them, find a replacement. Two examples – Realtek and Winbond – their components are extremely hard to get.
Tip 3: Choose a right replacement
Don’t forget. ARM boards are very software depended. Hardware has to be supported by software – usually by Bootloader and in OS. Otherwise, source code modification is need. This can sometimes be very very difficult, time consuming and even impossible.
What if you have to use a peripheral which is not on the reference board?
First of all, have a look at ALL available reference schematics for your chip. Don’t look only in chip manufacturer schematics, check also some other designs using same chip. If you can not find any reference schematic, look for any board using same CPU and have a look what exact chips they used for your peripheral.
Why? If someone used it, there is a pretty good chance it will work. If you select a chip without checking, it may not work in your design – even if it should. Many chips have bugs / errata and may not behave based on specification (for example, recently I had this problem with TI & AMD processors – one didn’t meet GMII specification, the other one LPC specification – they only worked with particular peripheral chips).
Once your prototype is up and running, you can experiment and test bigger memories or different manufacturers.
Let me know if this post was helpful for you 🙂 Thank you.