Vi điều khiển ATmega

Một phần của tài liệu Xây dựng hệ thống quản lý phương tiện giao thông bằng công nghệ GPS và thiết kế thiết bị thu thập dữ liệu GPS cho các phương tiện (Trang 37 - 44)

Hình 2.11. ATMega 128 a. Cổng vào ra

Cổng vào ra là một trong số các phương tiện để vi điều khiển giao tiếp với các thiết bị ngoại vi.

ATmega128 có tất cả 64 chân bao gồm 7 cổng ( port ) vào ra 8 bit là : PortA, PortB, PortC, PortD, PortE, PortF, PortG, tương ứng với 56 đường vào ra và 8 chân còn lại RESET, XTAL1 (xung , XTAL2, AVCC, AREF, PEN và 2 chân GND.

1. PORT A là port IO 8 bit có hướng với điện trở kéo lên bên trong(được lựa chọn cho mỗi mẩu). Bộ đệm ngõ ra port A có những đặc trưng điều khiển đối xứng với cả hai (cặp thai đầu cao chìm) và khả năng nguồn. Như những đầu vào, Port A pin bị kéo xuống thấp sẽ tạo thành dòng điện nếu điện trở kéo lên được kích hoạt. Port A pin có 3 trang thái khi trạng thái reset hoạt động, dù xung clock không hoạt động.

2. PORT B, C, D, E như port A là port IO

3. PORT F như là tín hiệu tương tự nhập vào bộ chuyển đổi A/D. Port này là port 8bit nếu A/D chuyển đổi ko dùng tới .

Như port A … nếu giao diện JTAG mở, điện trở kéo lên trên các chân PF7(TDI), PF5(TMS), và PF4(TCK) sẽ được kích hoạt dù reset xuất hiện.

Chân TDO có 3 trạng thái nếu các trạng thái TAP mà chuyển dịch dữ liệu ngoài chuyển vào.

Port F cũng phục vụ những chức năng của giao diện JTAG. 4. PORT G như port A là port IO

5. Reset (gạch đầu) : cho tín hiệu reset vào . Mức thấp trên chân này mà dài hơn so với độ dài xung tối thiểu sẽ tạo reset, dù xung đồng hồ không chạy. Những xung ngắn hơn không có như zậy.

6. Xtal1: Ngõ vào tới máy khuếch đại dao động đảo và ngõ vào tới 7. Xtal1: Ngõ ra từ máy khuếch đại dao động đảo

8. Avcc : Là chân cung cấp điện áp cho Port F và cho ADC. Nó cần được kết nối tới VCC, dù ADC không sử dụng. Nếu ADC được sử dụng, nó cần phải được nối tới VCC thông qua một bộ lọc thông thấp.

9. Aref: Chân tham khảo tương tự cho ADC

10. PEN: Là một trình cho phép chốt Lập trình Tuần tự kiểu SPI, ở mức cao. Giữ chân này ở mức thấp trong thời gian reset thì thiết bị sẽ vào SPI .PEN không có chức năng trong thời gian thao tác bình thường

Các cổng vào ra của AVR là cổng vào ra hai chiều có thể định hướng, tức có thể chọn hướng của cổng là hướng vào (input ) hay hướng ra (output ). Tất các các cổng vào ra của AVR điều có tính năng Đọc – Chỉnh sửa – Ghi ( Read – Modify – write ) khi sử dụng chúng như là các cổng vào ra số thông thường. Điều này có nghĩa là khi ta thay đổi hướng của một chân nào đó thì nó không làm ảnh hưởng tới hướng của các chân khác. Tất cả các chân của các cổng ( port ) điều có điện trở kéo lên ( pull-up ) riêng, ta có thể cho phép hay không cho phép điện trở kéo lên này hoạt động.

b. Hoạt động

Khi khảo sát các cổng như là các cổng vào ra số thông thường thì tính chất của các

cổng ( PortA, PortB,…PortG ) là tương tự nhau, nên ta chỉ cần khảo sát một cổng nào đó trong số 7 cổng của vi điều khiển là đủ.

Mỗi một cổng vào ra của vi điều khiển được liên kết với 3 thanh ghi : PORTx, DDRx, PINx. ( ở đây x là để thay thế cho A, B,…G ).Ba thanh ghi này sẽ được phối hợp với nhau để điều khiển hoạt động của cổng, chẳn hạn thiết lập cổng thành lối vào có sử dụng điện trở pull-up, ..v.v.. . Sau đây là diễn tả cụ thể vai trò của 3 thanh ghi trên.

1. Thanh ghi DDRx: Đây là thanh ghi 8 bit ( có thể đọc ghi ) có chức năng điều khiển hướng của cổng .

Khi một bit của thanh ghi này dược set lên một thì chân tương ứng với nó được cấu hình thành ngõ ra. Ngược lại, nếu bit của thanh ghi DDRx là 0 thì chân tương ứng với nó được thiết lập thành ngõ vào. Lấy ví dụ: Khi ta set tất cả 8 bit của thanh ghi DDRA nếu là 1, thì 8 chân tương ứng của portA là PA1, PA2, … PA7 ( tương ứng với các chân số 50, 49, …44 của vi điều khiển ) được thiết lập thành ngõ ra.

2. Thanh ghi PORTx: PORTx là thanh ghi 8 bit có thể đọc ghi. Đây là thanh ghi dữ liệu của PORTx, Nếu thanh ghi DDRx thiết lập cổng là lối ra, khi đó giá trị của thanh ghi PORTx cũng là giá trị của các chân tương ứng của PORTx, nói cách khác, khi ta ghi một giá trị logic lên 1 bit của thanh ghi này thì chân tương ứng với bit đó cũng có cùng mức logic. Khi thanh ghi DDRx thiết lập cổng thành lối vào thì thanh ghi PORTx đóng vai trò như một thanh ghi điều khiển cổng. Cụ thề , nếu một bit của thanh ghi này được ghi thành 1 thì điện trở treo ( pull-up resistor ) ở chân tương ứng với nó sẽ được kích hoạt, ngược lại nếu bit được ghi thành 0 thì điện trở treo ở chân tương ứng sẽ không được kích hoạt, cổng ở trạng thái cao trở (Hi-Z).

3. Thanh ghi PINx: PINx không phải là một thanh ghi thực sự, đây là địa chỉ trong bộ nhớ I/O kết nối trực tiếp tới các chân của cổng. Khi ta đọc PORTx tức ta đọc dữ liệu được chốt trong PORTx, còn khi đọc PINx thì giá trị logic hiện thời ở chân của cổng tương ứng được đọc.

Vì thế đối với thanh ghi PINx ta chỉ có thể đọc mà không thể ghi.

c. Chức năng các PORT

Trong ATmega 128 có tất cả 64 pin trong đó có 7 port: Port A, Port B, Port C, Port D, Port E, Port F, Port G tương ứng với 56 pin.

Tất cả các port của AVR đều có chức năng Read-Modify-Write (Đọc-Ghi và Chỉnh sửa), được sử dụng như các port vào/ra. Trong AVR có sẵn mức điện áp ra ở các chân đủ để điều khiển LED trực tiếp. Thêm vào đó ở mỗi chân của chip AVR đều có diot phân cực nghịch và tụ điện lọc thành phần AC.

Chức năng cơ bản của các PORT là các cổng và/ra số, input hay output là dựa vào thiết lập ở thanh ghi DDRx, có thể thiết lập từng chân là input hay output (0 là input, 1 là output).

Các chân của các port và/ra ngoài chức năng thông thường là các cổng và/ra số, còn có thể có các chức năng khác như sau:

PORT A: Chứa byte thấp của địa chỉ và đường dữ liệu giao tiếp bộ nhớ ngoài. PORT B:

PB7: là ngõ ra so sánh và là ngõ ra của bộ điều chế xung (PWM) của timer/counter1 và timer/counter2. Do đó pin7 được khởi tạo như một ngõ ra.

PB6: được khởi tạo như một ngõ ra khi (bit thứ 6 của thanh ghi DDRB được set lên 1) để thực hiện chức năng là ngõ ra bên ngoài cho ngõ ra so sánh B của bộ timer/couter1, nó còn là chân ra cho bộ điều chế xung(PWM).

PB 5: được khởi tạo như một ngõ ra khi (DDB5 set 1) để thực hiện chức năng là ngõ ra bên ngoài cho ngõ ra so sánh A của bộ timer/couter1, nó còn là chân ra cho bộ điều chế độ rộng xung(PWM).

PB 4:. được khởi tạo như một ngõ ra khi (DDB4 set 1) để thực hiện chức năng là ngõ ra bên ngoài cho ngõ ra so sánh B của bộ timer/couter1,nó còn là chân ra cho bộ điều chế xung(PWM).

PB 3(ngõ vào chủ(master) / ra tớ(slave) dữ liệu cho SPI)khi SPI được khởi tạo là tầng chủ thì pin 3 được mặc định là ngõ vào bất chấp DDB3. khi SPI được khởi tạo là tầng tớ thì pin3 bị điều khiển trực tiếp bởi DDB3.

PB 2:(ngõ vào tớ(slave)/ ra chủ(master) dữ liệu cho SPI)khi SPI được khởi tạo là tầng tớ thì pin 2 được mặc định là ngõ vào bất chấp DDB2,khi SPI được khởi tạo là tầng chủ thì pin2 bị điều khiển trực tiếp bởi DDB2.

PB 1: (ngõ vào tớ (slave)/ra chủ(master) xung clock choSPI)khi SPI được khởi tạo là tầng chủ thì pin 1 được mặc định là ngõ vào bất chấp DDB1,khi SPI được khởi tạo là tầng tớ thì pin1 bị điều khiển trực tiếp bởi DDB1.

PB 0:(chọn ngõ vào tầng tớ) khi SPI được khởi tạo là tầng tớ thì pin 2 được mặc định là ngõ vào bất chấp DDB0,khi SPI được khởi tạo là tầng chủ thì pin2 bị điều khiển trực tiếp bởi DDB0.

PORT C:

Chứa các byte cao của địa chỉ của External Memory Interface ( giao tiếp bộ nhớ ngoài). PC0-PC7.

PORT D:

PD 7:bộ đếm nguồn ngược 2(Timer/Counter2) PD 6:bộ đếm nguồn ngược 1(Timer/Counter1)

PD 5:để giao tiếp vào/ra bên ngoài với USART1.Do DDD4 điều khiển vào ra(DDD4 ở 1 thì ra)( DDD4 ở 0 thì vào).XCK1 chỉ hoạt động khi USART1 hoạt động đồng bộ.

PD 4:hoạt động như ngõ vào tự kích của bộ Timer/Counter1.

PD 3: nguồn ngắt ngoại 3.Khi máy phát USART1 được kích hoạt thì pin được mặc định là ngõ ra bất chấpDDD3.

PD 2:nguồn ngắt ngoại 2,khi máy thu USART1 được kích hoạt thì nó là input bất chấp DDD2

PD 1:nguồn ngắt ngoại 1,và là ngõ giao tiếp nối tiếp hai dây. PORT E:

PE 7:ngõ vào nguồn ngắt ngoại 7,ngõ vào tự kích cho bộ (Timer/counter3)

PE 6: ngõ vào nguồn ngắt ngoại 6,hay làm ngõ vào xung clock cho bộ (Timer/Counter3).

PE 5: Ngõ vào nguồn ngắt ngoại 5,và là ngõ ra bộ so sánh C,nó còn là lối ra bộ điều chế độ rộng xung (PWM) cho timer/counter.

PE 4: Ngõ vào nguồn ngắt ngoại 4,và là ngõ ra bộ so sánh B,nó còn là lối ra bộ điều chế độ rộng xung (PWM) cho timer/counter.

PE 3: Nối với lối vào âm của bộ so sánh tương tự ; ngõ ra bộ so sánh A,nó còn là lối ra bộ điều chế độ rộng xung (PWM) cho timer/counter. PE 2: Nối với lối vào dương của bộ so sánh tương tự,được điều khiển trực tiếp bởi giá trị dương đưa vào của bộ so sánh analog.đồng thời là ngõ vào/ra xung clock của bộ USART0 và được điều khiển bởi DDE2, XCK0 pin hoạt động khi USART0 la đồng bộ.

PE1: Được dùng như ngõ ra dữ liệu của ATmega128 hay chân phát của UART0.

PE 0: Được dùng như ngõ vào dữ liệu của ATmega128 hay chân thu của UART0

PORT F:

PF 7: Ngõ vàobộ chuyển đổi tương tự sang số kênh7,dữ liệu vào được dịch đến thanh ghi cấu trúc hoặc thanh ghi dử liệu,khi thiết bi JTAG được kích hoạt thì pin không hoạt động như pin I/O.

PF 6: Ngõ vào bộ chuyển đổi tương tự sang số kênh6,dữ liệu ra được lấy từ thanh ghi cấu trúc hoặc thanh ghi dử liệu,khi thiết bi JTAG được kích hoạt thì pin không hoạt động như pin I/O

PF 5: Ngõ vào bộ chuyển đổi tương tự sang số kênh5,pin được dùng để điều khển bộ điều khiển trạng thái,khi thiết bi JTAG được kích hoạt thì pin không hoạt động như pin I/O

PF4: Ngõ vào bộ chuyển đổi tương tự sang số kênh4,khi thiết bi JTAG được kích hoạt thì pin không hoạt động như pin I/O

PF 3: Ngõ vào bộ chuyển đổi tương tự sang số kênh 3. PF 2: Ngõ vào bộ chuyển đổi tương tự sang số kênh 2. PF1: Ngõ vào bộ chuyển đổi tương tự sang số kênh 1. PF 0: Ngõ vào bộ chuyển đổi tương tự sang số kênh 0. PORT G:

PG 4: Một tinh thể dao động được nối với pin,và pin không còn dùng như pin I/O

PG 3: Một tinh thể dao động được nối với pin,và pin không còn dùng như pin I/O

PG 2: Kíchhoạt chốt địa chỉ cho bộ nhớ ngoài

PG 1: Đọc vào tín hiệu điều khiển bộ nhớ dữ liệu ngoài. PG 0: Viết ra tín hiệu điều khiển bộ nhớ ngoài

Một phần của tài liệu Xây dựng hệ thống quản lý phương tiện giao thông bằng công nghệ GPS và thiết kế thiết bị thu thập dữ liệu GPS cho các phương tiện (Trang 37 - 44)