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

Куриоз с 12F675
http://mcu-bg.com/mcu_site/viewtopic.php?f=2&t=6448
Страница 1 от 1

Автор:  optron [ Пон Яну 12, 2009 1:25 pm ]
Заглавие:  Куриоз с 12F675

Такааа - да ви разкажа аз за една интересна случка. Такова нещо не съм виждал досега.
Правя контролер за стъпков двигател с този процесор. Като добавя съответна периферия, става драйвер за уни- и биполярни двигатели.
Направих една малко изчанчена схема за биполярен двигател, с тразнистори по схема емитерен повторител - може да се каже, че се получи комплементарен емитерен повторител - един НПН отгоре и един ПНП отдолу. Всъщност това си е чисто усилвателно стъпало по ток. Извинявам се, не мога да чертая схеми в момента. Идеята е да захравя двигателя с 5 волта, ползвайки 12-волтова шина и по този начин аз просто повтарям напрежението от изходите на процесора и си усилвам по ток. Използвам изводи ГП0,1,2 и 5 за управление на транзисторите, а 3 и 4 ми са съответно за посока и стъпка.
При тази схема е трудно да измисля диодна защита от индукция, затова и не съм направил такава. Приемам, че на моменти ще ми се ресетва процесора и това го преглътнах - така или иначе, това е само прототип, който по-късно ще доразвия - сега проучвам принципа. Обаче (тази дума я мразя понякога!) ...
Оказва се съвсем друго. При определена комбинация на фазите, ГП5 самоволно изпада в трето състояние ... В първия момент не можах да го открия това и започнах да си мисля, че ми е цъфнал някой транзистор, щото на практика ги клатя в активен режим и е възможно да е прегрял - както казах, пробвам принципа. Бърз тест на транзисторите ми показа, че са здрави до един. Накрая, с много измервания дори и в движение стана ясно, че единия край на едната намотка на двигателя остава висящ, тоест, работят само три от четирите стъпала. И оттам нататък, тръгвайки назад опрях до този пин на процесора (напълно логично, щото друго няма). Окзава се, че той изпада в трето състояние и аз не знам по каква причина. И остава в това състояние, докато не го ресетна - нищо друго не го връща в активно състояние. Ясно е, че е от смущение от двигателя, обаче как то ще влияе на ТРИС-флага не ми е ясно. И дали всъщност влияе точно на ТРИС !?
В крайна сметка аз си реших проблема, като преместих ролята на този пин на друг. Така схемата тръгна и точно по моите очаквания, понякога си се ресетваше, заради смущенията от двигателя, но вече можех да си продължа изследванията. Впрочем сравнително добра защита се получи, като опънах изходите на стъпалата на драйвера към маса през резистори. В случая говорим за малък двигател - той консумира по около 200 милиампера за всяка намотка. Конкретно използвах резистори от по 100 ома, които да отвеждат евентуална самоиндукция към маса. Стана, сега работи стабилно. Не смея да слагам диоди към 5-те волта, защото на тази шина имам съвсем малко консумация и лесно може да се направи пиково пренапрежение от индукция. А ако ги сложа към 12 волта, става безсмислено, защото пак ще се получават тези смущения на пиновете на процесора.
Сега, ще кажете, че схемата е в разрез с всякаквите правила за буфериране на изходите и т.н. Да, това е вярно, както вече казах - изпробвам принципа. После вече като готово изделие, ще си поставя съответните буфери, вероятно с операционни усилватели, свързани като повторители или пък като тригери или нещо си ... Моята дума беше за конкретния пин, който изпада самоволно в трето състояние, ако се използва като изход. Като вход е идеален (естествено). Възможно е и други да са попадали в такава ситуация или тепърва да попадат, аз просто исках да го знаете това ... :)
Весели празници на всички, които още не са празнували този месец. ;)

Автор:  Zeus [ Пон Яну 12, 2009 2:42 pm ]
Заглавие: 

Виж дали си установил порта като дигитален. Гледам че GP0,GP1 а GP3 се позват и от АЦП-то.

Автор:  WDW [ Вто Яну 13, 2009 12:01 pm ]
Заглавие: 

Привет! :wink:
Преди време и аз имах същия проблем с този контролер!
Пина го ползвах за изход за реле и по незнайна причина се държеше по същия начин.
Преналивах го и за известно време се оправяше, после смених контролера и няколко месеца си работеше.
Накрая реших проблема като теб - смених изхода на друг пин, а този го ползвах за вход. Даже някъде из руските форуми си казваха директно,че тоя е добре да се ползва само за вход.
Но виж сега съм позабравил кой точно беше.
Поздрави! :roll:

Автор:  Cekins [ Вто Яну 13, 2009 3:26 pm ]
Заглавие: 

И как успя да накараш GPIO3 да работи като изход ?!?!?!?! И с тоя чип имам направени едни дистанционни - изхода към радиото е точно на GPIO5 - епа никога не е имало проблем. А дистанционните са 10-15 - не че са кой знае колко много ама ... Нещо конфигурацията му е объркана явно.

Автор:  Syrius-B [ Вто Яну 13, 2009 4:56 pm ]
Заглавие: 

Някой от изходите беше опен дрейн - иска съпротивление към плюс, ако се ползва кото изход

Автор:  optron [ Сря Яну 14, 2009 12:22 pm ]
Заглавие: 

Zeus написа:
Виж дали си установил порта като дигитален. Гледам че GP0,GP1 а GP3 се позват и от АЦП-то.
Но не и ГП5. В първия момент и аз си мислех нещо такова, обаче няма флаг за този пин. А и в началото работи като изход, после изпада в трето състояние ...

Автор:  optron [ Сря Яну 14, 2009 12:28 pm ]
Заглавие: 

Cekins написа:
И как успя да накараш GPIO3 да работи като изход ?!?!?!?! И с тоя чип имам направени едни дистанционни - изхода към радиото е точно на GPIO5 - епа никога не е имало проблем. А дистанционните са 10-15 - не че са кой знае колко много ама ... Нещо конфигурацията му е объркана явно.
Не съм казвал, че правя ГП3 на изход. ;)
При теб няма проблем, вероятно защото командваш информационен вход. Почвам да си мисля, че явно това е проблемът в случая - като го напънеш с базов ток на някой транзистор и кляка. Мисля така, щото като съм откачил двигателя, проблеми няма - закачил съм светодиоди на изходите на стъпалата и си светкат както трябва. Но щом закача двигателя, сещате се, че вече трябва повечко базов ток, за да се управлява стъпалото ... и тогава сгъва.

Автор:  optron [ Сря Яну 14, 2009 12:37 pm ]
Заглавие: 

Syrius-B написа:
Някой от изходите беше опен дрейн - иска съпротивление към плюс, ако се ползва кото изход
Не и на този чип - поне в даташита му не съм видял никъде да пише за изход с отворен дрейн.
Знам, че примерно 16F84 има един такъв. Каква точно е идеята на изход с отворен дрейн, при условие че въпреки всичко има вътрешна диодна защита не схващам честно казано ... :? С други думи примерно този изход не мога да го дръпна към по-високо напрежение, както ще стане ако командвам транзисторен ключ примерно ...

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