Bộ tạo xung Clock bên ngoài

Một phần của tài liệu Đồ án môn học Vi xử lý (Trang 56 - 104)

7. Bộ định thời/đếm timer/counter1 16-bit

12.5 Bộ tạo xung Clock bên ngoài

Người dùng cũng có thể sử dụng một máy phát xung clock bên ngoài để làm xung clock cho hệ thống. Sơ đồ ghép nối với máy tạo xung clock bên ngoài được thể hiện ở hình21.

Hình 21. Ghép nối với máy phát xung clock bên ngoài

Bảng 16. Thiết lập thời gian khởi động và trì hoãn

Trong trường hợp này các bit cầu chì CKSEL3..0 phải ghi thành “0000”. Người

dùng cũng có thể cho phép tụ bên trong chip ( giữa XTAL1 và GND ) hoạt động bằng cách lập trình cho bit CKOPT ( ghi CKOPT thành 0 ). Giá trị định danh của tụ bên trong chip là 36 pF. Thời gian khởi động và thời gian trì hoãn được thiết lập bởi các bit SUT1..0 được cho ở bảng 16. 12.6 BỘ DAO ĐỘNG ĐỊNH THỜI

của vi điều khiển ( không cần tụ ) để tạo xung clock cho hệ thống như hình 21b. Bộ dao động được tối ưu cho tần số thạch anh 32,768 KHz.

13.BỘ BIẾN ĐỔI A/D( Analog/Digital)

Vi điều khiểnAtmega8 có một bộ biến đổi ADC tích hợp trong chip với các đặc điểm:  Độ phân giải 10 bit

 Sai số tuyến tính: 0.5LSB  Độ chính xác +/-2LSB

 Thời gian chuyển đổi:65-260μs  6 Kênh đầu vào có thể được lựa chọn

 Có hai chế độ chuyển đổi free running và single conversion  Có nguồn báo ngắt khi hoàn thành chuyển đổi

Tám đầu vào của ADC là tám chân của PORTA và chúng được chọn thông qua một MUX. Để điều khiển hoạt động vào ra dữ liệu của ADC và CPU chúng ta có 3 thanh ghi: ADMUX là thanh ghi điều khiển lựa chọn kênh đầu vào cho ADC, ADCSRA là thanh ghi điều khiển và thanh ghi trạng thái của ADC, ADCH và ADCL là 2 thanh ghi dữ liệu.

13.1. ADMUX: Multiplexer select register

Đây là thanh ghi điều khiển 8 bit.

Với 4 bit được định nghĩa là MUX3, MUX2, MUX1,và MUX0, ứng với các tổ hợp logic ta có thể chọn kênh đầu vào. Cụ thể:

Các bit REFS1 và REFS0 dùng để chọn giá trị điện áp tham khảo cho ADC, như sau:

Chú ý: Nếu như ta thay đổi kênh trong thời điểm mà ADC đang chuyển đổi thì khi quá trình chuyển đổi đã hoàn thành thì kênh vào mới được thay đổi.

13.2. ADCSR-ADC control and status register

13.2.1. Bit 7-ADEN:ADC enable

Đây là bit điều khiển hoạt động của ADC.Khi bit này được set 1 thì ADC có thể hoạt động và ngược lại.Nếu như ta ngừng hoạt động của ADC trong khi nó đang chuyển đổi thì nó sẽ kết thúc quá trình chuyển đổi.Mặc dù chưa chuyển đổi xong.

13.2.2. Bit 6-ADSC: ADC start conversion

Trong chế độ chuyển đổi đơn thì bit này phải được set lên 1 để bắt đầu chuyển đổi.Trong chế độ chuyển đổi tự do thì bit này cần được set lên 1 để bắt đầu lần chuyển đổi đầu tiên.Bit này được giữ sốt trong quá trình chuyển đổi và được xóa khi mà chuyển đổi xong.

13.2.3. Bit 5-ADATE :ADC Auto Trigger enable

Khi bit này được set thì ADC sẽ bắt đầu chuyển đổi mỗi khi có một nguồn kích hoạt xuất hiện. Việc lựa chọn nguồn kích hoạt được thực hiện bằng cách set các bit trong thanh ghi SFIOR.

13.2.4. Bit 4-ADIF: ADC interrupt Flag

Bit này được set lên 1 bởi phần cứng khi quá trình chuyển đổi đã hoàn thành và thanh ghi dữ liệu đã được cập nhật. Bit này được xóa bằng phần cứng nếu như ngắt này được phép và được phục vụ. Hoặc nó có thể được xóa bằng cách ghi giá trị logic “0”vào cờ này. Cụ thể khi ngắt bị cấm ta có thể sử dụng các lệnh sbi và cbi để tác dụng lên bit này.

13.2.5. Bit 3-ADIE:ACD interrupt Enable

Nếu bit này set 1 và ngắt toàn cục được cho phép thì ngắt này được phép phục vụ (khi chuyển đổi xong dữ liệu) và nếu bị xóa thì ngược lại.

13.2.6. Bit 2.1.0-ADPS2…ADPS0: Bit lựa chọn xung nhịp(Tốc độ)

Nguồn xung được lấy từ nguồn xung của Vi điều khiển(XTAL) và được chia tần thông qua bộ chia tần.

Các bit ADPS có nhiệm vụ chọn số chia cho bộ chia tần theo bảng sau:

Thanh ghi này chứa dữ liệu chuyển đổi từ tương tự sang số, được sắp xếp như hình dưới đây.

Thanh ghi dữ liệu ADC

13.4. Nguyên tắc hoạt động và lập trình điều khiển

ADC có nhiệm vụ chuyển đổi tín hiệu điện áp tương tự thành tín hiệu số có độ phân giải 10 bit.Với giá trị nhỏ nhất của điện áp đặt ở chân AGND và giá trị cực đại của điện áp tương tự được mắc vào chân AREF. Tám kênh tương tự đầu vào được chọn lựa thông qua ADMUX và ADMUX này được điều khiển bởi thanh ghi ADMUX.

ADC này có thể hoạt động được ở hai chế độ. Đó là chuyển đổi đơn: chỉ chuyển đổi một lần khi có lệnh chuyển đổi và chế độ tự chuyển đổi (Free running mode) đây là chế độ mà ADC tự động chuyển đổi khi được hoạt động và công việc chuyển đổi có tính tuần hoàn (chỉ cần khởi động một lần).

ADC được phép hoạt động nhờ thiết lập bit ADEN. Quá trình chuyển đổi được bắt đầu bằng việc ghi vào bit ADSC mức logic 1 và trong suốt quá trình chuyển đổi bit này luôn được giữ ở mức cao. Khi quá trình chuyển đổi hoàn thành thì bit này được xóa bằng phần cứng và cờ AIDF được bật lên.

đọc dữ liệu từ hai thanh ghi này thì đọc ADCL trước rồi mới đọc ADCH. Nếu đọc ADCH trước thì dữ liệu cập nhật có thể ghi đè lên ADCL (Vi điều khiển nghĩ rằng đã đọc xong dữ liệu).

Để điều khiển vào ra dữ liệu với ADC, các bước thực hiện như sau: Bước 1: Định nghĩa các cổng vào cho tín hiệu tương tự

Xóa bit tương ứng với chân đó trong thanh ghi DDRA. Sau đó loại bỏ điện trở treo bằng cách xóa bit tương ứng ở thanh ghi PORTA.

Bước 2: Chọn kênh tương tự vào (chọn chân vào cho ADC) thông qua thanh ghi ADMUX (có thể thay đổi trong quá trình hoạt động).

Bước 3: Thiết lập các thông số cho ADC

Tốc độ chuyển đổi thông qua xung nhip chuyển đổi. Chế độ chuyển đổi : đơn hoặc tự động.

Sử dụng ngắt hoặc không.

Bước 4: Bắt đầu chuyển đổi và đọc dữ liệu.

II. Cấu trúc cổng nối tiếp

1. Khái Quát

Cổng nối tiếp được sử dụng để truyền dữ liệu hai chiều giữa máy tính và ngoại vi, có các ưu điểm sau:

- Khoảng cách truyền xa hơn truyền song song. - Số dây kết nối ít.

- Có thể truyền không dây dùng hồng ngoại.

- Có thể ghép nối với vi điều khiển hay PLC (Programmable Logic Device). - Cho phép nối mạng.

- Có thể tháo lắp thiết bị trong lúc máy tính đang làm việc. - Có thể cung cấp nguồn cho các mạch điện đơn giản

Các thiết bị ghép nối chia thành 2 loại: DTE (Data Terminal Equipment) và

DCE(Data Communication Equipment). DCE là các thiết bị trung gian như MODEM còn DTE là các thiết bị tiếp nhận hay truyền dữ liệu như máy tính, PLC, vi điều khiển, … Việc trao đổi

năng hỗ trợ để thiết lập và điều khiển quá trình truyền, được gọi là các tín hiệu bắt tay(handshake). Ưu điểm của quá trình truyền dùng tín hiệu bắt tay là có thể kiểm soát đường truyền.

Tín hiệu truyền theo chuẩn RS-232 của EIA (Electronics Industry Associations). Chuẩn RS-232 quy định mức logic 1 ứng với điện áp từ -3V đến -25V (mark), mức logic 0 ứng với điện áp từ 3V đến 25V (space) và có khả năng cung cấp dòng từ 10 mA đến 20 mA. Ngoài ra, tất cả các ngõ ra đều có đặc tính chống chập mạch.huẩn RS-232 cho phép truyền tín hiệu với tốc độ đến 20.000 bps nhưng nếu cáp truyền đủ ngắn có thể lên đến 115.200 bps. Các phương thức nối giữa DTE và DCE:

- Đơn công (simplex connection): dữ liệu chỉ được truyền theo 1 hướng.

- Bán song công ( half-duplex): dữ liệu truyền theo 2 hướng, nhưng mỗi thời điểm chỉ được truyền theo 1 hướng.

- Song công (full-duplex): số liệu được truyền đồng thời theo 2 hướng. Định dạng của khung truyền dữ liệu theo chuẩn RS-232 như sau:

Start D0 D1 D2 D3 D4 D5 D6 D7 P Stop

0 1

Khi không truyền dữ liệu, đường truyền sẽ ở trạng thái mark (điện áp -10V). Khi bắt đầu truyền, DTE sẽ đưa ra xung Start (space: 10V) và sau đó lần lượt truyền từ D0 đến D7và Parity, cuối cùng là xung Stop (mark: -10V) để khôi phục trạng thái đường truyền. Dạng tín hiệu truyền mô tả như sau (truyền ký tự A):

Các tốc độ truyền dữ liệu thông dụng trong cổng nối tiếp là: 1200 bps, 4800 bps,9600 bps và 19200 bps.

Khi thực hiện kết nối như trên, quá trình truyền phải bảo đảm tốc độ ở đầu phát và thu giống nhau. Khi có dữ liệu đến DTE, dữ liệu này sẽ được đưa vào bộ đệm và tạo ngắt.Ngoài ra, khi thực hiện kết nối giữa hai DTE, ta còn dùng sơ đồ sau:

Khi DTE1 cần truyền dữ liệu thì cho DTR tích cực  tác động lên DSR của DTE2 cho biết sẵn sàng nhận dữ liệu và cho biết đã nhận được sóng mang của MODEM (ảo). Sau đó, DTE1 tích cực chân RTS để tác động đến chân CTS của DTE2 cho biết DTE1 có thể nhận dữ liệu. Khi thực hiện kết nối giữa DTE và DCE, do tốc độ truyền khác nhau nên phải thực hiện điều khiển lưu lượng. Quá trinh điều khiển này có thể thực hiện bằng phần mềm hay phần cứng. Quá trình điều khiển bằng phần mềm thực hiện bằng hai ký tự Xon và Xoff. Ký tự Xon được DCE gởi đi khi rảnh (có thể nhận dữ liệu). Nếu DCE bận thì sẽ gởi ký tự Xoff. Quá trình điều khiển bằng phần cứng dùng hai chân RTS và CTS. Nếu DTE muốn truyền dữ liệu thì sẽ gởi RTS để yêu cầu truyền, DCE nếu có khả năng nhận dữ liệu (đang rảnh) thì gởi lại CTS.

2. Truy xuất trực tiếp thông qua cổng

các địa chỉ như sau:

Giao tiếp nối tiếp trong máy tính sử dụng vi mạch UART với các thanh ghi cho trong bảng sau:

Các thanh ghi này có thể truy xuất trực tiếp kết hợp với địa chỉ cổng (ví dụ như thanh ghi cho phép ngắt của COM1 có địa chỉ là BA

COM1 + 1 = 3F9h.

Khi cần xử lý ngắt, CPU thực hiện đọc các bit tương ứng để xác định nguồn gốc của ngắt. Định dạng của IIR như trên.

IER (Interrupt Enable Register):

IER cho phép hay cấm các nguyên nhân ngắt khác nhau (1: cho phép, 0: cầm ngắt)

TSRE: Transmitter Shift Register Empty – thanh ghi dịch rỗng (=1 khi đã phát 1 kýtự và bị xoá khi có 1 ký tự chuyển đến từ THR.

THRE: Transmitter Holding Register Empty (=1 khi có 1 ký tự đã chuyển từ THR –TSR và bị xoá khi CPU đưa ký tự tới THR).

BI: Break Interrupt (=1 khicó sự gián đoạn khi truyền, nghĩa là tồn tại mức logic 0

PE: Parity Error (=1 khi có lỗi parity và bị xoá khi CPU đọc LSR)

OE: Overrun Error (=1 khi có lỗi thu đè, nghĩa là CPU không đọc kịp dữ liệu làm cho quá trình ghi chồng lên RBR xảy ra và bị xoá khi CPU đọc LSR)

RxDR: Receiver Data Ready (=1 khi đã nhận 1 ký tự và đưa vào RBR và bị xoá khi CPU đọc RBR).

chia tần trong UART để cho phép đạt tốc độ truyền mong muốn.

UART dùng dao động thạch anh với tần số 1.8432 MHz đưa qua bộ chia 16 thành tần số 115,200 Hz. Khi đó, tuỳ theo giá trị trong BRDL và BRDH, ta sẽ có tốc độ mong muốn.

Ví dụ như đường truyền có tốc độ truyền 2,400 bps có giá trị chia 115,200 / 2,400 = 48d =0030h BRDL = 30h, BRDH = 00h.

Một số giá trị thông dụng xác định tốc độ truyền cho như sau:

SBCB (Set Break Control Bit) =1: cho phép truyền tín hiệu Break (=0) trong khoảng thời gian lớn hơn một khung PS (Parity Select):

7, 8 bit dữ liệu).

WLS (Word Length Select):

III .LM35

Một số tính chất cơ bản của LM35

Biến thiên 10mV / 1oC. tầm đo từ 0oC – 128oC quan hệ giữa nhiệt độ và điện áp ngõ ra như sau:

Vout = 0,01×ToK = 2,73 + 0,01ToC.

Ở 0oC thì điện áp ngõ ra Vout = 2,73 (V). Ở 5oC thì điện áp ngõ ra Vout = 2,78 (V). Ở 100oC thì điện áp ngõ ra Vout = 3,73 (V).

Thiết Kế Phần Cứng

1. Mạch Nguồn Cung Cấp Cho Hệ Thống:

Điều quang trọng khi thiết kế mạch nguồn là Đầu ra phải ổn định , nên có thể chọn nhiều mạch khác nhau .

2.MẠCH NẠP USB AVR910 1/Giới thiệu:

AVR 910 USB Programmer Cable là loại mạch nạp sử dụng cho các chip AVR của hãng ATMEL. Với phần cứng đã được tối ưu hóa, sử dụng hoàn toàn các linh kiện SMD nên kích thước cực kì nhỏ gọn, toàn bộ được đóng gói nằm gọn trong vỏ hộp cổng COM tạo nên sự thuận tiện và bền chắc trong quá trình sử dụng.

Sản phẩm đảm bảo được tính năng của một mạch nạp AVR 910 chính hãng với giá thành mềm hơn rất nhiều so với những sản phẩm cùng loại có mặt trên thị trường.

Sản phẩm được đóng gói hoàn chỉnh, bao gồm các phụ kiện sau:

+Mạch nạp USB AVR910. +Cable nạp ISP chuẩn ICE 5x2.

+CD chứa driver và softwares : Win AVR, CodeVisionAVR, Bascom AVR, AVR

aStudio412SP4b498, Proteus7.1.sp2.build3692, Tài liệu học AVR của Gerhard Schmidt, datasheet của các AVR.

2/Đặc điểm:

+Nguồn cung cấp: 5V từ cổng USB. +Giao tiếp Virtual COM qua USB.

+Định dạng file: Intel 8-bit HEX.

3/Tính năng:

+Nạp được hầu hết các dòng AVR và một số chip 89S của Atmel.

+Hỗ trợ đầy đủ các tác vụ nạp chip thông thường như: Ghi/xóa/đọc nội dung trong chip, kiểm tra lỗi sau khi nạp.

+Hỗ trợ khóa chip và lập trình fuse bit .

+Header nạp ISP chuẩn ICE 5x2 như dòng KIT thí nghiệm STK của ATMEL giúp kết nối thuận tiện.

+Tốc độ nạp cao, sử dụng được với hầu hết các trình biên dịch: Code Vision, AVR Studio... +Cực kì đơn giản trong kết nối, cài đặt và sử dụng.

+Danh sách chip được hỗ trợ

AT89S53 AT89S8252 AT90S2313 AT90S8515 ATtiny26 ATtiny45 ATtiny2313 ATmega48 ATmega8 ATmega8515 ATmega8535 ATmega16 ATmega32 ATmega64 ATmega128 AT90CAN128

+Mạch nạp USB AVR 910 sử dụng tốt nhất trên nền hệ điều hành Windows XP Professional và Vista.

4/Hướng dẫn cài đặt driver:

Để quá trình cài đặt driver cho mạch nạp AVR 910 diễn ra suôn sẻ cần lưu ý: không nên kết nối mạch nạp với KIT chứa chip cần nạp trước khi hoàn tất quá trình cài đặt driver.

Trình tự cài đặt như sau:

b/ Cắm mạch nạp AVR 910 vào cổng USB trên PC.

Trên màn hình hiện ra thông báo tìm thấy phần cứng mới dưới góc phải và hộp thoại yêu cầu người dùng chỉ ra driver tương ứng cho phần cứng mới này.

Chỉ định cụ thể đường dẫn đến thư mục chứa driver nằm trên đĩa CD theo các bước như hình dưới đây:

( Đường dẫn mặc định là [Tên ổ CD]\[Driver]\ )

c/Trong quá trình cài đặt, nếu hộp thoại dưới đây xuất hiện, chọn “Continue anyway”...

đó cần tinh chỉnh thông số cổng COM này tối ưu nhất. +Vào Start -> Control Panel -> System...

+Chọn COM Port Number khác, lưu ý nếu trong danh sách các cổng COM, cổng nào đang bị chiếm dụng (in use) thì không được chọn cổng COM này.

Các phần mềm nạp tương thích bao gồm AVR Studio và Code Vision. Chương trình AVRProg tuy giao diện đơn giản nhưng có ưu điểm là nạp rất nhanh, còn CodeVision thì ngược lại.

Sau đây sẽ hướng dẫn Các bước nạp chip sử dụng chương trình AVR Prog trong AVR Studio:

+Cắm mạch nạp vào cổng USB. +Khởi động chương trình AVR Prog.

+Cắm cable nạp giữa mạch nạp với KIT chứa chip cần nạp tương ứng.

+Chọn loại chip tương ứng trên tab Device, nhấp chọn Advanced để test xem mạch nạp nhận ra chip chưa...Nếu không xuất hiện bất kì thông báo lỗi nào mà hiện ngay lên cửa sổ

Advanced, trong khung đánh dấu như bên dưới hiển thị rõ ràng thông số của chip (không có dấu “?”) có nghĩa là mạch nạp hoạt động tốt và đã nhận ra chip.

Các mode, tùy chọn trong cửa sổ Advanced cần tìm hiểu kĩ trong datasheet của nhà sản xuất để có sự thiết đặt đúng.

Sơ Đồ Kết Nối Truyền Dữ Liệu Với Vi Điều Khiển

Một phần của tài liệu Đồ án môn học Vi xử lý (Trang 56 - 104)

Tải bản đầy đủ (DOCX)

(104 trang)
w