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

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.

Vitec

Реально ли заставить микроконтроллер проигрывать звуковые файлы с карты памяти? Может быть, использовать части от MP3 плееров? Может есть готовые блоки программ для декодирования VAW или MP3? Мне нужно, чтобы контроллер воспроизводил тот или иной файл в зависимости от входных сигналов.

Aleksey_Gorelikov

Надо больше читать! 😃 Конечно реально. Воспользуйтесь поиском по “слоновий радиомаяк”. Он как раз это и делает. Исходники открыты.

Vitec

А есть описание самого протокола передачи данных с карт памяти?

Vitec

Если бы слово “Есть” было ссылкой, то меня этот ответ устроил бы.

leprud

Есть

😃
Виктор, ну гугл же кучу всего ищет, в том числе и готовые проекты под совешенно разнообразные контроллеры и схемы!
Вот первая же ссылка по вашей тематике

Neman2000
ubd:

Там всё ровно нужно знать архитектуру проца. Конечно если просто светодиодом помигать, то архитектуру знать не нужно, а если что то серьёзнее то нужно.

В этом отношении проще всего PIC-Basic, там архитектуру знать не нужно. Всё просто и очень стабильно работает. Я на этом языке уже наделал кучу полезных схем, из них есть регулятор хода с реверсом, и многое другое.

Скажите,как человек не имеющий представления об архитектуре пользуемого
микроконтроллера напишет для него программу?
Это типа того как ехать на любом автомобиле-компиляторе по незнакомым улицам(архитектуре) города-процессора!
Поэтому ИМХО - архитектуру надо знать независимо от инструмента-компилятора.
Один умнейший в этом деле человек(ник- urry),убедительно советовал начинать с
зазубривания даташита выбранного контроллера,с последующим узучением именно ассемблера,советовал за все про все 6 месяцев на постяжение для среднего интелекта,а уже потом можно и Си подергать.

Потапчук.rar

Aleksey_Gorelikov
Neman2000:

Один умнейший в этом деле человек(ник- urry),убедительно советовал начинать с
зазубривания даташита выбранного контроллера,с последующим узучением именно ассемблера,советовал за все про все 6 месяцев на постяжение для среднего интелекта,а уже потом можно и Си подергать.

Зазубривать вряд ли надо. Надо даташит читать. Причем - достаточно один раз бегло, чтобы представлять где что описано, а далее - более вдумчиво те разделы - перефирия которых интересует, и в тот момент, когда вы этой перефирией начинаете пользоваться. Изучать и писать ИМХО проще сначала на языках высокого уровня. Зазубривать даташит - не имеет смысла, потому что завтра захочется переползти на другой проц (пусть даже из этого семейства - регистры могут измениться), или на друго производителя. Конечно понимать ассемблер пика и переползать на АВР, к примеру, это лучше, чем начинать с нуля, но временные затраты не оправдываются. На низкоуровневое программирование надо замахиваться ИМХО лишь в тогда, когда “уперлись” в объем памяти\производительность\ скорость.
Учите С. Более универсально. И с одного производителя на другого перескочить - поменять дефайны только. И для большого компа может когда-нибудь что-то написать придется - тоже плюс.

ubd

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

Напишет. Смотря какую, и на каком языке. Я же говорил, что если что то простое, светодиодом помигать, или подобное что то, то знать архитектуру особо не нужно. Особенно если язык высокого уровня. Если писать большую много функциональную прогу, то тут уже хоть как даташит будешь курить, и апноуты. Особенно если писать на асме.
Алексей правильно говорит, что начинаешь архитектуру изучать, по мере надобности. У меня так и получается. Вот понадобился мне аппаратный ШИМ модулятор, я прочитал о нём всё, теперь шарю, и применил его естественно в своей схеме регулятора хода. (Кстати вот: rcopen.com/forum/f8/topic127064/81 пост №113) Программа это регулятора, полностью написана на высокоуровнем языке (PIC Basic), при этом вопросы по внутенней архитектуре проца, затрагивались очень слабо, только то что нужно для работы этой программы. Всё заменя сделал компилятор. Тем не менее работает офигенно! Ни одного глюка. На этом регуляторе, уже чемпионский титул почти завоевали. И времени на написание программы ушло очень мало.
Коненчно, мне языка PIC Basic не хватает. Всё ни как не могу собраться с силами и перейти на СИ для АВР. Но цель есть, в ближайшее мремя нужно переходить. Книжку только хорошую купить бы. Только в электронном виде не нужно, т.к. читать не удобно, лучше всего когда книга в реальном, бумажном исполнии. Усвоение реальной книги гораздо лучше чем в электронном виде.
Алексей, может быть посоветуешь, книжку для начинающих, что бы с примерами программ ну и всё такое…

Aleksey_Gorelikov

не посоветую!.. Посоветую хелп из кодевижин. Ну и обращайся если что…

Neman2000

О кодвижне самая разжеванная книга Лебедева,можно скачать вместе с диском-110 МГб,а потом распечатать( 2листа на одном) и сшить- …mylivepage.ru/…/364_Микроконтроллеры_и_ПК ,можно и купить- www.ozon.ru/context/detail/id/4877459/ ,еще по кодвижену архивчик крепанул,
софт лучше старый,двоечные поговаривают глюконатные,код она делает конечно покомпактней чем пикбесик, плюс визард отличный , но раза в два три больше чем иар или винавр,но с последними начинающему ж…па полная если что нить стоящее
делать,уж тогда проще и компактней асм.
Конечно это все ИМХО,основанное на моем небогатом опыте-игрался с исходником регулятора на пике629 и тини13,прикручивал его с небольшой адоптацией к хайтеку_пик629,к иару_тини13 и содвижну_тини13,на хайтеке_пик629 код-220байт,на иаре-320байт на содвижне-790байт,реально на кодвижне оптимизация очень не в дугу!
ИАР пробовал 3,4 и 5 версий ,при макс. оптимизации обьем кода был примерно одинаков,
Хайтек пользовал от Иваныча STDv9.60PL3 ,очень понравился-код компактнейший,но с кодвижн проще,например LCD в легкую прикручивается т тд… ,в хайтеке для пиков не представляю как это сделать? Вообще по отзывам много народу на кодвижене сидит,вроде не такой “глюконат” как фловкоде,из плюсов визард для начинающих,из минусов код не компактный!

CVAVR.rar

EagleB3

urry - мужик авторитетный. Но эта его рекомендация - обязательна для профессионалов и для высокотворческих личностей, желающих творить шедевры и выжимать из камня все, на что тот способен.

Всем прочим настоятельно рекомендуется знать архитектуру в общих чертах - что у камня есть в принципе и для чего оно может пригодиться. Остальное - по мере надобности и стремления к совершенству.

15 days later
PigTail

А ни у кого работоспособной ссылочки на версию CVAVR постарше 2.04.4а не случится? Киньте в мыло pigtail собака inbox.ru , будучерезвычайно признателен, а то уже копчик к стулу прирос, а найти немогу 😦