gsoc-2014-hdmi2usb
[GSoC Weekly Overview]: PCB!
This week was all about PCBs. Although I did work first 2 days of the week on VGA Capture code, but once the components ordered from Mouser arrived, I had to get to the task of assembling the PCB. I also got inducted into TimVideos Hardware Hackers Team! Wooohooo!! Felt awesome! But, that also means I have to get a deeper understanding of git. I got reminded of this quote (from Spiderman I guess?) “With great power comes great responsibility”
PCB v01:
The most difficult part in the soldering the PCB were the 0402 package resistor networks. They were huge pain. Whatever and however you do the soldering, some pads would either get bridged or remain unconnected at all! Due to repeated soldering, the remaining components and PCB were also getting heat stressed, which is not a good thing to happen.
Once satisfactorily soldered the resistor networks, I soldered the remaining components namely ADP3334 voltage regs, ferrite beads and some decoupling caps.
After the soldering and cleaning (since huge amount of flux remained stuck after soldering), it was time to test the board.
Upon connecting it with power supply, all the voltages were normal. Next job was to check if the chip was responding or not. I soldered 2 wires on I2C_SDA and I2C_SCL lines and connected them to BeagleboneBlack and ran the python scripts for AD9984A initialization and reading. Yeah, the chip was working fine. Next job was to test the signals coming out of the IC. I loaded the AD9984A test bitfiles I had created previously. The HSOUT, VSOUT and DATACK signals were fine. So, the PCB was working fine and was ready to ship.
I shipped the PCB using DHL to my mentor yesterday itself. Now the time was to focus on PCB-v02. Tracking Link
PCB v02:
The third day of week was mostly spent of schematic and netlist parts association. Having finalized the footprint that I would be using, it was time for PCB routing. In the meantime, after discussion from Joelw on IRC I got to know that those (tiny monsters) resistor networks were redundant since Atlys already has 50ohms resistors on each lines of VHDCI signals. Happy with the information, I quickly removed the resistor networks and associated standalone resistors. The last 2 days were spent routing and correcting the schematic. Yeah, while routing, I encountered at least 7 errors(better word: mistakes) in schematic, like I2C pullup resistors accidently connected to same line! The PCB is now fully routed. Some tweaks and changes might be done before sending it for fab. I used same design rules and track-width and drills as in Jahanzeb’s version. All DRC errors are resolved now. The VHDCI connector, although, seems treacherous. It has very tight clearances, pushing the DRC to limits. But, I suppose I have to contend with it. Hopefully the fab correctly routes it.
The current design looks like this:
Upcoming Week:
With the PCB sent to fab after slight tweaks etc, I’ll get time to work on VGA Capture. I couldn’t work on that in this week due to more attention provided to the PCB. But, now I can work on the capture. The FIFO based implementation looks promising. I’m planning a 2-FIFO based buffer this week to see if I can perfectly stabilize the capture or not. If it works then I’ll integrate I2C with the code. After that, I’ll move onto integration with current HDMI2USB. Although, a better way would be to say testing with code integrated on HDMI2USB since I’ve already integrated the capture module into HDMI2USB, so only testing with perfect capture is required. But, the most important task is to get capture perfect, which is still eluding me!