PDA

View Full Version : Giúp Đỡ Về ADC Của Dspic


vantam_132
26-11-2008, 11:11 AM
Theo như em được biết khi dùng ADC0809 thì mình phải đặt điện áp chuẩn vào 2 chân VEF+ và VEF- thi khi chuyển đổi mình sẽ tính được khi ngõ vào tăng (giảm) 1V thì ngõ ra sau chuyển đổi tăng (giảm) bao nhiêu bit (có công thức tính), còn trong ADC của dspic em không biết làm cách nào để xác định giống như vậy. Anh namqn và mọi người hướng dẫn em cách xác định để biết giá trị sau chuyển đổi với nha. Cho em hỏi thêm về đoạn code anh namqn viết về ADC, như 2 lệnh này:
ADCON1 = 0x0060; //Module PWM cham dut lay mau va kich hoat
//viec chuyen doi A/D
ADCON1 = 0x0040; //Timer 3 cham dut lay mau va kich hoat
//viec chuyen doi A/D
em không hiểu Module PWM và Timer 3 chấm dứt lấy mẫu là như thế nào? khi lấy mẫu mình có thế dùng hơn 1TAD miễn là thời gian lớn hơn 83,33ns đúng không anh?
TMR3 = 0; //Xoa thanh ghi dem cua Timer 3
PR3 = 0x03E8; //Nguong delay cho TMR3 la khoang 1 ms
T2CON = 0x8010; //Prescale = 1:8, bat cho TMR3 chay
khi chuyển đổi mình cần Timer 3 để làm gì vậy anh? Em mới tìm hiểu về ADC của dspic mong anh namqn và mọi người hướng dẫn chi tiết cho em.

namqn
26-11-2008, 05:30 PM
Theo như em được biết khi dùng ADC0809 thì mình phải đặt điện áp chuẩn vào 2 chân VEF+ và VEF- thi khi chuyển đổi mình sẽ tính được khi ngõ vào tăng (giảm) 1V thì ngõ ra sau chuyển đổi tăng (giảm) bao nhiêu bit (có công thức tính), còn trong ADC của dspic em không biết làm cách nào để xác định giống như vậy. Anh namqn và mọi người hướng dẫn em cách xác định để biết giá trị sau chuyển đổi với nha. Cho em hỏi thêm về đoạn code anh namqn viết về ADC, như 2 lệnh này:
ADCON1 = 0x0060; //Module PWM cham dut lay mau va kich hoat
//viec chuyen doi A/D
ADCON1 = 0x0040; //Timer 3 cham dut lay mau va kich hoat
//viec chuyen doi A/D
em không hiểu Module PWM và Timer 3 chấm dứt lấy mẫu là như thế nào? khi lấy mẫu mình có thế dùng hơn 1TAD miễn là thời gian lớn hơn 83,33ns đúng không anh?
TMR3 = 0; //Xoa thanh ghi dem cua Timer 3
PR3 = 0x03E8; //Nguong delay cho TMR3 la khoang 1 ms
T2CON = 0x8010; //Prescale = 1:8, bat cho TMR3 chay
khi chuyển đổi mình cần Timer 3 để làm gì vậy anh? Em mới tìm hiểu về ADC của dspic mong anh namqn và mọi người hướng dẫn chi tiết cho em.
Độ phân giải 10-bit tương ứng với 2^10 = 1024 mức khác nhau. Nếu (VREF+ - VREF-) của bạn bằng 5 V thì 1 V thay đổi sẽ ứng với 1/5 giai đo, tức là bằng 1024/5.

Về "Module PWM và Timer 3 chấm dứt lấy mẫu", tôi đã nói trong tutorial, nên sẽ không lặp lại ở đây. Đề nghị bạn đọc kỹ lại. Thời gian lấy mẫu thay đổi tùy theo trường hợp cụ thể, cần tính toán dựa vào mô hình trong mục 17.16 của tài liệu "dsPIC30F Family Reference Manual" (DS70046), hoặc tham khảo các giá trị tối thiểu được nêu trong datasheet của dsPIC đang dùng.

Ví dụ của tôi dùng module MCPWM để xác định thời điểm sẽ thực hiện việc lấy mẫu và chuyển đổi A/D, chứ không liên tục thực hiện thao tác đó. Đoạn code liên quan đến Timer 3 đã được chuyển thành chú thích. Tuy nhiên, nếu muốn dùng Timer 3 để chấm dứt lấy mẫu và kích hoạt chuyển đổi thì tần suất thực hiện thao tác đó là 1 lần/ms.

Thân,

vantam_132
02-12-2008, 09:42 PM
Anh namqn ơi! giúp em với!
Khi mắc mạch dùng dspic như trong tutorial 5 của anh hướng dẫn và mạch chạy bình thường nhưng khi em nối chân PWM1L (em chỉnh biến trở tối đa nên điện áp trung bình đo được là 5V) vào chân input4 của L293B để điều khiển động cơ thì thấy động cơ quay có vài vòng rồi đứng im luôn. Khi đo áp trung bình ở chân PWM1L thì không còn điện áp nữa, em không biết khắc phục ra sao nữa ( nếu đưa trực tiếp 5V vào chân input4 của L293B thì động cơ chạy bình thường). Em mắc mạch điều khiển động cơ như trong datasheet của L293B. Nếu được anh cho em sơ đồ nguyên lý luôn nha anh.