Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

PIC10,12,16,18 с PWM с изходи push-pull
http://mcu-bg.com/mcu_site/viewtopic.php?f=2&t=11885
Страница 1 от 2

Автор:  [ Сря Ное 06, 2013 5:17 am ]
Заглавие:  PIC10,12,16,18 с PWM с изходи push-pull

Трябва ми някое процесорче от PIC10/PIC12/PIC16/PIC18 серията, до 18 краков корпус, което да има хардуерен ШИМ с поне два изхода в режим push-pull. Прегледах доста модели, но намирам само такива с изходи за half bridge, което не ми върши работа ( при push-pull PWM извежда на двата изхода алтернативно един и същ коефициент на запълване, при half bridge ако примерно на 1-вия изход е 25%, на втория извежда 100% - 25% - Мъртвото време ). Предполагам, че тези с CWG или PSMC ще ми свършат работа, но засега търся такива с класическата PWM периферия.

Автор:  Desert Leo [ Сря Ное 06, 2013 8:59 am ]
Заглавие:  Re: PIC10,12,16,18 с PWM с изходи push-pull

HW PWM при 10-та и 12-та серии е рядкост, но виж 10F320/322 - 2 ССР модула и нито дума за half-bridge. Честотата на двата изхода е еднаква, защото използват общ таймер, но коефициента на запълване може да е различен.
При 16F88X също са два модула, като ECCP допуска единичен изход, който следва да е push-pull.
В момента не използвам тези серии и не следя развитието им, но не би трябвало да нямат търсената от тебе възможност.

Автор:  [ Сря Ное 06, 2013 10:16 am ]
Заглавие:  Re: PIC10,12,16,18 с PWM с изходи push-pull

Достатъчен ми е един CCP модул, но да може алтернативно да изважда един и същ коефициент на запълване на два различни изхода със съответното мъртво време. Честота на PWM от 200kHz до към 500kHz, разделителна способност не е особено важна - и 5 бита ме устройва. Например, за един период на PWM ми изважда 25% на Изход1, за втория период на PWM ми изважда същите 25% на Изход2. PIC16F88x не поддържат такъв режим на работа. Те поддържат half-bridge, което е различно, виж прикачените картинки. Подходящ за моите нужди е PIC16F1782 с PSMC модула, но ми се струва твърде нов. И CWG модулите също би трябвало да ми свършат работа, но все още си мисля, че ще се намери класически PIC за тази цел.

Прикачени файлове:
Коментар на файл: PIC16F1782 Programmable switch mode controller
PushPull.jpg
PushPull.jpg [ 41.92 KiB | Прегледано 6538 пъти ]
Коментар на файл: PIC16F88x PWM module with half-bridge configuration
PIC16F88x.jpg
PIC16F88x.jpg [ 59.72 KiB | Прегледано 6538 пъти ]

Автор:  Desert Leo [ Сря Ное 06, 2013 12:26 pm ]
Заглавие:  Re: PIC10,12,16,18 с PWM с изходи push-pull

Ако разбирам правилно, искаш да превключваш ШИМ-а алтернативно на два изхода при еднакъв коеф. на запълване, като един период излиза на единия изход, а следващия на втория и после пак на първия...
Ако използваш двата ССР модула и активираш прекъсване от Таймер 2 (обикнорено той задава периода на ШИМ-а), би могло в прекъсването да задаваш коеф на запълване 0 на единия и желаната стойност на другия. Това само като идея - не знам дали при теб е допустимо.

Автор:  Бай Ставри [ Чет Ное 07, 2013 7:38 am ]
Заглавие:  Re: PIC10,12,16,18 с PWM с изходи push-pull

Изображение

Автор:  didofen [ Чет Ное 07, 2013 9:42 am ]
Заглавие:  Re: PIC10,12,16,18 с PWM с изходи push-pull

и аз това щях да кажа: слагаш някакъв инвертор и получаваш 2 изхода

Автор:  Цецо [ Чет Ное 07, 2013 10:09 am ]
Заглавие:  Re: PIC10,12,16,18 с PWM с изходи push-pull

Преди много време търсих същото и никой от "долните" серии пикове нямаше тая възможност. Вече не следя модата в тая фирма, ама по-горните серии 24+ би трябвало да имат. Другия избор е някой куртекс, те по традиция са нацвъкани с какво ли не.

Автор:  [ Чет Ное 07, 2013 1:54 pm ]
Заглавие:  Re: PIC10,12,16,18 с PWM с изходи push-pull

Мислех си да добавя външни елементи, както Бай Ставри е предложил, но това решение има недостатък, че при коефициент на запълване около 45% ще липсва мъртво време, което може да се окаже фатално. После видях в документацията на PIC16F1782 че има всичко което ми трябва за DC/DC push-pull конвертор: 2 x OA ( 3.4 MHz GBWP ), 3 x Comparators, 6 x Push-Pull изхода, та се спрях на него. Цялата глупост е, че ми трябват 4 изолирани 15V/50mA захранвания за захранване на изолирани гейт драйвери, входно или +5V, или +15V, изолация 500V.

В сегашния вариант 2 x 15V ги изработва централния процесор dsPIC30F5015, но за 2 още не ми достигат ШИМ-ове ( от налични 8 ШИМ изхода съм заптисал 6, а в останалите 2 има бъгове, или не мога да ги подкарам ) и АЦП-та. Другите 2 ги изработвах от допълнителна намотка на индуктивността на step down с TL2575HV, на тестовите платки показаха отлични резултати, на фабричните платки няма повтаряемост, а при по-ниски входни на TL2575 изходите се сриват до около 9V.

Имам 4 варианта:
1. С LT3575 и VHP2 flyback трансформатор с регулиране в първичната намотка, 4 x 15V/50mA, цена около $15;
2. Push-Pull с SN6501/MAX253 и трансформатори WE 7603900xx / Murata 78253xxx, без регулиране, цена около $10;
3. TL494, VHP2 трансформатор, оптрони, за 2 x 15V/50mA, останалите 2 от dsPIC30F, цена около $10;
4. 1 x PIC16F1782 за 2 или 3 броя 5V към 15V/50mA push-pull конвертора, останалите 1 ил 2 от dsPIC30F, цена
около $8. PIC16F1782 ще мери и 3 температури и ще ги праща по I2C на dsPIC30F5015. Така ще ми
се освободят крачета на АЦП-то на dsPIC30F5015 за бъдещи разширения.

Най-изчистено e решението с LT3575 и VHP2. Направих обаче платка и с 4-те решения, да видим кое ще е най-удачно като цена/производителност. Вече като чуя за захранвания за гейт драйвери и ми се повръща :?

Автор:  Wise [ Чет Ное 07, 2013 3:44 pm ]
Заглавие:  Re: PIC10,12,16,18 с PWM с изходи push-pull

нещо такова
http://store.comet.bg/Catalogue/Product/9195/
не става ли?

//може и да не съм разбрал проблема....

Автор:  [ Чет Ное 07, 2013 4:42 pm ]
Заглавие:  Re: PIC10,12,16,18 с PWM с изходи push-pull

Става разбира се, само че е -40 ~ +85 °C а ми трябва решение до +125°C, освен това имам лош опит с тези канадски конвертори, на празен ход може да ти вдигне и 25V, при пълно натоварване загряват в повече, отколкото е по спецификация. На такива черни кутийки вярвам само ако на тях пише Murata или Traco.

Автор:  stoyanoff [ Чет Ное 07, 2013 11:42 pm ]
Заглавие:  Re: PIC10,12,16,18 с PWM с изходи push-pull

Ако съм разбрал правилно това, което се опитваш да направиш е напълно постижимо с контролера, който си избрал! dsPIC30F5015(както и другите с хардуерни PWM модули) може да контролира по отделно 2-та канала на half-bridge-a! Можеш да спреш единия и импулсите да излизат само на другия и обратно, както и всякакви комбинации!
Поздрави!

Автор:  [ Пет Ное 08, 2013 12:43 am ]
Заглавие:  Re: PIC10,12,16,18 с PWM с изходи push-pull

Не е толкова лесно, колкото изглежда. Решението, което предлагаш изисква непрекъсната софтуерна намеса, а точно това не желая. На всеки цикъл на PWM ( примерно 2us, при 500kHz ) ще трябва да спирам, да пускам, което не е сериозно като решение ( ще изяжда към 25% от процесорното време на 10MHz CPU clock ). Отделно така има опасност да наситя ферита, защото при push-pull SMPS трябва двете времена да са максимално еднакви. Единственото свястно решение, което намерих с dsPIC30F5015, е да използвам два PWM канала, например PMW1H го заплювам като първи изход ( Push ) , а PWM2L го заплювам като втори изход ( Pull ). Задавам еднакъв DeadTime на двата канала. В PDC1 зареждам примерно 25% DC и на PWM1H ще имам 25%, в PDC2 зареждам 75% и на PWM2L ще имам 100%-75%, т.е. пак 25%. Това определено ще работи като пушка, но за сметка на 4-рите PWM изхода от възможните 8 ( PWM1L и PWM2H са неизползваеми като PWM изходи, но мога да си клатя примерно светодиоди на тях :-) ). Единствено когато сменям DC трябва на PWM1H да зареждам DC, който съм сметнал, а на PWM2L да зареждам 100% - DC, като зареждането трябва да е синхронизирано с PWM цикъла, което е сравнително лесно постижимо. Всякакви други комбинации са невъзможни. PWM модула е с 8 изхода, но не мога да го спирам и пускам, защото два от каналите контролират други товари и не мога да спирам целия модул. Просто dsPIC30F5015 е предвиден за Motor Control приложения, а не за Push-Pull DC/DC конвертори.

Автор:  Desert Leo [ Пет Ное 08, 2013 8:06 am ]
Заглавие:  Re: PIC10,12,16,18 с PWM с изходи push-pull

Щом като ШИМ-а е за управление на захранване, въобще не мисля, че трябва да се добавя втори контролер и да се разделят каналите между двата. Направи си и 4-те захранвания с LT-то, а контролера само да следи има ли ги 4-те напрежения или не, но да не участва в регулирането. Сигналите от температурните датчици могат да се мултиплексират към един вход на АЦП-то. Едва ли температерата се изменя бързо.

Автор:  stoyanoff [ Пет Ное 08, 2013 9:40 am ]
Заглавие:  Re: PIC10,12,16,18 с PWM с изходи push-pull

Не е нужно да конфиш модула всеки път! Задаваш в началото на програмата каналите да са независими! После само ги сменяш. Самата смяна е много бърза. В твоя случай ще трябва да използваш и прекъсване в края на активната фаза. Иначе ще пускаш по 2 импулса. Поздрави!

Автор:  [ Пет Ное 08, 2013 3:34 pm ]
Заглавие:  Re: PIC10,12,16,18 с PWM с изходи push-pull

"Самата смяна е много бърза" - колко бърза ? 1 секунда ? 1 ms ? Все пак сме хора на техниката :-) Една инструкция ми е 100ns, за 2us при 500kHz PWM сметни колко ще ми отидат да влезна в прекъсване - 6 цикъла x 100ns = 0.6us, колко да излезна - мисля са 2 или 3 цикъла -> 0.3us, дотук станаха 0.9us, като изпълня и 5-6 инструкции в самото прекъсване и процесора на 75% ще е натоварен да генерира допълнителни захранвания. А имам още няколко прекъсвания.... Виж ако имаше push-pull SMPS PWM работата е съвсем друга, тогава PWM си се клочи сам на 500kHz, и control loop на няколко kHz си смята новия DC по PID закон в главната програма за 3us и толкоз. Не става така както го предлагаш, ако можеше да стане безболезнено нямаше да правя нови платки, щях да го реализирам на съществуващата вече платка. Освен това искам да си запазя ШИМ каналите за по-отговорни неща, а не да генерирам допълнителните захранвания. Затова и потърсих евтин PICxxxx, знам че мога да го направя всичко с един dsPIC33EP512MU810 обаче ще трябва да преправям 7 страници схеми, за да премина от 5V на 3.3V. Сега за сега разчитам на LT3575 да заработи добре.

Страница 1 от 2 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/