This is the first part of all my words on the development on freescale‘s imx6 family SOC.
As one knows, whatever embedded products you are designing or developping, the hardware is the one which should be stable before the software, at least the AP(Application Processor itself).
During the development process, some aspects are encountered:
1. Voltage supply to the AP
Nowadays, especially in android based products, PMIC is used very vastly for power-saving.
According to the hardware design, PMIC‘s voltage output will be used accordingly.
For MMPF0100 family, by default, SW3A/B are in the single-phase mode, accordingly, which means there is only one output from SW3A/B.
For our requirement, SW3A/B should be programmed to independent-phase mode.
In single-phase mode, the max driving current from SW3A/B is 2500mA, that is 2.5A
While in the independent-phase mode, the max driving current for SW3A or SW3B is the same, 1.25A, that is 1250mA, half of 2500mA.
For that, MMPF0100NP is used to be reprogramemd before soldering it on the board.
Point: note the voltage for AP.
2. Review the schematic diagram
On our board, MCP is used, which integrates eMMC and LPDDR2 together.
During the development in U-boot, it‘s found that eMMC in MCP could not work as expected.
By analyzing the signal captured with Oscilloscope, it seems the eMMC cmds are sent from the AP correctly without doubts, but the MCP could not act accordingly.
After reviewing the schematic diagram, well, one wire from AP is connected to the wrong pin in MCP.
Point: DO NOT just listen to what the hardware engineer said.
One should investigate by oneself right starting from the simplest code which is in your charge to accumulate the evidence to make it clear that sth. must be wrong in the hardware aspects, like schematic diagram, layout, etc. Nothing is impossible. DON‘T just listen but one should verify that with one‘s own test.
3. GPIO settings for booting
Whatever values you want AP to sample on those GPIO pins while booting, high or low(1,or 0), one should make sure that the input GPIO pins for booting are really pulled-up or pulled-down in reality accordingly. This is because, during booting, those GPIO pins are open-drain,which means they are high(1) even without pulling them up on the board. That is fake and lead you in a wrong way, making you so confused and wasting your time.
If one does not pull the EIM_EB3 pin down to GND, the USB controller in AP may not work, and the power supply current will be in a lower level, of course, the USB serial downloader mode will not work well as one expects.
Point: watch out the GPIO pins usd during booting.
To be continued.
[i.mx6solo Dev] Part 1. Checklist of hardware,布布扣,bubuko.com