Giới thiệu Atmega16 và các tính năng sử dụng cho đề tài

Một phần của tài liệu đồ án tốt nghiệp thiết kế mô hình xe chạy tự động (Trang 84)

2. Thiết kế phần mềm

2.1.Giới thiệu Atmega16 và các tính năng sử dụng cho đề tài

Sơ lược về Atmega16

Atmega16

Tính năng:

- Bộ nhớ16K(flash) . 512 byte (EEPROM). 1 K (SRAM). - 40 chân , trong đó có 32 chân vào ra dữ liệu chia làm 4 - PORT A,B,C,D. Các chân này đều có trở kéo lên. - Giao tiếp SPI. - Giao diện I2C. Có 8 kênh ADC 10 bit. - 1 bộ so sánh analog.

- 2 bô timer/counter 8 bit, 1 bộ timer/counter1 16 bit. - 1 bộ định thời Watchdog.

- 1 bộ truyền nhận USART

Các tính năng sử dụng cho đề tài:

2.1.1. Truyền nhận USART (Universal Synchronous & Asynchronous serial Reveiver and Transmitter) (bộ truyền nhận nối tiếp đồng bộ và không đồng bộ)

Khái niệm “đồng bộ” để chỉ sự “báo trước” trong quá trình truyền.

Khác với cách truyền đồng bộ, truyền thông “không đồng bộ” chỉ cần một đường truyền cho một quá trình. “Khung dữ liệu” đã được chuẩn hóa bởi các thiết bị nên không cần đường xung nhịp báo trước dữ liệu đến.

USART hay UART cần phải kết hợp với một thiết bị chuyển đổi mức điện áp để tạo ra một chuẩn giao tiếp nào đó. Ví dụ, chuẩn RS232 (hay COM) trên các máy tính cá nhân là sự kết hợp của chip UART và chip chuyển đổi mức điện áp. Tín hiệu từ chip UART thường theo mức TTL: mức logic high là 5, mức low là 0V. Trong khi đó, tín hiệu theo chuẩn RS232 hay USB trên máy tính cá nhân thư ờng là -12V cho mức logic high và +12 cho mức low

Sử dụng truyền thông nối tiếp không đồng bộ với AVR (UART).

Vi điều khiển Atmega32 có 1 module truyền thông nối tiếp USART. Có 3 chân chính liên quan đến module này đó là chân xung nhịp - XCK (chân số 1), chân truyền dữ liệu – TxD (Transmitted Data) và chân nhận dữ liệu – RxD (Reveived Data). Trong đó chân XCK chỉ được sử dụng như là chân phát hoặc nhận xung giữ nhịp trong chế độ truyền động bộ. Tuy nhiên chúng ta không khảo sát chế độ truyền thông đồng bộ, vì thế chỉ cần quan tâm đến 2 chân TxD và RxD. Vì các chân truyền/nhận dữ liệu chỉ đảm nhiệm 1 chức năng độc lập (hoặc là truyền, hoặc là nhận), để kết nối các chip AVR với nhau (hoặc kết nối AVR với thiết bị hỗ trợ UART khác) phải đấu “chéo” 2 chân này. TxD của thiết bị thứ nhất kết nối với RxD c ủa thiết bị 2 và ngược lại. Module USART trên chip Atmega16 ho ạt động “song công” (Full Duplex Operation), nghĩa là quá trình truyền và nhận dữ liệu có thể xảy ra đồng thời.

Để sử dụng module USART trên AVR phải thực hiện 3 việc quan trọng, đó là: cài đặt tốc độ baud (thanh ghi UBRR), định dạng khung truyền (UCSRB, UCSRC) và cuối cùng kích hoạt bộ truyền, bộ nhận, ngắt.

2.1.2. Timer/Counter

Sử dụng Timer/Counter1 để tạo xung P WM điều khiển tốc độ động cơ: Timer/Counter1 là bộ T/C 16 bits, đa chức năng. Đây là bộ T/C rất lý tưởng cho lập trình đo lường và điều khiển vì có độ phân giải cao (16 bits) và có khả năng tạo xung điều rộng PWM. Có 2 kênh tạo xung PWM là OC1A và OC1B

Ta sử dụng chế độ Fast PWM với giá trị TOP được gán trong thanh ghi ICR1, từ đó tùy ý gán giá trị vào thanh ghi OCR1A để điều khiển độ rộng của xung, làm thay đổi tốc độ động cơ.

Hình 3.16: Tạo xung PWM

Trong timer1 có thanh ghi chứa giá trị hoạt động của nó là TCNT1. Thanh ghi này bắt đầu đếm từ 0 cho đến giá trị của OCR1A thì tín hiệu sẽ thay đổi trạng thái từ mức cao thành mức thấp, cho đến giá trị của thanh ghi OCR1 thì TCNT1 sẽ reset trở về 0 (hết 1 chu kỳ). Cứ như vậy, đó chính là quá trình t ạo xung PWM.

Một phần của tài liệu đồ án tốt nghiệp thiết kế mô hình xe chạy tự động (Trang 84)