UART & FPGA Bluetooth connection | Road to FPGAs
ฝัง
- เผยแพร่เมื่อ 28 ส.ค. 2024
- Best & Fast Prototype ($2 for 10 PCBs): www.jlcpcb.com
In this forth part of FPGA and verilog, we will create a full UART comunication in Verilog. See the codes used for this example below and read the comments. Thanks!
Help my projects on Patreon : / electronoobs
my Q&A page: electronoobs.co...
Canal en Español: / electronoobs en español
-----------------LINKS-------------------
Tutorial webpage: www.electronoo...
UART project files: www.electronoo...
Downlaod the App: www.electronoo...
Schematic: www.electronoo...
Part 3 video: • Synthesis - blink, cou...
Part 2 video: • Verilog intro - Road t...
Part 1 video: • Basic Logic Gates - Ro...
Quartus LITE downlaod: dl.altera.com/?...
(software free for students) Create an account using real + fake data if you want. Then downlaod the free licence softwares.
FPGA Cyclone IV EP4CE6: rover.ebay.com...
COUPONS
____________________________
FPGA Cyclone IV EP4CE6: rover.ebay.com...
Dual Ch Oscilloscope (266€):www.gearbest.c...
Electrical Tools: www.gearbest.c...
PRINTERS
-------------------------------------
Ender 3(155€): www.gearbest.c...
SparkMaker SLA: www.gearbest.c...
Crealitu CR10: www.gearbest.c...
Coupon code: "11CR10EU" or "11CR10US"
ANET E10 (219$): www.gearbest.c...
Coupon code: "Anete10us"
TEVO Tarantula (175$): www.gearbest.c...
Coupon code: "Tarantulaus"
Creality CR10 MINI: www.gearbest.c...
COUPON: CR10MINI
Anet A8: www.gearbest.c...
Coupon code: "A8KIDA"
Like share and subscribe to motivate me. Thank you
Hi guys. If you want to help my projects: www.patreon.com/ELECTRONOOBS
Thank you very much, enjoy!
The additional notes are a nice touch that I wish more technical creators would add. Good job.
I was surprised how much high level programing was already on the bluetooth module, I was prepared to be jealous of you programming the high level into the FPGA 😅 I have played a little with AHDL about 20 years ago in a fun little project where I captured certain bus addresses to switch certain external memory pages in place of the true smaller memory address map of a microprocessor. I remember there were no gotchas, it just worked. There is a little brain hurt at first and then it's just another programming language. Good to see another modern inventor with a wide scope of creative tools!
Embedded systems such as FPGA and DSP interested me a lot and I intend to do future projects with them, thank you for this series of videos.
Wow. I was not going to get one of these Cyclone IV boards but your doing great stuff here. I need one of these so I can follow along myself. I think this is probably the most useful project you've uploaded so far.
Thanks dude.
-Jake
You should think about creating a generic gerber file for people to order from JLCpcb if they want. I wouldn't do a project specific type of file either. I've been etching my own SMD to DIP breakout boards for TO-252, TO-263, SOT23, SOT-23-5, and SOT-23-6 footprints. I haven't seen those available at all on eBay or AliEx. I ordered a bunch of different TO-252 and TO-263 MOSFETs that are sold on AliEx dirt cheap. The most effective one so far has been the 06N03LA N Channel MOSFET. I got a bunch of them for $0.02 each. They are a good replacement for IRFZ44's but they are only available in a TO-252 package. Another breakout I've been etching is a SOP-8 with the standard pinout for MOSFETs. That FET package is also available really cheap on AliEx and they tend to be super useful because this package is so popular with lithium battery protection circuits especially the P Channel variety as they have ultra low Vgs thresholds and super low on resistance. I generally buy the premade SMD breakouts if they are cheap and available but there are several SMD packages like these that are not sold. If I were in your position and really wanted to get more people placing their first order with JLCpcb, I would create a few gerber files with the most useful stuff I would like to have or would find useful, then I would try to make it as easy as possible for people to place an order using the files I created. This could get a lot more people placing a first order even though they do not have a design they are ready to upload yet.
I was even thinking about creating my own etch transparencies kind of like this to use for footprint identification. I'm sure you are aware of the PCB measuring rulers that also have a bunch of footprints for identification. I have been thinking about making my own version but instead of a ruler with footprints I would make centimeter and millimeter tick marks without the usual linear numbers, just tick marks. Then create a bunch of SMD footprints next to the tick marks. Instead of just a ruler with footprints, the design would be a full set of SMD to DIP adaptors that could be broken out at any time. Even after a ruler is broken down for one of the adaptors the other pieces could still be used as a ruler and it would not seem devalued so long as the number scale was missing.
...just some ideas ;)
-Jake
@@UpcycleElectronics Although I understood half of what you wrote, I still appreciate your effort for writing this long comment :)
you don't need to hide your thumbs downs. your videos are gold!
If all electronic engineering professors taught as well as you do, an engineering program would be 1 year not 5 years!!
Just wanted to give you some feedback on the use of the verilog in this project. I actually used this in my MIDI stepper synth I'm working on and I ran into a few issues.
The main thing I want to point out is your baud rate generator. It is unnecessary. It is way better to just use the 50 MHz clock and count the number of clock cycles that would equate to 8/16 ticks. I had a lot of data that just wouldn't get processed because of this.
For the case of my project, I had a 31250 baud uart so I just counted 800 and 1600 clock cycles and all my problems went away.
The only other stuff was the fact that you really don't need a next state. The two states with the enable work just as well.
Everything else I had to do was just modification for my project specifically.
Hi, thanks for the tutorial. I managed to get RX and TX working without the baudrate generator by counting the 50MHz clock directly for the required half-width and full-width counts.
In the UART_232.zip I downloaded from your website, UART_tx.v needs a couple of fixes. The Tx output needs to be initialized to 1 so the line is high at start. Then in the 'write data out to tx' code, the first time you reach the full pulse-width count, you need to reset the counter to 0.
Plz be so kind as to make video on digital alarm clock using verilog.keep up the good work 👍
You make very good visual aides.
hi from turkey , you are very good instructor :)
Nice work and good explanation, thanks for share, maybe later you can explain how programming fpga using blocks symbols diagrams, for example in quartus ii.
Excellent pedagogy. Thank you.
Good to know more about UART.
very well explained!!!
Excuse me for a question but are you from russia? Your accent is so clear ;)
Good!
Thanks so much. Really nice clear explanation
subbed to your patrion. Not much but its what I could. I hope many people do the same. All the best.
PlZ make a beginner video series on how make a programing for arduino
Thank you so much. With your help I have successfully implemented uart receive on my spartan 6 fpga. Can you please help me how to recieve multiple bytes of unknown length and a control signals goes high when all bytes are received?
good job
Pretty awesome job, dude. 😊
U're good bro 👍🏻
Sam 🎵
very nice channel
Dear how to make 2 motor 1 control like switch to other motor if I want 2 pan tilt using
Hey it's an good video but I don't have FGPA board and I want to do to anyway thanks for an good video
what is the purpose of tick signal?
So does your Top module not implement the ability to Tx data? It looks like the Tx module itself does, I guess it wouldn't be hard to wire up the IO in the Top module if you needed it.
Yes te TX module works. But for this example I had no data to send from the fpga. Only receive.
Useful video 👍 👍
thank you very much!
woowww FPGA tutorial !!!
creo que estoy mal pero, no es mejor con un microcontrolador?, cuál es la verdadera ventaja de usar fpga aparte de la velocidad de procesamiento?
what is the purpose of the usb blaster @10:06
Any chance you could show me how to add an even parity bit. I can't find any examples
can you send the vhdl code for it please
thank you
Brilliant!
Thanks for this tutorial, but I want to know how can I control multible gsm module from same webpage, lets say each gsm module is connected to one arduino where I need to be able to control LED from each arduino from a webpage.
its been w while since you did this video would you do another for fpga's
Please make a video on isolated rs485
Is this possible on cyclone 2 fpga?
This is hard code.. a normal person can't understand it how you can?
Active serial configuration device: EPCS4N altera pls help me
hello I've got all the code of the project I've installed on the card but I'm trying to run zybo 7000 card on the leds but it works.
Need to do a different operation when installing the code to the card?
merhaba ben kart üzerine yüklediğim projenin tüm kodunu aldım ama zybo 7000 kartını ledlerde çalıştırmaya çalışıyorum ama işe yarıyor.
Kodu karta takarken farklı bir işlem yapmanız mı gerekiyor?
Hello electronoobs it's greatly , can you do something about implimentation the architeture on (fpga Soc system NIOS II)
Hye bro, can you teach me how to see it by timing diagram?
@Electronoobs
Why can't I transmit even characters back to my PC into PuTTY? If I set TxData to 65, I get an 'A'. If I set TxData to 67, I get a 'C'. So why can't I set it to 66 and get a 'B'? PuTTY is set to 8 databits, no parity. It displays rubbish for any even character I transmit.
For example:
wire [7:0] TxData = 65 ; // Data to transmit - transmit 'A' character - WORKS OK
wire [7:0] TxData = 66 ; // Data to transmit - transmit 'B' character - FAILS
wire [7:0] TxData = 67 ; // Data to transmit - transmit 'C' character - WORKS OK
i wish this was done for vhdl, anyone know how???
ok
It seems hobby/makers are going to use FPGA little more. Arduino have first board that use FPGA (Cyclone 10 LP). The current documentation is little bit missing.
Programming an FPGA is pain in the ass, it's nice if you want to learn how everything works at low level but takes a lot of time and effort if you want to make something more advanced.