My battle with ADF435x PIC boards
Forum rules
This forum is run by the BATC (British Amateur Television Club), it is service made freely available to all interested parties, please do not abuse this privilege.
Thank you
This forum is run by the BATC (British Amateur Television Club), it is service made freely available to all interested parties, please do not abuse this privilege.
Thank you
My battle with ADF435x PIC boards
Dear everyone,
I suspect the answer will turn out to be something trivial and it will make me feel rather silly, in the meantime however this thing is driving me mildly insane: try as I might I just can't get my two ADF4351 signal generators (the Chinese "green board" ones from eBay, one unmodified so far and one with a large electrolytic capacitor across the output of the voltage regulator to reduce the phase noise) to play nicely with those BATC ADF435x PIC boards, and it would be of GREAT help if someone could point me in the right direction.
The hardware: two identical units, with PIC12LF1552 microcontrollers and three-way DIP switches. The software: the "fat8sw" variant, compiled and flashed using MPLab X IDE and a Chinese PIC Kit 3 clone (I first used an original PIC Kit 2 + pk2cmd with the device-tree file updated to support the PIC12LF1552 but switched to the 3 to make sure the problems weren't due to incorrect flashing of the uCs). The set-up: ADF boards powered with +5V DC via the controller board, no external reference, scope connected to one of the outputs (tried both), a dummy load on the other.
The symptoms, identical for all four synthetiser/controller combinations:
* no phase lock, regardless of how long I wait
* steady output of about 50 MHz
* toggling the DIP switches changes the amplitude of the output, with no measureable effect on the frequency.
Any ideas, perchance?
--
Marek M0JUR
I suspect the answer will turn out to be something trivial and it will make me feel rather silly, in the meantime however this thing is driving me mildly insane: try as I might I just can't get my two ADF4351 signal generators (the Chinese "green board" ones from eBay, one unmodified so far and one with a large electrolytic capacitor across the output of the voltage regulator to reduce the phase noise) to play nicely with those BATC ADF435x PIC boards, and it would be of GREAT help if someone could point me in the right direction.
The hardware: two identical units, with PIC12LF1552 microcontrollers and three-way DIP switches. The software: the "fat8sw" variant, compiled and flashed using MPLab X IDE and a Chinese PIC Kit 3 clone (I first used an original PIC Kit 2 + pk2cmd with the device-tree file updated to support the PIC12LF1552 but switched to the 3 to make sure the problems weren't due to incorrect flashing of the uCs). The set-up: ADF boards powered with +5V DC via the controller board, no external reference, scope connected to one of the outputs (tried both), a dummy load on the other.
The symptoms, identical for all four synthetiser/controller combinations:
* no phase lock, regardless of how long I wait
* steady output of about 50 MHz
* toggling the DIP switches changes the amplitude of the output, with no measureable effect on the frequency.
Any ideas, perchance?
--
Marek M0JUR
Re: My battle with ADF435x PIC boards
Hi Marek
I have just recovered from some mild insanity too, caused by the same ADF4351 boards and the BATC controller using the single channel 12F629.
My application was to use a green PCB version as the LO in a DEMI 70cm transverter to 10m requiring a 404MHz output locked to the station 10MHz reference.
After changing the register parameters at least a dozen times over the weekend in an effort to remove either a low deviation FM tone of about 2kHz or multiple sprogs either side of the carrier depending on how the registers were set up, I tried a black ADF4351 board with the same 12F629 and it was perfect. It turned out that although the output of the 10MHz on-board oscillator was disconnected it was still powered and that was enough to inject some rubbish into the reference.
Could you send me the register settings and the frequencies you expect? I can put them into my board to see if they work. Also, what reference frequency are you using? Most of the green boards used 10MHz whilst the black boards used 25MHz.
73. Clive G3GJA
I have just recovered from some mild insanity too, caused by the same ADF4351 boards and the BATC controller using the single channel 12F629.
My application was to use a green PCB version as the LO in a DEMI 70cm transverter to 10m requiring a 404MHz output locked to the station 10MHz reference.
After changing the register parameters at least a dozen times over the weekend in an effort to remove either a low deviation FM tone of about 2kHz or multiple sprogs either side of the carrier depending on how the registers were set up, I tried a black ADF4351 board with the same 12F629 and it was perfect. It turned out that although the output of the 10MHz on-board oscillator was disconnected it was still powered and that was enough to inject some rubbish into the reference.
Could you send me the register settings and the frequencies you expect? I can put them into my board to see if they work. Also, what reference frequency are you using? Most of the green boards used 10MHz whilst the black boards used 25MHz.
73. Clive G3GJA
-
- Posts: 23
- Joined: Sun Aug 21, 2011 8:07 am
answer My battle with ADF435x PIC boards
may be this example could help you with ADF4351 ans Arduino
https://github.com/F1CJN/ARDUINO-ADF435 ... 090319.ino
F1CHF
https://github.com/F1CJN/ARDUINO-ADF435 ... 090319.ino
F1CHF
F1CHF near Paris France
-
- Posts: 23
- Joined: Sun Aug 21, 2011 8:07 am
re answer My battle with ADF435x PIC boards
F1CHF near Paris France
Re: My battle with ADF435x PIC boards
So far I haven't customised the frequencies so they - and the corresponding register values - should be exactly as in fat8sw.c from https://wiki.batc.org.uk/File:Source.zip . Assuming I have decoded the bit banging correctly, the two end settings - i.e. one for all switches off and one for all switches on - are:
* 50.2 MHz: [0xa08038, 0x80080c9, 0x18004e42, 0x4b3, 0xe5002c, 0x580005]
* 2048 MHz: [0xcc8018, 0x8008029, 0x18004e42, 0x4b3, 0x95002c, 0x580005]
BTW. I thought that maybe it was the switch read-out which somehow didn't work so I swapped the RFout values in the code around, no dice though - neither that nor configuring all the switches to correspond to 2048 MHz has had any effect on the output frequency. And yes, I did remember to reflash the uCs
As for the reference frequency, crystals on the ADF boards are indeed labelled "10.000 MHz" and that is the value used in the source code.
Checking these boards with an Arduino will indeed be my next step (I am much more familiar with AVR microcontrollers than with PICs) if I cannot get the BATC PIC controllers to work, that said it might take a while because I haven't currently got any LCD boards handy so I'll have to customise the code - and work has been keeping me quite busy lately.FRANCOIS F1CHF wrote: ↑ may be this example could help you with ADF4351 ans Arduino
Re: My battle with ADF435x PIC boards
Please also check your supply. ADF4351 is 3v3, so also the I2C pullup resistors should be at the 3V3 rail.
Re: My battle with ADF435x PIC boards
Hi Marek
I've programmed a couple of 12F629 PICS with the 50.2MHz register settings and it does work.
Being Frac-N there are some sprogs at -200kHz (-54dBc), -400kHz (-62dBc) and +400kHz (-71dBc); everything else for 5MHz either side is more than -75dBc.
As a test, I reconfigured the registers to use integer mode and the sprogs were reduced to -75dBc or better.
I used 0x7D80000, 0x8008011, 0x2064F42, 0x4004B3, 0xE0703C & 0x580005.
I've found that pull-up resistors are not needed. So long as the PIC is running on the same supply voltage (3.3v) as the 4351 it's happy.
Could you try a 12F629 in the board? Proving that the 4351 can produce a single frequency would be a good next step.
Have you had problems with the Picket3 clone before? I'm using the Microchip version.
Clive
I've programmed a couple of 12F629 PICS with the 50.2MHz register settings and it does work.
Being Frac-N there are some sprogs at -200kHz (-54dBc), -400kHz (-62dBc) and +400kHz (-71dBc); everything else for 5MHz either side is more than -75dBc.
As a test, I reconfigured the registers to use integer mode and the sprogs were reduced to -75dBc or better.
I used 0x7D80000, 0x8008011, 0x2064F42, 0x4004B3, 0xE0703C & 0x580005.
I've found that pull-up resistors are not needed. So long as the PIC is running on the same supply voltage (3.3v) as the 4351 it's happy.
Could you try a 12F629 in the board? Proving that the 4351 can produce a single frequency would be a good next step.
Have you had problems with the Picket3 clone before? I'm using the Microchip version.
Clive
Re: My battle with ADF435x PIC boards
Thought. Are you removing the power before changing the DIP switches?
I'm not sure whether it applies to the Fat Controller, but the thin one only programs the registers on start-up and then goes to sleep.
In fact, I've removed the PIC in my test set up whilst powered up and it continues to output correctly.
Clive
I'm not sure whether it applies to the Fat Controller, but the thin one only programs the registers on start-up and then goes to sleep.
In fact, I've removed the PIC in my test set up whilst powered up and it continues to output correctly.
Clive
-
- Posts: 1236
- Joined: Wed Jan 06, 2016 9:46 am
Re: My battle with ADF435x PIC boards
I use this code by Robin Szemeti https://github.com/rszemeti/ADF4351_Loa ... DF4351.ino which is headless and the micro goes to sleep after issuing the instructions. Good enough to test your boards.
Gareth
Gareth
Re: My battle with ADF435x PIC boards
Having finally managed to find time to debug this further (using a GPIO-equipped single-board Linux computer, as it was easier than having to mess with voltage dividers for my Arduino), argh. Pro tip: if you see problems with phase lock on one of these boards, make sure you have actually soldered both sides of the jumper connecting the TCXO to the rest of the circuit! Can't help but wonder how I've managed to make the same mistake on both units, though.
Nothing to see here, just an idiot coming through. Move along.
Nothing to see here, just an idiot coming through. Move along.