07 Interfacing FPGA to LCD

อุปกรณ์

    1. บอร์ดทดลอง FPGA MOJO V3

    2. โมดูลจอ LCD 2x16

เครื่องมือ

Xilinx ISE Webpack 14.7

ความสามารถ

    1. สร้างสัญญาณ ควบคุมการสั่งงานโมดูลจอ :CD ได้

    2. แยกข้อความแสดงผล กับชุดควบคุม

วัตถุประสงค์

ศึกษาการเขียนภาษา VHDL ให้ทำงานได้ตาม Timing Diagram

วงจร

โมดูล LCD แบบตัวอักษร

รายละเอียดเกี่ยวกับ โมดูล LCD สามารถค้นหาดูได้จากหลายๆแหล่ง ในที่นี้จะกล่าวถึงเฉพาะที่เกี่ยวข้องกับการนำมาใช้งานเท่านั้น

สัญญาณของ LCD

การสั่งงานโมดูล LCD ต้องส่งข้อมูลเข้าทาง DB0 - DB7 โดยข้อมูลที่ส่งเป็นได้ทั่ง คำสั่งควบคุม และตัวอักษรที่ต้องการให้แสดงออกทางจอ

การส่งคำสั่ง เป็นการกำหนดสถานะการทำงานของโมดูล LCD ที่จะใช้ ตัวอย่างคำสั่งที่สำคัญมีดังนี้

รหัสคำสั่ง (Hex)

0x01

0x02

0x04

0x05

0x06

0x07

0x08

0x0A

0x0C

0x0E

0x0F

0x10

0x14

0x18

0x1C

0x80

0xC0

0x38

ความหมาย

Clear display screen

Return Home

Decrement cursor (shift cursor to left)

Increment cursor (shift cursor to right)

shift display right

shift display left

Display off, cursor off

Display off, cursor on

Display on, cursor off

Display on, cursor blinking

Display on, cursor blinking

Shift cursor position to left

Shift cursor position to right

Shift the entire display to the left

Shift the entire display to the right

Force cursor to the beginning of 1st line

Force cursor to the beginning of 2nd line

2 lines and 5 x 7 matrix

** ในโค๊ด VHDL ใด้ใช้คำสั่งเหล่านี้

การส่งคำสั่ง ให้โมดูล LCD ต้องทำตามลำดับ ดังนี้

  1. ให้สัญญาณ RS = 0

  2. ให้สัญญาณ W = 0

  3. ให้สัญญาณ E = 1

  4. ป้อนคำสั่งเข้าที่ขา DB0-DB7

  5. ให้สัญญาณ E = 0

ซึ่งเขียนเป็นไดอะแกรมเวลาดังนี้

ค่าเวลาที่สำคัญ

  • tcycle ต้องไม่น้อยกว่า 1000 ns

  • PWEH ต้องไม่น้อยกว่า 450 ns

ส่วนการส่งข้อมูลออกแสดงที่จอ ก็ทำเช่นเดียวกับการส่งคำสั่ง เพียงแต่ให้สัญญาณ RS = 1

** ลำดับขั้นการทำงานแบบนี้ดูได้จาก โค๊ด VHDL ในไฟล์ lcd_control.vhd

การต่อโมดูล LCD กับ FPGA

ตัวอย่างโค๊ด VHDL

  1. lcd_ex1 เป็นโมดูลหลัก

  2. divider เป็นโมดูลหารความถี่

  3. message_rom เป็นโมดูล Rom เป็นโมดูลเก็บข้อความที่ต้องแสดงออกจอ

  4. lcd_control เป็นโมดูลควบคุม lcd และจะดึงข้อมูลจาก message_rom ส่งให้โมดูล LCD

ตัวอย่างนี้จะแสดงข้อความ "Hello ePlearn" แสดงที่บรรทัดแรก

เมื่อ download config file ลง FPGA เสร็จแล้ว ให้กดสวิทช์ reset ชิพจะเริ่มทำงาน

ไฟล์ต่างๆอยู่ด้านล่างนี้

[home]