Mục lục:

Bảng mạch chuyển đổi HD44780 LCD sang I2C cho Bus Pirate: 9 bước
Bảng mạch chuyển đổi HD44780 LCD sang I2C cho Bus Pirate: 9 bước

Video: Bảng mạch chuyển đổi HD44780 LCD sang I2C cho Bus Pirate: 9 bước

Video: Bảng mạch chuyển đổi HD44780 LCD sang I2C cho Bus Pirate: 9 bước
Video: Mạch Chuyển Đổi Giao Tiếp I2C Cho LCD (BZOZ)#Shorts 2024, Tháng mười một
Anonim
Bảng mạch chuyển đổi HD44780 LCD sang I2C cho Bus Pirate
Bảng mạch chuyển đổi HD44780 LCD sang I2C cho Bus Pirate
Bảng mạch chuyển đổi HD44780 LCD sang I2C cho Bus Pirate
Bảng mạch chuyển đổi HD44780 LCD sang I2C cho Bus Pirate

Màn hình LCD ký tự giá rẻ dựa trên chipset HD44780 có nhiều kích cỡ khác nhau: 2x16, 4x20, v.v. Các màn hình này có hai chế độ giao diện tiêu chuẩn, 4bit và 8bit song song. 8bit yêu cầu tổng cộng 11 dòng dữ liệu, 4bit yêu cầu 7 (6 cho chỉ ghi). Một số màn hình LCD hỗ trợ chế độ dữ liệu nối tiếp bổ sung, chẳng hạn như VFD mà tôi đã giới thiệu tại Hack a Day. Màn hình LCD HD44780 thường là các bộ phận 5volt với nguồn cung cấp riêng cho đèn nền. Bus Pirate chỉ có năm chân I / O chịu được 5volt, vì vậy chúng tôi đã tạo một bảng điều hợp nhỏ có đủ chân để điều khiển màn hình LCD. Bus Pirate điều khiển bo mạch bộ điều hợp thông qua thư viện giao diện LCD của nó. Tiếp tục đọc về bảng điều khiển LCD ký tự Bus Pirate HD44780 và thư viện giao diện. Tôi có thể có PCB, bộ dụng cụ hoặc bộ dụng cụ lắp ráp do Seeed Studio sản xuất với giá khoảng 15 đô la, bao gồm cả phí vận chuyển trên toàn thế giới, hơn thế nữa tại đây. Blog.

Bước 1: Phần cứng

Phần cứng
Phần cứng
Phần cứng
Phần cứng
Phần cứng
Phần cứng

Tổng quan Trong bài viết này, chúng tôi phác thảo một bo mạch bộ điều hợp I2C cho màn hình LCD dựa trên HD44780. Chúng tôi chứng minh điều đó bằng giao diện nối tiếp đa năng của Bus Pirate. Mã nguồn Bus Pirate cho thư viện giao diện HD44780 dựa trên I2C là miền công cộng, vì vậy nó có thể tự do điều chỉnh cho phù hợp với các dự án của riêng bạn. Hình ảnh mạch kích thước đầy đủ [PNG]. Mạch và PCB được thiết kế với phiên bản miễn phí của Cadsoft Eagle. Các tệp thiết kế có thể được tải xuống từ Bus Pirate SVN. Trước khi sử dụng bo mạch bộ điều hợp, hãy đảm bảo xác minh biểu dữ liệu cho màn hình LCD của bạn dựa trên sơ đồ chân của bộ điều hợp. Không phải tất cả các màn hình LCD đều giống nhau. IC mở rộng I / O PCF8574 Đây là một chip mở rộng 8 I / O đơn giản được điều khiển thông qua giao diện I2C hai dây. Giao diện I2C có thể truy cập từ tiêu đề JP1. PCF8574 hoạt động từ 2,5 đến 5 volt. Các chân I / O hoạt động ở điện áp cung cấp, vì vậy nếu chúng ta cấp cho nó 5 điện áp thì nó sẽ giao tiếp với màn hình LCD ở mức 5 điện áp. C1 (0,1uF) tách IC khỏi các dao động trong nguồn điện. Một chân của PCF8574 điều khiển đèn LED 3mm (LED1) thông qua điện trở giới hạn dòng điện R2 (1000 ohms). Đèn LED báo hiệu giao tiếp thành công giữa Bus Pirate và bộ điều hợp. PCF8574 không thể cung cấp đủ dòng điện để cấp nguồn cho đèn LED, vì vậy chúng tôi cấp nguồn cho đèn LED từ nguồn 5volt và chuyển tiếp đất. LCD Bo mạch bộ điều hợp giao tiếp với màn hình LCD ký tự HD44780 ở chế độ giao diện song song 4bit. Các chân giao diện 4bit - RS, RW, EN và D4-D7 - được kết nối với bảy trong số các chân I / O PCF8574. Chúng tôi thích sử dụng đầu cắm chân đực 0,1 "để kết nối bộ điều hợp với màn hình LCD, bạn thường có thể dựa màn hình LCD vào chân để tạo đủ tiếp xúc cho quá trình kiểm tra nhanh. tiêu đề LCD. Chúng tôi đã không kết nối các chân đèn nền vì có rất nhiều kiểu đèn nền khác nhau. Việc cung cấp nguồn cho đèn nền LED có thể làm hỏng màn hình yêu cầu nguồn điện áp âm. Nguồn điện Hầu hết các màn hình LCD yêu cầu 5volt, hãy cung cấp nguồn điện bên ngoài thông qua header JP2. Chúng tôi đã cung cấp chân cấp nguồn thứ hai để kết nối các điện trở kéo lên của Bus Pirate. PCB Mạch và PCB được thiết kế với phiên bản miễn phí của Cadsoft Eagle. Bạn có thể tải xuống tệp thiết kế từ Bus Pirate SVN. PCB là thiết kế một mặt, tất cả đều xuyên lỗ với một dây nhảy duy nhất (màu đỏ). Chúng tôi có thể có PCB, bộ dụng cụ hoặc bộ dụng cụ lắp ráp do Seeed Studio sản xuất với giá khoảng 15 đô la, bao gồm cả phí vận chuyển trên toàn thế giới, thêm tại đây. Partlist Part Value (tất cả thứ lỗ thô) C10.1uF / 10volts + R110000 (10K) ohm tông đơ / chiết áp một lượt, điện trở 6mmR21000 (1K) ohm, 1/4 wattLED13mm (T1) LED, tiêu đề đực màu đỏJP1 + JP20.1 ", 5 chânIC1PCF8574N, 8bit Bộ mở rộng I / O I2C Ổ cắm DIP DIP16ICS116 chân cho IC1Tôi không thể bao gồm một số phần tử định dạng và bảng HTML trong Có thể hướng dẫn, bạn có thể xem bài đăng gốc tại blog Nguyên mẫu nguy hiểm.

Bước 2: Kết nối

Kết nối
Kết nối

Thiết bị: HD44780 ký tự LCD. Bus: 4bit song song, với bo mạch bộ điều hợp PCF8574 I2C Yêu cầu nguồn điện: 5volts. Tài liệu tham khảo: biểu dữ liệu mẫu [PDF], tham chiếu lệnh HD44780, trang web HD44780 LCD uber. Hoàn thành nhật ký phiên Bus Pirate cho phần trình diễn này. Chúng tôi đã thiết kế bộ điều hợp cho thư viện LCD của giao diện nối tiếp đa năng Bus Pirate, nhưng nó sẽ hoạt động với bất kỳ thứ gì có thể sử dụng giao thức I2C. Hãy xem mã nguồn Bus Pirate để biết ví dụ triển khai I2C-> HD44780. Kết nối Bus Pirate với bo mạch bộ điều hợp như trong bảng. Bảng này cũng hiển thị các kết nối thô với IC PCF8574 nếu bạn đang theo dõi mà không có bảng bộ điều hợp. Kết nối bộ điều hợp với nguồn điện đủ cho màn hình LCD, thường là 5volt. Kết nối I2C giữa bộ điều hợp và Bus Pirate yêu cầu điện trở kéo lên từ 2 đến 10K. Dưới đây là thông tin thêm về giao diện điện áp hỗn hợp với bộ kéo lên và điện trở kéo lên trên xe Bus Pirate. Tôi không thể đưa một số yếu tố định dạng và bảng HTML vào một Có thể hướng dẫn, bạn có thể xem bài đăng gốc tại blog Nguyên mẫu nguy hiểm.

Bước 3: Bước 1. Thiết lập Thư viện

Bước 1. Thiết lập Thư viện
Bước 1. Thiết lập Thư viện

Giao diện Chúng tôi đã đề cập đến thiết kế bộ điều hợp và cách kết nối nó với Bus Pirate, giờ cuối cùng đã đến lúc ghi nội dung gì đó lên màn hình LCD.11 <<1 <<W <

p <<2 <<v <<< lấy báo điện áp MÀN HÌNH ĐIỆN ÁP: 5V: 4.9 | 3,3V: 3,3 | VPULLUP: 5.0 <<Nhấn 'm' trong cổng Bus Pirate và chọn thư viện LCD. Nó hiện chỉ hỗ trợ LCD HD44780 ký tự sử dụng bộ điều hợp PFC8574 được mô tả trong nửa đầu của bài viết này (tùy chọn 1). Bật nguồn cung cấp ('W' lớn) và điện trở kéo lên (menu 'p'). Kiểm tra màn hình điện áp (menu 'v') và đảm bảo rằng điện áp kéo lên (Vpullup) đọc khoảng 5 vôn.

Bước 4: Bước 2. Đặt lại và khởi tạo

Bước 2. Đặt lại và khởi tạo
Bước 2. Đặt lại và khởi tạo
Bước 2. Đặt lại và khởi tạo
Bước 2. Đặt lại và khởi tạo

Bảng này phác thảo các lệnh byte đơn điều khiển màn hình LCD HD44780, đây là tài liệu tham khảo chi tiết. Các lệnh này có thể được nhập từ dòng lệnh Bus Pirate, nhưng chúng tôi đã tạo macro cho hầu hết chúng để tiết kiệm thời gian. LCD> (0) <<< hiển thị menu macro0 menu Macro <<< menu này1. LCD Reset << <đặt lại LCD2. Init LCD <<< đặt lại và khởi tạo LCD3. Clear LCD <<< xóa LCD, đưa con trỏ về vị trí 04.Macro 0 hiển thị menu macro cho bất kỳ chế độ Bus Pirate nào. LCD> (2) <<< khởi tạo macro LCD Các dòng hiển thị: 1. 1 <<< hiển thị một dòng 2. Nhiều <<2 'ĐẶT LẠI <<< macro 2 bao gồm một trình tự đặt lạiINIT <<Macro LCD khởi tạo (2) định cấu hình màn hình cho chế độ giao diện 4bit, cho phép hiển thị con trỏ và đặt một vài tùy chọn hữu ích khác. Định cấu hình số dòng hiển thị, chọn 1 cho một dòng hiển thị hoặc 2 cho tất cả các màn hình khác. Sau khi khởi tạo, màn hình sẽ rõ ràng với con trỏ hiển thị ở góc. Nếu nó không hoạt động, hãy kiểm tra kết nối I2C, điện trở kéo lên và nguồn điện, sau đó thử lại. LCD HD44780 cần được đặt lại bằng chuỗi tín hiệu đặc biệt trước khi chúng có thể được khởi tạo cho chế độ giao diện 4bit hoặc 8bit. Macro 1 tạo ra chuỗi này. Macro 2 bao gồm trình tự đặt lại, vì vậy không cần sử dụng macro 1 trước macro 2.

Bước 5: Bước 3. Viết ký tự kiểm tra

Bước 3. Viết ký tự kiểm tra
Bước 3. Viết ký tự kiểm tra
Bước 3. Viết ký tự kiểm tra
Bước 3. Viết ký tự kiểm tra

LCD> (6:80) <<Macro số ghi sẽ lấp đầy màn hình LCD với các số kiểm tra từ 0 đến 9. Số sau dấu hai chấm cho Bus Pirate biết có bao nhiêu số kiểm tra cần viết, chúng tôi đang sử dụng 4x20LCD, vì vậy chúng tôi viết 80 số để điền vào nó. Lưu ý rằng con trỏ kết thúc ở vị trí 0, bên dưới '0'. LCD đầu tiên> (7:80) <<Macro ký tự ghi sẽ điền vào màn hình LCD các ký tự ASCII, nhập số lượng sau dấu hai chấm. Chú ý rằng đường nắm tay tiếp tục trên đường thứ ba, đường thứ ba trên đường thứ hai, và đường thứ hai trên đường cuối cùng. Các ký tự không liên tục vì màn hình LCD ký tự không quấn từ dòng này sang dòng tiếp theo. Chúng ta sẽ nói thêm một chút về vấn đề này sau.

Bước 6: Bước 4. Xóa màn hình LCD

Bước 4. Xóa màn hình LCD
Bước 4. Xóa màn hình LCD

LCD> (3) <<Macro LCD rõ ràng sẽ gửi lệnh HD44780 để xóa màn hình và trả con trỏ về vị trí đầu tiên. Bạn cũng có thể thực hiện bất kỳ thao tác nào trong số này mà không cần macro, hãy tham khảo bảng lệnh ở đầu phần này. Nhập '[0b1' trong Bus Pirate để đặt giao diện thành chế độ lệnh ([) và gửi lệnh HD44780 xóa màn hình (0b00000001) mà không có macro.]

Bước 7: Bước 5. Nhập văn bản

Bước 5. Nhập văn bản
Bước 5. Nhập văn bản
Bước 5. Nhập văn bản
Bước 5. Nhập văn bản

LCD> (8) <<< chèn văn bản người dùng Nhập văn bản để chèn tại vị trí con trỏ. Bản trình diễn màn hình LCD HD44780 <<Sau khi xóa màn hình LCD ở bước 4, con trỏ được đặt ở khối đầu tiên. Chúng tôi cũng có thể đặt nó bằng macro (4: 0), di chuyển con trỏ đến ký tự đầu tiên. Chèn văn bản vào macro con trỏ yêu cầu nhập văn bản và sau đó sao chép nó vào màn hình LCD khi bạn nhấn enter. LCD> (4: 0x40) <& lt

LCD> (8) <<< chèn văn bản Nhập văn bản để chèn tại vị trí con trỏ. Bus Pirate v2go <<Viết đến dòng thứ hai phức tạp hơn một chút, nó thực sự bắt đầu ở ký tự 64 trên màn hình LCD 4x20. Nếu bạn tiếp tục viết từ cuối dòng 1 (ký tự 20) thì bạn sẽ kết thúc ở đầu dòng 3! Trang này có một bộ sưu tập bản đồ bộ nhớ đẹp cho hầu hết các kích thước LCD ký tự. Đầu tiên, chúng tôi đặt con trỏ trên dòng thứ hai (4: 0x40). Tiếp theo, macro 'chèn văn bản' lấy đầu vào của chúng ta và sao chép nó vào LCD. LCD> (4: 0x14) (8) (4: 0x54) (8) <<< nhiều cú pháp macro Nhập văn bản để chèn tại vị trí con trỏ. Firmware v2.0 + <<< chúng tôi đã nhập văn bản ThisEnter để chèn vào vị trí con trỏ.Bus Pirate chấp nhận nhiều macro trên cùng một dòng, vì vậy toàn bộ màn hình có thể được viết cùng một lúc. Chúng tôi đã viết cho hai dòng cuối cùng bằng một dòng cú pháp. Chúng tôi có thể sử dụng '(3) (4: 0) (8) (4: 0x40) (8) (4: 0x14) (8) (4: 0x54) (8) 'để xóa màn hình LCD và viết tất cả bốn dòng bằng một mục cú pháp duy nhất.

Bước 8: Bước 6. Đọc từ màn hình LCD

Bước 6. Đọc từ màn hình LCD
Bước 6. Đọc từ màn hình LCD

Bảng mạch chuyển đổi Bus Pirate và LCD có thể đọc từ màn hình LCD. Chúng tôi sẽ đọc văn bản mà chúng tôi đã ghi vào màn hình (DDRAM), nhưng bạn cũng có thể đọc cài đặt và ram ký tự tùy chỉnh (CGRAM) bằng cách đặt địa chỉ chính xác. LCD> [0b10000000 '' '<<< đặt con trỏ đọc' ' '] HD44780 RS THẤP, CHẾ ĐỘ LỆNH <<< đăng ký chọn pin thấp CMD WRITE: 0x80 <<Đầu tiên, chúng ta yêu cầu Bus Pirate gửi dữ liệu đến thanh ghi lệnh LCD ([). Tiếp theo, chúng ta sử dụng lệnh set DDRAM address (0b1xxxxxxx) để đặt con trỏ đọc về đầu DDRAM (xxxxxxx = 0000000).] LCD>] rrrrrrr <<< đọc bộ nhớ dữ liệuHD44780 RS HIGH, DATA MODE <<< đăng ký chọn pin highREAD: 0x48 <<< 'H'READ: 0x44 <<<' D'READ: 0x34 <<< '4'READ: 0x34 <<<' 4'READ: 0x37 <<< '7'READ: 0x38 < << '8'READ: 0x30 <<<' 0'LCD> Cuối cùng, yêu cầu Bus Pirate đọc từ bộ nhớ dữ liệu (]), rồi đọc một vài byte (rrrrrrr). Chúng tôi nhận được "HD44780", văn bản mà chúng tôi đã ghi vào màn hình ở bước 5. Bạn cũng có thể sử dụng phím tắt r: 7 để đọc bảy byte, nhưng nó không hoạt động trong phần sụn hiện tại - chúng tôi sẽ sửa lỗi này trước bản phát hành tiếp theo.

Bước 9: Làm thêm

Làm thêm
Làm thêm

Mô tả chung về Step Bộ điều hợp LCD HD44780 ký tự là một phụ kiện tiện dụng cho Bus Pirate. Nó có thể được sử dụng để kiểm tra nhanh hoặc phát triển logic nâng cao hơn. hoặc bộ dụng cụ lắp ráp do Seeed Studio sản xuất với giá khoảng 15 đô la, bao gồm cả phí vận chuyển trên toàn thế giới, hơn thế nữa tại đây.

Đề xuất: