Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.

FPGA Turbo Series - Communication Protocols

Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.

Download and install Xilinx Vivado Design Suite. There are instructions on how to do so if you get stuck.

Download and install TeraTerm or any other type of terminal emulator. There are instructions on how to install TeraTerm included in this course if you happen to get stuck.

Basic understanding or exposure to VHDL.

Basic understanding of digital circuits.

Familiar with what a Field Programmable Gate Array (FPGA) is.

Description

This course explains how multiple communication protocols are used and how they can be implemented onto a FPGA. Each communication protocol is explained in great detail so that the student will be able to successfully implement the communication protocol on their FPGA development board. After each communication protocol has been introduced and explained the students will then be tasked with completing a project that pertains to that specific communication protocol. These various projects and topics include:

Generating PWM Signals

Controlling a Buzzer

Controlling a RC servo motor

PS/2 Computer Keyboard Communication

PS/2 Computer Mouse Communication

Receiving Infrared Communication Commands

Transmitting Infrared Communication Commands

Students will be provided with VHDL design files that can be used as starting points for the various design projects. Working with the provided design files and using the lectures as references the students will implement fully functional communication protocols on their development boards. The students will get to use Xilinx's development tools for the design and debugging of their various communication protocol implementations.

This course is geared towards students who have been exposed to VHDL, FPGA's, as well as a basic understanding of digital circuits. This is a great supplement to any engineering student who wants to improve upon their hardware design skills before entering the workforce. This course is also great for anyone who is currently employed in the field engineering. Also any electronic hobbyist would benefit greatly from this course!

Upon completing this course students will have all the skills and knowledge to implement virtually any communication protocol on a FPGA. Beings that the students will be designing and debugging their own code they will have very detailed knowledge of how each design works and will be able to expand upon each project if they so desire.

Who is the target audience?

You should take this course if: You have completed my Learn VHDL and FPGA Development course.

You should take this course if: You have completed my FPGA Turbo Series - Implementing a UART course.

You should take this course if: You have prior experience working with VHDL and FPGA's.

You should not take this course if: You have no prior VHDL, FPGA, or digital circuit knowledge.

This lecture introduces the course and gives a layout of the course content and the nature in which it will be taught. This lecture discusses the topics covered as well as the projects students will be completing.

This lecture lists all of the different materials needed to complete all the projects in this course.

Course Materials

01:27

+–

Pulse Width Modulation (PWM)

4 Lectures
12:49

This lecture introduces the concept of pulse width modulation (PWM) and various applications in can be used in.

Introduction to Pulse Width Modulation (PWM)

01:44

This lecture explains what a pulse width modulated (PWM) waveform looks like. This lecture also explains how a PWM waveform is classified.

PWM Waveforms

02:25

This lecture describes how to use pulse width modulation to control the volume of a buzzer. This information will be used when you are working on the PWM terminal project when you will need to control the volume of a buzzer.

PWM Buzzer Control

04:29

This lecture describes how to use pulse width modulation to control the position of a RC servo motor. This information will be used when you are working on the PWM terminal project when you will need to control the position of a RC servo motor.

PWM Servo Control

04:11

+–

Pulse Width Modulation Project

4 Lectures
15:04

This lecture introduces the PWM assignment. Download the zip file to get started working on your PWM design.

PWM Design Assignment

00:38

Simulating your PWM Design in Vivado

04:26

PWM Terminal Project

03:57

PWM Terminal Demonstration

06:03

+–

PS/2 Communication Protocol

4 Lectures
16:24

This lecture introduces the PS/2 protocol and explains what a PS/2 port looks like as well which applications it is used in.

Introduction to PS/2

03:49

This lecture describes the manner in which data is transmitted and received using PS/2 communication.

PS/2 Protocol

02:33

This lecture describes in detail how a computer keyboard transmits data to the host (your FPGA board). This information will be used when you are working on the PS/2 Keyboard Interface project.

PS/2 Keyboard Interface

05:11

This lecture describes in detail how a computer mouse transmits data to the host (your FPGA board). This information will be used when you are working on the PS/2 Mouse Interface project.

PS/2 Mouse Interface

04:51

+–

PS/2 Interface Design Projects

4 Lectures
16:33

PS/2 Mouse Receiver Project

03:40

PS/2 Mouse Receiver Demonstration

04:36

PS/2 Keyboard Receiver Project

03:39

PS/2 Keyboard Receiver Demonstration

04:37

+–

Infrared Communication Protocol

2 Lectures
12:14

This lecture introduces infrared communication and gives some background information on the topic as well. In this lecture you will also learn several ways in which infrared communication is used in everyday consumer products.

Infrared Communication Introduction

04:27

This lecture discusses in detail how data is transmitted via infrared light using the NEC protocol. In this lecture diagrams and detailed explanations are used so that you will be able to fully understand how data is transmitted to your TV as well as how your TV receives infrared data from your remote. Information in this lecture will be used in the Infrared Receiver project as well as the Infrared Transmitter project.

Infrared Data Transmission

07:47

+–

Infrared Receiver Design Project

2 Lectures
10:51

This lecture describes the Infrared Receiver project and explains what needs to be done in order successfully complete this project.

Infrared Receiver Design Project

04:55

Infrared Receiver Demonstration

05:56

+–

Infrared Transmitter Design Project

1 Lecture
01:36

This lecture walks you through the steps required to be able to program your BASYS 3 development board using a standard USB flash drive. This is not required, however it makes using the infrared transmitter project much easier since you don't have to move your computer around if you want to use the development board as a TV remote.

Loading Designs on the BASYS 3 Board Using the USB Port

01:36

+–

References

3 Lectures
19:58

This lecture explains and walks through the process of downloading and installing TeraTerm.

This lecture reflects on what students have accomplished, a well deserved congratulations is in order! Also students will be informed on what types of things they can do with their newly acquired skills.

Jordan Christman graduated from the University of Dayton with his Bachelor's degree in Electronic and Computer Engineering Technology. He also graduated from UD with his Master's degree in Electrical Engineering. Jordan currently has a patent pending for an electronic monitoring device. He has strong knowledge in FPGA (Field Programmable Gate Array) development, Digital Electronics, Circuit Board design, and VHDL design and modeling of hardware systems. Jordan's focus of study in school was embedded systems which involves circuit design, firmware development, implementation of computer hardware, and the interfacing of computer operating systems. Jordan's hobbies include mobile application development, layout and assembly of PCB's (Printed Circuit Boards), computer application programming, and anything related to electrical engineering.