Programming si5351 with the PyBoard

Поделиться
HTML-код
  • Опубликовано: 8 июл 2024
  • Datasheet for the si5351
    www.silabs.com/documents/publ...
    Adafruits development board
    learn.adafruit.com/adafruit-s...
    A link to my github repo that has the si5351 library
    github.com/thaaraak/Tinypico-...
  • НаукаНаука

Комментарии • 37

  • @stevew9945
    @stevew9945 2 года назад

    Very interesting
    keep up the good work

    • @na5y
      @na5y  2 года назад

      Thank you. I've done si5351 programming for Micropython, Arduino, STM32 and ESP32 now - its a great little board

  • @NeedleBender785
    @NeedleBender785 2 года назад

    Great instructional video!!! I am actually building a 20m rig using some of the code. I was able to add a correction factor to the code so the frequency is spot on. However i was testing it using the original code and anything above 11mhz there looks like an error causing the frequency to be 5mhz off. Once I track down the error I’ll be able to have an awesome VCO.!!!

    • @na5y
      @na5y  2 года назад +1

      I know I've had a few bugs in that code. I did so some fixes to the ESP32 C++ code which you can find here
      github.com/thaaraak/ESP32-Transmitter/blob/master/main/main.cpp
      Honestly it might be easier to generate the quadrature signals with a pair of D-type flip flops than using the si5351s inbuilt functionality. Heres an example if you want to try that
      www.newioit.com.au/archives/34
      I'll have to check that python code out and see if I can find the problem

  • @HitAndMissLab
    @HitAndMissLab Год назад

    Great video!
    Just two questions:
    - Can this board be made to output frequency in 1 Hz increments?
    - can the phase difference between the two channels be made to be any other value except quadrature? Like, can it be any arbitrary angle?

    • @na5y
      @na5y  Год назад

      To answer
      - Yes the board has sub-hz precision
      - Yes - setting the phase difference is a little counter intuitive. The phase is set in terms of the multiplier ("mult" below) passed to the "set_frequency" call where passing in "mult" to "set_phase" results in a 90 phase shift. So to do a 45 degrees phase shift you pass in mult/2 to the "set_phase"
      self._si5351.set_frequency( self._frequency, self._si5351.clock_0, self._si5351.pll_a, self._mult )
      self._si5351.set_frequency( self._frequency, self._si5351.clock_2, self._si5351.pll_a, self._mult )
      if ( self._mult != self._old_mult ):
      self._si5351.set_phase( self._si5351.clock_2, self._si5351.pll_a, self._mult )
      Note that "mult" is an integer so you don't have great control over the phase. I hope this answers your question and thank you for the comment

  • @generalingwer4341
    @generalingwer4341 3 месяца назад

    Nice video.i wandering have you seen a very significant negative temp.coefficient within the 5351 boards.

    • @na5y
      @na5y  3 месяца назад +1

      I didn't see that - but I didn't really do any measurement of temperature sensitivity. Thank you for the comment

  • @jungsuhong
    @jungsuhong Год назад

    Thanks for your kind explanation,
    can this board generate below 180 kHz (25MHz X15/2050)? i think it stucks with a limitation under the python adafruit software

    • @na5y
      @na5y  Год назад

      Hi Jungsu. The datasheet says that the output can go all the way down to 2.5KHz. I have never tried that low myself and its quite possible there's some bugs in the library as it attempts to guess the multiplier, numerator and denominator from the desired frequency. What I would suggest is to determine the multiplier, numerator and denominator yourself to get 180KHz and then manually call "configure_registers_bulk". I hope this helps and thank you for the comment

    • @na5y
      @na5y  Год назад

      Have a look here for how you go about calculating the multiplier, numerator and denominator for any frequency
      ruclips.net/video/2cb1LLoeT-Y/видео.html

  • @natewelch6490
    @natewelch6490 2 года назад

    Interesting! When setting the PLL using the fractional method you didn't seem to get any jitter on the clock signal. The 5351a boards that I have been playing around with have some pretty noticeable jitter on the signal unless I use the even integer mode of setting up the part.

    • @na5y
      @na5y  2 года назад

      Thank you for the comment Nate - which version of the boards were you using?

    • @na5y
      @na5y  2 года назад +1

      Just came across this video from Kevin Loughlin BTW: ruclips.net/video/7_rd3Pw-gFs/видео.html

    • @natewelch6490
      @natewelch6490 2 года назад

      The version I have are the Hiletgo brand off of Amazon. I ordered an Adafruit one that just came today to do some comparisons. Should be the same IC. I just wonder if one of them has a register set differently that isn't getting set in the software. The datasheet for the part does mention the jitter being worse for non integer dividers.

    • @natewelch6490
      @natewelch6490 2 года назад

      @@na5y VERY interesting! Looks like exactly the problem I ran into. Here is a video I made (on my other channel) of what I was seeing. ruclips.net/video/d2LE_-31kL8/видео.html

  • @davidegiuffrida1532
    @davidegiuffrida1532 Год назад

    Stupid question....I can program and it hold the programmed frequency so i can use in a computer like a ttl clock ?

    • @na5y
      @na5y  Год назад

      Davide, do you mean use it as a timebase to drive a real time clock? It will hold a frequency pretty well (depending on the stability of its own crystal source of course - which you have to provide externally). You could use it like that. Its generally intended to be emit a programmable variable frequency though (as a local oscillator for a radio for instance). Thank you for the question - I hope this helps!

  • @CharudattUplap
    @CharudattUplap 3 года назад

    Will this work with uPython ? Planning to emulate this code on RPi PICO using uPython

    • @na5y
      @na5y  3 года назад

      This code was written for micropython - should be no problem with a different board although GPIO numbers will be definitely different

  • @karthikraja5772
    @karthikraja5772 3 года назад

    Hey, which connector did you use to connect the clock output to Oscilloscope?

    • @na5y
      @na5y  3 года назад

      That is a male to male SMA cable with an SMA to BNC adapter at the oscilloscope end

    • @karthikraja5772
      @karthikraja5772 3 года назад

      @@na5y Thanks for the reply

  • @pascalmestdagh5074
    @pascalmestdagh5074 4 года назад

    Hi Ian, I just replicated your set-up with an si5351 and Teensy4.0 with circuitpython and mu-editor, works fine! Would it be possible to post your circuit diagrams for the complete set-up somewhere together with a component list please? I would like to replicate your complete project. Very interesting and educational stuff overhere:) Best 73, Pascal,Belgium

    • @na5y
      @na5y  4 года назад

      You bet Pascal. I use kicad at the moment - would kicad projects work or do you need an image? For the kicad projects the main board is here:
      github.com/thaaraak/Tinypico-Radio/tree/master/kicad/Radio
      The phase shifter is here:
      github.com/thaaraak/Tinypico-Radio/tree/master/kicad/Phase%20and%20Filter

    • @pascalmestdagh5074
      @pascalmestdagh5074 4 года назад

      ​@@na5y Well, I have no experience with kicad software for the moment, but I very much like your oldschool handwritten schematics:) But I could figure out how to use Kicad of course.

    • @na5y
      @na5y  4 года назад

      No worries - I have put the schematic in the Radio directory above as "Radio.pdf". There is also a BOM in the directory in the file "Radio". Let me know if you can see them. If thats what you are after I will do the same in the Phase directory

    • @pascalmestdagh5074
      @pascalmestdagh5074 4 года назад

      @@na5y yes, I can see them on your github page, thanks! Will start ordering parts:) Best 73, Pascal

    • @na5y
      @na5y  4 года назад +1

      Cool. Let me know how you get on! Something not spelled out in the schematic is the toroids are 2 x T37-6 and 1 x FT50-75 (marked T50 splitter). The turns ratio on the T37-6 are 6:31 in input and 31:6 on the output. The FT50 is wound trifilar with 11 turns

  • @zoodzood2709
    @zoodzood2709 2 года назад

    I need the software, please

    • @na5y
      @na5y  2 года назад

      Code is in my github repo - github.com/thaaraak/Tinypico-Radio

    • @zoodzood2709
      @zoodzood2709 2 года назад

      @@na5y thanks you so much