PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

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

Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 02-09-2008, 01:01 AM   #1
tuoitrequaypha
Nhập môn đệ tử
 
Tham gia ngày: Apr 2008
Bài gửi: 5
:
Talking Trưởng lão namqn nói sai

Hôm nay lại nhảy vào PIC đọc tí chút thì thấy trưởng lão namqn lại chỉ dẫn sai cho các chú đồng chí rồi! Hahahaha.... Ngứa nghề cho nên Mỗ lại phải ra tay đây

Mỗ hoảng hồn khi nghe namqn nói là mạch lọc RC lại tạo được tín hiệu ra "sớm pha", lại còn tính ra được sớm đúng 17 độ mới ghê chứ! Học điện tử công suất như trưởng lão thì vất rồi. Sai cơ bản, sai cơ bản. Thiện tai! Thiện tai!

Trưởng lão lại còn kết luận là do lệch pha nên méo dạng sóng là "hợp lý" thì chứng tỏ trưởng lão chưa hiểu gì về đặc điểm của PWM khi rời rạc hóa trong hệ thống số rồi

Mỗ stop ở đây thôi kẻo không trưởng lão lại cho rằng vấn đề PWM không được tranh luận trong PIC

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


Trích:
Nguyên văn bởi namqn View Post
Datasheet cũng nói rằng khoảng thời gian không kích hoạt của PWM cũng phải ít nhất lớn hơn 3 lần dead-time, để giảm thiểu tối đa ảnh hưởng của dead-time. Do đó, bạn nên thay đổi phạm vi giá trị duty cycle của bạn khi có thêm dead-time, để không vi phạm những khuyến cáo trên.

Thử nghiệm của tôi cho thấy ở những giá trị duty cycle quá lớn thì dạng sóng ở các ngõ ra hoàn toàn thay đổi (PWM1 và PWM0 thay phiên nhau 'on' trong suốt 1 chu kỳ PWM).

Mạch lọc của bạn tạo ra một độ lệch pha khoảng 17 độ, sớm pha. Do đó hiện tượng mà bạn đã quan sát được là hợp lý.

Với trường hợp cụ thể của bạn, tần số PWM là 20 kHz, dùng 1 us dead-time, bạn thử giảm giá trị duty tối đa trong bảng xuống còn khoảng 95% thử xem.

Tuy nhiên, bạn nên suy nghĩ thêm: Tại sao phải đưa dead-time vào? Nếu có dead-time thì việc đo dạng sóng sau mạch lọc RC của bạn có ý nghĩa gì không? Nếu bạn là sinh viên đang làm đề tài, bạn nên trao đổi với người hướng dẫn.

Thân,
tuoitrequaypha vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 02-09-2008, 02:24 AM   #2
tienminh
Đệ tử 3 túi
 
Tham gia ngày: Oct 2006
Bài gửi: 50
:
Tóm lại mục đích của em là dùng PIC tạo PWM theo quy luật sine, đưa sang Driver sau đó vào cầu H MOSFET ,cuối cùng là lọc LC để được sine.
Mong các bác cao thủ ĐTCS định hướng giúp em, định hướng đúng em xin cảm ơn nhiều và các đồng chí khác cũng đỡ công phải nghiên cứu lại .
Các bác cứ tranh luận với nhau đi để lộ ra chân lý và sự thật.
thanks.
tienminh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 02-09-2008, 04:03 AM   #3
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 tuoitrequaypha View Post
Hôm nay lại nhảy vào PIC đọc tí chút thì thấy trưởng lão namqn lại chỉ dẫn sai cho các chú đồng chí rồi! Hahahaha.... Ngứa nghề cho nên Mỗ lại phải ra tay đây

Mỗ hoảng hồn khi nghe namqn nói là mạch lọc RC lại tạo được tín hiệu ra "sớm pha", lại còn tính ra được sớm đúng 17 độ mới ghê chứ! Học điện tử công suất như trưởng lão thì vất rồi. Sai cơ bản, sai cơ bản. Thiện tai! Thiện tai!

Trưởng lão lại còn kết luận là do lệch pha nên méo dạng sóng là "hợp lý" thì chứng tỏ trưởng lão chưa hiểu gì về đặc điểm của PWM khi rời rạc hóa trong hệ thống số rồi

Mỗ stop ở đây thôi kẻo không trưởng lão lại cho rằng vấn đề PWM không được tranh luận trong PIC

Thân,
Biển học có hạn, sức người mênh mông
Cám ơn bạn nhé. Tôi lại sai nữa. Theo kết quả đáp ứng tần số thì góc lệch pha giữa điện áp trên tụ lọc và điện áp vào là khoảng -17 độ, tức là áp ra chậm pha so với áp vào. Tôi dùng phần mềm để vẽ đáp ứng tần số và đọc trị số góc lệch ở 50 Hz.

Cái nhận xét rằng hiện tượng xảy ra hợp lý là từ việc xem xét dạng xung ngõ ra khi duty cycle đặt gần bằng 100%, chứ không phải từ việc xét lệch pha của tần số cơ bản đâu. Lẽ ra tôi viết nhận xét ở đoạn trên mới phải.

Tôi còn nhiều cái chưa hiểu lắm, mời bạn giảng cho. DSP là cái mà tôi không được học ở đại học. Toán rời rạc tôi cũng chưa hề đụng đến.

Mà bạn cũng hay nhỉ, thấy các thành viên hỏi thì không thèm trả lời, có vẻ chỉ thích tìm lỗi của người khác để đem ra chê bai.

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

thay đổi nội dung bởi: namqn, 02-09-2008 lúc 04:15 AM.
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 02-09-2008, 04:10 PM   #4
tienminh
Đệ tử 3 túi
 
Tham gia ngày: Oct 2006
Bài gửi: 50
:
Đúng là lỗi trên liên quan đến dutycycle khi đạt 100% và 0% có deadtime, tôi sửa lại 5-95% thì ngon lành.
Tôi rất muốn bác tuoitrequaypha định hướng giúp tôi câu hỏi trên, vì nghe bác nói tôi đoán bác là người giỏi(rất hi vọng là như vậy).
tienminh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 03-09-2008, 11:58 PM   #5
tuoitrequaypha
Nhập môn đệ tử
 
Tham gia ngày: Apr 2008
Bài gửi: 5
:
Talking Trả lời trưởng lão namqn và chú Tiễn Mình!

Dành cho trưởng lão namqn:
Hehehe... Trưởng lão án binh, bất khẩu về Đại lực điện tử (ĐTCS) để tái luyện công cũng là một ý hay, Mỗ hoan nghênh.

Trưởng lão bất thiện khi nói Mỗ hám tìm lỗi của người khác để chê bai. Mỗ nhập diễn đàn là để luyện công, phải đâu để tóe tung miệng cho sướng để lòe bá tánh. Thiển nghĩ Mỗ tọa sơn kiến mục đấu pháp của bá tánh không phải là điều hay sao? Ngoài ra triệt kê bất dụng đại đao, nhiều thắc mắc của bá tánh sẽ được các ma đầu giải quyết, không cần Mỗ phải động thủ, vận công cho nhọc.

Dành cho chú Tiễn Mình:

Khi dụng PIC18F4431 thì nhiệm vụ đọat sóng sine hoàn hảo từ PIC ở những duty cycle có giá trị gần 100% hoặc là gần 0% là bất khả. Đây là yếu huyệt của nhiều dòng PIC của Microchip mà từ bấy giờ đến nay Mỗ vẫn ngạc nhiên khi không thấy ma đầu nào chỉ ra hạn chế này. Điểm nhãn vào sơ đồ khối của phần điều khiển tạo PWM trong con PIC thì Mỗ ngộ ra hạn chế này là do cách xử lý tín hiệu số trong nội bộ con chip không được tối ưu, không có phần bù trừ cải thiện dạng sóng. Nếu bất dụng biện pháp cải thiện bằng các mạch phụ trợ bên ngoài thì hạn chế này đồng nghĩa với việc chú sẽ không thể chiếm tiện nghi tối đa mức điện áp của nguồn dc đầu vào khi chỉ dùng khối PWM của PIC 18F4431.

Khi muốn đảm bảo dạng sóng sine không bị biến dạng thì giá trị cực đại và cực tiểu của duty cycle được tính từ công thức sau:

max(dutycycle)= 1-6*td/T
min(dutycycle)=6*td/T

với td= dead time, T=chu kỳ PWM

Mỗ lấy ví dụ: chú dùng td=1us thì:
- Ở 20kHz PWM --> T=50us --> max(dutycycle)= 88%; min(dutycycle)=12%
- Ở 10kHz PWM --> T=100us --> max(dutycycle)= 94%; min(dutycycle)=6%

Các giá trị lớn hơn max hoặc nhỏ hơn min đều làm biến dạng sóng sine của chú. Đến đây chú thấy kết quả có phù hợp với phần đo đạc của chú chửa? Ở tần số PWM cao hơn, chẳng hạn 50kHz thì tình hình còn thê thảm hơn nữa với con PIC của chú . Chú đã bắt đầu thấy hạn chế của con PIC trong giải thuật SPWM chưa?

Chúc các hạ vui.

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






Trích:
Nguyên văn bởi namqn View Post
Cám ơn bạn nhé. Tôi lại sai nữa. Theo kết quả đáp ứng tần số thì góc lệch pha giữa điện áp trên tụ lọc và điện áp vào là khoảng -17 độ, tức là áp ra chậm pha so với áp vào. Tôi dùng phần mềm để vẽ đáp ứng tần số và đọc trị số góc lệch ở 50 Hz.

Cái nhận xét rằng hiện tượng xảy ra hợp lý là từ việc xem xét dạng xung ngõ ra khi duty cycle đặt gần bằng 100%, chứ không phải từ việc xét lệch pha của tần số cơ bản đâu. Lẽ ra tôi viết nhận xét ở đoạn trên mới phải.

Tôi còn nhiều cái chưa hiểu lắm, mời bạn giảng cho. DSP là cái mà tôi không được học ở đại học. Toán rời rạc tôi cũng chưa hề đụng đến.

Mà bạn cũng hay nhỉ, thấy các thành viên hỏi thì không thèm trả lời, có vẻ chỉ thích tìm lỗi của người khác để đem ra chê bai.

Thân,
tuoitrequaypha vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-09-2008, 04:49 PM   #6
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 tuoitrequaypha View Post
...
Khi muốn đảm bảo dạng sóng sine không bị biến dạng thì giá trị cực đại và cực tiểu của duty cycle được tính từ công thức sau:

max(dutycycle)= 1-6*td/T
min(dutycycle)=6*td/T

với td= dead time, T=chu kỳ PWM

Mỗ lấy ví dụ: chú dùng td=1us thì:
- Ở 20kHz PWM --> T=50us --> max(dutycycle)= 88%; min(dutycycle)=12%
- Ở 10kHz PWM --> T=100us --> max(dutycycle)= 94%; min(dutycycle)=6%

Các giá trị lớn hơn max hoặc nhỏ hơn min đều làm biến dạng sóng sine của chú. Đến đây chú thấy kết quả có phù hợp với phần đo đạc của chú chửa? Ở tần số PWM cao hơn, chẳng hạn 50kHz thì tình hình còn thê thảm hơn nữa với con PIC của chú . Chú đã bắt đầu thấy hạn chế của con PIC trong giải thuật SPWM chưa?
...
Theo tôi, ý của datasheet như sau:

max(dutycycle) = 1 - 3*td/T
min(dutycycle) = 3*td/T

với td = dead time, T = chu kỳ PWM.

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
Old 10-09-2010, 01:14 AM   #7
phithientula
Nhập môn đệ tử
 
Tham gia ngày: Jul 2010
Bài gửi: 7
:
Trích:
Nguyên văn bởi namqn View Post
Theo tôi, ý của datasheet như sau:

max(dutycycle) = 1 - 3*td/T
min(dutycycle) = 3*td/T

với td = dead time, T = chu kỳ PWM.

Thân,
sao bác tuoitrequaypha lại đưa ra hệ số là 6 vậy ạ?

thay đổi nội dung bởi: phithientula, 10-09-2010 lúc 01:23 AM.
phithientula vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 17-03-2011, 07:29 PM   #8
HYknight
Nhập môn đệ tử
 
Tham gia ngày: Aug 2010
Bài gửi: 6
:
Chào các anh !
Bảng sin em lập như hướng dấn của anh Nam, Pic em dùng là 16F886, Fpwm = 20KHz
Nhưng không hiểu tại sao không thể chạy đúng
Nếu em dùng chương trình này cho Pic18 thì ok
Hay có điều gì về PWM của Pic16 mà em chưa đọc kĩ
Mong các anh giải thích giùm
Đây là chương trình của em :

Code:
#include <16f886.h>
#fuses  HS,NOWDT,NOPROTECT,NOLVP
#Device ADC = 10
#use    Delay(clock=20000000)

long Const Table_sin[400] =
{
500,507,515,523,531,539,547,554,562,570,578,585,593,601,609,616,624,631,639,647
,654,661,669,676,684,691,698,705,712,719,726,733,740,747,754,761,767,774,781,787
,793,800,806,812,818,824,830,836,842,847,853,859,864,869,875,880,885,890,895,899,
904,909,913,917,922,926,930,934,938,941,945,949,952,955,958,961,964,967,970,973,975,977
,980,982,984,986,987,989,991,992,993,995,996,996,997,998,999,999,999,999,100,999,
999,999,999,998,997,996,996,995,993,992,991,989,987,986,984,982,980,977,975,973,970
,967,964,961,958,955,952,949,945,941,938,934,930
,926,922,917,913,909,904,899,895,890,885,880,875,869,864,859,853,847,842,836,830,824,
818,812,806,800,793,787,781,774,767,761,754,747,740,733,726,719,712,705,698,691,684,
676,669,661,654,647,639,631,624,616,609,601,593,585
,578,570,562,554,547,539,531,523,515,507,500,492,484,476,468,460,452,445,437,429,421,
414,406,398,390,383,375,368,360,352,345,338,330,323,315,308,301,294,287,280,273,266,
259,252,245,238,232,225,218,212,206,199,193
,187,181,175,169,163,157,152,146,140,135,130,124,119,114,109,104,100,95,90,86,82,77,
73,69,65,61,58,54,50,47,44,41,38,35,32,29,26,24,22,19,17,15,13,12,10,8,7,6,4,3,3
,2,1,0,0,0,0,0,0,0,0,0,1,2,3,3,4,6,7,8,10,12,13,15,17,19,22,24,26,29,32,35,38,41,
44,47,50,54,58,61,65,69,73,77,82,86,90,95,100,104,109,114,119,124,130
,135,140,146,152,157,163,169,175,181,187,193,199,206,212,218,225,232,238,245,252
,259,266,273,280,287,294,301,308,315,323,330,338,345,352
,360,368,375,383,390,398,406,414,421,429,437,445,452,460,468,476,484,492};

Unsigned Int16 Index;

Void Main()
      {  
         Set_Tris_A(0x0F);
         Set_Tris_B(0x00); 
         Set_Tris_C(0X02);

         Setup_Timer_2(T2_DIV_BY_1, 249, 1);
         Setup_ccp1(CCP_PWM);
         Index = 0; 
         
         While(1)
          {
              Set_pwm1_duty(Table_sin[index]);
              Index++;
              if (index > 399 ) 
                {
                  Index=0;
                }
          }
         
      }
HYknight vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-03-2011, 11:46 PM   #9
traixomtro_hy
Nhập môn đệ tử
 
Tham gia ngày: Feb 2011
Bài gửi: 3
:
Thumbs up điều chế độ rộng xung ra sin (SPWM)

bạn có thể vào trang này nó sẽ hướng dẫn cụ thể cách lập bảng mã SPWM

http://hoiquandientu.com//read.php?579#entrymore

cái này có lâu rồi mà . khi điều khiển cầu H cho nghịch lưu ở điện áp cao bạn nên để ý :

và lập trình khéo bạn phải cho khoảng thời gian deadtime vào .

còn để làm gì thì bạn chắc hiểu rồi .
traixomtro_hy vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


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


Múi giờ GMT. Hiện tại là 12:27 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