Программирование контроллеров

ubd

rcopen.com/forum/f8/topic174497/41

Вот здесь пост № 46, схема выходного каскада с примером подключения к процу. Та схема, с теми транзисторами, ампер 12-15. Если транзисторы поставить по слабее то ток меньше будет. Можно в SO-8 корпусе (IRF7413 в паре c IRF7416), ампер 6-7 потянет.

Vitec

Ну, я посмотрел ту схему. Я почему-то привык, что если проводники нарисованы накрест и там не точки, то они электрически изолированы, а если точка есть - то электрически соединены. Это учтено на предлагаемой схеме? Просто там в архиве ещё схема, где этого точно не учтено. Я таким схемам не доверяю. А что значит буква Е рядом с номиналом резистора (например, 10Е)? Насколько я знаю, что номинал в Омах обозначается цифрой без букв.
Драйвер для полевого транзистора нужен когда его нагрузка близка к максимальной или вообще всегда?

nigyl

Хотелось бы снова возобновить свой вопрос… задавал я его пару месяцев назад…
можно ли на базе АЦП с цифровыми портами сделать свой программатор? ну или хотя бы просто прошить один контроллер, который будет в программаторе?

ubd

Ну, я посмотрел ту схему. Я почему-то привык, что если проводники нарисованы накрест и там не точки, то они электрически изолированы, а если точка есть - то электрически соединены. Это учтено на предлагаемой схеме?

Та схема которая в хорошем качестве, это моя схема, там всё точно 100 пудов. И где перекрест проводников без точки, это просто перекрест без контакта, а с точкой это соединение.
Схема которая в плохом качестве, это исходная схема, и она то же правильная, её куча народу собрала, всё работает. Если у тебя нагрузки не большие 2-3А, то можешь выходной каскад взять из этой схемы которая в плохом качестве. Если токи 7-8А и выше, то только с драйверами.

Номинал в омах могут обозначать как буквой Е, так и просто цифрой. Просто цифройЮ это пошло с соведских времён, тогда такой был стандарт, в журналах “радио” омы ни как не обозначали, просто цифра. Импортное обозначение, которое встречается сейчас очень часто - буква Е.

можно ли на базе АЦП с цифровыми портами сделать свой программатор? ну или хотя бы просто прошить один контроллер, который будет в программаторе?

Как понять свой программатор? Тебе трудно собрать уже по готовой схеме? Схемы рабочие и легко повторяемые. И зачем в программаторе использовать АЦП? Они там не нужны, там чисто цифровой сигналл - 1 или 0.

Если тебе нужно просто прошить один контроллер, то проще собрать программатор по готовой схеме, по другому ни как. В любом случае к компу подсоединять.

msv

можно ли на базе АЦП с цифровыми портами сделать свой программатор? ну или хотя бы просто прошить один контроллер, который будет в программаторе?

Вопрос достоин быть в номинации “самый красивый вопрос ветки”? Голосуйте…

nigyl
ubd:

Как понять свой программатор? Тебе трудно собрать уже по готовой схеме? Схемы рабочие и легко повторяемые. И зачем в программаторе использовать АЦП? Они там не нужны, там чисто цифровой сигналл - 1 или 0.

.

перечитайте мой вопрос…я специально пометил…что на моем модуле есть цифровые порты… а если вы не в курсе, это и есть 1 и 0…
вот я и спрашиваю…можноли прошить контроллер посылая 1 и 0 не с программатора а со своего модуля АЦП-ЦАП…

EagleB3
nigyl:

а если вы не в курсе, это и есть 1 и 0…
вот я и спрашиваю…можно ли прошить контроллер посылая 1 и 0 не с программатора

А вот вы нам и расскажите, можно или нет. Для этого Вам, правда, придется углубленно почитать раздел “программирование по SPI” даташита того контроллера, который Вы собираетесь программировать. И, возможно, написать свою собственную программу для управления Вашим модулем - должен же ему кто-то скомандовать скока нулей и единиц посылать, куда, когда…

nigyl

на счет программок для модуля проблем нет…
а вот проблемка такая…
каким образом на контроллеры подается прошивка? с какой то частотой? и т.д…
грубо говаря…расскажите мне последовательность импульсов на какойнить контроллер… К примеру ATmega16…или любой другой атмел

mikki
nigyl:

вот я и спрашиваю…можноли прошить контроллер посылая 1 и 0 не с программатора а со своего модуля АЦП-ЦАП…

У тог пика что у Вас отсутствует возможность доступа с своей флеш памяти из программы. Поэтому максимум что Вы сможете - подключить колодку для внутрисхемного программирования.
Если хотите менять программу на лету или менять большие массивы данных, хранимых в памяти программ - используйте PIC16F7хх или старше.
Погуглите бутлоадер для PIC - очень удобная штука))).

EagleB3
nigyl:

К примеру ATmega16…или любой другой атмел

Все расписано в даташите, в разделе “Программирование по SPI”. Возьмите Евстифеева, (Микроконтроллеры AVR семейства Mega. Руководство пользователя. Евстифеев А. В.), которая представляет собой по сути перевод даташита. И читаете. Раздел 14.2, стр.518.

msv

Александр, наверное я один понял Ваши вопросы. (другие пытаются найти серьезные ответы…) А звучат они примерно как - “можно ли управлять кнопками микроволновки стиральной машиной”? Ответ без сомнения- “Да”! Там же везде 0-ли и 1-цы…

nigyl

msv, то что у вас с чувством юмора все нормально я понял… но вы как раз единственный не поняли мой вопрос)))
Суть была не можно ли… А КАК?.. говорить вашими же сравнениями… кнопки со стиральной машины надо как то же пере подключить? или вам не надо, они и так работают?😃

msv

Без иронии, искренне рад, что Вы поняли, что мой ответ - шутка. Хотите верьте, хотите нет, но я удалил окончание своего последнего сообщения, уже отредактировав написанное, посчитав избыточным: “Осталось только узнать- как?”.
Вы задаете вопрос- “можно ли с помощью одного контроллера (причем не указывая его), запрограммировать другой?”. Какой ответ Вы ожидаете?

ubd

Я тут задался вопросом, по поводу сброса Сторожевого таймера в BicBasic. Оказывается компилятор PICBasic, втавляет процедуры сброса таймара WDT, везде, что бы проц не завис. Так же есть комманда в компиляторе CLEARWDT, что бы делать сброс дополнительно, в случае если имеются подпрограммы на ассемблере.

Вот что написано в книге Ч. Хелибайка:

Внутренние ассемблерные процедуры всех команд РВС и
РВРго обнуляют содержимое сторожевого таймера, так что сброса микро-
контроллера не происходит, если ваша программа работает нормально.

msv

Сергей- лишний повод переходить на асм/с… “Чем больше компилятор делает за программера, тем меньше возможностей остается у программера”- (с) я…

ubd

Сергей, я согласен. Но у меня мозгов не хватает да же на СИ для АВР. А куда мне до асма…

8 days later
Shah

Привет всем! Помогите с вопросом пожалуйста!
Имеется простой програматор на ЛПТ
Программа CodeVisionAVR
И hex файл!
В дебри програмирования мне лезть не нужно, мне просто нужно прошить контроллер, впаянный на плату. Кстати сконектить уже смог и фузы считать тоже.
А мне нужно просто прошить hex файл. Подскажите пожалуйста, где и куда нажимать!

EagleB3

Лучше всего воспользоваться соответствующей главой из книги “CodeVision AVR, Пособие для начинающих” (автор - Лебедев М. Б.).

Если лень - то советую такой порядок:

  1. Запускаешь CVAVR, указываешь тип своего программатора и его настройки (Settings -> Programmer. Впрочем, если фузы ты читал через CVAVR, то, наверное, все уже настроено).
  2. Запускаешь интерфейс программатора (жмешь Shift+F4)
  3. Выбираешь тип своего контроллера
  4. Читаешь сигнатуру контроллера = убеждаешься, что программатор работает, камень доступен и готов.
  5. Читаешь фузы (Read -> Fuse Bits). Будет предложено принять их за текущие настройки - есть смысл согласиться.
  6. Загружаешь свой hex (File -> Load Flash, тип файла = Intel HEX)
  7. Изменяешь фузы по потребности и ставишь над ними галочку “Program fuse bits”. Галочку ставишь только тогда, когда нужно изменять текущее состояние фузов. В остальное время галочку лучше держать снятой!!!
  8. Внизу отмечаешь галочки Check Signature, Check Erasure, Verify
  9. Любые другие установки и значения изменяешь с “умолчаний” только если точно сознаешь что ты меняешь и зачем!!!
  10. Еще раз проверяшь установку фузов.
  11. Программируешь все сразу (Program -> All) или последовательно:
    Program -> Erase Chip
    Program -> Blank Check
    Program -> FLASH
    Compare -> FLASH (если будут различия - повторить операции начиная с Program -> Erase Chip)
    Program -> Fuse Bit(s) (только если нужно!)
    Program -> Lock Bit(s) (только если действительно нужно!!!)
Shah

Спасибо за доходчивый ответ!!! Буду пробовать!

14 days later
Vitec

В ваших регуляторах хода тяговый электродвигатель отключается при понижении напряжения аккумулятора до некоторого предела . Как это сделано?

ubd

Сигнал о выключении моторов приходит на 4ю ногу. Это нога сброса MCLR. Когда напряжение достигает чуть меньше чем напряжние стабилизации L7805, транзистор VT1 закрывается и 4 нога оказывается на минусовом потанциале, происзодит сброс микроконтроллера, и программа начинает работать за ново, т.е. она начинает ожидать нейтраль на канале упраления. Как только ручку перевести в нетраль, можно опять давать ход, но до тех пор пока напряжение опять не достигнет уровня напряжения стабилизации 7805.