1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Thanh ghi điều khiển và trạng thái bộ so sánh tương tự - ACSR pot

15 940 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 15
Dung lượng 189,65 KB

Nội dung

Trong chế độ Free Run, ADC sẽ tự động lầy các mẫu biến đổi theo các thời hằng cố định sau đó cập nhật thông tín vào Thanh ghi dữ liệu của nó.. ADSC = 1 trong suốt quá trình biến đổi và s

Trang 1

12 Khối so sánh tương tự(ANALOG)

Khối so sánh tương tự là một OP AMP so sánh có ngõ vào dương AIN0 (PB2) và ngõ vào âm AIN1 (PB3) Khi điện áp AIN0 lớn hơn AIN1 ngỏ ra bộ so sánh sẽ bằng 1 Ngõ ra của bộ so sánh có thể

sử dụng làm tác động Capture cho Timer/Counter 1 Ngoài ra bộ so sánh còn có chứ năng yêu cầu ngắt riêng, tác động so sánh có thể bằng cạnh lên, cạnh xuống hoặc khi đổi trạng thái Sơ đồ khối của bộ so sánh mô trên hình 1.25

Thanh ghi điều khiển và trạng thái bộ so sánh tương tự - ACSR

• Bit 7 - ACD: Analog Comparator Disable

Khi ACD = 1 nguồn của bộ so sánh bit ngắt, bit này có thể xoá bất cứ thời điểm nào để tắt bộ so sánh tương tự Khi thay đổi ACD cần cấm ngắt so sánh tương tự bằng cách xoá bit ACIE trong thanh ghi ACSR, nếu không muốn kích hoạt chương trình ngắt

• Bit 6 - Res: Reserved bit

Bit này không sử dụng luôn có giá trị bằng 0

• Bit 5 - ACO: Analog Comparator Output

ACO nối trực tiếp tơớ ngõ ra của bộ so sánh tương tự

• Bit 4 - ACI: Analog Comparator Interrupt Flag

ACI = 1 khi ngõ ra bộ so sánh tác động trong chế độ ngắt được định nghĩa bằng các bit ACI1 và ACI0 Chương trình ngắt so sánh tương tự sẽ được gọi khi ACIE = 1 và bit I trong SREG = 1 Bit ACI tự động xoá bằng phần cứng khi ngắt được thực hiện Ngoài ra ACI cũng có thể xoá bằng cách ghi vào nó logic 0

• Bit 3 - ACIE: Analog Comparator Interrupt Enable

Khi ACIE = 1 và I = 1 ngắt so sánh tương tư sẽ được cho phép

• Bit 2 - ACIC: Analog Comparator Input Capture Enable

ACISC = 1 sẽ cho phép ngõ ra bộ so sánh tương tự tác động capture cho Timer/Counter1 Để cho phép ngắt ngõ vào Capture Timer/Counter1 cấn phải lập bit TICIE1 trong thanh ghi TIMSK

• Bits 1,0 - ACIS1, ACIS0: Analog Comparator Interrupt Mode Select

Các bit này định nghĩa các tác động ngắt khác nhau như trong bảng sau:

00 Tác động khi đổi trạng thái ngõ ra bộ so sánh

01 Không sử dụng

10 Tác động khi ngõ ra có cạnh lên

11 Tác động khi ngõ ra có cạnh xuống

Chú ý: Khi thay đổi giá trị các bit ACIS1/ACIS0, cần phải cấm ngắt bằng cách xoá bit cho phép ngắt trong thanh ghi ACSR, nếu không ngắt sẽ xảy ra khi các bit thay đổi giá trị Khi sử dụng các lệnh SBI hoặc CBI với các bit khác trong thanh ghi ACSR cũng có thể ghi giá trị 1 vào thanh ghi ACI, nên cần phải kiểm tra lại, nếu nó bằng 1 cần xoá nó đi

Trang 2

13 Bộ biến đổi tương tự sang số (ADC).

Bộ ADC của MCU AT90S8535 có các đặc tính chính như sau:

• Độ phân giải 10-bit

• Độ chính xác ±2 LSB

• Tích phân không tuyến tính 0.5 LSB

• Thời gian biến đổi 65 - 260 μs

• Có 8 ngõ vào Multiplexed

• Dải ngõ vào Rail-to-Rail

• Có các chế độ biến đổi Free Run hoặc Single

• Có ngắt hoàn thành biến đổi

• Có chế độ ngủ chống nhiễu

ADC của AT90S8535 là loại xấp xỉ liên tiếp 10 bit, với 8 ngõ vào chọn bằng phần mềm mỗi ngõ sẽ tương ứng với 1 cổng của PORT A Ngõ vào ADC có bộ khuếch đại lấy và giữ mẫu đảm bảo cho điện áp ngõ vào luôn bằng hằng số trong suốt quá trình biến đổi Sơ đồ khối của bộ ADC được mô tả trên hình 1.26

ADC có hai nguồn cung cấp riêng, AVCC và AGND Chân AGND cần nối GND còn AVCC không nên sai khác qua 0.3V so với VCC Ngoài ra cần phải cung cấp nguồn chuẩn tới chân AREF, điện áp này cần nằm trong khoảng AGND – AVCC.

Hoạt động.

ADC có thể hoạt động ở một trong hai chế độ Single và free run Trong chế độ single người sử dụng sẽ khởi động các chu kỳ biến đổi Trong chế độ Free Run, ADC sẽ tự động lầy các mẫu biến đổi theo các thời hằng cố định sau đó cập nhật thông tín vào Thanh ghi dữ liệu của nó Bit ADFR trong

ADCSR sẽ chuyển đổi hoạt động của ADC giữa hai chế độ này

Để cho phép khối ADC hoạt động cần ghi 1 tới bit ADEN trong ADCSR Chu kỳ biến đổi đầu tiên

sẽ bắt đầu ngay sau khi ADEN = 1, tuy nhiên thời gian thực hiện sẽ dài hơn thông thường 12 chu kỳ clock

do quá trình khởi động ADC

Một chu kỳ biến đổi sẽ bắt đầu bằng cách ghi logic 1 tới bit khời3 động quá trình biến đổi ADSC,bit nay sẽ giữ nguyên mức cao trong suốt chu kỳ biến đổi, và tự động được xoá bằng phần cứng khi quá trình biến đổi kết thúc Nếu một ngõ vào khác được chọn trong quá trình biến đổi, ADC sẽ tiếp tục thực hiện xong trước khi chuyển qua biến đổi giá trị trên kênh mới

10 bit kết quả biến đổi do ADC tạo ra sẽ được ghi vào các thanh ghi ADCH và ADCL Cần thực hiện một cơ chế logic bảo vệ dữ liệu sẽ đảm bảo nội dung các thanh ghi không bị biến đổi trong khi đọc,

cơ chế đó như sau:

Cần phải đọc ADCL trước, mỗi khi đọc ADCL các thanh ghi dữ liệu sẽ được khoá lại, như vậy nếu quá trình biến đổi kết thúc trước khi đọc ADCH thì không có thanh ghi dữ liệu nào bị thay đổi và kếtquả biến đổi sẽ không bị mất Sau khi đọc ADCH, cả ADCL và ADCH sẽ được cho phép ghi trở lại

ADC cũng có một ngắt riêng, bit ADIF sẽ được lập sau khi quá trình biến đổi hoàn thành, khi truy cập các thanh ghi dữ liệu không đúng, yêu cầu ngắt vẫn được duy trì ngay cả khi dữ liệu bị mất

Bộ tiền chia clock của ADC.

Trang 3

ADC sử dụng một bộ tiền chia clock có chức năng chia clock hệ thống để cung cấp cho hoạt động biến đổi của nó Tần số clock của ADC trong khoảng từ 50 – 200 kHz Khi sử dụng tần số càng cao, độ chính xác sẽ càng giảm

Các bit ADPS0 - ADPS2 trong ADCSR được sử dụng để tạo ra tần số clock thích hợp cho ADC từ bất các thạch anh có tần số trên 100 kHz Bộ tiền chia sẽ hoạt động ngay sau khi ADEN = 1,và nó sẽ reset khi ADEN = 0

Khi lập ADSC = 1 quá trình biến đổi sẽ bắt đầu tại cạnh lên tiếp theo của chu kỳ clock ADC Quá trình lấy mẫu và giữ sẽ chiếm khoảng 1.5 clock ADC sau khi quá trình biến đổi bắt đầu.Kết quả sẽ được ghi vào các thanh ghi dữ liệu sau 13 chu kỳ clock Trong chế độ Single ADC cần chờ thêm ít nhất một chu kỳ clock trước khi thực hiện chu kỳ biến đổi tiếp theo (hình 1.28) Nếu ADSC = 1, ADC sẽ lập tức thực hiện chu kỳ biến đổi mới Trong chế độ Free Run với tần số clock cao nhất 200 kHz sẽ cho thời gian biến đổi thấp nhất là 65ms tương đương với 15.4 kSPS Thời gian biến đổi ở các giai đoạn của các chế độ khác nhau cho trong bảng sau:

lấy mẫu

Số chu kỳ để dữ liệu sẵn sàng

Tổng thời gian biến đổi (chu kỳ)

Tổng thời gian biến đổi (µs)

Chu kỳ đầu tiên trong chế

độ Free Run

Chu kỳ đầu tiên trong chế

Chu kỳ thông thường trong

chế độ Free Run

Chu kỳ thông thường trong

Chức năng chống nhiễu ADC.

Chức năng chống nhiễu của ADCcho phép quá trình biến đổi thực hiện trong chế độ Idle với chức năng giảm thiểu nhiễu bao gồm cả nhiễu từ CPU Để thực hiện chức năng này cần thực hiện các bước sau:

1 ADC đã được chọn và không đang trong quá trình biến đổi Chọn chế độ Single và cho pheé ngắt ADC

ADEN = 1 ADSC = 0 ADFR = 0 ADIE = 1

2 Chuyển qua chế độ idle, ADC sẽ bắt đầu biến đổi khi CPU ngưng hoạt động

Trang 4

3 Nếu không có ngắt nào xảy ra trước khi quá trình biến đổi ADC hoàn thành, ngắt ADC sẽ đánh thức MCU và thực hiện chương trình ngắt phục vụ việc xử lý dữ liệu biến đổi

Thanh ghi chon ngõ vào ADC - ADMUX

• Bits 7 3 - Res: Reserved Bits

Các bit này không sử dụng và luôn có giá trị bằng 0

• Bits 2 0 - MUX2 MUX0: Analog Channel Select Bits 2-0

Giá trị các bit này sẽ chọn các ngõ vào tương ứng từ 0 -7 của ADC

ADC Control and Status Register - ADCSR

• Bit 7 - ADEN: ADC Enable

ADEN = 1 cho phép ADC hoạt động Khi ADEN = 0 ADC bit cấm, nếu cấm ADC khi đang trong chu kỳ biến đổi, chu kỳ đó sẽ lập tức kết thúc

• Bit 6 - ADSC: ADC Start Conversion

Trong chế độ Single ADSC= 1 sẽ khởi động quá trình biến đổi Trong chế độ Free Run ADSC = 1

sẽ khởi động chu kỳ biến đổi đầu tiên Lần đầu tiên ghi ADSC =1 sau khi ADEN = 1 (hoặc đồng thời với ADEN = 1), ADC sẽ được khởi động ADSC = 1 trong suốt quá trình biến đổi và sẽ bằng 0 khi quá trình biến đổi kết thúc trước khi kết quả biến đổi ghi tới các thanh ghi dữ liệu của nó,điều này cho phép bắt đầu một chu kỳ biến đổi mới trước khi chu kỳ biến đổi hiện hành hoàn tất

• Bit 5 - ADFR: ADC Free Run Select

Khi ghi ADFR = 1 ADC sẽ hoạt động trong chế độ Free Run Trong chế độ này ADC sẽ lấy mẫ biến đổi và cập nhật giá trị cho các thanh ghi dữ liệu một cách liên tục

• Bit 4 -ADIF: ADC Interrupt Flag

ADIF = 1 khi đang thực hiện chương trình ngắt ADC, chương trình ngắt sẽ thực hiện khi kết quả biến đổi được chuyển tới các thanh ghi dữ liệu và trước đó ADIE = 1, I = 1 ADIF sẽ tự động xoá bằng phần cứng khi thực hiện chương trình ngắt tương ứng Ngoài ra ADIF cũng có thể xoá bằng lệnh

• Bit 3 - ADIE: ADC Interrupt Enable

ADIE = 1 và I= 1 cho phép ngắt ADC

• Bits 2 0 - ADPS2 ADPS0: ADC Prescaler Select Bits

Các bit xác định hệ số của bộ tiền chia trong ADC

ADPS2 ADPS1 ADPS0 Hệ số chia

Trang 5

Thanh ghi dữ liệu ADC - ADCL và ADCH

Thanh ghi này chứa kết quả biến đổi ADC Trong chế độ Free Run cần phải đọc ADCL trước ADCH

Quét nhiều kênh

Do sự chuyển kênh vào luôn phải chờ cho đến khi quá trình biến đổi kết thúc, chế độ Free Run có thể sử dụng để quét đồng thời nhiều kênh vào mà không cần dừng quá trình biến đổi Thông thường ngắt kết thúc biến đổi ADC sẽ sử dụng để đổi kênh vào Tuy nhiên người sử dụng cũng có thể thực hiện việc chuyển đổi kênh như sau:

Khi có tác động ngắt kết quả biến đổi đã sẵn sàng, nếu ADMUX được thay đổi giá trị ngay sau khi

có tác động ngắt quá trình biến đổi mới sẽ sẵn sàng với các thiết lập ADC như cũ

Kỹ thuật loại nhiễu ADC.

Các mạch điện số bên trong và bên ngoài MCU có thể tác động tới độ chính xác quá trình biến đổi tương tự Khi cần độ chính xác lớn, chúng ta có thể giảm ảnh hưởng nhiễu như sau:

1 Các khối liện quan tới tín hiệu tương tự của MCU và tất cả các linh kiện liên quan tới tín hiệu tương tự khác cần phải có đường mass ở 1 lớp riêng trên mạch in Mass tương tự chỉ nối với mass

số bằng một điểm xuyên lỗ duy nhất (via)

2 Tạo đường nối tín hiệu tương tự ngắn nhất có thể, đảm bảo đường tín hiệu tương tự chạy song song với mass của nó ở lớp nguồn và tránh xa các đường truyền dữ liệu số có tốc độ chuyển mạch cao

3 Chân AVCC của MCU cần nối tới nguồn cung cấp số VCC thông qua mạch RC như hình 1.28

4 Sử dụng chức năng loại nhiễu ADC đểgiảm nhiễu ảnh hưởng từ CPU

5 Nếu một chân cổng A được sửdụng làm ngõ vào ra số thì nên tránh tác động chuyển trạng thái của

nó trong chu kỳ biến đổi ADC

Các cổng vào ra số.

Tất cả các cổng vào ra số của AVR đều có chức năng Đọc – Thay đổi – Ghi (Read-Modify-Write),

có nghĩa là hướng truyền trên một chân vào ra mà không ảnh hưởng tới hướng vào ra của các chân vào ra khác bằng các lệnh SBI và CBI Chúng ta có thể lập tức thay đổi giá trị định nghĩa vào ra cho cổng hoặc cấm/cho phép điện trở kéo lên nguồn cho các ngõ vào

Cổng A

Cổng A là một cổng vào ra 2 chiều 8 bit, có 3 địa chỉ trong vùng địa chỉ vào ra được sử dụng cho cổng A bao gồm: Thanh ghi dữ liệu cho cổng A (PORTA - $3B), thanh ghi định hướng truyền cho cổng A (DDRA - $3A) và thanh ghi các chân vào cổng A (PINA - $39) Thanh ghi PINA là thanh ghi chỉ đọc, hai thanh ghi còn lại có thể đọc ghi Tất cả các chân vào cổng A đều có thể chọn điện trở Pull – Up Bộ đệm ngõ ra cổng A có thể cung cấp dòng 20 mA để cung cấp dòng kép LED trực tiếp Khi cổng A được lập trình là ngõ vào và bên ngoài được kéo xuống thấp, chúng trở thành nguồn dòng khi chọn điện trở Pull –

Up bên trong Khi đọc dữ liệu từ cổng A, là đọc thanh ghi dữ liệu cổng A (PORT A) là bộ nhớ đệm cổng

A Còn khi đọc PINA là đọc trạng thái vật lý thực sự trên cổng A

Trang 6

Cổng A có thể chuyển qua chức năng là các ngõ vào cho bộ ADC, nếu một trong các ngõ vào cổng

A vẫn giữ chức năng vào ra, cần phải tránh tác động thay đổi trạng thái trong khi ADC đang trong chu kỳ biến đổi, tác động này có thể làm thay đổi kết quả biến đổi ADC

Trong chế độ Power down, mạch schmitt trigger của cổng số không còn kết nối Các ngõ vào tương tự được nối tới Vcc/2 để đảm bảo không tiêu thụ nguồn trong chế độ này

Chức năng vào ra số của cổng A.

Tất cả 8 đường của cổng A đều có chức năng giống nhau khi chúng được lập trình là các cổng vào

ra số, PAn là các đường vào ra, DDAn là các bit của thanh ghi DDAR chọn hướng truyền trên đường PAn Nếu DDAn = 1, PAn được định nghĩa là một ngõ ra, nếu DDAn = 0 thì PAn trở thành 1 ngõ vào Nếu bit PORTAn = 1 khi chân được định nghĩa là một ngõ vào, ngõ ra MOS của đường ra sẽ được nối với điện trở Pull – Up Để ngắt điện trở Pull – Up cần lập trình PORTAn = 0 hoặc chân cần lập trình lại là ngõ

ra Các chân của cổng A sẽ trở thành trạng thái trở kháng cao khi MCU được Reset ngay cả khi không cung cấp clock cho MCU Ảnh hưởng của DDAn lên các chân của cổng A như sau:

0 1 Vào Có PA n trở thành nguồn dòng nếu chân vào

được kéo xuống mức thấp

Sơ đồ mạch cổng A trình bày trên hình 1.28

Cổng B.

Cổng B là một cổng vào ra hai chiều 8 bit, có 3 địa chỉ trong vùng nhớ vào ra sử dụng cho cổng B

là $38 cho thanh ghi dữ liệu (PORTB), địa chỉ $37 cho thanh ghi định hướng (DDRB) và địa chỉ $36 cho chân vào cổng B (PINB) Thanh ghi PINB là thanh ghi chỉ đọc, hai thanh ghi còn lại là các thanh ghi có thể đọc ghi được Tất cả các chân vào cổng B đều có thể chọn điện trở Pull – Up Bộ đệm ngõ ra cổng B

có thể cung cấp dòng 20 mA để cung cấp dòng kéo LED trực tiếp Khi cổng B được lập trình là ngõ vào

và bên ngoài kéo xuống mức thấp , chúng trở thành nguồn dòng khi chọn điện trở Pull – Up bên trong Khi đọc dữ liệu từ cổng A, là đọc thanh ghi dữ liệu cổng B (PORTB) là bộ nhớ đệm cổng B Còn khi đọc PINB là đọc trạng thái vật lý thực sự trên cổng B

Ngoài chức năng vào ra số các chân của cổng B còn có các chức năng khác như trong bảng sau:

PB5 MOSI (ngõ ra Master ngõ vào Slaver của cổng SPI)

PB6 MISO (Ngõ vào Master ngõ ra Slaver của cổng SPI)

PB7 SCK (Clock của cổng SPI)

Khi cổng B được lập trình chức năng khác, các thanh ghi DDRB và PORTB sẽ được lập trình theo chức năng mới này

Trang 7

Chức năng vào ra số của cổng B.

Tất cả 8 đường của cổng A đều có chức năng giống nhau khi chúng được lập trình là các cổng vào

ra số, PBn là các đường vào ra, DDBn là các bit của thanh ghi DDBR chọn hướng truyền trên đường PBn Nếu DDBn = 1, PBn được định nghĩa là một ngõ ra, nếu DDBn = 0 thì PBn trở thành 1 ngõ vào Nếu bit PORTBn = 1 khi chân được định nghĩa là một ngõ vào, ngõ ra MOS của đường ra sẽ được nối với điện trở Pull – Up Để ngắt điện trở Pull – Up cần lập trình PORTBn = 0 hoặc chân cần lập trình lại là ngõ

ra Các chân của cổng B sẽ trở thành trạng thái trở kháng cao khi MCU được Reset ngay cả khi không cung cấp clock cho MCU Ảnh hưởng của DDBn lên các chân của cổng A như sau:

0 1 Vào Có PBn trở thành nguồn dòng nếu chân vào

được kéo xuống mức thấp

Các chức năng khác của cổng B bao gồm:

• SCK - Port B, Bit 7

SCK: là tín hiệu clock tạo ra từ SPI Master, đối với SPI Slaver nó là ngõ vào clock Khi SPI trong MCU được lập trình là một Slaver chân này sẽ là một ngõ vào trừ khi lập DDBR7 = 1 để nó trở thành một ngõ vào số thông thường Khi SPI lập trình thành 1 Master hướng truyền dữ liệu trên chân này được điều khiển bằng bit DDB7 Khi chân này được lập trình thành ngõ vào, chức năng pull – up vẫn có thể sử dụng bằng cách lập trình bit PORTB7

• MISO - Port B, Bit 6

MISO: là ngõ vào dữ liệu cho SPI Master, là ngõ ra truyền dữ ra của SPI Slaver Khi SPI cho phép

là Master chân này mặc định là ngõ vào trừ khi lập bit DDB6 lên 1 Khi Spi chọn là Slaver hướng truyền

dữ liệu trên chân này được điều khiển bằng bit DDB6 Khi nó được chọn là một ngõ vào vẫn có thể sử dụng chức năng pull – up bằng cách lập trình bit PORTB6

• MOSI - Port B, Bit 5

MOSI: là ngõ ra SPI Master, ngõ vào SPI slaver Với SPI slaver tín hiệu này là một ngõ vào trừ khi lập bit DDRB5 = 1 Khi SPI là Master hướng truyền dữ liệu trên chân này được điều khiển bằng DDB5

• SS - Port B, Bit 4

SS: Ngõ vào chọncổng Slaver Khi SPI được chọn là slaver chân này là một ngõ vào trừ khi lập trình DDB4 = 1 Khi là một slaver, SPI sẽ tích cực nếu ngõ vào này tác động mức thấp Khi SPI là master hướng dữ liệu trên chân này điều khiển bằng DDB4 Khi chân này là một ngõ vào số có thể lập trình chức năng pull – up bằng bit PORTB4

• AIN1 - Port B, Bit 3

AIN1 (Analog Comparator Negative Input) là ngõ vào đảo của bộ so sánh tương tự Khi lập trình là ngõ vào DDB3 = 0, sử dụng chức năng Pull – Up PORTB3 = 0

Trang 8

Trong chế độ power down mạch schmitt trigger của ngõ vào số không được kết nối làm tín hiệu tương tự được nối tới VCC/2 làm mạch không tiêu thụ công suất nguồn

• AIN0 - Port B, Bit 2

AIN0 (Analog Comparator Positive Input) là ngõ vào không đảo của bộ so sánh tương tự Khi lập trình là ngõ vào DDB2 = 0, sử dụng chức năng Pull – Up bằng các cho PORTB2 = 0

Trong chế độ power down mạch schmitt trigger của ngõ vào số sẽ không kết nối, tín hiệu tương tự

sẽ nối tới VCC/2 để mạch không tiêu thụ nguồn

• T1 - Port B, Bit 1

Là nguồn đếm ngoài cho Timer/Counter1

• T0 - Port B, Bit 0

Là nguồn đếm ngõ vào cho Timer/Counter0

Cổng C

Cổng C là một cổng vào ra 2 chiều 8 bit, có 3 địa chỉ trong vùng địa chỉ vào ra được sử dụng cho cổng C bao gồm: Thanh ghi dữ liệu cho cổng C (PORTC - $35), thanh ghi định hướng truyền cho cổng C (DDRC - $34) và thanh ghi các chân vào cổng C (PINC - $33) Thanh ghi PINC là thanh ghi chỉ đọc, hai thanh ghi còn lại có thể đọc ghi Tất cả các chân vào cổng C đều có thể chọn điện trở Pull – Up Bộ đệm ngõ ra cổng C có thể cung cấp dòng 20 mA để cung cấp dòng kép LED trực tiếp Khi cổng C được lập trình là ngõ vào và bên ngoài được kéo xuống thấp, chúng trở thành nguồn dòng khi chọn điện trở Pull –

Up bên trong Khi đọc dữ liệu từ cổng C, là đọc thanh ghi dữ liệu cổng C (PORT C) là bộ nhớ đệm cổng

C Còn khi đọc PINC là đọc trạng thái vật lý thực sự trên cổng C

Chức năng vào ra số thông thường của cổng C.

Tất cả 8 đường cồng C đều có thể sử dụng làm các đường vào ra số thông thường PCn Bit DDCn

sử dụng để lập trình hướng truyền, DDCn = 1, PCn là ngõ ra, DDCn= 0 thì PCn là ngõ vào Khi lập trình

là ngõ vào, nếu nạp PORTCn = 1 điện trở Pull – up bên trong sẽ được nối tới cổng vào Bỏ kết nối điện trở Pull – up bằng cách cho PORTCn = 0 hoặc lập trình PCn là ngõ ra Cổng C trở thành trạng thái trở kháng cao khi Reset ngay cả khi MCU không được cấp clock Ảnh hưởng của DDCn tới đặc tính cổng C trong bảng sau:

DDCn PORTCn I/O Pull Up Comment

Các chức năng khác của các đường cổng C

Khi AS2 trong ASSR được lập trình bằng 1, MCU sẽ cho phép tính năng tạo clock cận đồng bộ của Timer/Counter 2, các chân PC6 và PC7 sẽ được sử dụng để nối tới bộ dao động thạch anh, chúng sẽ kông còn kết nối ra cổng và không thể sử dụng làm đường vào ra số

Trang 9

Cổng D

Cổng D là một cổng vào ra 2 chiều 8 bit, có 3 địa chỉ trong vùng địa chỉ vào ra được sử dụng cho cổng D bao gồm: Thanh ghi dữ liệu cho cổng D (PORTD - $32), thanh ghi định hướng truyền cho cổng D (DDRD - $31) và thanh ghi các chân vào cổng D (PIND - $30) Thanh ghi PIND là thanh ghi chỉ đọc, hai thanh ghi còn lại có thể đọc ghi Tất cả các chân vào cổng D đều có thể chọn điện trở Pull – Up Bộ đệm ngõ ra cổng D có thể cung cấp dòng 20 mA để cung cấp dòng kép LED trực tiếp Khi cổng D được lập trình là ngõ vào và bên ngoài được kéo xuống thấp, chúng trở thành nguồn dòng khi chọn điện trở Pull –

Up bên trong Khi đọc dữ liệu từ cổng D, là đọc thanh ghi dữ liệu cổng D (PORT D) là bộ nhớ đệm cổng

D Còn khi đọc PIND là đọc trạng thái vật lý thực sự trên cổng D

Chức năng vào ra số thông thường của cổng D.

Tất cả 8 đường cồng D đều có thể sử dụng làm các đường vào ra số thông thường PDn Bit DDDn

sử dụng để lập trình hướng truyền, DDDn = 1, PDn là ngõ ra, DDDn= 0 thì PDn là ngõ vào Khi lập trình

là ngõ vào, nếu nạp PORTDn = 1 điện trở Pull – up bên trong sẽ được nối tới cổng vào Bỏ kết nối điện trở Pull – up bằng cách cho PORTDn = 0 hoặc lập trình PDn là ngõ ra Cổng D trở thành trạng thái trở kháng cao khi Reset ngay cả khi MCU không được cấp clock Ảnh hưởng của DDDn tới đặc tính cổng D trong bảng sau:

DDDn PORTDn I/O Pull Up Comment

Các chức năng khác của cổng D.

• OC2- Port D, Bit 7

OC2 (Timer/Counter2 output compare match output): chân này còn được sử dụng làm ngõ ra bộ so sáh Timer/Counter 2 Để chọn chức năng này cần lập trình bit DDD7 = 1 OC2 cũng được sử dụng làm ngõ ra trong chế độ PWM

• ICP - Port D, Bit 6

ICP - Input Capture Pin: Chân này còn được sử dụng làm ngõ vào capture cho Timer/Counter1 Để chọn chức năng này cần lập trình bit DDD6 = 0

• OC1A- Port D, Bit 5

OC1A, Output compare matchA output: Sử dụng làm ngõ ra so sánh thanh ghi so sánh A Timer/Counter 1 Để chọn chức năng này cần lập trình DDD5 = 1 Ngoài ta OC1A còn sử dụng làm ngõ

ra của PWM trong Timer1

• OC1B- Port D, Bit 4

OC1B, Output compare matchA output: Sử dụng làm ngõ ra so sánh thanh ghi so sánh B Timer/Counter 1 Để chọn chức năng này cần lập trình DDD4 = 1 Ngoài ta OC1B còn sử dụng làm ngõ

ra của PWM trong Timer1

• INT1 - Port D, Bit 3

INT1, External Interrupt source 1: Là chức năng làm ngõ vào cung cấp nguồn ngắt ngoài INT1

Trang 10

• INT0 - Port D, Bit 2

INT0, External Interrupt source 0: Là chức năng làm ngõ vào cung cấp nguồn ngắt ngoài INT0

• TXD - Port D, Bit 1

Là đường truyền dữ liệu ra của UART Khi cho phép UART chân này tự động là một ngõ ra , trừ khi lập trình DDD1 = 0

• RXD - Port D, Bit 0

Là đường nhận dữ liệu của UART, khi cho phép UART chân này tự động là ngõ vào, trừ khi lập trình bit DDD0 = 1

12 UART

AT90S8535 có bộ UART song công với các thanh ghi truyền nhận riêng Các đặc tính chính của chính của UART như sau:

• Bộ tạo tốc độ truyền có thể tạo ra nhiều tốc độ khác nhau

• Có thể truyền với tốc độ cao với thạch anh dao động thấp

• Có thể truyền 8 hoặc 9 bit dữ liệu

• Có bộ lọc nhiễu

• Phát hiện lỗi nhận Overrun

• Phát hiện lỗi sai khung

• Phát hiện lỗi sai Start bit

• Ba phục vụ ngắt riêng (truyền xong, Thanh ghi truyền rỗng và nhận xong)

• Có các bộ đệm truyền nhận

Truyển dữ liệu.

Quá trình truyền dữ liệu được bắt đầu khi thực hiện việc ghi dữ liệu tới thanh ghi dữ liệu của UART (UDR), dữ liệu sẽ được chuyển từ UDR qua thanh ghi dịch truyền khi:

• Nếu một ký tự truyền mới được ghi t ới UDR khi bit Stop của ký tự trước đó đã được dịch ra ngoài Thanh ghi dịch được nạp tức thời

• Nếu một ký tự mới ghi tới UDR trước khi bit stop của ký tự trước dịch ra ngoài thì thanh ghi dịch chỉ được nạp khi stop bit được dịch ra ngoài

Khi thanh ghi dịch bộ truyền rỗng, dữ liệu sẽ được truyền từ UDR tới thanh ghi dịch và bit UDRE trong USR sẽ được lập bằng 1 Khi UDRE = 1, UART sẵn sàng nhận một ký tự mới Tại cùng thời điểm

dữ liệu được ghi từ UDR tới thanh ghi dịch bit 0 của thanh ghi dịch sẽ tự động được xoá để làm Start bit

và bit cuối cùng trong khung truyền được lập để làm bit Stop Nếu lập trình truyền 9 bit (bit CHR9 trong UCR bằng 1) thì bit TXB8 trong UCR sẽ được ghi tới bit thứ 9 của thanh ghi dịch Theo tốc độ đã được chọn, đầu tiên bit Start được truyền ra trên đường TXD, tiếp theo là các bit dữ liệu (LSB trước) và cuối cùng là bit Stop Khi bit Stop đã được dịch ra đường truyền một giá trị mới sẽ lập tức được ghi tới thanh ghi dịch nếu có một dữ liệu đã được ghi tới UDR trong quá trình truyền Trong suốt quá trình truyền dữ

Ngày đăng: 27/06/2014, 00:20

HÌNH ẢNH LIÊN QUAN

Sơ đồ mạch cổng A trình bày trên hình 1.28 - Thanh ghi điều khiển và trạng thái bộ so sánh tương tự - ACSR pot
Sơ đồ m ạch cổng A trình bày trên hình 1.28 (Trang 6)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w