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

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.

Vitec

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

Aleksey_Gorelikov

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

Vitec

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

Vitec

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

leprud

Есть

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

Neman2000
ubd:

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

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

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

Потапчук.rar

Aleksey_Gorelikov
Neman2000:

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

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