Bộ định thời/bộ đếm 16 bit

Một phần của tài liệu Nghiên cứu thiết kế và chế tạo máy trị liệu đa năng (Trang 50)

2.4.1. Tổng quan

Bộ định thời/bộ đếm 16 bit cho phộp hoạt động định thời chớnh xỏc, tạo dạng xung và đo định thời tớn hiệu. Với nhiều tớnh năng như cho phộp 16 bit PWM, hai lối ra so sỏnh độc lập, PWM chu kỡ biến thiờn, tạo tần số, đếm sự kiện ngoài, bốn nguồn ngắt độc lập… Sơ đồ khối đơn giản của bộ định thời/bộ đếm 16 bit như trờn hỡnh 2.7. Về cơ bản chức năng của một số phần và một số thanh ghi là tương tự như phần bộ đếm 8 bit. Chỳng ta chỉ xột đến những phần khỏc so với bộ đếm 8 bit đó nghiờn cứu ở phần trước.

Hỡnh 2. 7. Sơ đồ khối bộ đếm 16 bit

Bộ đếm 16 bit bao gồm cỏc thanh ghi giỏ trị bộ đếm TCNT1, thanh ghi lối ra so sỏnh OCR1A/B và thanh ghi lưu lối vào ICR1 là cỏc thanh ghi 16 bit. Thanh ghi điều khiển bộ đếm TCCR1A/B là cỏc thanh ghi 8 bit. Cỏc tớn hiệu yờu cầu ngắt nằm trong thanh ghi cờ ngắt định thời TIFR. Cỏc ngắt được tỏch biệt nhờ thanh ghi mặt nạ ngắt TIMSK.

Bộ đếm cú thể sử dụng xung đồng bộ trong thụng qua bộ chia tần hoặc sử dụng xung đồng bộ ngoài qua chõn Tn. Khối logic chọn xung đồng bộ sẽ điều khiển nguồn xung đồng bộ nào được sử dụng để tăng hoặc giảm giỏ trị của bộ đếm. Lối ra của bộ chọn xung đồng bộ clkTn sẽ là xung đồng bộ của bộ đếm. Khi khụng cú nguồn xung đồng bộ nào được chọn, bộ đếm sẽ ở chế độ khụng được kớch hoạt.

Thanh ghi so sỏnh ra OCR1A/B được so sỏnh với giỏ trị của bộ đếm tại mọi thời điểm. Kết quả so sỏnh được sử dụng để tạo dạng súng PWM hoặc tần số biết thiờn tại cỏc chõn ra OC1A/B. Khi kết quả so sỏnh là bằng sẽ đặt cờ so sỏnh bằng OCF1A/B. Từ cờ này cú thể sử dụng để tạo cỏc yờu cầu ngắt.

Thanh ghi lưu lối vào cú thể lưu giữ giỏ trị bộ đếm tại một sự kiện cho bởi bờn ngoài qua chõn lưu lối vào ICP1 hoặc từ cỏc chõn của bộ so sỏnh tương tự. Khối lưu trữ lối vào bao gồm một bộ lọc số (hay bộ khử nhiễu) để giảm nhiễu. Tớn hiệu sau đú được đồng bộ lại bởi bộ dũ biờn và đưa vào thanh ghi ICR1.

Cỏc giỏ trị sử dụng cho bộ điều khiển logic của bộ đếm là BOTTOM được định nghĩa là 0x0000, MAX là 0xFFFF, và giỏ trị TOP là giỏ trị lớn nhất trong chuỗi đếm. Giỏ trị TOP cú thể được gỏn là cỏc giỏ trị cố định như 0x00FF, 0x01FF, 0x03FF hoặc là giỏ trị lưu giữ trong thanh ghi OCR1A hoặc ICR1. Cỏc giỏ trị gỏn phụ thuộc vào chế độ hoạt động của bộ đếm.

Việc truy cập cỏc thanh ghi 16 bit như TCNT, OCR và ICR được CPU thực hiện qua bus dữ liệu 8 bit. Vỡ vậy mỗi lần truy nhập phải thực hiện hai quỏ trỡnh đọc hoặc ghi. Mỗi bộ định thời cú một thanh ghi 8 bit để lưu trữ tạm thời byte cao của dữ liệu 16 bit. Thanh ghi tạm thời này được sử dụng chung cho tất cả cỏc thanh ghi 16 bit trong bộ định thời. Việc truy cập byte thấp sẽ khởi tạo quỏ trỡnh đọc hoặc ghi 16 bit. Khi CPU ghi dữ liệu vào byte thấp của thanh ghi 16 bit, byte cao được lưu trong thanh ghi tạm, cả hai byte này đều được copy vào trong thanh ghi 16 bit trong cựng một chu kỳ đồng bộ. Khi CPU đọc byte thấp của thanh ghi 16 bit, byte cao của thanh ghi này cũng đồng thời được copy vào thanh ghi tạm thời. Khi ghi thanh ghi 16 bit thỡ byte cao được ghi trước byte thấp, ngược lại, khi đọc thỡ byte thấp được đọc trước byte cao.

Một phần của tài liệu Nghiên cứu thiết kế và chế tạo máy trị liệu đa năng (Trang 50)