программирование ATMEGA88 AHD6v2
Помогите разобраться, при попытки прочесть или запрограммировать выводит это сообщение:avrdude.exe: предупреждение: не удается установить период sck. пожалуйста, проверьте наличие обновления прошивки usbasp.
avrdude.exe: ошибка: включение программы: цель не отвечает. 1 avrdude.exe
: ошибка инициализации, rc=-1
Дважды проверьте соединения и повторите попытку или используйте-F для переопределения
Перемычка на медленное программирование установлена, питание и 5 и 3.3 вольта без изменений. в чём причина, подскажите.
обновите прошивку программатора
usbasp.2011-05-28.tar.gz 519Кв использовать из этой папки обновление? (скачал из оф. сайта) прошил из AVRprog программатором AV910 так он вообще перестал определяться и не горит светодиод который раньше горел. Всё убил программатор? или есть шанс восстановить.
не исключено, что ошибка была из-за того что ваш экземпляр ATMEGA88 был сконфигурирован на работу с внешним клоком (чипы из ЧиД все такие, постоянно это всплывает), или просто ATMEGA88 левак.
Да брал в ЧД. Спасибо Вам огромное за помощь.
Прошил Atmegu88PA использовал эту прошивку (AH-D6-mko-ak4490-firmware-v2.1-atmega88-1mhz), веривификацию и программирование прошёл отлично, считывал калибровочные ячейки 8Е., но начинаю проверять контроллер на пинах control confg везде 1,3в. Может что делаю не так? программатор USBasp V2.0 -этот программатор не обновлял, другой обновил через этот, так тот вообще не читает калибровочные ячейки, а запускаешь второй раз прочитать выдает сообщение что не видит программатор. где копать ..
но начинаю проверять контроллер на пинах control confg везде 1,3в
может тестер такой?
может тестер такой?
Мльтиметр TESTO 760-3, работаю с ним долго, да есть ещё три разных.
Может не ту прошивку беру? ЦАП ак4490. брал программировал другой контроллер-распаивал на проводах, таже картина.
Прогу брал с раздела «прошивка микроконтроллера»
калибровочные ячейки 8Е — это правильно?
фьюзы все считал совпадают на 1мГц
питание 3,3В шло с программатора. пробовал и 5 вольт подавать всё тоже самое.
Да у меня такой же. КОНТРОЛЛЕР ПРОШИВАЕТСЯ, проходит верификацию, пишет всё ок, но не работает. Какую прошивку заливали V2 или v1.5?
Цитата: MCA-64
С AVRdude_prog3,3 всё выставилось само, в настройках только выставил тип ATmega88, нужно пробовать как рекомендовал автор, запитать от платы ЦАП, с программатора убрать перемычку J2. Пропаяйте программатор, про них много пишут что пайка порой не очень. У меня такой.
Если шьете с питанием от программатора, у такого программатора нет емкости на выходе стаба 3.3в, он часто генерит, прошивает неустойчиво, на сайте это обсуждалось.
Но раз верификацию проходит, вероятно прошился. Проверьте, что на пине резета МК, может супервизор на неправильно пороговое взяли?
Arduino без Arduino: работаем с микроконтроллерами напрямую
Если вспомнить историю создания Arduino ( www.drive2.ru/b/2520138/ ), то Arduino стало популярно благодаря трем вещам, составляющим ее основу: Среды программирования Arduino IDE ( на самом деле это среда языка Processing), Языка программирования Wiring (На самом деле такого языка не существует — то что мы видим это самый обычный С, дополненный большим числом библиотек) и Плат Arduino.
Я уже писал ранее, что без каждой из этих трех составляющих можно обойтись и приводил пример того, как можно обойтись без знания С — www.drive2.ru/b/2729013/. Как отказаться от Arduino IDE написано здесь — www.visualmicro.com/page/…what_is_visual_micro.html, а сегодня я хотел бы написать о том, как отказаться от "плат Arduino".
Итак, что же собой представляет плата, получившая такой коммерческий успех?

Как можно увидеть на плате находятся микроконтроллер AtMega 168 или 328, микросхема питания — DA1, контроллер виртуального com порта — DD1 и кварц 16 МГц — Q1. В общем то на первый взгляд ничего лишнего, но это только на первый: Используемая микросхема питания позволяет питать плату от напряжения от 5 до 12В или кратковременно до 30В, т.е. для авто с его 14,5В не пригодна и нужно делать свой источник питания. Контроллер СОМ порта используется в основном только для заливки программ и не является обязательным (в плате Arduino Pro Micro и ей подобных он отсутствует). Кварц, несомненно, позволяет точно работать с временем, но если погрешность в несколько милисикунд для вас не критична, то можно вспомнить о том, что микроконтроллеры фирмы Atmel, к которым относится и Atmega168/328, содержат внутренний кварц и могут отсчитывать такты сами себе.
Так что же эта плата лишняя? В общем то да. В большинстве случаев без нее действительно можно обойтись и сейчас мы поговорим как.
Поддержка средой программирования
Находим где у вас установлена Arduino и открываем папочку hardware
По умолчанию это здесь — C:\Program Files\Arduino\hardware\arduino\avr
В эту папку мы будем распаковывать архивы с библиотеками, которые будем качать отсюда:
1) Для микроконтроллеров
ATmega8, ATmega8A,
ATmega88, ATmega88A, ATmega88P, ATmega88PA, ATmega88PB
ATmega168, ATmega168A, ATmega168P, ATmega168PA, ATmega168PB
ATmega328, ATmega328P, ATmega328PB
ATmega48, ATmega48A, ATmega48P, ATmega48PA, ATmega48PB
качаем ATmega8 Series (8/48/88/168/328) отсюда — github.com/sleemanj/optib…ob/master/dists/README.md
См. отдельную статью О бедном AtMega замолвите слово
Данные библиотеки позволяют запустить МК на 3 частотах: 1MHz, 8MHz или 16MHz (Для работы требуется внешний кварц 16МГц).
Тут необходимо понимать, что внешний кварц увеличивает быстродействие и стабильность работы (1 миллисекунда выполнения программы всегда будет равняться 1 миллисекунде реального времени), но увеличивает, пусть и ненамного, стоимость конструкции и снижает надежность за счет большего числа деталей. Лично мое мнение, что для большинства конструкций, проектируемых для автомобиля, можно смело обойтись и встроенным кварцем. Для схем зажигания, тахометра можно использовать внешний кварц, подключенный по схеме ниже, но дешевле взять готовую платку типа Arduino Pro Micro.
Достаточно ценное замечание от alexfrance
Был печальный опыт при использовании внутреннего генератора МК тини2313. На морозе при -20 контроллеры зависали, глючили. Установка внешнего кварца помогла. Поскольку внутренний генератор представляет из себя RC цепь, то он очень термозависим

2) Микроконтроллеры Attiny13 (А)
Библиотеки и файлы для поддержки "Тинек" можно скачать по ссылочке выше, а можно взять версию от разработчика — sourceforge.net/projects/ard-core13/files/
Скачанный файл также кладем в папку hardware
3) Для микроконтроллеров
ATtiny84, ATtiny44, ATtiny24,
ATtiny85, ATtiny45, ATtiny25,
ATtiny2313, ATtiny4313
ссылка для скачивания -code.google.com/p/arduino-tiny/
После распаковки заходим в папку tiny и переименовываем файл C:\Program Files\Arduino\hardware\tiny\avr\Prospective Boards.txt в C:\Program Files\Arduino\hardware\tiny\avr\Boards.txt
После всех скачиваний и распаковок получим папку hardware с таким содержимым

А запустив Arduino IDE увидим:

Подключение микроконтроллера
Прошить программы в МК можно 2 различными способами:
1) Классический вариант — прошивка при помощи программатора
Тут все просто: покупаем любой программатор из списка поддерживаемых

и вперед
Наиболее распространенным является USBasp, он производится активно китайцами, его несложно сделать и самому. В Украине могу порекомендовать производителя с таким наборчиком (увы, снят уже с производства, ребята делают только плату адаптора) — fix.org.ua/index.php/%D0%…%D1%80%D0%BE%D0%BC-detail

Прошивать им просто: проставил драйвера, вставил МК в нужный слот, выбрал программатор из списка (СОМ выбирать не нужно), указал микроконтроллер и его частоту и лей программу.
Вторым по популярности является USBtinyISP. В продаже я их не видел, а как его сделать самостоятельно подробно рассказано здесь — robocraft.ru/blog/2948.html
Профессиональные программаторы типа STK500 (Эх была у меня такая плата на предыдущей работе, классная вещь) явно не входят в рамки этой статьи. Поэтому идем дальше.
2) Прошивка при помощи заводской платы Arduino
Следует отметить, что далеко не все платы Arduino подходят для сего действия
Возьмите свою плату и проверьте перед тем как пытаться. Расположение выводов интерфейса SPI должно быть следующим:

Если совпадает, то все ок, если нет, то лучше найти другую плату
Итак, последовательность действий:
а) Готовим плату. Для этого подключаем плату Arduino к компу, выбираем пункт меню Файл->Образцы-> ArduinoISP

и "вгружаем" код на плату. Все мы превратили нашу плату в программатор.
б) Подключаем. Схема подключения простая: нужно подключить выводы интерфейса SPI платы к соответствующим им выводам интерфейса SPI микроконтроллера, а вывод Reset микроконтроллера к 10 пину платы (или 53 для плат на основе mega1280 и 2560). На схеме ниже пример подключения Attiny13 (Attiny85 и Attiny45 аналогично, остальные МК смотрим распиновку) к плате на основе микроконтроллера Atmega 168/328

У меня получилось как то так:

Заливаем загрузчик. А нужно ли?
Итак сначало определимся что такое загрузчик и зачем это нужно.
Установка загрузчика дает возможность напрямую, через последовательный порт прошивать микроконтроллер (только имеющие аппаратный последовательный порт).Например так прошиваются пустые ATMEGA328P, которые потом можно использовать вместо установленной штатно микросхемы на Arduino UNO и устанавливать далее на самодельные платы.
Т.е. на ту же Attiny13 заливать загрузчик просто не имеет смысла — у нее нет аппаратного порта (выводов Тх, Dx), хотя некоторые "умельцы", пишущие обучающие статьи это делают (см UPD ниже). А вот для Atmega8 это можно сделать — она при этом потеряет 1кБайт из 8 своей памяти, но зато залить прошивку уже можно будет не через SPI, а подключив ее к адаптору СОМ порта (как это сделать рассказано здесь — www.drive2.ru/b/2642464/ на примере Arduino Pro Mini, смотрим раздел "Подключаемся").
UPD. Добавка написаная много познее</b>
С прошедшим временем понимаю, что на теме загрузчика стоит остановиться отдельно, заодно рассказать подробно, что такое фьюзы.
Но сейчас вкратце: В каждый микроконтроллер, помимо записи прошивки, необходимо записывать биты конфигурации — так называемые фьюзы и локбиты. С завода они идут записанные среднепотолочно и в реале скорее всего вам не подойдут — от этого и происходит неправильный расчет времени, например.
Но записью загрузчика можно обойти этот момент — как раз при записи загрузчика в микроконтроллере прописываются правильные фьюзы. Поэтому, даже если загрузчик не нужен, его можно прописать, чтобы прописались фьюзы, а потом при записи самой прошивки ("скетча") поставить галочку, что он не нужен и его можно удалить.
Если считаете, что вам это нужно, то устанавливаем микроконтроллер в программатор (подключаем к плате-программатору) и нажимаем "Записать загрузчик"

Прошивка программ
а) Пишем программу. Тут все как обычно, нужно только учесть, что для Attiny поддерживаются не все возможности "языка Arduino", а только
pinMode()
digitalWrite()
digitalRead()
analogRead()
analogReference(INTERNAL) / (EXTERNAL)
shiftOut()
pulseIn()
analogWrite()
millis()
micros()
delay()
delayMicroseconds()
б) Прошиваем.
Если мы используем плату Ардуино, то выбираем в качестве программатора "Arduino as ISP", в разделе "платы" наш микроконтроллер и частоту на которой он будет в дальнейшем работать, в разделе "порт" виртуальный СОМ нашей платы-программатора и нажимаем "вгрузить".
Вариант записи через программатор описан здесь — О бедном AtMega замолвите слово
в) проверяем работоспособность. Тут есть некоторые разногласия что делать с ногой RESET. Кто-то считает, что в процессе работы ее можно оставлять в воздухе, кто-то, что ее нужно подтянуть через резистор 10 кОм к питанию. Работает и так и так, тут больше вопрос религии 🙂
Arduino.ru

а зачем atmege два рядом расположенных вывода vcc gnd?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Там вроде раздельно записываются аналоговые и цифровые пины
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
хм, то есть мне нужно питание и туда и туда подводить если и те и те буду использовать..зачем так7
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Совершенно в дырочку- и туда и туда подводить. Вторую часть вопроса вы можете адресовать производителю.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

а зачем atmege два рядом расположенных вывода vcc gnd?
хм, то есть мне нужно питание и туда и туда подводить если и те и те буду использовать..зачем так7
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
уф, как там все запущено. спасибо за ответы, спасли платку от жесткой ошибки, я думал как раз таки для удобства монтажа
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
я задвал уже такой вопрос, но мне не ответили, там написано про то, что рекомендуется конденсатор ставить между + и -, какая емкость лучше, чем больше, тем лучше?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

я задвал уже такой вопрос, но мне не ответили, там написано про то, что рекомендуется конденсатор ставить между + и -, какая емкость лучше, чем больше, тем лучше?
Смотря для чего. Для защиты от высокочастотных помех — керамика 0,1 мкФ. От просадок питания — электролит от 100 мкФ и более.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
у вас там в схеме сразу и емкий еонденсатор включен и пикофарадный, мол сразу от того и от того избавояемся?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Ага. Только там не пикофарадный, а нанофарадный (100 нФ или 0,1 мкФ)
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Хорошо, будет знать) такой еще вопрос у меня есть, не по теме правда, на Али те же самые керамические смд конденсаторы стоят копейки, на родине, можно сказать, что в раз 20-30 дороже, на их качестве это как то отражается? Или быть может их тоже подделывают? А микросхемы, та же ds3231 раз в 10 дешевле
И вот еще «краткие импульсные помехи в шине питания вызыванные работой цифровых схем» а на что именно они могут повлиять?

