Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
learn:courses:unit-3-lab3a:start [2017/02/16 17:28] – Marthalearn:courses:unit-3-lab3a:start [2022/10/04 11:38] (current) – external edit 127.0.0.1
Line 1: Line 1:
 ====== Lab 3a: LCD Parallel Interface - Direct IO Control ====== ====== Lab 3a: LCD Parallel Interface - Direct IO Control ======
 +[[{}/learn/courses/unit-3/start|Back to Unit 3]]
 == Download This Document == == Download This Document ==
   * {{ :learn:courses:unit-3-lab3a:lab_3a.pdf |Lab 3a PDF}}   * {{ :learn:courses:unit-3-lab3a:lab_3a.pdf |Lab 3a PDF}}
Line 6: Line 7:
 ===== 1. Objectives ===== ===== 1. Objectives =====
   - Identify the PIC32 processor pins used for the LCD interface.   - Identify the PIC32 processor pins used for the LCD interface.
-  - Implement LCD control using bit-banging IO techniques.+  - Implement LCD control using bit-banging I/O techniques.
   - Understand handshaking requirements for interfacing two systems operating at differing clock speeds.   - Understand handshaking requirements for interfacing two systems operating at differing clock speeds.
- 
- 
  
 ---- ----
Line 24: Line 23:
 ===== 3. Equipment List ===== ===== 3. Equipment List =====
 ==== 3.1. Hardware ==== ==== 3.1. Hardware ====
-  - Basys MX3 trainer board. +  - [[https://digilent.com/shop/basys-mx3-pic32mx-trainer-board-for-embedded-systems-courses/|Basys MX3 trainer board]] 
-  - PC or Linux Workstation computer. +  - [[https://digilent.com/shop/usb-a-to-micro-b-cable/|Micro USB cable]] 
-  - [[http://store.digilentinc.com/usb-a-to-micro-b-cable/|Micro USB cable]]. +  - Workstation computer running Windows 10 or higher, MAC OS, or Linux
-  - [[http://store.digilentinc.com/analog-discovery-2-100msps-usb-oscilloscope-logic-analyzer-and-variable-power-supply/|Analog Discovery 2]]. +
  
 +In addition, we suggest the following instruments:
  
-==== 3.2. Software: ==== +  - [[http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,842,1018&Prod=ANALOG-DISCOVERY|Digilent Analog Discovery 2]]
-  - [[http://www.microchip.com/mplab/mplab-x-ide|Microchip MPLAB X® v3.35 or higher]]. +
-  - [[http://www.microchip.com/SWLibraryWeb/product.aspx?product=PIC32%20Peripheral%20Library|PLIB Peripheral Library]]. +
-  - [[http://store.digilentinc.com/waveforms-2015-download-only/|WaveForms 2015]].+
  
 +
 +
 +==== 3.2. Software: ====
 +  - [[http://www.microchip.com/mplab/mplab-x-ide|Microchip MPLAB X® v3.35 or higher]]
 +  - [[http://www.microchip.com/SWLibraryWeb/product.aspx?product=PIC32%20Peripheral%20Library|PLIB Peripheral Library]]
 +  - [[http://www.microchip.com/xcdemo/xcpluspromo.aspx|XC32 Cross Compiler]]
 +  - [[https://digilent.com/shop/software/digilent-waveforms/|WaveForms]]
  
 ---- ----
Line 58: Line 61:
  
 ===== 7. LCD Background Information ===== ===== 7. LCD Background Information =====
-Character [[https://en.wikipedia.org/wiki/Liquid-crystal_display|Liquid Crystal Displays]] (LCD) are low cost electronic devices that are capable of generating visual displays consisting of alphanumeric characters and graphical symbols commonly used for [[https://en.wikipedia.org/wiki/Embedded_system|embedded system]] [[https://en.wikipedia.org/wiki/User_interface|human machine interfaces]] (HMI). Many suppliers of LCD devices are based on the [[https://en.wikipedia.org/wiki/Hitachi_HD44780_LCD_controller|Hitachi HD44780]] LCD controller, and hence have a common hardware and software interface. Some LCD devices have serial interfaces that use UART, I2C, and SPI communications((PmodCLS: Character LCD with Serial Interface, [[http://store.digilentinc.com/pmodcls-character-lcd-with-serial-interface/|http://store.digilentinc.com/pmodcls-character-lcd-with-serial-interface/]])). These protocols are covered in Unit 4. Other LCD devices use interfaces consisting of four or eight data lines and three control lines((PmodCLP Character LCD with Parallel Interface, [[http://store.digilentinc.com/pmodclp-character-lcd-with-parallel-interface/|http://store.digilentinc.com/pmodclp-character-lcd-with-parallel-interface/]])). Although the LCDs that use a serial interface require fewer processor I/O pins, the display controller IC is still based on the Hitachi HD44780, which uses 8 or 11 I/O pins. Hence, the serial LCD devices have an on-board microprocessor that translates the serial communications instructions to parallel I/O. +Character [[https://en.wikipedia.org/wiki/Liquid-crystal_display|Liquid Crystal Displays]] (LCD) are low-cost electronic devices that are capable of generating visual displays consisting of alphanumeric characters and graphical symbols commonly used for [[https://en.wikipedia.org/wiki/Embedded_system|embedded system human machine interfaces]] (HMI). Many suppliers of LCD devices are based on the [[https://en.wikipedia.org/wiki/Hitachi_HD44780_LCD_controller|Hitachi HD44780]] LCD controller, and hence have a common hardware and software interface. Some LCD devices have serial interfaces that use UART, I2C, and SPI communications((PmodCLS: Character LCD with Serial Interface, [[https://digilent.com/shop/pmod-cls-character-lcd-with-serial-interface/]])). These protocols are covered in Unit 4. Other LCD devices use interfaces consisting of four or eight data lines and three control lines((PmodCLP Character LCD with Parallel Interface, [[https://digilent.com/reference/pmod/pmodclp/start]])). Although the LCDs that use a serial interface require fewer processor I/O pins, the display controller IC is still based on the Hitachi HD44780, which uses 8 or 11 I/O pins. Hence, the serial LCD devices have an on-board microprocessor that translates the serial communications instructions to parallel I/O. 
  
 The handshaking required to successfully communicate with the LCD on the Basys MX3 is representative of many common parallel interfaces.  The handshaking required to successfully communicate with the LCD on the Basys MX3 is representative of many common parallel interfaces. 
- 
  
 ---- ----
Line 73: Line 75:
     - Initialize the LCD using the recommended sequence of instructions shown in the control flow diagram FIg. B.2. to write specific codes to the LCD at specified intervals.     - Initialize the LCD using the recommended sequence of instructions shown in the control flow diagram FIg. B.2. to write specific codes to the LCD at specified intervals.
     - Position the cursor in the display space (Line 1 or Line 2) where the next character is to be displayed.     - Position the cursor in the display space (Line 1 or Line 2) where the next character is to be displayed.
-    - Write function(s) that write ASCII control and display data to the Display Data Ram (DDRAM). one or more?+    - Write function(s) that write ASCII control and display data to the Display Data Ram (DDRAM).
     - Translate the ASCII control characters into one or more C instructions for the LCD, as detailed in Table 8.1.     - Translate the ASCII control characters into one or more C instructions for the LCD, as detailed in Table 8.1.
     - Write functions that write ASCII character data to the Display Data Ram (DDRAM).     - Write functions that write ASCII character data to the Display Data Ram (DDRAM).
Line 157: Line 159:
  
 ===== Appendix A: Basys MX3 Schematic Drawings ===== ===== Appendix A: Basys MX3 Schematic Drawings =====
-{{ :learn:courses:unit-3-lab3a:lab3a-figure-a-1.png?nolink |Figure A.1. LCD connection schematic diagram for Labs 3a and 3b.}}+{{ :learn:courses:unit-3-lab3a:lab_3a_3_fig_a_1.jpg?nolink&550 |Figure A.1. LCD connection schematic diagram for Labs 3a and 3b.}}
 //Figure A.1. LCD connection schematic diagram for Labs 3a and 3b.// //Figure A.1. LCD connection schematic diagram for Labs 3a and 3b.//
 +
  
  
Line 174: Line 177:
  
 {{ :learn:courses:unit-3-lab3a:lab3a-figure-b-4.png?nolink |Figure B.3. Control flow diagram for LCD Write operation using bit-banging.}} {{ :learn:courses:unit-3-lab3a:lab3a-figure-b-4.png?nolink |Figure B.3. Control flow diagram for LCD Write operation using bit-banging.}}
-//Figure B.3. Control flow diagram for LCD Write operation using bit-banging.//+//Figure B.4. Control flow diagram for LCD Write operation using bit-banging.//
  
 {{ :learn:courses:unit-3-lab3a:lab3a-figure-b-5.png?nolink |Figure B.5. LCD display character control flow diagram.}} {{ :learn:courses:unit-3-lab3a:lab3a-figure-b-5.png?nolink |Figure B.5. LCD display character control flow diagram.}}
 //Figure B.5. LCD display character control flow diagram.// //Figure B.5. LCD display character control flow diagram.//
 +
 +----
 +
 +[[{}/learn/courses/unit-3/start|Back to Unit 3]]
 +[[{}/learn/courses/unit-3-lab3b/start|Go to Lab 3b]]