[code AVR] Thiết kế mạch điều khiển module Led matrix P10
Thứ Bảy, 5 tháng 5, 2012
1
nhận xét
Nội dung bài viết này là Thiết kế mạch điều khiển trung tâm cho module Led matrix P10.
II–Sơ lược về dòng vi điều khiển AVR
AVR là một họ vi điều khiển do hãng Atmel sản xuất.Chip AVR là chip vi điều khiển 8 bits với cấu trúc tập lệnh đơn giản hóa-RISC (Reduced Instruction Set Computer), một kiểu cấu trúc đang thể hiện ưu thế trong các bộ vi điều khiển hiện nay.
So với các chip vi điều khiển 8 bits khác, AVR có nhiều đặc tính ưu việt hơn hẳn, cả về giá thành lẫn tài nguyên hỗ trợ,dung lượng bộ nhớ :
- Gần như chúng ta không cần mắc thêm bất kỳ linh kiện phụ nào khi sử dụng AVR, thậm chí không cần nguồn tạo xung clock cho chip (thường là các khối thạch anh).
- Thiết bị lập trình (mạch nạp) cho AVR rất đơn giản, có loại mạch nạp chỉ cần vài điện trở là có thể làm được. Một số AVR còn hỗ trợ lập trình on – chip bằng bootloader không cần mạch nạp…
- Bên cạnh lập trình bằng ASM, cấu trúc AVR được thiết kế tương thích C.
- Nguồn tài nguyên về source code, tài liệu, application note…rất lớn trên internet.
- Hầu hết các chip AVR có những tính năng (features) sau:
§ Có thể sử dụng xung clock lên đến 16MHz, hoặc sử dụng xung clock nội lên đến 8 MHz (sai số 3%)
§ Bộ nhớ chương trình Flash có thể lập trình lại rất nhiều lần và dung lượng lớn, có SRAM (Ram tĩnh) lớn, và đặc biệt có bộ nhớ lưu trữ lập trình được EEPROM.
§ Bộ nhớ chương trình Flash có thể lập trình lại rất nhiều lần và dung lượng lớn, có SRAM (Ram tĩnh) lớn, và đặc biệt có bộ nhớ lưu trữ lập trình được EEPROM.
§ Nhiều ngõ vào ra (I/O PORT) 2 hướng (bi-directional).
§ 8 bits, 16 bits timer/counter tích hợp PWM.
§ Các bộ chuyển đối Analog – Digital phân giải 10 bits, nhiều kênh.
§ Chức năng Analog comparator.
§ Giao diện nối tiếp USART (tương thích chuẩn nối tiếp RS-232).
§ Giao diện nối tiếp Two –Wire –Serial (tương thích chuẩn I2C) Master và Slaver.
§ Giao diện nối tiếp Serial Peripheral Interface (SPI)
§ ...
Với những ưu điểm trên bọn chúng tôi quyết định chọn dòng vi điều khiển AVR cho mạch điều khiển trung tâm của mình. Và ở đây cụ thể là chip ATmega8 quen thuộc, dễ dàng tìm mua trên thị trường và giá thành không quá cao
III.Thiết kế mạch CPU cho bảng thông tin điện tử
1. Phần cứng mạch CPU.
a. Sơ đồ nguyên lý:
(click vào hình để nhìn rõ hơn)
a. Các linh kiện chính:
- ATmega8.
- Max232.
- IC đệm 74HC245.
- IC thời gian thực DS1307.
- Jump JP2 để mở rộng bảng thông tin theo chiều dọc.
b. Chức năng của mạch điều khiển trung tâm:
- Nhận dữ liệu từ cổng nối tiếp, ghi vào bộ nhớ Flash. Cấu hình phần cứng, kiểu hiệu ứng lưu vào EEPROM.
- Đưa dữ liệu cần hiển thị, thực hiện hiệu ứng và đưa ra hiển thị trên module P10.
- Mạch điều khiển sẽ tự động reset hệ thống khi quá trình nhận dữ liệu bị lỗi (do mất điện hay đứt dây dẫn tín hiệu,sai mã truyền …)
1. Phần mềm cho vi điều khiển
a. Lưu đồ giải thuật chương trình chính:
d. Tính toán chi tiết cho các thông số của mạch điều khiển :
- Để đảm bảo an toàn cho vi điều khiển Atmega8, nâng công suất cho tín hiệu điều khiển ra, cho phép kết nối với nhiều module theo chiều dọc, ta sử dụng IC đệm 3 trạng thái 74HC245
Thông số kĩ thuật của 74HC245 :
Iin = 0,1mA à phù hợp với nối ra của Atmega8
Iout max = 35mA
Đầu vào của module P10 cũng là 1 IC đệm 74HC245 -> ta có thể ghép nối được rất nhiều module song song mà vẫn đảm bảo an toàn cho mạch điều khiển à cho phép tăng khả năng mở rộng theo chiều dọc, đảm bảo an toàn cho mạch điều khiển cả khi người sử dụng ghép lối có sai sót.
Tính toán chi tiết cho mạch điều khiển, chương trình điều khiển:
Trên cở sở hiện tượng lưu ảnh của mắt người quan sát ,để cảm nhận được hình ảnh là liên tục thì trong 1s phải có tối thiểu 25 hình được đưa ra hiển thị trên bảng Led .
Do IC 74HC595 là loại IC có bộ chốt ở đầu ra vì vậy khi lập trình ta đã xử lí sao cho thời gian sáng của 1 hàng cũng chính là thời gian ta đưa dữ liệu ra hàng tiếp theo chuẩn bị được cho sáng .Vì vậy ảnh hưởng của thời gian chuyển dữ liệu gần như không có đối với bảng thông tin cỡ nhỏ,các hàng gần như là sáng nối tiếp nhau .
Đối với bảng thông tin cỡ lớn để đảm bảo nguyên lí 24H /s thì thời gian được sáng của 1 khung hình là 1/24 s.Do nguyên lí quét của module P10 được sử dụng là ¼ .Tức là tại 1 thời điểm sẽ có 4 hàng được cấp tín hiệu sáng cùng lúc .Sau 4 lần chuyển dữ liệu ta sẽ có 1 khung hình đầy đủ. Như vậy thời gian được phép sáng của 1 hàng tối đa là
1/96 s ~ 0,0104s
Bộ dao động dùng trong mạch của vi điều khiển Atmega8 là 11,0592Mhz
Chương trình chuyển dữ liệu ra mất khoảng 120 chu kì xung nhịp à thời gian để chuyển 1 byte là :
1/(11,0592.10^6) x 120 ~ 10,8 uS
Vậy kích thước tối đa được phép theo chiều dài là :
0,0104x1^6 / 10,8 ~ 962 byte
Vậy số lượng tối đa được phép theo chiều ngang là 240 module
Giới hạn của bộ nhớ SRAM của Atmega8 là 1K byte = 1024 byte .Không gian bộ nhớ cho việc dữ liệu của hình ảnh hiển thị là 896 byte(từ địa chỉ 060h đến 420H) ,128 byte còn lại là không gian của ngăn xếp, cấu hình phần cứng …
Kích thước của 1 module theo byte là
16 x 4 = 64 byte
Do đó để hình ảnh là đẹp nhất ,phù hợp với không gian bộ nhớ thì số lượng các module tối đa được phép là :
896 / 64 = 14
Về không gian của bộ nhớ chương trình Flash .Không gian bộ nhớ Flash của Atmega8 là 8 Kbyte .Sau khi biên dịch ,chương trình điều khiển chiếm 45% dung lượng bộ nhớ chương trình
Phân vùng bootloader chiếm 4 trang trong bộ nhớ chương trình à chiếm 256 byte bộ nhớ
è Không gian bộ nhớ cho việc lưu dữ liệu hiển thị là : ~ 4K byte
Dung lượng này là khá nhỏ với những bảng thông tin cỡ lớn .Với những bảng kiểu này ta có thể sử dụng vi điều khiển Atmega16 (16K byte Flash, 1K byte SRAM)
Hay vi điều khiển Atmega32 (32K byte Flash ,2K byte SRAM ) hoặc Atmega64 (64K byte Flash ,4K byte SRAM), Atmega128 (128K byte Flash, 4K byte SRAM).
Tính toán chi tiết cho chương trình đưa dữ liệu ra module hiển thị :
Chương trình đưa dữ liệu ra :
spi_truyen:ldi tam1,8 ;khoi tao cac bien dem trung gianldi tam,0 ;thanh ghi ten “spi”chua du lieu can dua rachuyen:bst spi,0 ;lan luot lay tung bit cua spibrtc xoasbi portd,3 ;bit dua ra la 1rjmp xungxoa:cbi portd,3 ;bit dua ra la 0xung:sbi portd,2 ;tao xung clockinc tamlsr spicbi portd ,2cpse tam,tam1;dem xem da du 8 bit chuarjmp chuyenret ;tro ve sau khi chuyen du lieu xong
1
a. Các hiệu ứng biến mất:
§ 1. Không hiệu ứng: Hiển thị trực tiếp hình ảnh ra bảng.
§ 2. Dịch dần sang trái: Hình ảnh biến mất dần từ phải sang trái theo tốc độ đã cài đặt.
§ 3. Dịch dần sang phải: Hình ảnh biến mất dần từ trái sang phải theo tốc độ đã cài đặt.
§ 4. Xoá dần sang trái: Xóa dần hình ảnh từ phải sang trái.
§ 5. Xoá dần sang phải: Xóa dần hình ảnh từ trái sang phải.
§ 6. Xoá kiểu sao: Các điểm trên hình ảnh sẽ dần mất đi dần đến hết.
§ 7. Xoá từ trong ra: Hình ảnh sẽ được xóa dần từ giữa ra 2 biên.
§ 8. Chữ cuộn lên: Kiểu chữ cuộn dần lên rồi mất đi.
§ 9. Dịch ngang xuống: Chữ được dịch ngang từ trên xuống
§ 10. Dịch ngang lên: Chữ được dịch ngang từ dưới lên
§ 11. Kiểu nước chảy đi: Hiệu ứng tạo cảm giác bức ảnh được biến mất theo kiểu nước chảy.
§ 12. Kiểu chữ rơi xuống: Với hiệu ứng này, chữ rơi xuống và biến mất dần nhưng mưa rơi.
b. Các hiệu ứng xuất hiện:
§ 1. Hiện từ ngoài vào trong: Hình ảnh được bắt đầu chuyển từ 2 bên vào giữa.
§ 2. Dịch chữ:
§ 3. Hiện từ trái ra: Hình ảnh đi từ trái qua phải.
§ 4. Hiện từ phải ra: Hình ảnh đi từ phải qua trái.
§ 5. Chữ rơi như tuyết: Dần dần xuất hiện như tuyết rơi.
§ 6. Chữ cuộn xuống: Hình ảnh cuộn dần xuống.
§ 7. Hiện kiểu sao: Các điểm ảnh dần hiện ra như sao trên trời.
§ 8. Hiện kiểu nghịch đảo:
§ 9. Chữ cuộn xuống: Hình ảnh cuộn dần xuống.
1 nhận xét:
làm sao để xem các phần còn lại vậy?!
Đăng nhận xét