PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > dsPIC - Bộ điều khiển tín hiệu số 16-bit

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

dsPIC - Bộ điều khiển tín hiệu số 16-bit Theo dự kiến của Microchip, vào khoảng năm 2011 dsPIC sẽ có doanh số lớn hơn PIC

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 12-11-2008, 10:50 PM   #1
tungtuantu
Đệ tử 3 túi
 
Tham gia ngày: Apr 2006
Bài gửi: 54
:
bác namqn cho em hỏi, em có thể dùng chân PWM_L cho chức năng PWM, và chân PWM_H cho chức năng port I/O bình thường ko ah, và làm thế nào.
Nếu em muốn PWM1 là PWM, còn PWM2 hoặc 3 là port I/O thường chỉ việc cho LATx= 0 hoặc 1 là dc hả anh.
Em lấy ví dụ 5.1 của anh sửa đi để chạy với mạch thật, biến trở em nối vào nguồn 5V, diều khiển động cơ dùng L298, dùng PWM1L và PWM2L để điều khiển, em cho luôn chân PWM2L=0, khi điều chỉnh biến trở thì chỉ 1 nửa là động cơ chạy, 1 nửa là dứng yên, tức là ko điều chỉnh dc toàn dải, mắc dù em cho chân PWM2L=0 rồi nhưng khi em đo áp trên chan này thì dc hơn 1 V, em nghĩ đây là nguyên nhân mà ko điều chỉnh dc toàn dải, có phải ko anh, cho em cách khắc phục
_FOSC(CSW_FSCM_OFF & FRC_PLL4); cái này có phải cấu hình dùng dao động nội của chip ?
nếu em dùng thach anh 20Mhz thì em cấu hình như này
_FOSC(CSW_FSCM_OFF & HS); có đúng ko anh.
Nên dùng thạch anh ngoài hay bộ dao động nội, em thấy các ví dụ của anh toàn dùng dao động nội? nếu dùng thạch anh thì fcy (tần số thực thi lệnh) = Fosc/4 đúng ko anh?
Nếu em muốn viết 1 hàm trễ 1ms bằng vòng lặp for thì cách tính toán như nào ( anh cho ví dụ luôn nhé),viết hàm delay nên dùng vòng lặp for hay dùng timer ?
tungtuantu vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 13-11-2008, 02:19 AM   #2
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi tungtuantu View Post
bác namqn cho em hỏi, em có thể dùng chân PWM_L cho chức năng PWM, và chân PWM_H cho chức năng port I/O bình thường ko ah, và làm thế nào.
Nếu em muốn PWM1 là PWM, còn PWM2 hoặc 3 là port I/O thường chỉ việc cho LATx= 0 hoặc 1 là dc hả anh.
Em lấy ví dụ 5.1 của anh sửa đi để chạy với mạch thật, biến trở em nối vào nguồn 5V, diều khiển động cơ dùng L298, dùng PWM1L và PWM2L để điều khiển, em cho luôn chân PWM2L=0, khi điều chỉnh biến trở thì chỉ 1 nửa là động cơ chạy, 1 nửa là dứng yên, tức là ko điều chỉnh dc toàn dải, mắc dù em cho chân PWM2L=0 rồi nhưng khi em đo áp trên chan này thì dc hơn 1 V, em nghĩ đây là nguyên nhân mà ko điều chỉnh dc toàn dải, có phải ko anh, cho em cách khắc phục
_FOSC(CSW_FSCM_OFF & FRC_PLL4); cái này có phải cấu hình dùng dao động nội của chip ?
nếu em dùng thach anh 20Mhz thì em cấu hình như này
_FOSC(CSW_FSCM_OFF & HS); có đúng ko anh.
Nên dùng thạch anh ngoài hay bộ dao động nội, em thấy các ví dụ của anh toàn dùng dao động nội? nếu dùng thạch anh thì fcy (tần số thực thi lệnh) = Fosc/4 đúng ko anh?
Nếu em muốn viết 1 hàm trễ 1ms bằng vòng lặp for thì cách tính toán như nào ( anh cho ví dụ luôn nhé),viết hàm delay nên dùng vòng lặp for hay dùng timer ?
Chân PWMxH có thể dùng làm chân I/O một cách độc lập với chân PWMxL tương ứng, nếu thiết lập cho cặp chân đó làm việc ở chế độ độc lập (bit PMODx tương ứng trong thanh ghi PWMCON1 mang giá trị '1').
Nếu muốn các chân của một kênh PWM nào đó là ngõ vào/ra thông thường thì thiết lập các bit PENxH và PENxL mang giá trị '0'.

Nếu bạn dùng L298 thì cần cho biết sơ đồ kết nối giữa dsPIC và L298. Một phần cứng cụ thể sẽ tương ứng với một thuật toán điều khiển cụ thể. Bạn không thể áp ví dụ của tôi vào mạch cầu H, vì tôi không viết phần mềm để điều khiển mạch cầu H. Tôi chỉ xuất ngõ ra PWM với duty cycle được thay đổi theo tín hiệu ADC vào thôi. Bạn tham khảo thêm cách điều khiển được đề xuất cho cầu H ở post #49 của luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1186

_FOSC(CSW_FSCM_OFF & FRC_PLL4); chọn bộ dao động nội với x4 PLL được kích hoạt.

Thạch anh ngoài 20 MHz có thể dùng với các cấu hình:
_FOSC(CSW_FSCM_OFF & HS);
hoặc
_FOSC(CSW_FSCM_OFF & XT_PLL4);

XT_PLL4 có thể gặp khó khăn trong việc ổn định dao động cho thạch anh.

Tôi dùng bộ dao động nội trong các tutorial chỉ để đơn giản hóa phần cứng. Với các bài toán yêu cầu độ chính xác cao đối với xung clock thì nên dùng thạch anh ngoài, hoặc tốt hơn là bộ dao động ngoài.

Việc một vòng for nào đó chạy mất bao nhiêu thời gian còn tùy thuộc vào chế độ tối ưu khi biên dịch code. Tôi thường dùng MPLAB SIM để xác định thời gian (hay số chu kỳ máy) cần thiết để thực thi một vòng for.

Theo tôi, không nên dùng vòng lặp đếm chu kỳ máy cho các thời gian trễ tương đối dài (cỡ ms).

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời

Tags
dspic30f adc, dspic30f pwm


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến

Similar Threads
Ðề tài Người gửi Chuyên mục Trả lời Bài mới
dsPIC Tutorial 3-Đọc ngõ vào và giao tiếp LCD namqn dsPIC - Bộ điều khiển tín hiệu số 16-bit 92 19-02-2017 11:15 PM
dsPIC Tutorial 2-Các kỹ thuật cơ bản namqn dsPIC - Bộ điều khiển tín hiệu số 16-bit 33 17-10-2013 11:09 PM
dsPIC Tutorial 1-Tạo và biên dịch một project (ASM30) namqn dsPIC - Bộ điều khiển tín hiệu số 16-bit 16 22-08-2012 12:35 AM
dsPIC Tutorial 4-Module UART và I2C namqn dsPIC - Bộ điều khiển tín hiệu số 16-bit 76 09-05-2012 10:55 AM
RF module khanh_pic Tìm mua sản phẩm 22 20-08-2007 11:25 AM


Múi giờ GMT. Hiện tại là 06:17 PM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam