I am trying to drive a Broadband Synthesizer chip ( ADF4351 ) with RP2040 using micropython language #17998
-
I need to manage the Broadband Synthesizer chip ( ADF4351 ) and I want to use an RP2040 using the micropython language I've written a whopping 14 different versions but I can't get any 55Mhz waveforms to generate and the last few versions I've had the AIs help me but even getting the AIs to do the code doesn't work. the chip works with SPI and I have to load 6 32bit registers and I have at my disposal a data analyzer and I can see that from the ports the packets come out. Do you know if there is any example on RP2040 in micropython for ADF4350/ADF4351 ? Ps. I connected a TM1637 diplay on pin 14 (clk) and pin 15 (data) and this works |
Beta Was this translation helpful? Give feedback.
Replies: 10 comments 18 replies
-
I guess "closed" Arduino code means you can not see how it was done. Is it not a sketch? I wrote a driver for the ADF4111 in C about 10-15 years ago. Unfortunately, I chucked that stuff out last year. With your data analyzer can you not see lack of activity on any of the pins between Arduino code and your Micropython code? |
Beta Was this translation helpful? Give feedback.
-
Page 11: |
Beta Was this translation helpful? Give feedback.
-
News: I saw that I was setting the phase adjustment bit (DB28) on Register 1 to the on state, I corrected it, and now I see a ~200 mV signal at the output. |
Beta Was this translation helpful? Give feedback.
-
I'm doing something wrong and I don't understand where. To check, I wrote some clean code from scratch, but the output waveform continues to be arbitrary and I don't understand what's happening. I am attaching my code with comments in English, the terminal output with debugging enabled, and the oscilloscope bitmaps. full code |
Beta Was this translation helpful? Give feedback.
-
More than 10 years ago, I also wrote a software on PIC/AVR for ADF4351 and have been used it I would recommend you to do the followings. If your Arduino code works as expected at the specific frequency, you can read the register Then, you can try to send the same sequence by a simpler code in MicroPython. You can download a software for ADF4351 evaluation board from Analog Devices's web site. Good luck. |
Beta Was this translation helpful? Give feedback.
-
I am not sure, if the problem is in your code. It could be output impedancy, a defective chip, cableing, a missing capacitor... |
Beta Was this translation helpful? Give feedback.
-
You marked mine as the answer, but I don't see how that solved your problem. |
Beta Was this translation helpful? Give feedback.
-
Okay, it works. I took the register values from the Analog Device ADF435x software for a frequency of 55.5 MHz and copied them into my clean code main13.py. I tried setting the SPI speed to 1Mb/s, and the commands were accepted. I can see the 55.5 MHz 1.2 Vpp waveform. Then I added a filter, and the signal improved. After inserting an RC filter |
Beta Was this translation helpful? Give feedback.
-
Are you sure lines 84,85 and 86 in |
Beta Was this translation helpful? Give feedback.
-
There have been some recent discussions on float accuracy in Micropython. I'd try printing those values out to many decimal points to see how they compare with the ADF software. |
Beta Was this translation helpful? Give feedback.
I have asked my synth ex-workmate to have a look to see if he can suggest anything.
Have you got a link to the schematic?