How to write SPI Interface code in Verilog HDL for a 12-bit ADC (using the DE0-Nano)

แชร์
ฝัง
  • เผยแพร่เมื่อ 5 ก.ย. 2024

ความคิดเห็น • 41

  • @vevasam
    @vevasam 3 ปีที่แล้ว +12

    Just 35 seconds into your video and I already subscribed. You have a very pleasant voice and pace, and a clear way of explaining. Thank you for your efforts.

  • @vivek_adi
    @vivek_adi 3 ปีที่แล้ว +3

    It's really an exhaustive explanation of the SPI interface for peripherals to the Cyclone IV.
    Keep making them, Awesome !!

  • @damny0utoobe
    @damny0utoobe 3 ปีที่แล้ว +4

    Love practical FPGA ADC interfacing

  • @moinkhan-xd6pe
    @moinkhan-xd6pe 3 ปีที่แล้ว +2

    Thankyu sir ... waiting for your more videos on different topic of FPGA

  • @RickMacmurchie
    @RickMacmurchie 7 หลายเดือนก่อน

    I had to watch this a bunch of times but I got a version to work, with indentation and longer more descriptive variable names. One thing that had me stumped me for a bit was that the PLL setup just crashed every time I tried to run it. I ended up writing a simple clock divider module to divide the 50MHz clock down to 3.2 MHz, it happens to be integer divisible, so the PLL is really overkill when synchronization is not needed. Thanks for the detailed tutorial a learned a bunch trying to get this to work.

    • @pasag21
      @pasag21 7 หลายเดือนก่อน

      I had the same problem on arch linux. This bug can be circumvented by first increasing the size of the megafunction settings window so that all the information fits on it (without scroll bars)

  • @imk8729
    @imk8729 2 ปีที่แล้ว +1

    Very nice tutorial 👌

  • @ahmedaksu
    @ahmedaksu 3 ปีที่แล้ว +7

    Thanks for this great video! There's just one thing. I think count on line 82 (44:39) will never get into case 16 since it is a 4bit register.

    • @groupone2104
      @groupone2104 2 ปีที่แล้ว +1

      So, is there a workaround which would let me get better resolution? Any changes recommended?

    • @gregbushta3086
      @gregbushta3086 8 หลายเดือนก่อน +1

      The timing diagram goes from 1 through 16, while count goes from 0 through 15. Perhaps “if (count ==1)” should be “if (count == 0)” since that is the beginning of the counting.

    • @simonbaxter8001
      @simonbaxter8001 7 หลายเดือนก่อน +1

      @@gregbushta3086 I was shouting at the screen every time I saw count == 1 as the start point of the logic!!! It should be all be working on a count of 0 to 15, not 1 to 16!

  • @nicholaszamora2317
    @nicholaszamora2317 3 ปีที่แล้ว

    One of the best videos. Thanks

  • @sudheervv
    @sudheervv ปีที่แล้ว

    Super explanation..👍

  • @polamounika2406
    @polamounika2406 ปีที่แล้ว +2

    Sir can I use this code for DE10LITE in quartus prime FPGA?

    • @VisualElectric_
      @VisualElectric_  ปีที่แล้ว

      I've never used the DE10-Lite, but it does have an integrated ADC. There's an example in the demonstration folder in the user documentation.

  • @FastLiB
    @FastLiB 3 ปีที่แล้ว

    You are an absolute top man 💪

  • @autumnfox3619
    @autumnfox3619 4 ปีที่แล้ว +3

    Thank you for the amazing material!
    What kind of BNC adapter/setup are you using to connect the Function Generator's output to the de0-nano PMOD?
    Also, would you recommend getting de0-nano or de10-nano?

    • @VisualElectric_
      @VisualElectric_  3 ปีที่แล้ว +3

      Hi, there's no connector - just simple jumper wires into the header pins of the DE0 and crocodile to BNC to the function generator. I haven't used the DE10 nano yet but it looks like a superior board to the DE0 and has the advantage of the Cortex embedded cores integrated into the same chip. The DE0-nano is limited also by relatively few logic elements, so it fills up pretty quickly. All things considered, I would recommend the DE10-nano as the best board to get in that price range!

    • @autumnfox3619
      @autumnfox3619 3 ปีที่แล้ว +2

      @@VisualElectric_ Thank you! Actually ended up getting myself a DE10-Nano kit from DigiKey few days ago, so I want to try making similar project to yours!
      Curious if you will be covering more of the (FPGA Cortex HPS) inner communication via Avalon interface at some point? Or things like Ethernet, clock domain crossing, thanks again!

  • @sc0or
    @sc0or 11 หลายเดือนก่อน +1

    Pls use some code formatting. That cs?1:clk blow my mind

  • @muhammadkashif4000
    @muhammadkashif4000 3 ปีที่แล้ว +1

    Why do you not take timings in your consideration mentioned in timing diagram

  • @noniusreccaredus
    @noniusreccaredus 2 ปีที่แล้ว

    If I understood well (in minute 35), you are sending by 'din' the channel address 3'b 010 (=2) but 'dout' in the analyzer is the result of sampling Channel 0 ??

  • @jimmi_jimmi
    @jimmi_jimmi 2 หลายเดือนก่อน

    hello sir and congratulations on your great video. I try to implement an spi for cyclone ii but it doesnt work right and i am desperate for help. Could I email you for further questions?

  • @mayanksinghania2282
    @mayanksinghania2282 4 หลายเดือนก่อน

    Can you please show the connection you did on the board.

  • @wingermathieu7594
    @wingermathieu7594 ปีที่แล้ว

    Hello Sir, thanks a lot for this excellent video ! 😁 I work on the DE0-Nano board and I am trying to add the multiplexing of the 8 channels of the ADC to your code. But it doesn't work ! Can I send you my project files so that you can correct it ?

  • @saikumargade5286
    @saikumargade5286 2 ปีที่แล้ว

    design and implemntation of spi protocal using veilog Hdl is this board or other board is avilable sir

  • @iyuanpi7310
    @iyuanpi7310 ปีที่แล้ว

    thanks a lot

  • @anshumansingh2784
    @anshumansingh2784 2 ปีที่แล้ว +3

    Thank you so much...can u plz provide the code??

  • @ganauvm270
    @ganauvm270 4 ปีที่แล้ว +2

    hai can you upload the verilog code?

  • @TomLeg
    @TomLeg ปีที่แล้ว +1

    Did you ever hear of indentation?

  • @Raviteja-cq9mb
    @Raviteja-cq9mb 3 ปีที่แล้ว

    what if we want to operate in three channels, how do we proceed with the code?

  • @sarathchandra1367
    @sarathchandra1367 3 ปีที่แล้ว

    I used the same `timescale command but it is not working

  • @CloudDevOps_raj
    @CloudDevOps_raj 3 ปีที่แล้ว +2

    hello sir where can learn verilog for perfect implementtion

    • @jagdishpatil4437
      @jagdishpatil4437 2 ปีที่แล้ว +1

      Tutorials point and TH-cam playlist

  • @ExploreElectronics
    @ExploreElectronics 3 ปีที่แล้ว

    👍

  • @manhducnguyen6818
    @manhducnguyen6818 3 ปีที่แล้ว +3

    Dear author, Can you please share me the source codes? github link or something like that, thank you so much.

  • @dismasezechukwu1184
    @dismasezechukwu1184 2 ปีที่แล้ว

    31:50 terrible display, you could have minimized the timing diagram on the left half of the screen.

  • @mayursgowda934
    @mayursgowda934 2 ปีที่แล้ว

    Sir, is there any document related to this video , if so plz can you share it with me.
    Thank you sir