Новый регулятор скорости с реверсом
Раз никто не отвечает, поделюсь своим опытом. Скорее всего проблема в неправильном программировании. В PIC12F675 при выпуске заносят поправочную константу, необходимую для правильной работы внутреннего RC-генератора (который и используется в этом регуляторе). Константа заносится в последнюю ячейку памяти программ, т.е. по адресу 3FFh, в виде команды RETLW xx (где xx – сама константа). В программе командами
call 3FFh ;загрузить калибровочную константу
movwf OSCCAL
константа загружается в регистр OSCCAL, что и позволяет правильно работать внутреннему RC-генератору. После загрузки hex-файла регулятора по адресу 3FFh находится значение 3FFh. Поэтому программа просто зависает при обращении по адресу 3FFh.
Теперь перейдем к Вашим действиям. Перед программированием (или стиранием) PIC12F675 нужно считать память программ и записать на листочек значение из ячейки 3FFh. Далее стираем память PIC12F675, проверяем. Загружаем hex-файл регулятора. Изменяем значение в ячейке 3FFh на то, что Вы записали на листочек. Программируем. Проверяем. Всё!
Для тех, кто сначала стер PIC12F675 (так же как и я в первый раз). У меня в PIC12F675 по этому адресу было значение 3490h. Программировал с помощью IC-PROG и JDM-programmer.
Надеюсь помог тем, кто уже наступил или хочет наступить на этот граблик:)))
Успехов!
Привет.
Хочу поделиться своей разработкой. Немного сыровата правда, но я работаю над усовершенствованием программы.
Статью я выложил у себя на сайте (пока черновой вариант)
Сорри за рекламму.
вопросы и пожелания приму как здесь на форуме так и в гостевухе на моем сайте (только мыло оставляйте кому отвечать)
ну а потом заработал?
пока нет - я ещё новый пик не добыл, даже не знаю чего и делать - вдруг опять битый будет:))
пока нет - я ещё новый пик не добыл, даже не знаю чего и делать - вдруг опять битый будет:))
Ээээ ребята, а как вы определяте что пик битый?
Ну, симптомы какие?
В программе командами
call 3FFh ;загрузить калибровочную константу
movwf OSCCAL{}
Спасибо за развернутый ответ!
как попробую - отпишу.
Добавлено
вопросы и пожелания приму как здесь на форуме так и в гостевухе на моем сайте (только мыло оставляйте кому отвечать)
на какой максимально мотор рассчитано?
что за pic 16 f 684? (может pic 16 f 84?) да и нумерация выводов не помешает 😉
кто такие т1 т2 т7 т8, d1-d4 ?
кто такие 2SJ241 - ни в платане ни на chipinfo.ru не нашел.
CEB703AL - даташит на chipinfo.ru есть, а вот где купить?
может вместо 7805 все-таки стабилизатор из серии lm29xx подобрать?
максимальное напряжения акков какое? мне например 12v хоцца. 😉
Спасибо за развернутый ответ!
как попробую - отпишу.Добавлено
на какой максимально мотор рассчитано?что за pic 16 f 684? (может pic 16 f 84?) да и нумерация выводов не помешает 😉
кто такие т1 т2 т7 т8, d1-d4 ?
кто такие 2SJ241 - ни в платане ни на chipinfo.ru не нашел.
CEB703AL - даташит на chipinfo.ru есть, а вот где купить?
может вместо 7805 все-таки стабилизатор из серии lm29xx подобрать?
максимальное напряжения акков какое? мне например 12v хоцца. 😉
Пик 16ф684 это из новых ww1.microchip.com/downloads/en/…/41202C.pdf
кстати если я следующую разработку сделаю на dsPIC30Fхххх вы тоже будете искать сходство с 84?
пик который 84 потихоньку выдавливают с рынка как ценой так и более удобными братьями. рекомендую к примеру pic16f628a он и дешевле и намного богаче по периферии встроенной
транзисторы смд - те которые найдете. имхо на частоте 8 кгц проблемм не будет, да и токи там не смертельные. если точно то под рукой оказались
pnp - mmbt2907a ( маркировка 2F> )
npn- mmbt2222a ( маркировка 1P )
Транзисторы полевые можете взять любые (серьезно) но прошу помнить что именно они и ответят на ваш вопрос про максимальный ток и напряжение (заодно и где купить). Я брал то что было под рукой (описано в статье - снял с битых материнских плат от пс.)
Транзисторы должны управляться логическим уровнем ( напряжение на затворе для полного открывания <=4в ) сопротивление открытого канала как можно меньше - от этого зависит нагрев и потери мощности, постоянный прямой ток 20+ ампер, напряжение максимальное 30+ в.
КА7805 использовал потому что были, подобрать lm29xx можно, но в чем ее преимущество? в том что она лоудропаут? это важно при питании от 6 и 7 вольт, если напряжение разряженых аккумуляторов просядет до 7 вольт - уже можно использовать 7805 (у меня на машинке 8 баночек, банками назвать рука не поднимается)
испытывал от 18 вольт, на токе до 1 ампера - более мощного двигателя под рукой не нашлось.
д1-д4 диоды с быстрым восстановлением или шоттки (а точнее я их не поставил даже. )
ЗЫ схему исправил. добавил номерацию и номиналы, обновлю вечером.
Пик 16ф684 это из новых ww1.microchip.com/downloads/en/…/41202C.pdf
кстати если я следующую разработку сделаю на dsPIC30Fхххх вы тоже будете искать сходство с 84?
ну зачем так болезненно реагировать? ну что такого в том, что я не знаю что это новый пик? исходя из соображений доступности - его в нашей деревне пока не купить и не заказать.
транзисторы смд - те которые найдете. имхо на частоте 8 кгц проблемм не будет, да и токи там не смертельные. если точно то под рукой оказались
pnp - mmbt2907a ( маркировка 2F> )
npn- mmbt2222a ( маркировка 1P )
вот и ладушки. в схеме то обозначений небыло - отсюда и вопрос.
[quote;121813]ЗЫ схему исправил. добавил номерацию и номиналы, обновлю вечером.
[/quote]
ок.
ну зачем так болезненно реагировать? ну что такого в том, что я не знаю что это новый пик? исходя из соображений доступности - его в нашей деревне пока не купить и не заказать.
хммм
попробую решить вашу проблемму
у микрочипа в россии есть довольно неплохой информационный сайт и достаточно хороший форум. Там часто обсуждаются как довольно сложные вопросы (по самым новым пикам) так и грабли на которые наступают все (для подобных вопросов есть поиск по форуму)
Там уже обговорены все варианты самодельных программаторов и иже с ними
Но… Серьезные разработчики тоже люди и при правильном подходе вполне войдут в положение человека из деревни и очень даже прошьют кристалл(заодно и купят его в столице) на родном программаторе и вышлют почтой . Имхо по россии это не дорого.
Адрес форума www.microchip.ru/phorum/list.php?f=2
Кстати критика принимается - я действительно довольно небрежен в оформлении документации. У нас на заводе даже перенос оборудования (тяжелых пресов например) производится без чертежей и размеров.
да, для этой разработки я делал генератор ппм на pic12f675 - этакий сервотестер, но с учетом того что у этого пика 4 входа АЦП легким движением руки сервотестер превращается…сервотестер превращается… в 4х канальный цифровой ппм кодер… (где вот только джойстики взять и передатчик)
хммм
{}
Адрес форума www.microchip.ru/phorum/list.php?f=2
{}
да, для этой разработки я делал генератор ппм на pic12f675 - этакий сервотестер, но с учетом того что у этого пика 4 входа АЦП легким движением руки сервотестер превращается…сервотестер превращается… в 4х канальный цифровой ппм кодер… (где вот только джойстики взять и передатчик)
а случайно легким движением руки сервотестер не превращается в контроллер сервы? 😉 а то есть несколько серв с дохлой электроникой…
А, захотелось легко заполучить цифровую серво ?
А, захотелось легко заполучить цифровую серво ?
цифровая - это прошивка должна быть очень сильно заточена под конкретную модель механики. и вылизана до последнего байтика 😉
имхо конечно.
мне бы поуши хватило бы чтоб это по скорости работало на уровне стандартного серво.
ps: а вот вашего вопроса я в принципе не понял. что вы хотели этим сказать?
кому нужно в принципе ваше высказывание? или это попытка устроить флейм?
если хотели о чем-то предупредить dynaco то надо было написать ему в личку наверное…
Ну если вопроса не поняли, то и отвечать было не нужно… 😃 Извините, обижать не хотел.
Я просто копал в этом направлении, и схему паял и софт писал, даже работает, но того, чего хотелось, так и не получил, просто дело было летом, времени жалко на это дело было, летать хотелось…
Я просто хотел сказать, что на самом деле не так легко написать софт для этого дела. Но в процессе написания и отладки, появился ряд идей, появится время, обязательно реализую.
Вот, даже софт могу показать, схемы на работе нету, где то дома валяется. Да и что там схема - пик+питание+мост
Ну если вопроса не поняли, то и отвечать было не нужно… 😃 Извините, обижать не хотел.
все. замнем для ясности. 😉
Я просто хотел сказать, что на самом деле не так легко написать софт для этого дела. Но в процессе написания и отладки, появился ряд идей, появится время, обязательно реализую.
я вот как раз это все понимаю - лично у мя очень мало опыта по програмированию под пики. вот и спросил.
[quote;121957]Вот, даже софт могу показать, схемы на работе нету, где то дома валяется. Да и что там схема - пик+питание+мост
[/quote]
общая концепция схемы ясна. эта прошивка работает хотя бы как стандартное серво? если совсем не влом будет - черкани поподробнее схему на всякий случай… ( в принципе из файла все вроде понятно, но на всякий случай 😉
оооох
начнем с плохого
пик есть 8 мибитный контроллер который медленно умножает (очень медленно). Для отработки скорости и положения нужно завести обратные связи по току и положению, можно еще бемф мотора мерять. Но все это дополнительная обвязка. В качестве драйвера двигателя теоретически можно использовать драйвер мощного фет транзистора гдето на сайтах роботеров я видел применение какогото максима. Далее обьем кода. Я как то раз подключал асмовские библиотеки с плавающей запятой для логарифмов и еще пары действий - вылез за 3 килобайта. Если писать на си - компилятор с оптимизацией вталкивает это в килобайт - полтора. ну и плюс механика. Короче - я с удовольтвием поучаствую, но я был плохим студентом и тау проспал, заодно и половину привода.
Да - если нужно - то всЁ какоето можно поискамши заменить на конкретные названия
pdfserv.maxim-ic.com/en/ds/MAX4426-MAX4428.pdf вот эти спаренные 1.5а максимальный ток, дип8
максим высылает пару микросхем разработчикам бесплатно
до 8 типов за раз (16 корпусов) =))
Добавлено
Сорри, ни схему ни новую прошивку я так и не выложил.
В новой версии программы оказалась маленькая ошибочка которая уже исправлена. Сегодня приду с работы и проверю программу, если все будет ок - будет обновление.
офтоп - поставил себе халфлайф2 =) я просто приятно поражен. играл до пол четвертого утра. Теперь вот пью кофе…
Вот, как и обещал, схемы
Первая, это та, на которой я экспериментировал, вторая - проект. Главный недостаток первой, не излишнее количество “ненужных” элементов (резисторы там лишние, еще кое что), они нужны для защиты, в первой схеме отсутствует тормоз. Из за этого качалка сервы чуть пролетает нейтраль и возвращается на место. Боюсь, что практического применения ни схема ни софт не имеют. Все нуждается в доработке. Меня еще мучают сомнения в необходимости PWM для управления мотором. Думаю, что без арифметики с плавающей точкой в данном случае обойтись можно, а складывает, вычитает, умножает и делит на 2 PIC быстро.
Комментарии по второй схеме - приветствуются. Например, D1 - там не нужен, он “встроен” в PIC. X4,X5,X6 - контакты для переменного резистора (X4-ползунок). X1,X2 - питание, X3 - сигнал. X7,X8 - электродвигатель.
PS
А ТАУ я тож подзабыл уже, надо будет лекции перечитать, но как не хочется ворошить прошлое 😃
я вот тут чего удумал. У пика ножки свободные остались.
Можно на них сигналы тормоза и реверса повесить. Ну белый фонарь при заднем ходе и сигнал на красные фонари при снижении скорости.
Кстати я порылся по тем транзисторам которые доступны и чтобы цена не кусалась вот к примеру IRF1405 170A выдерживает, и сопротивление у него 0.01 ома (реально там еще меньше - чтото около 0.007) открывается полностью напряжением большим чем 4.5 вольта.
короче следующий буду делать с бутстрепной цепочкой и транзисторы одинаковые. Единственное ограничение будет минимальное напряжение питания 7-8 вольт для стопроцентной гарантии открытия транзисторов.
Опобровал прошивку с нелинейным регулированием - не понравилось.Себе вернул линейный вариант, а на сайте выложу оба.
хочу обсудить алгоритм безопасности. А то в моем коде вы можете не разобраться.
При старте контроллер производит конфигурацию всей периферии и счетчик подтверждения у станавливается в 100 - ровно столько ППМ импульсов нейтрального (1.5мс) положения ждет регулятор для подтверждения безопасного включения. это приблизительно 2 секунды нужно продержать регулятор в нейтрали. Если из-за потери сигнала будут пропущены 3 ППМ импульса подряд то вотчдог сбрасывает контроллер - ну и все с начала. Двигатель останавливается и ждет 2 секунды в нейтрали чтобы начать работу.
Времена - предмет обсуждения и изменения по желанию трудящихся
Только уж нужно ждать не четко 1,5 мс импульсов, а там ±5%, а то не дождешся никогда 😃
Народ, может кто подскажет схему JDM программатора? а а то не чем пик этот шить… 😊
ищи усовершенствованный вариант JDM с отключением Vdd - а то серия 12ф будет глючить
Вот, как и обещал, схемы
Первая, это та, на которой я экспериментировал, вторая - проект.
Комментарии по второй схеме - приветствуются. Например, D1 - там не нужен, он “встроен” в PIC. X4,X5,X6 - контакты для переменного резистора (X4-ползунок). X1,X2 - питание, X3 - сигнал. X7,X8 - электродвигатель.
Думаю выходной каскад лучше сделать несколько иначе. Кварц это намёк на генератор.