Having finished the DDS module I double check all the cabling and gave it a quick test only to find out that none of the DDS channels were operational, so I worked my way back, triple checking my wiring and everything was correct – or was it.
I bypassed the 8 pin connector that links the DDS unit to the Arduino micro controller and sure enough it fired up with a healthy 8V Peak to Peak sine wave, so as a precaution I changed the 8 pin chassis connector and re-checked the cables for continuity/resistance and plugged it back only to find out that the DDS again would not fire up. So long story short I went around in circles triple checking everything and nothing I did would allow the DDS to function via the front panel data connector.
Could it be a capacitance issue? The cable length inside the DDS module coupled with the cable length from the connector to the Micro controller is around 600mm maximum, however when I bypassed the connector and wired direct the length was roughly the same, next step was to slow down the SPI clock speed from 20MHz to 1MHz, this made no difference.
By this time I am tired and annoyed with myself, what could it be? All cables checked out, length was not an issue (makes a change ;)) and all cable resistance was fine – no high resistance joints etc.
The Arduino micro Controller is powered from the same 12V DC supply as the DDS so the grounds should be all common right? To ensure I was not missing a ground I connected one of the spare DDS module ground pins to one of the supply grounds on the Arduino Due and guess what – it comes to life.
Nearly a full weekend of debugging my wiring to find out that I had a ground loop/missing ground, felt a bit silly but was relieved to say the least – moral of the story is “Make sure every ground is common”.
Here are a couple of pictures taken during my moment of panic debugging;
The moment I found the fault and undone all my neat wiring 🙁
All fixed and tidy again 🙂
After fault found: