I have spent the whole day doing soldering and figuring out what went wrong.
The Annoying Ground Problem (reasons still pending)
The first problem is with the development kit. With numerous experiment, it is confirmed that there is some grounding issue with the two boards. Once the two board is separated, the system is broke and no image could be obtained. Even if I manually short the two grounds on the two boards using wire, it still only work ocastionally. It is every strange. Therefore I shall put the two boards always together for the rest of the time to reduce headache.
(Update see below)
1st SMT Soldering Experience
The next thing is the soldering, solder wick is a must in doing SMD soldering. Sometimes, I still get lose joints, confirmed by trying to pluck the pins to see if it moves. Another thing is to always check short-circuit after each major soldering step. Otherwise, once a short-circuit is detected, it is very hard to isolate the problems. This is particularly true if there is RC circuits, where multi-meter become useless.
The temperature set need to be in 350 ~ 400 range. The higher range is selected probably due to the fact that my soldering iron tip is sharp, so it is not the best kind to transfer heat
I think I need a solder paste for future better soldering results:
Getting the connectors to work was surprisingly painful…
Since the first board i tried failed with short circuit on 3V3 pins to ground, with problems that are hard to isolate (to many connector links, capacitors scattered around), the second board I tried is only soldered with the two 45-pin connectors at first.
It took me half a day to solder the two 45-pin 0.5mm connectors and troubleshooting all the cold joints & solder bridges. Once again, I think I need solder flux pen!
Mistake 0: Grounding
As mentioned before, I have to put the two development boards always together to eliminate weird no-connection no-video problem (seems that I2C working fine, just the transmission is down, need to verify next time).
After fixing the Mistake 1 & 2, mistake 1 seems to resolved as well! I can know detach the camera frome the Hi Board without creating problem.
More timportantly, the “broken” camera previously also works well in the current setting. My suspicion is that the new PCB board provides enough grounding (extra ground lines due to unused pins) so the operation is more stable, resistance to outside interferece.
Mistake 1: Wrong FFC Connector Type
At first I experience short-circuit whenever I connect the sensor board. Turns out it is not due to the soldering work. Instead, due to the relative positions of the connectors on the three boards (sensor board, Hi board, bridging board), the 45-pin connections are unintentionally reversed with the two normal flat cables. Therefore, obviously, all the pin mappings are wrong and hence the short circuit.
Therefore, the cable with metal pins on the opposites sides is needed for the sensor-to-board connection.
TODO: In future purchase, by connctors with connections on the opposite sides at the two ends: http://sg.element14.com/wurth-elektronik/687745152002/ffc-cable-45pos-152mm-60v-white/dp/2520282
Workaround: I folded the cable so I can slot in the connector on the opposite orientation. Blue film is inserted to reinforce the connection joint.
End result: Hi3516A boots up normally after rectification.
Mistake 2: Used Pins of SPI 4-wire Communication
After cable connection rectification, I still receive error messages. For some reason it is similar to the previous one, but not quite.
I troubleshooot the problem by once again use multimeter to test the voltages when the system is on. It is discovered that the SPI0_CSN pin is at unusal / intermediate voltages (~0.29V).
Checking SPI definition
|Protocol Name||Meaning||SONY Pin Name||Physical Socket (Pin)|
|CLK / SCK||Serial Clock||SCK||SPI0_CLK (25)|
|MOSI||Master Out / Slave In||SDI||SPI0_MOSI (26)|
|MISO||Master In / Slave Out||SDO||SPI0_MISO (27)|
|SS||Slave Select||XCE||SPI0_CSN (28)|
The SS line is normally held high, which disconnects the slave from the SPI bus. – sparkfun
Further investigation (SONY datasheet page 26), indeed shows that “external pin XCE must be fixed to power sppply side when using I2C”. Therefore, pin 28 should be pull to 1.8V.
Fortunately, the PCB design includes a jumper option to reconnect the pin to the Hi board’s corresponding pin (which is essentially a 1.8v supply?).
TODO: In the future design, XCE pin should be pulled to the 1.8V supply. For now, the pin should be soldered / wired to 1.8V supply mannually
With this long experment and trial-and-error, the detailed connection scheme of the sensor board is clear. connection to the FPGA / i.MX6 could start.
Pin arragnement remarks
The orientations of the pin1 (MIPI0 CLK) to pin45 (5v) for the sensor board and Hi board are as follows: