Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 27 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
27
Dung lượng
1,72 MB
Nội dung
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG KHOA KỸ THUẬT ĐIỆN – ĐIỆN TỬ - - Thiết kế ngoại vi kỹ thuật ghép nối Đề tài: Tìm hiểu chuyển đổi DAC Lớp Nhóm Giảng viên Nhóm sinh viên thực hiện: : 02 : 06 : Dương Quang Duy Nguyễn Quốc Tuấn- B19DCDT206 Trần Quốc Tân- B19DCDT190 Đỗ Hồng Thái-B19DCDT214 Nguyễn Kim Quyết- B19DCDT182 Hà Nội, 2023 MỤC LỤC DANH MỤC HÌNH VẼ CÁC CHỮ VIẾT TẮT Pulse-width modulation CHƯƠNG GIỚI THIỆU VỀ DAC Tổng quan DAC Ứng dụng DAC Các phương pháp chuyển đổi số tương tự 3.1 Chuyển đổi D/A với đầu dòng 3.2 Chuyển đổi D/A phương pháp thang điện trở 3.3 Chuyển đổi D/A phương pháp mạng điện trở CHƯƠNG 2: GIỚI THIỆU MỘT SỐ MODULE DAC Module DAC PCF8591 ESP32, Arduino Nano, Arduino Uno 12 2.1 ESP-32 12 2.2 Arduino Nano, Arduino Uno 17 TÀI LIỆU THAM KHẢO 27 DANH MỤC HÌNH VẼ Hình 1: DAC có đầu Hình 2: Sơ đồ mạch điện chuyển đổi DAC phương pháp thang điển trở Hình 3: : Sơ đồ mạch điện chuyển đổi DAC phương pháp mạng điện trở Hình 4: Module chuyển đổi AD-DA PCF8591 Hình 5: Sơ đồ chân Module chuyển đổi AD-DA PCF8591 10 Hình 6: Sơ đồ khối hoạt động cho Module PCF8591 10 Hình 7: Sơ đồ chân cho Arduino R3 11 Hình 8: Chương trình cho Module PCF8591 12 Hình 9: Sơ đồ chân ESP-32 13 Hình 10: DAC ESP32 16 Hình 11: Sơ đồ khối cho DAC cảu ESP32 17 Hình 12: Arduno Uno R3 Full pinout[6] 17 Hình 13: Arduino Nano Full pinout[7] 18 Hình 14: Chu kỳ dao động( Xung) 19 Hình 15: Sơ đồ khối hệ thống PWM 20 Hình 16: Xung sử dụng với hàm analogWrite Arduino 20 Hình 17: Sơ đồ chân cho Arduino UNO R3 21 Hình 18: Chương cho UNO R3 21 Hình 19: Sơ đồ chân cho Arduino Nano 22 Hình 20: Chương trình cho Arduino Nano 22 Hình 21: Module MJKDZ DRV8833 23 Hình 22: Sơ đồ điều khiển module DRV8833 24 Hình 23: Sơ đồ nguyên lý cho module DRV8833 24 Hình 24: Giao diện tùy chỉnh Audacity 25 Hình 25: Giao diện HxD 25 Hình 26: Sơ đồ kết nối mơ âm 26 CÁC CHỮ VIẾT TẮT PWM DAC, D/A ADC, A/D MSB LSB Pulse-width modulation Digital to Analog Converter Analog-to-Digital Converter Most significant bit Least significant bit CHƯƠNG GIỚI THIỆU VỀ DAC Tổng quan DAC Bộ chuyển đổi kỹ thuật số sang analog thường gọi DAC viết tắt Digital to Analog Converter, D / A D2A thiết bị chuyển đổi giá trị nhị phân (0 1) thành tập hợp điện áp analog liên tục Có nhiều kỹ thuật thực hiện, kỹ thuật có ưu nhược điểm riêng Trong viết này, tìm hiểu cách thức hoạt động DAC cách sử dụng thiết kế [1] Thơng thường chuyển đổi DAC thực mảng điện trở, với số ngõ vào tương ứng với số bit số liệu, ngõ Giá trị điện trở chọn tương ứng với bậc bit số, để tạo trọng số biến đổi, cho điện áp vào mức logic quy định phần bit góp vào điện áp tổng bậc bit Kết ngõ có mức điện áp tương ứng với giá trị số ngõ vào Do có sơ đồ đơn giản, chuyển đổi DAC mảng điện trở làm việc tần số tương đối cao Dẫu thực tế chế tạo mảng điện trở xác ổn định cao khó khăn cơng nghệ Nó dẫn đến giá thành mảng cao Vì chip DAC thường bố trí ghép kênh, mảng điện trở thực thi biến đổi cho nhiều đường tín hiệu [1] Ứng dụng DAC Hiện ứng dụng chủ yếu DAC hồn ngun tín hiệu thiết bị âm thanh, từ dàn cơng nghiệp giải trí đến máy tính, điện thoại di động, PDA, Ngồi dùng thiết bị y tế, thí nghiệm, có điều khiển dạng số (máy tính vi xử lý) để phát điện áp theo mức xác định vào đối tượng thí nghiệm DAC cịn thành phần ADC dấu phảy động, ráp rời chế sẵn thành chip Tín hiệu đưa qua tiền khuếch đại có modul DAC điều chỉnh hệ số khuếch dạng nhị phân, cho tín hiệu nằm dải động ADC Những DAC có bậc bit thấp, cỡ đến [1] Các phương pháp chuyển đổi số tương tự 3.1 Chuyển đổi D/A với đầu dịng Trong thiết bị kỹ thuật số đơi lúc địi hỏi q trình điều khiển dịng điện Do người ta tạo DAC với ngõ dịng để đáp ứng u cầu Hình 5.5 DAC với ngõ dịng tương tự tỷ lệ với đầu vào nhị phân Mạch DAC bit, có đường dẫn dịng song song đường có chuyển mạch điều khiển Trạng thái chuyển mạch bị chi phối mức logic đầu vào nhị phân Dòng chảy qua đường mức điện quy chiếu VREF giá trị điện trở đường dẫn định Giá trị điện trở có trọng số theo số 2, nên cường độ dịng điện có trọng số theo hệ số tổng cường độ dòng điện IOUT tổng dòng nhánh DAC với đầu dịng chuyển thành DAC có đầu điện cách dùng khuếch đại thuật tốn (Op Amp) [2] Hình 1: DAC có đầu 3.2 Chuyển đổi D/A phương pháp thang điện trở Đầu vào khuyếch đại thuật toán thang điện trở Mà trị số chúng phân bố theo mã nhị phân, điện trở lân cận nhau lần Tín hiệu điều khiển tín hiệu số cần chuyển đổi Bít có nghĩa nhỏ (LSB) đưa đến điều khiển khóa nối với điện trở lớn R, bit có nghĩa lớn tiếp đưa đến điều khiển khóa nối với điện trở trở nhỏ R/2 MSB điều khiển khóa nối với điện trở R nhỏ ( N−1 ) Nếu bít có giá trị "0" khóa tương ứng nối đất bít có giá trị "1" khóa K tương ứng nối với nguồn điện áp chuẩn Uch để tạo nên dòng điện tỷ lệ nghịch với trị số điện trở nhánh đó, nghĩa Io có giá trị bé nhất, có giá trị lớn IN-1 có giá trị lớn Dòng sinh nhánh điện trở đưa đến đầu vào khuyếch đại, đầu khuyếch đại thuật tốn có điện áp: [3] 𝑁−1 UM = −𝑅ℎ𝑡 ∑ 𝐼𝑛 𝑛=0 Hình 2: Sơ đồ mạch điện chuyển đổi DAC phương pháp thang điển trở 3.3 Chuyển đổi D/A phương pháp mạng điện trở Sơ đồ nguyên lý chuyển đổi D/A theo phương pháp hình nguồn dòng tạo nguồn điện áp chuẩn Uch Dòng điện chúng Io Tín hiệu cần chuyển đổi đưa đến chuyển mạch K Khi bít tín hiệu điều khiển "0" Io tương ứngvới bít bị ngắn mạch qua khóa xuống đất Ngược lại, tín hiệu điều khiển "1" Io ứng với bít dẫn tới đầu vào khuyếch đại qua mạng điện trở.Trong sơ đồ mạng điện trở làm nhiệm vụ phân dịng Vì điện trở nhánh ngang nửa điện trở nhánh dọc, nên dòng qua khâu điện trở giảm nửa Dòng điện ứng với LSB qua N-1 khâu điện trở, dịngđiện ứng với bit có nghĩa lớn qua N-2 khâu dòng ứng với MSB đưa trực tiếp đến đầu khuyếch đại Kết dịng điện cửa vào khuyếch đại có trị số tương ứng với bit mà đại diện Chúng có trị số giảm dần từ MSB đến LSB theo mã nhị phân Điện trở nhánh ngang cuối có giá trị số 2R điện trở nhánh dọc để đảm bảo phân dòng cho in−2 = I0 khâu cuối cùngcũng giống khâu trước [3] Hình 3: : Sơ đồ mạch điện chuyển đổi DAC phương pháp mạng điện trở CHƯƠNG 2: GIỚI THIỆU MỘT SỐ MODULE DAC Module DAC PCF8591 Module chuyển đổi AD-DA PCF8591 board tích hợp chuyển đổi tiện lợi cho người dùng vi điều khiển, nguồn cung cấp điện riêng biệt, công suất thấp, 8-bit CMOS thiết bị thu thập sữ liệu Các PCF8591 ba địa chân A0, A1 A2 sử dụng địa phần cứng lập trình thiết bị PCF8591 cho phép truy cập vào bus I2C, mà không cần thêm phần cứng Trên thiết bị đầu vào đầu PCF8591 địa chỉ, điều khiển tín hiệu liệu truyền thời gian nối tiếp thông qua hai dây bus I2C hai chiều Hình 4: Module chuyển đổi AD-DA PCF8591 Thơng số kỹ thuật: • Nguồn cấp riêng: 2.5-6V • Dịng tiêu thụ thấp • Chuyển đổi qua chuẩn I2C bus serial in/out analog output DAC gain • module chuyển đổi AD/DA PCF 8591 tích hợp cảm biến quang trở, xuất giá trị analog xác cường độ ánh sáng môi trường xung quanh • Tích hợp cảm biến nhiệt độ ntc, xuất giá trị analog xác nhiệt độ mơi trường xung quanh • Tích hợp lọc cảm biến analog với dải hoạt động 0-5V [4] Sơ đồ chân VCC GND AIN0, AIN1, AIN2, Ain3 AOUT SCL, SDA Nối với dương nguồn Nối với đất cảu nguồn Các ngõ vào Analog Ngõ Analog Chân tín hiệu giao thức I2C Hình 5: Sơ đồ chân Module chuyển đổi AD-DA PCF8591 Sơ đồ khối hoạt động cho Module PCF8591: Hình 6: Sơ đồ khối hoạt động cho Module PCF8591 10 Hình 9: Sơ đồ chân ESP-32 Mơ tả chân ESP-32: • Chân Input Only: GPIO từ 34 đến 39 GPI – chân đầu vào Các chân khơng có điện trở kéo lên kéo xuống bên Chúng khơng thể sử dụng làm đầu ra, sử dụng chân làm đầu vào • Chân tích hợp Flash ESP-32: GPIO đến GPIO 11 dùng để kết nối Flash SPI, khơng khuyến khích sử dụng ứng dụng khác • Chân cảm biến điện dung: Các chân ESP-32 có chức nút nhấn cảm ứng, phát thay đổi điện áp cảm ứng chân: o T0 (GPIO 4) o T1 (GPIO 0) o T2 (GPIO 2) o T3 (GPIO 15) o T4 (GPIO 13) o T5 (GPIO 12) o T6 (GPIO 14) 13 o T7 (GPIO 27) o T8 (GPIO 33) o T9 (GPIO 32) • Analog to Digital Converter (ADC), ESP-32 có kênh đầu vào ADC 18 x 12 bit (trong ESP8266 có ADC 1x 10 bit) Đây GPIO sử dụng làm ADC kênh tương ứng Các kênh đầu vào ADC có độ phân giải 12 bit Điều có nghĩa bạn nhận số đọc tương tự từ đến 4095, tương ứng với 0V 4095 đến 3,3V Bạn lập trình độ phân giải kênh code o ADC1_CH0 (GPIO 36) o ADC1_CH1 (GPIO 37) o ADC1_CH2 (GPIO 38) o ADC1_CH3 (GPIO 39) o ADC1_CH4 (GPIO 32) o ADC1_CH5 (GPIO 33) o ADC1_CH6 (GPIO 34) o ADC1_CH7 (GPIO 35) o ADC2_CH0 (GPIO 4) o ADC2_CH1 (GPIO 0) o ADC2_CH2 (GPIO 2) o ADC2_CH3 (GPIO 15) o ADC2_CH4 (GPIO 13) o ADC2_CH5 (GPIO 12) o ADC2_CH6 (GPIO 14) o ADC2_CH7 (GPIO 27) o ADC2_CH8 (GPIO 25) o ADC2_CH9 (GPIO 26)a • Digital to Analog Converter, Có kênh DAC x bit ESP-32 để chuyển đổi tín hiệu kỹ thuật số thành đầu tín hiệu điện áp tương tự 14 Các kênh có độ phân giải bit, nghĩa có giá trị từ – 255 tương ứng với – 3.3V o DAC1 (GPIO25) o DAC2 (GPIO26) • Các chân thời gian thực RTC, Các chân có tác dụng đánh thức ESP-32 chế độ Low Power Mode Sử dụng chân ngắt ngồi • RTC_GPIO0 (GPIO36) o RTC_GPIO3 (GPIO39) o RTC_GPIO4 (GPIO34) o RTC_GPIO5 (GPIO35) o RTC_GPIO6 (GPIO25) o RTC_GPIO7 (GPIO26) o RTC_GPIO8 (GPIO33) o RTC_GPIO9 (GPIO32) o RTC_GPIO10 (GPIO4) o RTC_GPIO11 (GPIO0) o RTC_GPIO12 (GPIO2) o RTC_GPIO13 (GPIO15) o RTC_GPIO14 (GPIO13) o RTC_GPIO15 (GPIO12) o RTC_GPIO16 (GPIO14) o RTC_GPIO17 (GPIO27) • Chân PWM, ESP-32 LED PWM có 16 kênh độc lập định cấu hình để tạo tín hiệu PWM với thuộc tính khác Tất chân hoạt động đầu sử dụng làm chân PWM (GPIO từ 34 đến 39 tạo PWM) • Chân I2C, ESP-32 có hai kênh I2C chân đặt làm SDA SCL Khi sử dụng ESP-32 với Arduino IDE, chân I2C mặc định là: o GPIO 21 (SDA) 15 o GPIO 22 (SCL) • Thơng số kĩ thuật ESP-32: o Single or Dual-Core 32-bit LX6 Microprocessor with clock frequency up to 240 MHz o Tùy chọn ½ nhân vi xử lý 32-bit LX6 với xung nhịp tối đa 240MHz o 520 KB of SRAM, 448 KB of ROM and 16 KB of RTC SRAM o 520KB SRAM, nhớ 448KB 16KB RTC SRAM o Hỗ trợ kết nối Wi-Fi chuẩn 802.11 b/g/n với tốc độ tối đa 150Mbps o Hỗ trợ chuẩn Bluetooth 4.2 BLE( Bluetooth-Low_Energy) o 34 Chân GIPO lập trình o Hỗ trợ lên tới 18 kênh SAR ADC 12 bit kênh DAC bit o Kết nối Serial bao gồm SPI, x I2C, x I2S, x UART o Hỗ trợ MAC Ethernet cho kết nối LAN( yêu cầu cần thêm module PHY) o vi điều khiển CHỦ cho SD/SDIO/MMC vi điều khiển Slave cho SDIO/SPI o Hỗ trợ motor PWM tối đa 16 kênh led PWM o Hỗ trợ Secure Boot mã hóa file flash o Mã hóa phần cứng với AES, HASH(SHA-2),RSA,ECC RNG [5] Với khả tích hợp sẵn chân DAC 25 26, hồn tồn sửu dụng hai chân DAC thơng thường Hình 10: DAC ESP32 16 Hình 11: Sơ đồ khối cho DAC cảu ESP32 2.2 Arduino Nano, Arduino Uno Khác với ESP32, Arduino Nano, Arduino Uno không co DAC pin nên cách khác sử dụng xung Hình 12: Arduno Uno R3 Full pinout[6] 17 Hình 13: Arduino Nano Full pinout[7] 2.2.1 PWM Xung trạng thái cao / thấp (HIGH/LOW) mức điện áp lặp lặp lại Đại lượng đặc trưng cho xung PWM (Pulse Width Modulation) bao gồm tần số (frequency) chu kì xung (duty cycle) Tần số số lần lặp lại đơn vị thời gian Đơn vị tần số Hz, tức số lần lặp lại dao động giây Lấy ví dụ, 1Hz = dao động giây 2Hz = dao động giây 16MHz = 16 triệu dao động giây Như theo quy tắc tam suất: 16 triệu dao động - giây > dao động tốn 1/16.000.000 (giây) = 0,0625 (micro giây) Cách xác định dao động nào? Đa phần bạn nghiên cứu điện tử thường mắc sai lầm việc xác định dao động Dao động xác định từ trạng thái bắt đầu kết thúc trước trạng thái bắt đầu lặp lại 18 Hình 14: Chu kỳ dao động( Xung) Như thông thường, dao động bao gồm trạng thái điện: mức cao (x giây) mức thấp (y giây) Tỉ lệ phần trăm thời gian trạng thái điện chu kì xung Với x/y = 0% ta có xung chứa toàn điện áp thấp (khái niệm xung nên hiểu mở rộng) Với x/y = 50% 50% thời gian đầu, xung có điện áp cao, 50% sau xung có điện áp thấp Với x/y=100% ta có xung chứa tồn điện áp cao Tóm lại, với xung ta có: • Tần số: để tính tốn thời gian xung • Chu kì xung: thời gian xung có mức áp cao, thời gian xung có mức áp thấp.[8] 19 Hình 15: Sơ đồ khối hệ thống PWM 2.2.2 Hàm AnalogWrite() Hình vẽ sau thể sở cách hoạt động hàm: Hình 16: Xung sử dụng với hàm analogWrite Arduino 20 Qua có bảng thống kê: analogWrite(x) analogWrite(0) analogWrite(64) analogWrite(127) analogWrite(191) analogWrite(255) Tỉ lệ 0/255 64/255 127/255 191/255 255/255 Chu kì xung 0% 25% 50% 75% 100% Với thiết bị ta có sơ đồ, lệnh sau: Arduino UNO R3 Hình 17: Sơ đồ chân cho Arduino UNO R3 Hình 18: Chương cho UNO R3 21 Arduino Nano Hình 19: Sơ đồ chân cho Arduino Nano Hình 20: Chương trình cho Arduino Nano Điểm khác biệt lớn analogWrite() dacWrite là: • analogWrite() sử dụng tín hiệu PWM bao gồm tần số chu kỳ xung, chu kỳ xung định thời gian tín hiệu mức cao thấp chu kỳ Thay đổi chu kỳ xung thay dổi tín hiệu đầu • dacWrite() sử dụng chuyển đổi DAC, tín hiệu từ chân DAC tín hiệu analog thực Tóm lại, analogWrite() mơ lại tín hiệu analog nhờ vào PWM, dacWrite sử dụng biến đổi DAC 22 CHƯƠNG 3: MỘT SỐ ỨNG DỤNG DAC Sử dụng DAC để điều khiển động 1.1 Module điều khiển động MJKDZ DRV8833 Mạch điều khiển động DC Mini DRV8833 điều khiển hai motor DC động bước với dòng điện liên tục 1.5A, điện áp ~ 10VDC, thích hợp cho mơ hình robot, điều kiển động cỡ nhỏ Thơng số kỹ thuật: • IC chính: DRV8833 Dual H-Bridge Motor Driver • Điện áp cấp: 3~10VDC • Dịng đầu động cơ: 1.5A • Điều khiển động DC động bước dây • Bảo vệ chống q dịng, q nhiệt • Low Power Sleep Mode • Kích thước: 18.5 * 16mm Sơ đồ chân: • ULT: Chân kích hoạt, thay cách nối tắt J2 • OUT1,0UT2 : Chân đầu tương ứng với đầu vào IN1, IN2 • OUT3,0UT4 : Chân đầu tương ứng với đầu vào IN3, IN4 • EEP : Chân bảo vệ • VCC : Chân cấp nguồn (3V – 10V) • GND : Chân nối [9] Hình 21: Module MJKDZ DRV8833 1.2 Sử dụng Module MJKDZ DRV8833 để điều khiển thông qua DAC Sử dụng hai hàm DacWrite() analogWrite() cho hai chân DAC chân output thường ESP32 23 Hình 22: Sơ đồ điều khiển module DRV8833 Hình 23: Sơ đồ nguyên lý cho module DRV8833 Sử dụng hai hàm DacWrite Analog Write cho hai kết khác Sử dụng DAC để mô lại âm 2.1 Chuẩn bị liệu Như đề cập ESP32, có DAC 8-bit tích hợp hai chân GPIO 25 (PIN 25) GPIO 26 (PIN 26) Vì dung lượng nhớ ESP32 có hạn nên đưa trực tiếp tệp âm vào để ESP32 xử lý Thay vào sử sử dụng đoạn âm ngắn sau chuyển đổi để đưa trực tiếp vào ESP32 24 Sử dụng phần mềm Audacity để đưa đoạn âm tần số quét 16kHz (16000Hz) sau xuất định dạng wav mã hóa dạng 8-bit Hình 24: Giao diện tùy chỉnh Audacity Tiếp sử dụng phần mềm HxD để mở tệp âm để đọc dạng số Hex lưu lại tên “sound.h” Hình 25: Giao diện HxD 2.2 Mơ lại âm ESP32 Sau thao tác trên, thu tệp h sử dụng thư viện mở rộng cho ESP32 Bằng cách truy cập vào thư viện này, ESP32 đọc tệp âm tiến hành mô lại âm với DAC với trợ giúp thư viện “XT_DAC_Audio” [10] 25 Hình 26: Sơ đồ kết nối mơ âm Tuy nhiên mục đích DAC ESP32 ban đầu để xuất vào âm nên âm xuất có chất lượng khơng tốt Thay vào sử dụng I2S (Inter-IC Sound) Kết luận DAC có nhiều ứng dụng khác Cụ thể vi điều khiển trang bị DAC ESP32 đem lại nhiều lợi ích so với chân digital khác, giúp cho việc điều khiển trở nên dễ dàng hơn, phạm vi ứng dụng rộng hơn, không cần thiết đến module DAC đính kèm để thực chức tương tự nhu cầu DAC nhỏ từ đem đến thuận tiện tiết kiệm cho người dụng DAC so với phương pháp sử dụng PWM tỏ trội hẳn việc mô lại âm thanh, điều khiển cấu chấp hành… Nhưng vài trường hợp, phương pháp PWM sử dụng điều khiển số cấu chấp hành động cơ, PWM lại tỏ lợi hẳn so với DAC truyền thống ESP32 26 TÀI LIỆU THAM KHẢO [1] Wikipedia: DAC ”https://vi.wikipedia.org/wiki/DAC” [2] Tài liệu vi mạch số: Các dạng mạch DAC “https://www.huongnghiepviet.com/codientu/ki_thuat_cdt/dien_tu/vi_mach_so/ch uong_6/01_dac_02.html” [3] Học viện Cơng nghệ Bưu Viễn Thơng: Điện tử tương tự [4] IC rồi: https://icdayroi.com/module-chuyen-doi-ad-da-pcf8591 [5] Điện tử Việt Giới thiệu module ESP-32- “https://dientuviet.com/gioi-thieuESP-32/ ” [6] Arduino: UNO R3 “https://docs.arduino.cc/static/c57a658e0f7afad334f6f73e82dfd83d/A000066-fullpinout.pdf” [7] Arduino: Nano “https://docs.arduino.cc/static/11f0c2880b9a2f2add7890e0de0ff192/A000005-fullpinout.pdf” [8] Arduinovn: Xung PWM ”http://arduino.vn/reference/xung-pwm” [9] HSHOP: Mạch điều khiển động DC Mini DRV8833 “https://hshop.vn/products/mach-dieu-khien-dong-co-dc-mini-drv8833” [10] Xtronical Playing WAV files: “https://www.xtronical.com/basics/audio/dacsfor-sound/playing-wav-files/” 27