1. Trang chủ
  2. » Luận Văn - Báo Cáo

Thiết kế một bộ khuyếch đại lock-In số dựa trên vi điều khiển DsPic

71 624 1

Đ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 71
Dung lượng 9,2 MB

Nội dung

Bộ khuyếch đại lock in số[8] Trong một bộ khuyếch đại lock in số, phần lớn các quá trình xử lý được thực hiệntrong miền số sử dụng phần mềm và dùng phần cứng là bộ xử lý tín hiệu số DSP.

Trang 1

Tóm tắt

Bản khóa luận tốt nghiệp gồm có ba phần riêng biệt trong đó phần một là lý thuyết

bộ khuyếch đại lock-in tiếp theo là tổng quan chung cấu trúc vi điều khiển dsPic30F4011

và cuối cùng là phần thực nghiệm Chương 1 về lý thuyết bộ khuyếch đại lock-in trướctiên ta sẽ tìm hiểu tại sao lại phải dùng bộ khuyếch đại lock-in trong đo lường tín hiệu nhỏ

và khái niệm bộ khuyếch lock-in, tiếp theo là sơ đồ cấu tạo chung của một bộ khuyếch đạilock-in cổ điển Cuối cùng là phần tìm hiểu cấu tạo và nguyên tắc hoạt động của bộkhuyếch đại lock-in số và tương tự Trong chương 2 về tổng quan cấu trúc của vi điềukhiển dsPic30F4011 chúng ta sẽ tìm hiểu chung về họ vi điều khiển DsPic30F tiếp đó làđặc điểm chung của họ vi điều khiển dsPic30F4011 Cuối cùng ta sẽ tìm hiểu sâu hơn vềcấu trúc của vi điều khiển dsPic30F4011 Phần còn lại của bản khóa luận sẽ là phần thựcnghiệm, ở đây trình bày toàn bộ quá trình thiết kế bộ khuyếch đại lock-in gồm có phầncứng, phần mềm và kết quả thực nghiệm Phần cứng có các khối riêng biệt, với mỗi khối

có trình bày lý thuyết và cơ sở thiết kế Còn phần mềm được trình bày dưới dạng sơ đồkhối của cấu trúc chương trình với các modul riêng biệt Sau khi thiết kế được bộ khuyếchđại lock-in số, ta sẽ thử nghiệm một hệ đo cho cảm biến có nhân là bộ khuyếch đại lock-

in vừa chế tạo Cụ thể trong bản khóa luận sẽ thử nghiệm một hệ đo áp dụng cho cảm biến

áp suất MPX2300D do công ty Motorola cung cấp

Trang 2

ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp

MỤC LỤC

Mở Đầu 1

Chương 1 Bộ Khuếch Đại Lock In 2

1.1 T ỔNG QUAN VỀ BỘ KHUYẾCH ĐẠI LOCK IN 2 1.1.1 Giới thiệu 2

1.1.2 Khái niệm “lock in amplifier” 6

1.1.3 Cấu trúc chung của bộ khuyếch đại lock in 6

1.2 B Ộ KHUYẾCH ĐẠI LOCK IN TƯƠNG TỰ (A NALOG L OCK -I N A MPLIFIERS ) 7 1.3 B Ộ KHUYẾCH ĐẠI LOCK IN SỐ (D IGITAL L OCK -I N A MPLIFIERS ) 9 Chương 2 Vi Điều Khiển DsPic30F4011 11

1 2.1 G IỚI THIỆU CHUNG VỀ HỌ VI ĐIỀU KHIỂN D SPIC 11 2 2.2 Đ ẶC ĐIỂM CHUNG CỦA VI ĐIỀU KHIỂN DS P IC 30F4011 11 2.2.1 Khối xử lý trung tâm CPU 11

2.2.2 Bộ chuyển đổi tương tự số ADC 12

2.2.3 Các cổng vào ra I/O Port và các ngoại vi 12

2.2.4 Bộ xử lý tín hiệu số 12

2.2.5 Một số đặc điểm khác 13

3 2.3 C ẤU TRÚC CỦA VI ĐIỀU KHIỂN DS P IC 30F4011 13 2.3.1 Khối xử lý trung tâm CPU 13

2.3.2 Khối tạo địa chỉ AGU 17

2.3.3 Tổ chức bộ nhớ và bộ nhớ chương trình 20

2.3.4 Các cổng vào ra I/O Port 23

2.3.5 Ngắt và cơ chế ngắt 25

2.3.6 Các bộ định thời 27

Trong vi xử lý dsPIC40F4011 có tới năm bộ định thời (Timer) 16-bit Trong đó các Timer có thể hoạt động riêng biệt, riêng hai Timer 2, 3 và hai Timer 4, 5 có thể kết hợp với nhau để trở thành một Timer 32 bit 27

Xung nhịp đầu vào (Fosc/4 hoặc xung nhịp ngoài) đưa vào Timer 16-bit và có thể được chia tần số theo các tỉ lệ sau: 1:1, 1:8, 1:64, 1:256 được xác định bởi các bit TCKPS<1:0> của thanh ghi TxCON Hệ số chia tần này (prescaler) có thể bị xoá khi xảy ra một trong các điều kiện sau: 27

2.3.7 Bộ chuyển đổi tương tự số ADC 30

Module ADC sử dụng RAM để làm bộ đệm lưu kết quả biến đổi A/D Có tất cả 16 vị trí trong RAM được sử dụng để làm việc này, đó là: ADCBUF0, ADCBUF1, ADCBUF2, , ADCBUFE, ADCBUFF RAM chỉ có độ rộng 12-bit nhưng dữ liệu chứa trong nó lại là một trong bốn dạng số 16-bit đó là: nguyên, nguyên có dấu, phân số, và phân số có dấu 30

Chương 3 Thực Nghiệm 33

3.1 P HẦN C ỨNG 33 3.1.1 Các khối nguồn 34

3.1.2 Khối các bộ lọc thông thấp 35

3.1.3 Khối biến đổi DAC 36

3.1.4 Khối khuyếch đại tín hiệu vào 43

3.1.5 Khối LCD 48

3.1.6 Khối xử lý trung tâm 49

3.2 P HẦN M ỀM 49 3.3 C ÁC KẾT QUẢ THỰC NGHIỆM : 51 3.3.1 Mạch khuyếch đại lock-in đã chế tạo và tín hiệu vào ra lock in: 51

3.3.2.Thử nghiệm bộ khuyếch đại lock-in với cảm biến áp suất MPX2300D: 55

Trang 3

Kết Luận 59 Phụ Lục 60

Bảng các ký hiệu, chữ viết tắt

ADC : Chuyển đổi tương tự số (Analog digital convert)

Trang 4

KĐTT : Khuyếch đại thuật toán

AC : Dòng điện xoay chiều

Trang 5

Mở Đầu

Với sự phát triến mạnh hiện nay của việc ứng dụng các cảm biến thì việc thiết kếnhững hệ đo và khảo sát cảm biến là rất cần thiết, nó là một thiết bị không thể thiếu chobất kỳ một phòng thí nghiệm nào Một hệ đo nhạy và có chính xác cao còn được ứngdụng trong y học, đó chính là những máy xét nghiệm y sinh Ngoài ra nó còn có ý nghĩaquan trọng tới nhiều ứng dụng cần độ chính xác cao trong khoa học kỹ thuật (ví dụ như:

đo lường chính xác, robotic, )

Nhiều cảm biến được thiết kế có lối ra điện áp rất nhỏ, chính vì vậy việc để pháthiện sự sai lệch và đo điện áp ra là rất khó khăn Do đó ý tưởng thiết kế một hệ đo lường

có độ nhạy cao cho những cảm biến này là rất quan trọng, và một trong những ý tưởng đó

là hệ đo có sử dụng bộ khuyếch đại lock-in Với nhân là một bộ khuyếch đại lock-inchúng ta sẽ có được một hệ đo sensor khá lý tưởng, nó có thể cung cấp những phép đo độphân giải cao những tín hiệu một cách tương đối sạch với độ lớn và tần số riêng biệt Việcthiết kế một hệ đo mà có nhân là bộ khuyếch đại lock-in cổ điển cũng khá phức tạp vìtrong bộ khuyếch đại cần có các bộ trộn kênh và bộ lọc có độ chính xác cao Ngoài ratrong bộ khuyếch đại lock-in tương tự thì ảnh hưởng từ việc trôi nhiệt và già hóa của cáclinh kiện sẽ gây ra sự sai số lớn cho hệ đo Nhưng nếu ta thiết kế một bộ khuyếch đạilock-in số thì khả thi hơn nhiều Với công nghệ số, một vi điều khiển có thể đảm nhiệmtốt vai trò là bộ bộ lọc và bộ trộn kênh có độ chính xác cao Vì được số hóa nên sẽ không

có hiện tượng trôi nhiệt và già hóa linh kiện gây sai số ảnh hưởng tới hệ đo.Chính vì vậymột bộ khuyếch đại lock-in số là lựa chọn thông minh nhất của người sử dụng

Và Trong khóa luận này em sẽ tìm hiểu thiết kế một bộ khuyếch đại lock-in số dựatrên vi điều khiển DsPic Và từ đó hình thành nên một hệ đo đơn giản với nhân là bộkhuyếch đại lock-in số và sẽ thử nghiệm hệ đo với cảm biến áp suất MPX2300D củaMotorola

Trang 6

Chương 1 Bộ Khuếch Đại Lock In1.1 Tổng quan về bộ khuyếch đại lock in

1.1.1 Giới thiệu

Trong rất nhiều ứng dụng để đo những tín hiệu AC rất bé có thể bé tới vài nanovoltsngười ta không thể sử dụng phép đo thông thường (sử dụng các máy đo vạn năng chẳnghạn) Đó chính là nguyên nhân ra đời của bộ khuyếch đại lock in (lock-in amplifier).Vậy tại sao ta lại không dễ dàng đo được những tín hiệu AC nhỏ (vài nanovolts)? Taxét các ví dụ sau.[8]

Ví dụ 1: Cho một tín hiệu sóng sine 10nV tần số 10kHz Rõ ràng là sự khuyếch đại

cần phải cho ra tín hiệu lớn hơn ồn Một bộ khuếch đại tốt (low-noise) sẽ có mật độ ồn lốivào khoảng 5nV/sqrt(Hz) Nếu băng thông của bộ khuyếch đại là 100kHz và hệ sốkhuyếch đại là 1000 lần, chúng ta thu được ở lối ra:

Tín hiệu lối ra: (10nV x 1000) = 10uV

Tín hiệu nhiễu dải rộng: (5nV x 100KHz x 1000)=1,6mV

Như vậy chúng ta không có nhiều cơ hội để đo tín hiệu này nếu chúng ta không chọn ratần số chúng ta mong muốn.(Xem minh họa trên Hình 1.1)

Ví dụ 2: Nếu ta lắp thêm một bộ lọc dải thông vào bộ khuyếch đại với Q=100 (một

bộ lọc cực kỳ tốt – Q ở đây được xem là hệ số phẩm chất của bộ lọc) tâm thông là 10kHz, bất kỳ tín hiệu nào trong vùng 100Hz (10kHz/Q) xung quanh tâm cũng sẽ được phát hiện.

10uV Nhiễu ở lối ra vẫn lớn hơn nhiều lần tín hiệu, và không thể tạo ra được một phép

đo chính xác Như vậy tăng hệ số khuếch đại không thể nào giúp tăng tỉ số tín hiệu trên

ồn (S/N).(Xem minh họa trên Hình 1.2)

Vậy muốn đo được tín hiệu, ta phải thiết kế một bộ lọc có hệ số Q lớn, nhưng việcnày là rất khó và không khả thi.Tuy nhiên một bộ dò nhạy pha (Phase Sensitive Detector)

có thể có Q lớn cỡ 10000 Nên ồn trong tín hiệu đã nêu ở 2 ví dụ trên chỉ còn là 10u

Trang 7

Hình 1.1 Nhiễu và tín hiệu[2]

Hình 1.2 Ồn bị triệt tiêu sau khi qua bộ lọc thông thấp[2]

Kỹ thuật dò nhạy pha (Phase-Sensitive Detection) :

Có thể nói “Bộ dò nhạy pha - Phase Sensitive Detection (PSD)” là trái tim của bộ

khuyếch đại lock in, nó được xem như là một bộ hoàn điệu hay bộ trộn Máy dò tìm đượcvận hành bởi việc nhân lên hai tín hiệu cùng nhau Phân tích sau đây chỉ ra tại sao nó cho

ta những tín hiệu mong muốn

Hình 1.3 chỉ ra vị trí ở đầu bộ khuyếch đại lock in phát hiện ra một đường tín hiệukhông tạp nhiễu (noise-free) hình sin Xác định trong sơ đồ như “Signal In” Thiết bị

Trang 8

được nuôi với nguồn tín hiệu tham chiếu (hay còn gọi là tín hiệu reference là dạng tínhiệu hình sin, được cài đặt sẵn).

Hình 1.3.Tín hiệu, tín hiệu tham chiếu và tích của hai tín hiệu[15]

Bộ dò nhạy pha được vận hành bởi việc nhân hai tín hiệu này và kết qủa là ta thuđược tín hiệu Demodulator Output như trên hình Từ đó ta thấy không có sự khác phagiữa tín hiệu vào và tín hiệu reference Demodulator output giữ dạng hình sin, nhưng tần

số thì gấp 2 lần tần số của tín hiệu reference, mức trung bình là dương

Demodulator output vẫn là một sóng sin có tần số bằng hai lần tần số tín hiệu reference,nhưng mức trung bình thì bằng 0

Hình 1.4 Tín hiệu, tín hiệu tham chiếu dịch 90 o và tích của hai tín hiệu[15]

Trang 9

Từ đây ta có thể nhìn thấy mức trung bình là:

- Tỉ lệ với tích số của tần số biên độ của tín hiệu vào và tín hiệu reference

- Liên quan tới góc pha giữa tín hiệu vào và tín hiệu reference

Nó sẽ được đánh giá nếu biên độ tín hiệu reference được giữ tại một giá trị cố định

và pha của tín hiệu reference được điều chỉnh để đảm bảo một chuyển dịch pha tương đốibằng zero Sau đó có thể đo xác định được mức trung bình biên độ tín hiệu đầu vào

Mức trung bình tất nhiên là thành phần DC của lối ra được giải biến điệu(demodulator output) Để lấy được thành phân một chiều này rất đơn giản, ta chỉ cần chotín hiệu qua bộ lọc thông thấp Sau khi được lọc, tín hiệu DC được đo bằng phương pháptruyền thống (dùng vôn kế)

Ở trên ta xét đến trường hợp tín hiệu vào là một tín hiệu sạch không có ồn Nhưngtrong những ứng dụng thực tế tín hiệu vào luôn đi kèm với ồn nhiễu Ồn nhiễu này không

có tần số cố định hoặc không có mối quan hệ pha cố định Ồn này cũng được nhân lên vớitín hiệu reference, nhưng không đưa ra bất kỳ mức thay đổi DC nào

đây ω=2πF, F là tần số tín hiệu vào Trong bộ khuyếch đại lock in được cung cấp một tín

lệch pha giữa 2 tín hiệu

Nếu ta nhân 2 tín hiệu này với nhau ta được :

Vout = A cos (ωt) B cos (ωt + θ)

= AB cosωt (cos ωt cos θ - sin ωt sin θ)

= AB(cos2ωt cos θ - cos ωt sin ωt sin θ)

= AB((½ + ½cos 2ωt)cos θ - ½sin 2ωt sin θ)

= ½AB((1+ cos 2ωt)cos θ - sin 2ωt sin θ)

= ½AB(cos θ + cos 2ωt cos θ - sin 2ωt sin θ)

= ½ABcos θ + ½AB(cos 2ωt cos θ - sin 2ωt sin θ)

= ½ABcos θ + ½ABcos(2ωt + θ)

Trang 10

Bây giờ nếu ta cho tín hiệu ra Vout qua bộ lọc thông thấp thì điều hiển nhiên là thànhphần 2ωt sẽ bị loại bỏ Vậy kết quả là ta chỉ còn lại tín hiệu DC (một chiều) Và điều đó

tưởng về việc biến một tín hiệu AC thành DC có giá trị bằng biên độ của AC ban đầunhân với N lần

Trong những hoàn cảnh thực tế, tín hiệu đầu vào thường đi kèm với nhiễu ồn, nhưngnếu chúng ta cài đặt một bộ lọc thông thấp phù hợp ở đầu ra của tín hiệu thì mọi tín hiệunhiễu với mối quan hệ pha khác nhau và vậy thì bất kỳ tần số khác nhau nào có thể bị loại

bỏ ở tín hiệu cuối cùng

1.1.2 Khái niệm “lock in amplifier”

Bộ khuyếch đại lock in căn bản là thiết bị với khả năng kép Nó có thể khôi phụcnhững tín hiệu trong sự có mặt của nhiễu ồn Nói một cách khác, nó có thể cung cấpnhững phép đo độ phân giải cao những tín hiệu một cách tương đối sạch với độ lớn và tần

1.1.3 Cấu trúc chung của bộ khuyếch đại lock in

Bộ khuyếch đại lock-in gồm có các thành phần chính là : bộ khuyếch đại tín hiệu vào

và ra, bộ lọc thông dải (bandpass filter), bộ trộn (mixer), bộ lọc thông thấp (lowpass filter)

và bộ phát tín hiệu reference.(Hình 1.5)

Trang 11

Hình 1.5 Sơ đồ bộ khuyếch đại lock in [15]

Có hai cách thực thi sơ đồ trên Trong phương pháp cổ điển tất cả các chức năng của

bộ lock-in đều được thực hiện bằng kỹ thuật analog (tương tự) Nhưng cũng có một phương pháp khác có thể thực thi sơ đồ trên, đó là phương pháp dựa trên kỹ thuật số (digital) Chính vì vậy có hai cách chế tạo bộ khuyếch đại lock-in : bộ khuyếch đại lock-intương tự và bộ khuyếch đại lock-in số sẽ được trình bày dưới đây

1.2 Bộ khuyếch đại lock in tương tự (Analog Lock-In Amplifiers)

Sơ đồ khối của một bộ khuyếch đại lock in cổ điển hay bộ khuyếch đại lock-in tương tự được chỉ ra trên Hình 1.6

Hệ thống gồm có một máy khuyếch đại để tăng tín hiệu đầu vào cần đo đến mộtmức thích hợp cho các thao tác sau Một bộ lọc thông dải được dùng để loại bỏ bất kỳthành phần tín hiệu nào hoặc tại mức DC hoặc tại những hòa âm của tín hiệu được đo.Tiếp đến là một máy dò nhạy pha (Phase Sensitive Detector), còn được gọi là một

bộ hoàn điệu(giải biến điệu) đồng bộ (synchronous demodulator ) hoặc bộ trộn (mixer).Mạch này có thể có nhiều dạng, từ bộ khuyếch đại logarit đến các bộ nhân four –quadrant Tín hiệu vào được nhân với một tín hiệu reference được đưa ra từ hệ thống đangđược đo Tín hiệu reference cần có một một tương quan pha cố định với tín hiệu vào Vìvậy bộ khuyếch đại lock-in phát ra một sóng sin reference nội tại của chính nó nhờ mộtvòng khóa pha (phase-locked-loop) khóa vào tín hiệu reference của tín hiệu

Trong quá trình xử lý tín hiệu tiếp theo ta, thường dùng chức năng kênh kép Trongtrường hợp này tín hiệu vào được trộn đều với tín hiệu reference, và ngoài ra tín hiệu này

Trang 12

Hình 1.6 Sơ đồ khối bộ khuyếch đại lock-in tương tự[8]

Chức năng kênh kép này có tác dụng lớn tới sự tính toán độ lớn của tín hiệu vào vàmối tương quan pha của nó với tín hiệu reference Hai kênh riêng biệt này thường đượcgọi là thành phần cùng pha (In-Phase component) và thành phần vuông pha (Quadraturecomponent) hoặc tương ứng là I và Q

Cuối cùng, đầu ra từ những bộ trộn (mixer) được đưa vào bộ lọc thông thấp có khảnăng loại bỏ mọi tín hiệu không đồng bộ (non-coherent), để lại một tín hiệu DC cuối cùng

tỷ lệ với biên độ và pha của tín hiệu vào

Có một số vấn đề với bộ khuyếch đại lock-in tương tự Để có một sự chính xác cao,tín hiệu reference phải có hàm lượng sóng hài rất thấp Nó phải là một sóng hình sin thuầnkhiết, bất kỳ hàm lượng sóng hài nào sẽ gây ra sự biến dạng tại đầu ra Những máy phátsóng hình sin tương tự có thể cũng chịu từ những biến đổi biên độ gây bởi sự biến đổi củanhiệt độ

Sự trôi nhiệt độ và sai số của các linh kiện trong hệ thống cũng có thể gây ra nhữngvấn đề khác nữa cho hệ thống tương tự

Cuối cùng, cần nói thêm rằng bất kỳ một độ phi tuyến nào trong hệ số khuyếch đại

và pha cũng có thể dẫn đến các sai số trong tín hiệu ra Việc khắc phục các vấn đề nàykhiến cho bộ khuyếch đại lock-in tương tự trở nên một thiết bị rất đắt đỏ và được sử dụngkhi đòi hỏi các băng thông lối vào cao

Trang 13

1.3 Bộ khuyếch đại lock in số (Digital Lock-In Amplifiers)

Sơ đồ khối của một bộ khuyếch đại lock in số được chỉ ra trên Hình 1.7

Hình 1.7 Bộ khuyếch đại lock in số[8]

Trong một bộ khuyếch đại lock in số, phần lớn các quá trình xử lý được thực hiệntrong miền số sử dụng phần mềm và dùng phần cứng là bộ xử lý tín hiệu số (DSP) Hình1.7 là một bộ khuyếch đại số điển hình, hệ thống này cũng có một bộ khuyếch đạifron-end nhưng nó được nối bởi một bộ lọc Anti-alias Filter dùng để lọc bất kỳ tín hiệunào có tần số lớn hơn nửa tần số lấy mẫu

Bộ điều khiển tín hiệu số (Digital signal controller) ở đây có thể sử dụng nhiều loạichip xử lý số chuyên dụng, ví dụ như dsPic chẳng hạn (dsPic là một chip xử lý số tươngđối mạnh, tốc độ cao)

Tín hiệu reference trong bộ khuyếch đại lock in số có thể được tạo ra bên trong hoặcbên ngoài Trong trường hợp tín hiệu được phát sinh nội tại, những điểm mẫu riêng lẻ củatín hiệu reference có thể tính toán tới một mức độ chính xác cao, và bởi vậy không cónhững sai số thường gặp khi dùng tín hiệu reference như trong các máy lock-in tương tự

cách tra cứu bảng hoặc bằng những phép toán đơn giản Tiếp theo tín hiệu reference và tínhiệu dịch pha reference được nhân với tín hiệu vào bởi DSP và sinh ra ra 2 kênh tín hiệu,

Trang 14

một kênh tín hiệu đồng pha I và một kênh tín hiệu vuông pha Q Cuối cùng những kênhtín hiệu này được cho qua một bộ lọc thông thấp số (cụ thể ở đây là bộ lọc số FIR) để thuđược những kết qủa cuối cùng

Do tín hiệu vào được số hóa bởi bộ chuyển đổi ADC nên sẽ không bị mất mát Hơnnữa, vì tín hiệu tham chiếu (reference) được tính bằng phương pháp số nên có lượng hòa

âm rất thấp

Điều quan trọng nữa là sự lệch gây bởi tính phi tuyến của hệ số khuyếch đại và phacủa các linh kiện tương tự sẽ bị triệt tiêu trong bộ khuyếch đại lock-in số và sẽ không cócác sai lệch gây bởi sự trôi nhiệt hoặc sự già hóa của các linh kiện

Cuối cùng bộ vi xử lý sẽ tính toán độ lớn vector của tín hiệu ra và độ lệch pha củatín hiệu lối vào so với tín hiệu reference qua công thức sau :

2

I Magnitude= +

) / ( tan 1 Q I

Trang 15

Chương 2 Vi Điều Khiển DsPic30F4011

Trong bản khóa luận này bộ xử lý số của mạch khuyếch đại lock-in số dùng một viđiều khiển DsPic với nhãn hiệu thương mại là DsPic30F4011 của hãng Microchip Toàn

bộ nội dung chương 2 này được lấy từ tài liệu [6]

1 2.1 Giới thiệu chung về họ vi điều khiển Dspic

Họ vi điều khiển 16 bit dsPic do công ty công nghệ Microchip Technology Inc sảnxuất, được phát triển trên nền họ vi điều khiển 8 bit Pic

Vi điều khiển dsPic là một chip xử lý mạnh với bộ xử lý 16 bit (có khả năng xử lý

dữ liệu có độ dài 16 bit) Với tốc độ tính toán cao dựa trên kiến trúc RISC, kết hợp cácchức năng điều khiển tiện ích của một bộ vi điều khiển hiệu năng cao 16-bit (high-performance 16-bit microcontroller), có thể thực hiện chức năng của một bộ xử lý tín hiệu

số (DSP) nên dsPIC còn có thể được xem là một bộ điều khiển tín hiệu số (Digital Signal

Controller – DSC).

Họ vi điều khiển dsPic có thể đạt tới tốc độ xử lý 40 MIPS (Mega Instruction Per

Second - triệu lệnh trên một giây) Ngoài ra dsPic còn được trang bị bộ nhớ Flash, bộ nhớ

dữ liệu EEPROM và các ngoại vi hiệu năng cao và rất đa dạng các thư viện phần mềmcho phép thực hiện các giải thuật nhúng với hiệu suất cao một cách dễ dàng trong mộtkhoảng thời gian ngắn Chính vì vậy dsPic được ứng dụng rất rộng rãi trong các ứng dụng

xử lý tín hiệu số, đo lường và điều khiển tự động, v v

Họ vi điều khiển dsPic được chia ra làm ba loại tùy theo mục đích của người sửdụng :

- Bộ điều khiển số cho điều khiển motor và biến đổi nguồn (DSC Motor Control & Power Conversion Family)

- Bộ điều khiển số cho sensor (DSC Sensor Family)

- Bộ điều khiển số đa mục đích (DSC General Purpose Family)

2 2.2 Đặc điểm chung của vi điều khiển dsPic30F4011

2.2.1 Khối xử lý trung tâm CPU

- Tập lệnh cơ bản gồm 84 lệnh

Trang 16

- Chế độ định địa chỉ linh hoạt

- Độ dài lệnh 24-bit, độ dài dữ liệu 16-bit

- Bộ nhớ chương trình Flash 24 Kbytes

- Bộ nhớ RAM độ lớn 1Kbytes

- Bộ nhớ EEPROM

- Mảng 16 thanh ghi làm việc 16-bit

- Tốc độ làm việc lên tới 40 MIPS

2.2.2 Bộ chuyển đổi tương tự số ADC

- Bộ chuyển đổi tương tự - số (ADC) 10-bit

+ Tốc độ lấy mẫu tối đa 1 Msps (Mega samples per second)

+ Tối đa 10 kênh lối vào ADC

+ Thực hiện biến đổi cả trong chế độ Sleep và Idle

- Chế độ nhận biết điện thế thấp khả lập trình

- Tạo Reset bằng nhận diện điện áp khả lập trình

2.2.3 Các cổng vào ra I/O Port và các ngoại vi

- Dòng ra, vào ở các chân I/O lớn: 25 mA

- 3 Timer 16-bit, có thể ghép 2 Timer 16-bit thành Timer 32-bit

- Chức năng Capture 16-bit

- Các bộ so sánh/PWM 16-bit

- Module SPI 3 dây (hỗ trợ chế độ Frame)

- Module I2C, hỗ trợ chế độ đa chủ tớ, địa chỉ từ 7-bit đến 10-bit

- UART có khả năng địa chỉ hoá, hỗ trợ bộ đệm FIFO

2.2.4 Bộ xử lý tín hiệu số

- Nạp dữ liệu song song

- Hai thanh chứa 40-bit có hỗ trợ bão hoà logic

Trang 17

- Thực hiện phép nhân 2 số 17-bit trong một chu kì máy

- Tất cả các lệnh DSP đều thực hiện trong một chu kì máy

- Dịch trái hoặc phải 16 bit trong một chu kì máy

- Khả năng tự nạp trình dưới điều khiển của software

- Watch Dog Timer mềm dẻo với bộ dao động RC nguồn thấp trên chip

- Chế độ bảo vệ firmware khả lập trình

- Khả năng tự lập trình nối tiếp trên mạch điện (In Circuit Serial Programming –

ICSP)

- Có thể lựa chọn các chế độ quản lí nguồn: Sleep hoặc Idle

3 2.3 Cấu trúc của vi điều khiển dsPic30F4011

2.3.1 Khối xử lý trung tâm CPU

CPU của dsPic30F4011 được thiết kế trên kiến trúc RISC, nhân của CPU có một bộ

xử lí lệnh 24-bit và bộ đếm chương trình – Program Counter (PC) độ rộng 23-bit với bit ýnghĩa thấp nhất luôn bằng 0, còn bít ý nghĩa cao nhất thì được bỏ qua trong suốt quá trìnhthực hiện chương trình bình thường, chỉ trừ khi thực hiện các lệnh đặc biệt Do đó, bộđếm chương trình có thể định địa chỉ lên tới 4 triệu từ lệnh của không gian bộ nhớ chươngtrình được sử dụng

Thiết bị dsPIC30F chứa 16 thanh ghi làm việc 16-bit Mỗi thanh ghi làm việc có thể

có thể làm việc với vai trò như dữ liệu, địa chỉ hoặc thanh ghi địa chỉ offset Thanh ghithứ 16 (W15) hoạt động như là con trỏ ngăn xếp mềm cho hoạt động ngắt và gọi ngắt.Các chỉ lệnh của dsPIC30F gồm 2 lớp: Lớp MCU và Lớp DSP của lệnh Hai lớp nàyđược kết hợp đồng nhất với nhau trong kiến trúc và thực hiện từ một khối thực hiện đơn

Trang 18

Các chỉ lệnh bao gồm nhiều chế độ địa chỉ và được chế tạo nhằm tương thích với trìnhbiên dịch ngôn ngữ C.

Không gian dữ liệu có thể được địa chỉ hoá thành 32K words hoặc 64 Kbytes vàđược chia làm hai khối, được gọi là bộ nhớ dữ liệu X và bộ nhớ dữ liệu Y Mỗi khối đều

có khối tạo địa chỉ - AGU (Adress Generator Unit) riêng biệt của nó Tất cả các lệnh hoạtđộng đơn độc chỉ qua bộ nhớ X, và khối AGU – quy định sự xuất hiện của một vùng dữliệu thống nhất Lớp thanh chứa phép nhân (Multiply-Accumulate) – MAC của lệnh DSPhoạt động thông qua cả hai khối AGU của bộ nhớ X và Y, nó chia địa chỉ dữ liệu thànhhai phần Mỗi từ dữ liệu gồm 2-bytes, và tất cả các lệnh có thể định địa chỉ dữ liệu theobytes hoặc words (từ)

Có hai cách để truy xuất dữ liệu trong bộ nhớ chương trình đó là:

- 32 Kbytes cao của vùng nhớ dữ liệu có thể được sắp xếp trong nửa thấp củakhông gian chương trình tại biên của 16K từ chương trình bất kỳ, được định nghĩa

bởi thanh ghi PSVPAG 8-bit (Program Space Visibility Page) Do đó các lệnh có thể

truy cập không gian chương trình như không gian dữ liệu, nhưng có một giới hạn là

nó cần thêm một chu kỳ lệnh nữa Chỉ có 16 bít thấp của mỗi từ lệnh có thể sử dụngphương thức truy cập này

- Truy cập trực tiếp không tuyến tính của các trang 32K từ nằm trong không gianchương trình cũng có thể sử dụng các thanh ghi làm việc, thông qua bảng lệnh đọc

và ghi Bảng lệnh đọc và ghi có thể được sử dụng để truy cập cả 24 bit của một từlệnh

Khối X AGU (khối AGU của bộ nhớ X) cũng hỗ trợ việc đảo bit địa chỉ trên địa chỉđích kết quả nhằm đơn giản hoá tối đa dữ liệu vào hoặc ra để chúng thích hợp cho thuậttoán FFT cơ số 2

Với tất cả các lệnh, nhân của dsPIC30F có khả năng thực hiện việc đọc bộ nhớ dữliệu hoặc bộ nhớ chương trình, đọc thanh ghi làm việc, ghi vào thanh ghi làm việc và đọc

bộ nhớ chương trình mỗi chu kì lệnh Như vậy, lệnh 3 toán hạng được hỗ trợ, cho phépthực hiện phép tính C = A + B trong một chu kì lệnh

Trang 19

Hình 2.1 Sơ đồ khối DsPic30F4011

Trang 20

Hình 2.2 Các thanh ghi của khối xử lý trung tâm

Trang 21

Công cụ DSP được tích hợp vào vi xử lý làm tăng ý nghĩa của một CPU mạnh vềthuật toán Đặc điểm của nó là thực hiện ở tốc độ cao một phép nhân hai số 17-bit, mộtkhối số học và logic (ALU) 40-bit, hai thanh chứa có khả năng bão hoà 40-bit và một bộdịch hai hướng 40-bit Dữ liệu trong thanh chứa hoặc bất kỳ một thanh ghi làm việc nào

có thể được dịch trái 15 bit hay dịch trái 16 bit chỉ trong một chu kỳ lệnh Các lệnh DSPhoạt động thống nhất với tất cả các lệnh khác và được thiết kế nhằm thích hợp với việc xử

Nhân của vi xử lý không hỗ trợ đường ống đa tầng lệnh, nhưng một lệnh đơn tầng sẽ

sử dụng kĩ thuật tiền nạp, truy cập và giải mã từng phần lệnh nhằm mục tiêu một lệnh chỉthực hiện trong một chu kỳ

2.3.2 Khối tạo địa chỉ AGU

Nhân của vi xử lý dsPIC chứa hai khối tạo địa chỉ độc lập là X AGU và Y AGU.Khối Y AGU hỗ trợ đọc dữ liệu 16-bit cho lớp MAC của lệnh DSP Các khối AGU trongdsPIC hỗ trợ 3 kiểu địa chỉ dữ liệu:

- Địa chỉ tuyến tính

- Địa chỉ vòng

- Địa chỉ đảo bit

Chế độ địa chỉ tuyến tính và địa chỉ vòng có thể áp dụng cho không gian dữ liệuhoặc không gian chương trình Chế độ đảo bit địa chỉ áp dụng cho các địa chỉ không gian

dữ liệu

2.3.2.1 Chế độ địa chỉ lệnh

Các chế độ địa chỉ được cung cấp trong lớp MAC của các lệnh thì có khác nhau đôi chút ởcác lệnh khác nhau

Trang 22

Bảng 2.1 Các chế độ định địa chỉ cơ bản đựơc hỗ trợ

Tất cả các lệnh thanh ghi đều sử dụng trường địa chỉ 13-bit để trực tiếp định địa chỉ

dữ liệu ở 8192 bytes đầu của bộ nhớ dữ liệu (gần không gian dữ liệu) Tất cả các lệnhthanh ghi tệp đều tận dụng thanh ghi làm việc W0, thanh ghi làm việc trong các lệnh này

Các lệnh MCU 3 toán hạng có dạng như sau:

Toán hạng 3 = Toán hạng 1 <hàm> Toán hạng 2

Trong đó Toán hạng 1 luôn là thanh ghi làm việc (ví dụ: chế độ địa chỉ chỉ có thể làthanh ghi trực tiếp) Toán hạng 2 có thể là thanh ghi W, lấy dữ liệu từ bộ nhớ dữ liệu,hoặc 5 bit thông thường Kết quả được đặt trong có thể là thanh ghi W hoặc một địa chỉ

cố định

Lệnh di chuyển và các lớp DSP tích luỹ của lệnh làm cho sự mềm dẻo của địa chỉcao hơn các lệnh khác Tất cả các lệnh MCU, lệnh di chuyển và tích luỹ đều hỗ trợ chế độđịa chỉ, và cũng hỗ trợ chế độ thanh ghi gián tiếp và thanh ghi địa chỉ offset

Chú ý: đối với lệnh MOV, chế độ địa chỉ được chỉ rõ trong lệnh có thể khác nhau

giữa nguồn và đích Tuy nhiên trường của 4-bit offset của thanh ghi Wb được chia sẻ giữanguồn và đích

Cả hai toán hạng nguồn của các lệnh DSP (CLR, ED, EDAC, MAC, MPY.N,MOVSAC và MSC) được xem như các lệnh MAC, tận dụng các lệnh được đơn giản hoá

Trang 23

của chế độ địa chỉ nhằm cho phép người sử dụng có thể điều khiển con trỏ dữ liệu thôngqua các bảng thanh ghi gián tiếp.

Hai thanh ghi tiền nạp toán hạng nguồn phải là một trong các thanh ghi sau: {W8,W9, W10, W11} Với đọc dữ liệu, W8 và W9 luôn tương tác trực tiếp với X AGU, W10

và W11 luôn tương tác trực tiếp với Y AGU Do đó địa chỉ hiệu dụng được tạo (trước vàsau khi hiệu chỉnh) phải hợp lệ với địa chỉ trong không gian dữ liệu X cho W8, W9 vàtrong không gian dữ liệu Y cho W10, W11

Bên cạnh các chế độ địa chỉ biến đổi, một vài lệnh sử dụng các hằng số có địnhdạng thay đổi Ví dụ: lệnh BRA (branch – phân nhánh) sử dụng dữ liệu 16-bit có dấu đểchỉ ra đích rẽ nhánh trực tiếp, trong khi lênh DISI sử dụng trường số 14-bit không dấu.Trong một vài lệnh như ADD hay ACC, nguồn của một toán hạng hoặc kết quả được đưa

ra bởi chính mã lệnh của nó Tuy nhiên, một vài lệnh như NOR, lại không có toán hạngnào

2.3.2.2 Chế độ đảo bit địa chỉ

Địa chỉ được đảo bit nhằm làm đơn giản hoá dữ liệu cho thuật toán FFT cơ số 2 Nóđược hỗ trợ bởi khối AGU của X chỉ cho việc ghi dữ liệu

Thực hiện đảo bit địa chỉ

Đảo bít địa chỉ được bật khi các điều kiện sau được thoả mãn:

- Các bit BWM (lựa chọn thanh ghi W) trong thanh ghi MODCON ở giá trị lớn hơn 15(không thể truy cập ngăn xếp khi đang sử dụng chế độ đảo bit địa chỉ)

- Bit BREN được đặt trong thanh ghi XBREV

- Chế độ địa chỉ được sử dụng là chế độ thanh ghi gián tiếp

đệm dữ liệu bắt đầu được định địa chỉ bằng không

Các bit XB <từ bit 14 đến 0 của thanh ghi XBREV> là địa chỉ bit được đảo, hay còngọi là “điểm xoay” (pivot point) thường là hằng số

Trang 24

Hình 2.3 Một ví dụ về đảo bit địa chỉ 2.3.3 Tổ chức bộ nhớ và bộ nhớ chương trình

2.3.3.1 Không gian địa chỉ chương trình

Không gian địa chỉ chương trình có độ lớn

4M từ lệnh Bản đồ không gian bộ nhớ chương

của dsPic30F4011 được chỉ ra trong Hình 2.4

Bộ nhớ chương trình có thể được địa chỉ

hoá bởi một giá trị 24-bit bởi bộ đếm chương

trình (PC), hoặc bảng lệnh địa chỉ hiệu dụng

(EA), hoặc không gian dữ liệu EA khi không gian

chương trình được sắp xếp và địa chỉ hoá Chú ý

rằng, địa chỉ không gian chương trình được tăng

lên với bước là 2 giữa các từ chương trình để tạo

ra sự tương thích với việc địa chỉ hoá không gian

dữ liệu

Truy cập không gian chương trình người sử

dụng bị giới hạn trong dải 4M địa chỉ của từ lệnh

(từ 0x000000 tới 0x7FFFFE) với tất cả các lệnh

truy cập, trừ hai lệnh TBLRD/TBLWT - sử dụng

bit 7 của thanh ghi TBLPAG để xác định người

sử dụng hoặc thiết lập cấu hình truy cập bộ nhớ

Trang 25

2.3.3.2 Truy xuất dữ liệu từ bộ nhớ chương trình sử dụng các lệnh bảng

Kiến trúc của dsPIC cho phép nạp dữ liệu rộng 24-bit tới bộ nhớ chương trình, do

đó các lệnh luôn luôn được xếp hàng tuy nhiên kiến trúc của nó có cải tiến so với kiếntrúc máy tính Hadvard nên dữ liệu cũng có thể được đưa ra ở trong không gian chươngtrình

Có hai phương pháp truy cập không gian chương trình, đó là:(xem hình 2.5)

- Thông qua các lệnh đặc biệt về bảng hoặc thông qua việc định địa chỉ và sắp xếplại 16K trang từ không gian chương trình trong nửa cao của không gian dữ liệu Các lệnhTBLRDL và TBLWTL cung cấp phương pháp đọc và ghi trực tiếp từ ít ý nghĩa nhất (LSWord) tại một địa chỉ bất kỳ trong không gian chương trình mà không cần thông quakhông gian dữ liệu Hai lệnh TBLRDH và TBLWTH chỉ là phương thức mà 8 bít cao của

từ không gian chương trình có thể được truy xuất như dữ liệu

- Bộ đếm chương trình (PC) được tăng lên hai với mỗi từ chương trình 24-bit Điềunày cho phép các địa chỉ bộ nhớ chương trình ánh xạ trực tiếp tới địa chỉ không gian dữliệu Do đó bộ nhớ chương trình có thể được xem như hai không gian từ địa chỉ độ rộng16-bit Các lệnh TBLRDL và TBLWTL truy cập không gian chứa từ dữ liệu ít ý nghĩanhất (LS Data Word) và các lệnh TBLRDH, TBLWTH truy cập không gian chứa Byte dữliệu nhiều ý nghĩa nhất (MS Data Byte)

Sơ đồ trên chỉ ra cách EA được tạo cho hoạt động bảng và truy cập không gian dữliệu (PSV = 1) Tại đây P (từ bit 23 tới bit 0) chỉ thị từ không gian chương trình, còn D (từbit 15 tới bit 0) chỉ thị từ không gian dữ liệu

2.3.3.3 Truy xuất dữ liệu từ bộ nhớ chương trình sử dụng không gian chương trình

32 Kbytes cao của không gian dữ liệu có thể được bản đồ hoá trong bất kỳ trang16K từ bộ nhớ chương trình nào Nó cho phép truy cập vào hằng số dữ liệu được lưu trữ

từ không gian dữ liệu X mà không cần các lệnh đặc biệt (như TBLRDL/H, TBLWTL/H)

Truy xuất không gian chương trình thông qua không gian dữ liệu được thực hiệnnếu bít ý nghĩa thấp nhất của không gian dữ liệu EA được đặt và chế độ hiển thị khônggian chương trình được bật bằng cách đặt bit PSV trong thanh ghi điều khiển nhân của vi

xử lý CORCON

Trang 26

Hình 2.5 Truy cập dữ liệu từ không gian chương trình

Truy xuất dữ liệu ở vùng này sẽ thêm vào một chu kỳ lệnh để lệnh được thực hiện,

do đó nạp dữ liệu vào hai bộ nhớ chương trình là cần thiết

Chú ý rằng chỉ phần cao của không gian dữ liệu có khả năng định địa chỉ thi luôn

là một phần của không gian dữ liệu X Do đó, khi một thao tác DSP sử dụng việc bản đồhoá không gian chương trình để truy cập bộ nhớ thi không gian dữ liệu Y thông thường sẽlưu trữ trạng thái dữ liệu cho thao tác DSP, còn không gian dữ liệu X thường sẽ lưu giữ

hệ số của dữ liệu

Tuy nhiên mỗi địa chỉ không gian dữ liệu , từ 0x8000 trở lên, bản đồ hoá trực tiếpvào địa chỉ của bộ nhớ chương trình đáp ứng (Hình 2.6) chỉ có 16 bit thấp của từ chươngtrình 24 bit được sử dụng để lưu dữ liệu 8 bit cao được lập trình để loại bỏ các lệnhkhông hợp lệ nhằm giữ nguyên sức mạnh của bộ vi xử lý

Trang 27

Hình 2.6 Ánh xạ không gian dữ liệu vào không gian chương trình

2.3.4 Các cổng vào ra I/O Port

Các cổng vào ra của dspic40f4011 đều có thiết kế có đầu vào là mạch TriggerSchmitt nhằm cải tiến khả năng chống nhiễu

Tất cả các cổng vào ra đều có ba thanh ghi kết hợp với nhau điều khiển trực tiếp hoạtđộng của các cổng

- Thanh ghi dữ liệu trực tiếp (TRISx) xác định cổng đó là Input hay Output Nếu bit

dữ liệu trực tiếp là ‘1’, thì cổng đó là Input và ngược lại Các cổng được định nghĩa làInput sau khi Reset

- Thanh ghi cổng (PORT registers): dữ liệu ở một cổng I/O được truy xuất thông quathanh ghi PORTx Đọc giá trị của thanh ghi PORT cổng nào sẽ có được giá trị của cổng

đó Ghi vào thanh ghi PORT của cổng tương đương việc xuất dữ liệu ra cổng đó

- Thanh ghi LAT, kết hợp với một cổng I/O sẽ loại bỏ được các vấn đề có thể xuấthiện khi đọc-thay đổi-ghi vào cổng đó Đọc giá trị thanh ghi LAT sẽ trả về giá trị đượcgiữ ở đầu ra của bộ chốt cổng đó, thay cho giá trị ở cổng I/O Việc ghi vào thanh ghiLATx cũng tạo ra hiệu quả như ghi vào thanh ghi PORTx

Cấu hình tương tự cho cổng: khi sử dụng bộ ADC thì cổng được cấu hình là lốivào tương tự Điều này sẽ được nói kĩ hơn ở phần miêu tả ADC

Trang 28

Hình 2.7 Các cổng I/O của dsPic30F4011

Hình 2.8 Sơ đồ khối của một cổng I/O dùng chung với ngoại vi khác

Trang 29

2.3.5 Ngắt và cơ chế ngắt

Vi điều khiển dsPic30F4011 có

tới 30 nguồn ngắt và 4 bộ xử lý loại

trừ (bẫy lỗi), bộ xử lý này sẽ cho phép

các ngắt theo mức ưu tiên được sắp

đặt trước

CPU có thể đọc bảng vector ngắt

và truyền địa chỉ được chứa trong

vector ngắt tới bộ đếm chương trình

Vector ngắt được truyền từ bus dữ

liệu chương trình vào trong bộ đếm

chương trình thông qua bộ hợp kênh

24-bit, lối vào của bộ đếm chương

trình

Bảng vector ngắt (Interrupt

Vector Table - IVT) và bảng vector

ngắt thay thế (Alternate Interrupt

Vector Table - AIVT) được đặt gần

điểm bắt đầu bộ nhớ chương trình

(0x000004) IVT và AIVT được chỉ ra

trong Bảng 2.2 Các thanh ghi điều

khiển ngắt và ưu tiên ngắt:

- Các thanh ghi 16-bit IFS0<15:0>,

Vector Number Interrupt SourceHighest Natural Order Priority

0 8 INT0 – External Interrupt 0

4 12 IC2 – Input Capture 2

10 18 U1TX – UART1 Transmitter

13 21 SI2C - I2C Slave Interrupt

14 22 MI2C – I2C Master Interrupt

15 23 Input Change Interrupt

16 24 INT1 – External Interrupt 1

17 25 IC7 – Input Capture 7

18 26 IC8 – Input Capture 8

23 31 INT2 – External Interrupt 2

25 33 U2TX – UART2 Transmitter

Trang 30

Bảng 2.2 Bảng vector ngắt của dsPIC30F3012

- Các thanh ghi 16-bit: IEC0<15:0>, IEC1<15:0>, IEC2<15:0>: Tất cả các bit điều khiển cho phép ngắt đều nằm trong 3 thanh ghi này Các bit này được sử dụng để cho phép ngắt độc lập ngoại vi và tín hiệu ngoài

- Các thanh ghi ưu tiên ngắt: IPC0<15:0> IPC10<7:0>: Người sử dụng có thể chuyểnđổi mức ưu tiên ngắt kết hợp với mỗi ngắt được giữ trong các thanh ghi này

- Nhóm bit IPL<3:0>: Mức độ ưu tiên của CPU hiện hành được lưu rõ ràng trong cácbit này Bit IPL<3> nằm trong thanh ghi CORCON, trong khi đó các bit IPL<2:0> nằmtrong thanh ghi trạng thái (SR)

- Hai thanh ghi 16-bit INTCON1<15:0>, INTCON2<15:0>: Chức năng điều khiển ngắttoàn cục được xuất phát từ hai thanh ghi này INTCON1 chứa các cờ điều khiển và trạngthái của bộ xử lý loại trừ INTCON2 điều khiển tín hiệu yêu cầu ngắt và việc bảng vectorngắt thay thế

Các nguồn ngắt có thể được người sử dụng sắp xếp mức ưu tiên từ 1 đến 7 thôngqua thanh ghi IPCx Mỗi nguồn ngắt được kết hợp với một vector ngắt (bảng 2.2)

Trang 31

Hình 2.9 Các vector bẫy lỗi 2.3.6 Các bộ định thời

Trong vi xử lý dsPIC40F4011 có tới năm bộ định thời (Timer) 16-bit Trong đó cácTimer có thể hoạt động riêng biệt, riêng hai Timer 2, 3 và hai Timer 4, 5 có thể kết hợpvới nhau để trở thành một Timer 32 bit

Về cấu trúc các Timer này khác nhau vì hai Timer 2 và 3 và hai Timer 4 và 5 có thểkết hợp còn Timer 1 thì không Timer 1 có cấu trúc kiểu A (Hình 2.10), Timer 2,4 kiểu B

và Timer 3,5 kiểu C Về hoạt động các Timer có hoạt động gần giống nhau do đó ta sẽ tìmhiểu về Timer 1, các Timer còn lại là tương tự

không đồng bộ với nguồn tạo dao động ngoài Đặc điểm riêng biệt của Timer 1 đó là cóthể dùng trong các ứng dụng thời gian thực

Phần tiếp theo sẽ mô tả chi tiết cách thiết lập và sử dụng Timer 1 với ba chế độ:

- Timer 16-bit: trong chế độ này, timer sẽ tăng sau mỗi chu kỳ lệnh đến khi giá trị của timer bằng giá trị của thanh ghi chu kỳ PR1 (Period Register) thì sẽ reset về ‘0’ và tiếp tụcđếm

- Counter đồng bộ 16-bit: trong chế độ này, timer sẽ tăng ở mỗi sườn lên của của xung nhịp ngoài mà được đồng bộ với pha của các xung nhịp trong Timer tăng đến giá trị nằm trong thanh ghi PR1 thì dừng và reset timer về ‘0’ rồi tiếp tục đếm lên

- Counter không đồng bộ 16-bit: khi hoạt động trong chế độ này, timer sẽ tăng dần sau mỗi sườn lên của xung nhịp bên ngoài tác động vào Timer sẽ tăng dần đến khi giá trị của

nó bằng thanh ghi PR1 thì bị reset về ‘0’ rồi lại tiếp tục đếm lên

Hệ số chia tần của bộ định thời

Xung nhịp đầu vào (Fosc/4 hoặc xung nhịp ngoài) đưa vào Timer 16-bit và có thểđược chia tần số theo các tỉ lệ sau: 1:1, 1:8, 1:64, 1:256 được xác định bởi các bitTCKPS<1:0> của thanh ghi TxCON Hệ số chia tần này (prescaler) có thể bị xoá khi xảy

ra một trong các điều kiện sau:

- Ghi vào TMR

Trang 32

Reset thiết bị, như POR và BOR

DsPic30F4011 có 5 thanh ghi điều khiển Timer T1CON T5CON Các thanh ghi nàyđược chia ra làm 2 kiều T1CON thuộc kiểu A, T2CON và T4CON thuộc kiểu B, T3CON

và T5CON thuộc kiểu C

Hình 2.10 Sơ đồ khối của Timer 1

Trang 33

Hình 2.11 Sơ đồ khối Timer 2

Hình 2.12 Sơ đồ khối Timer 3

Trang 34

Hình 2.13 Sơ đồ khối Timer 2/3 - 32bit (Sơ đồ khối Timer 4/5 32 bit và Timer 4,5 16 bit giống như Timer 2/3 32 bit và Timer 2,3

16 bit)

2.3.7 Bộ chuyển đổi tương tự số ADC

Vi điều khiển dsPic30F4011 cung cấp bộ chuyển đổi tương tự số 10-bit cho phép biến đổi tín hiệu tương tự đầu vào sang số độ dài 10-bit Module này dựa trên thanh ghi SAR (Successive Approximation Register – thanh ghi xấp xỉ) và cung cấp tốc độ lấy mẫu tối đa lên tới 100 ksps ADC của dsPic30F4011 có tới 10 kênh tương tự lối vào được kết hợp cả lấy mẫu và giữ mẫu Lối ra của bộ lấy và giữ mẫu là lối vào của bộ chuyển đổi - tạo ra kết quả biến đổi Điện thế tương tự chuẩn có thể là điện thế nguồn cung cấp (AV-

DD/AVSS) hoặc mức điện thế của các chân VREF+/VREF-

Bộ biến đổi ADC của dsPIC bao gồm 6 thanh ghi:

- Ba thanh ghi điều khiển A/D: ADCON1, ADCON2, ADCON3

Chức năng điều khiển hoạt động của ADC

- Thanh ghi lựa chọn lối vào: ADCHS

Lựa chọn kênh vào để biến đổi

- Thanh ghi cấu hình cổng ADPCFG

Cấu hình cổng trở thành lối vào tương tự hoặc vào ra số

- Thanh ghi lựa chọn quét

2.3.7.1 Bộ đệm kết quả biến đổi A/D

Module ADC sử dụng RAM để làm bộ đệm lưu kết quả biến đổi A/D Có tất cả 16

vị trí trong RAM được sử dụng để làm việc này, đó là: ADCBUF0, ADCBUF1,

ADCBUF2, , ADCBUFE, ADCBUFF RAM chỉ có độ rộng 12-bit nhưng dữ liệu chứa trong nó lại là một trong bốn dạng số 16-bit đó là: nguyên, nguyên có dấu, phân số, và phân số có dấu

2.3.7.2 Các bước thực hiện biến đổi A/D

a) Thiết lập cấu hình cho module A/D

- Cấu hình các chân là lối vào tương tự, điện thế chuẩn và vào ra số

Trang 35

- Chọn xung nhịp cho biến đổi.

b) Cấu hình cho ngắt ADC nếu cần

c) Bắt đầu lấy mẫu

d) Đợi đủ thời gian cần thiết để hoàn thành

e) Kết thúc lấy mẫu, bắt đầu biến đổi

f) Đợi biến đổi kết thúc bởi một trong hai điều kiện sau:

- Đợi ngắt từ ADC

Đọc kết quả từ bộ đệm biến đổi A/D và xóa bit ADIF nếu cần

Ngày đăng: 02/08/2015, 21:56

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] “Chip pak high volume presure sensor for disposable, backside pressure applications MPX2300D” – http://www.datasheetcatalog.com Sách, tạp chí
Tiêu đề: Chip pak high volume presure sensor for disposable, backside pressure applicationsMPX2300D
[2] Bentham – “Lockin amplifers” – http://www.bentham.co.uk [3] “dsPIC Language Tool Libraries” – http://www.microchip.com [4] “dsPIC30F Family Reference Manual” – http://www.microchip.com Sách, tạp chí
Tiêu đề: Lockin amplifers” – http://www.bentham.co.uk[3] “dsPIC Language Tool Libraries” – http://www.microchip.com[4] “dsPIC30F Family Reference Manual
[7] “FilterPro MFB and Sallen– Key Low-Pass Filter Design Program” – John Bishop, Bruce Trump, R. Mark Stitt. – http://www.focus.ti.com Sách, tạp chí
Tiêu đề: FilterPro MFB and Sallen– Key Low-Pass Filter Design Program
[8] “Implementing Digital Lock-In Amplifiers Using the dsPIC DSC” – http://microchip.com Sách, tạp chí
Tiêu đề: Implementing Digital Lock-In Amplifiers Using the dsPIC DSC
[9] Jerry Seams – “R/2R LADDER NETWORKS” – http://www.irctt.com [10] “Low Cost, Low Power Instrumentation Amplifier” – http://www.analog.com [11] Microchip Inc website – http://www.microchip.com Sách, tạp chí
Tiêu đề: R/2R LADDER NETWORKS” – http://www.irctt.com[10] “Low Cost, Low Power Instrumentation Amplifier
[18] “Tutorial 04.01, Tutorial 05.01, Tutorial 06.01” – http://www.picvietnam.com Sách, tạp chí
Tiêu đề: Tutorial 04.01, Tutorial 05.01, Tutorial 06.01

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w