Понял я проблему парни... В ардуино иде когда загружаешь программу через ардуино исп в левый МК надо нажимать кнопку "загрузить с помощью программатора"...
Понял я проблему парни... В ардуино иде когда загружаешь программу через ардуино исп в левый МК надо нажимать кнопку "загрузить с помощью программатора"...
Ну это как бы естественно... Во всех мануалах есть об этом.
Добавляю в boards.txt указанные строки, добавляю скачанный hex файл в указанные директории.
Подключаю Arduino mini Pro (5v, 16MHz) atmega328p, заливаю в неё скетч ArduinoISP. Скетч залит успешно.
Подключаю к Arduino mini Pro (5v, 16MHz) atmega328p микроконтроллер atmega328p-au,
+5v -> контакт №4 и №6 (также пробовал подключать контакт №18)
GND -> контакт №3, №5, №21
pin10[RST] -> контакт №29[RESET]
pin11[MOSI] -> контакт №15[MOSI]
pin12[MISO] -> контакт №16[MISO]
pin13[SCK] -> контакт №17[SCK]
Согласно данной иллюстрации:
Как выглядит мой стенд:
Не видно, но питание есть, стоит кварц(вытаскиваю когда не нужен), RST подтянут резистором на 10к к +5V. Данный стенд у меня около года, им прошито десятки микроконтроллеров(правда стандартным бутлоадером). Также я принял свой собственный цветовой стандарт для проводов RST, MOSI, MISO, VCC, GND, SCK, Rx, Tx. Эти провода у меня всегда у всех моих поделок имеют одинаковый цвет для каждого, наебаться с подключением при такой системе невозможно, учтено что Rx-Tx подключается перекрёстно.
Собственно стенд собран, микроконтроллер закрыт и готов к заливке бутлоадера, ардуино в роли программатора готово.
Выбираю новую плату, это: atmega328p (8 MHz)
Выбираю программатор - Arduino as ISP
Жму "Записать загручик" в меню Сервис
А теперь внимание, всё что написал выше абсолютно не имеет значения, так как загрузчик успешно записался, ошибок не возникло, а значит всё предыдущее выполнено абсолютно верно! Или не факт?
Всё, бутлоадер пролит. Выдёргиваем всё лишнее. Точнее выдёргиваем ВСЁ, оставив только подтягивающий RST резистор. Берём USB-UART переходник, от него подаём на микроконтроллер +5V, GND, DTR->RST, Rx и Tx. Выставляем в IDE arduino-1.0.5-r2-windows нужный ком порт, программатор AVRISP mkII и в качестве платы выбираем atmega328p (8 MHz). Берём стандартный скетч Blink. Пробуем залить. И нифига... Ок. Откидываю RST, пробую вручную стартовать контроллер, и тоже нифига. Меняю местами RxTx и тоже нифига. На UART адаптере лишь несколько раз мигает светодиод, означающий передачу. Приёма нет.
А теперь прошу помощи, например у тех, кто готов помочь, или у тех, кто развёл руками и ушел.
P.S. Также пробовал и другие бутлоадеры, предложенные в этой ветке. Тоже не загружаются скетчи.
Фигасе скорость новому бутлоадеру без кварца 115200
у стандартного загрузчика с кварцем на 16мгц 57600
а здесь мало того что скорость в два раза больше так еще и частота в два раза ниже к тому же менее стабильная
мне видится это перебор
попробуйте при создании бутлоадера включить делитель на 8. Чисто для эксперимента. Частота будет 1мгц, а скорость 9600. Я именно такие параметры тестировал. Если заработает то нужно просить автора конструктора снизить скорость для варианта 8мгц в два или даже 4 раза
Да, вечером попробую. Также попробую вариант с 1 МГц, с делителем
В принципе сейчас задача - работают датчики DTH22, BMP180, DS18B20(4шт) ардуино ждёт сигнала с ком порта, слушая его, и при определённой команде пишет значения датчиков в UART. Как думаете, на такие задачи хватит 1МГц ?
Просто так изменить скорость в boards.txt не получится, нужно чтобы на эту скорость был расчитан и загрузчик
1мгц хватит, при работе с вашими датчиками МК занят только обменом, основную работу делают датчики. Теже ds18b20 требуют почти секунду на одно измерение и эту секунду МК может или просто ждать или заниматься другими делами
Ребят не забивайте человеку голову... если был бы внимательнее то заметил бы что там другой загрузчик - стандартный...
Это о чём? Где стандартный?
_EndWar_ пишет:
всё что пишу проверено в железе...
P.S. Atmega328p-PU
Atmega328p-PU отличается от Atmega328p-AU не только исполнением, а ещё чем-то внутри. Где-то писали, что для неё нужно по другому конфиг делать, так как там есть дополнительный режим энергосбережения. Или что-то там ещё, точно не помню, не вникал, так как не мой вариант. Так что железо однозначно разное.
Вот, вроде об этом:
Even though the ATmega328-PU in essence functions in the same way as the ATmega328P-PU, it has a different signature, and one that isn’t recognised by the Arduino IDE. (Behind the Scenes: The Arduino IDE actually uses a utility called AVRDUDE to programme the chips, so you’ll see error messages from avrdude. (Adafruit have a good tutorial on avrdude)
если там посмотреть табличку для 8Мгц, то получим для 11520 ошибку 7.8%, что явно много, оптимально 38400. И для 1Мгц оптимально 4800, 9600 тоже многовато
Так. Времени уже мало остаётся, пора что-то решать. Подведу итоги: на данный момент нет способа прошить бут для работы atmega328p-AU без кварца с помощью ардуино ISP и ардуино IDE и получить таким образом рабочую ардуино. Я правильно понимаю?
Ok. Заказал десяток кварцев и кондёры. Придётся эту лабуду припаивать. Всяко надёжнее чем геморы с прошивками а потом ещё и ошибки на высоких скоростях.
usbasp не использует настройки скорости из boards.txt и шьет совсем по другому протоколу. А то что у вас данные в Serial сыпятся это еще не факт, что они там без ошибок. Просто одно дело текст посылать (причем получается в одну сторону), а другое дело с точностью до одного бита залить прошивку - эта операция куда более требовательная
usbasp. Есть у меня такая хрень, НО! Как-то давно я ей пробовал прошить атмегу, а не получилось. Что-то там с прошивкой самой usbasp, типа старая она, надо обновить. Так вот, какие есть способы обновить в usbasp прошивку? Как понимаю обязательно нужен второй usbasp?
Sirocco главное не запутаться в том о чем речь. Прошивка бутлоадера у тебя и так сделана через ISP, только вместо usbasp использована вторая ардуина, это без разницы.
но потом у тебя не заливаются скетчи
я так понял jeka_tm что у он и скетчи заливает через usbasp, правда не уверен, что верно его понял
а чем закончился эксперимент с бутлоадером на 1МГц?
а чем закончился эксперимент с бутлоадером на 1МГц?
Закончился смертью атмеги. При проливке бута выкидывал ошибку, типа что-то не то с сигнатурами, не буду шить. Потом попробовал прошить в стандартный загрузчик, и тоде не шьется, вылетает это:
avrdude: verification error, first mismatch at byte 0x0000
0xff != 0x00
avrdude: verification error; content mismatch
А теперь это:
avrdude: Expected signature for ATMEGA328P is 1E 95 0F
Double check chip, or use -F to override this check.
А вот попытка использовать вместо ардуины USBasp совместно с ардуино IDE
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
а чем закончился эксперимент с бутлоадером на 1МГц?
Закончился смертью атмеги. При проливке бута выкидывал ошибку, типа что-то не то с сигнатурами, не буду шить. Потом попробовал прошить в стандартный загрузчик, и тоде не шьется, вылетает это:
avrdude: verification error, first mismatch at byte 0x0000
0xff != 0x00
avrdude: verification error; content mismatch
А теперь это:
avrdude: Expected signature for ATMEGA328P is 1E 95 0F
Double check chip, or use -F to override this check.
А вот попытка использовать вместо ардуины USBasp совместно с ардуино IDE
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
вообще-то по спецификации SPI slave устройство которое не имеет сигнал выбора должно держать все свои линии в третьем состоянии, то есть в высоомном (так называемое Z) то есть по сути как бы "оборванные провода"
у NRF24 со спецификацией все хорошо
это есть некоторые устройства (один из примеров - wiznet5100) у которых косяки в самом чипе, вот они без дополнительных устройств мешают.
Но важно чтобы на провода SPI не было никаких других низкоомных или емкостных нагрузок, вот это все сильно мешает прошивке
Да в статье у автора конструктора ведь всё понятно и просто описано и про фьюзы и про боард.тхт...
Понял я проблему парни... В ардуино иде когда загружаешь программу через ардуино исп в левый МК надо нажимать кнопку "загрузить с помощью программатора"...
Ну это как бы естественно... Во всех мануалах есть об этом.
Пробовал, этот совет ведёт на вашу ссылку
http://arduino.ru/forum/obshchii/i-snova-atmega8-kak-arduino#comment-87415
Не прокатило. Завтра вечером засяду заново, может что решу. А может старые файлы на винте найду.
"Как бы естественно" для нас с Вами... а парень же просил помочь... )) и по вопросу как бы естественно что только начинает...
Ну подскажите мне, гуру микроконтроллерные, где я косячу.
Цель: сделать из микроконтроллера atmega328p-au ардуино совместимую плату, при этом atmega328p-au должен работать без кварца.
Действия: Беру чистенькую arduino-1.0.5-r2-windows. Распаковываю. Иду на сайтик: http://homes-smart.ru/index.php/oborudovanie/arduino/avr-zagruzchik и конструктором конструирую загрузчик, подробности на скрине:
Добавляю в boards.txt указанные строки, добавляю скачанный hex файл в указанные директории.
Подключаю Arduino mini Pro (5v, 16MHz) atmega328p, заливаю в неё скетч ArduinoISP. Скетч залит успешно.
Подключаю к Arduino mini Pro (5v, 16MHz) atmega328p микроконтроллер atmega328p-au,
+5v -> контакт №4 и №6 (также пробовал подключать контакт №18)
GND -> контакт №3, №5, №21
pin10[RST] -> контакт №29[RESET]
pin11[MOSI] -> контакт №15[MOSI]
pin12[MISO] -> контакт №16[MISO]
pin13[SCK] -> контакт №17[SCK]
Согласно данной иллюстрации:
Как выглядит мой стенд:
Не видно, но питание есть, стоит кварц(вытаскиваю когда не нужен), RST подтянут резистором на 10к к +5V. Данный стенд у меня около года, им прошито десятки микроконтроллеров(правда стандартным бутлоадером). Также я принял свой собственный цветовой стандарт для проводов RST, MOSI, MISO, VCC, GND, SCK, Rx, Tx. Эти провода у меня всегда у всех моих поделок имеют одинаковый цвет для каждого, наебаться с подключением при такой системе невозможно, учтено что Rx-Tx подключается перекрёстно.
Собственно стенд собран, микроконтроллер закрыт и готов к заливке бутлоадера, ардуино в роли программатора готово.
Выбираю новую плату, это: atmega328p (8 MHz)
Выбираю программатор - Arduino as ISP
Жму "Записать загручик" в меню Сервис
А теперь внимание, всё что написал выше абсолютно не имеет значения, так как загрузчик успешно записался, ошибок не возникло, а значит всё предыдущее выполнено абсолютно верно! Или не факт?
Всё, бутлоадер пролит. Выдёргиваем всё лишнее. Точнее выдёргиваем ВСЁ, оставив только подтягивающий RST резистор. Берём USB-UART переходник, от него подаём на микроконтроллер +5V, GND, DTR->RST, Rx и Tx. Выставляем в IDE arduino-1.0.5-r2-windows нужный ком порт, программатор AVRISP mkII и в качестве платы выбираем atmega328p (8 MHz). Берём стандартный скетч Blink. Пробуем залить. И нифига... Ок. Откидываю RST, пробую вручную стартовать контроллер, и тоже нифига. Меняю местами RxTx и тоже нифига. На UART адаптере лишь несколько раз мигает светодиод, означающий передачу. Приёма нет.
А теперь прошу помощи, например у тех, кто готов помочь, или у тех, кто развёл руками и ушел.
P.S. Также пробовал и другие бутлоадеры, предложенные в этой ветке. Тоже не загружаются скетчи.
Фигасе скорость новому бутлоадеру без кварца 115200
у стандартного загрузчика с кварцем на 16мгц 57600
а здесь мало того что скорость в два раза больше так еще и частота в два раза ниже к тому же менее стабильная
мне видится это перебор
попробуйте при создании бутлоадера включить делитель на 8. Чисто для эксперимента. Частота будет 1мгц, а скорость 9600. Я именно такие параметры тестировал. Если заработает то нужно просить автора конструктора снизить скорость для варианта 8мгц в два или даже 4 раза
У стандартного загрузчика с кварцем на 16мгц как раз 115200... И для 8мгц выбрана та же скорость согласно настройкам бутлоадера.
Это проверялось? При работе без кварца снижается стабильность, а значит повышается вероятность ошибок при том же соотношении частоты и скорости
По памяти ошибся, сейчас посмотрел boards.txt, для UNO которую можно считать стандартом действительно 11520, но например доя нано и про мини - 57600
Да, проверял на паре м/к - на атмега328 и атмега32. Допускаю, что тут возможны проблемы на некоторых экземплярах..
Я бы понизил. Может даже от температуры частота упоыть и в одних условиях заработает, в других нет
Да, конечно можно добавить выбор скорости в конструктор, но как будет время - сложно с одного проекта на старый проект вникать снова :)
я использую optiboot для меги8 на скорости 115200. проблем нет. кроме фьюзов которые предлагаются
если scopt не программировать то все работает, иначе глухо
Skopt влияет на кварц, на RC не влияет
Да, конечно можно добавить выбор скорости в конструктор, но как будет время - сложно с одного проекта на старый проект вникать снова :)
ну пока можно проверить вариант с делителем на восемь при 9600, там соотношение гуманнее)
значит эксперимент рассудит. специально проверю еще раз
и еще. нафига с внутренним генератором вообще scopt? он же нафиг не нужен. нет кварца. усиливать не надо. глупо как то
Специально спросил на easyelectronic - советуют не более 9600 при работе от RC
Попробуй вот это
к стати у меня всё работает как писал Sirocco,
но MK ATmega328p-pu...
Попробуй вот это
Да, вечером попробую. Также попробую вариант с 1 МГц, с делителем
В принципе сейчас задача - работают датчики DTH22, BMP180, DS18B20(4шт) ардуино ждёт сигнала с ком порта, слушая его, и при определённой команде пишет значения датчиков в UART. Как думаете, на такие задачи хватит 1МГц ?
Просто так изменить скорость в boards.txt не получится, нужно чтобы на эту скорость был расчитан и загрузчик
1мгц хватит, при работе с вашими датчиками МК занят только обменом, основную работу делают датчики. Теже ds18b20 требуют почти секунду на одно измерение и эту секунду МК может или просто ждать или заниматься другими делами
Ребят не забивайте человеку голову... если был бы внимательнее то заметил бы что там другой загрузчик - стандартный...
по поводу 1Мгц - не уверен что все библиотеки будут работать корректно на этой частоте, но надо пробовать...
всё что пишу проверено в железе...
P.S. Atmega328p-PU
Ребят не забивайте человеку голову... если был бы внимательнее то заметил бы что там другой загрузчик - стандартный...
Это о чём? Где стандартный?
всё что пишу проверено в железе...
P.S. Atmega328p-PU
Atmega328p-PU отличается от Atmega328p-AU не только исполнением, а ещё чем-то внутри. Где-то писали, что для неё нужно по другому конфиг делать, так как там есть дополнительный режим энергосбережения. Или что-то там ещё, точно не помню, не вникал, так как не мой вариант. Так что железо однозначно разное.
Вот, вроде об этом:
Even though the ATmega328-PU in essence functions in the same way as the ATmega328P-PU, it has a different signature, and one that isn’t recognised by the Arduino IDE. (Behind the Scenes: The Arduino IDE actually uses a utility called AVRDUDE to programme the chips, so you’ll see error messages from avrdude. (Adafruit have a good tutorial on avrdude)
Отсюда: http://www.crash-bang.com/resource/bootload-atmega328/
вот мне дали интересную ссылку
если там посмотреть табличку для 8Мгц, то получим для 11520 ошибку 7.8%, что явно много, оптимально 38400. И для 1Мгц оптимально 4800, 9600 тоже многовато
http://www.wormfood.net/avrbaudcalc.php?postbitrate=9600&postclock=8&bit...
А чё такое UBRR ?
ATmega328-PU и ATmega328p-PU конечно отличаются "внутри"(разные сигнатуры), а вот Atmega328p-PU и Atmega328p-AU только снаружи...
Найдите три отличия:
ATmega328-PU
ATmega328p-PU
ATmega328p-AU
А чё такое UBRR ?
вам нужно это знать если вы захотите настраивать Serial на уровне регистров МК))
А чё такое UBRR ?
вам нужно это знать если вы захотите настраивать Serial на уровне регистров МК))
Не, упаси Господь, не нужно мне этого.
вот стандартный бут...
нужно добавить только эту запись, остальное в IDE уже есть...
проверил optiboot для atmega8 при разных фьюзах. работает и так и так. наверно до этого плохой контакт был
проверил заодно atmega328p AU в смд корпусе. работает. правда не с первого раза. сначала отдельно прошил фьюзы, а потом уже через идэ залил бутлоадер
ide фьюзы прошивает во время загрузки бут...
да. но без предварительной так и не заработало. раза 3 пробовал
возможно фьюзы в идэ пишутся после прошивки, а без фьюзов вообще не прошивалось
интересный факт...
это только с AU такое..?
вот стандартный бут...
нужно добавить только эту запись, остальное в IDE уже есть...
Где есть? У меня в IDE нет такого файла ATmegaBOOT_168_atmega328_pro_8MHz.hex
с другими не пробовал. смд обычно только использую
Так. Времени уже мало остаётся, пора что-то решать. Подведу итоги: на данный момент нет способа прошить бут для работы atmega328p-AU без кварца с помощью ардуино ISP и ардуино IDE и получить таким образом рабочую ардуино. Я правильно понимаю?
Ok. Заказал десяток кварцев и кондёры. Придётся эту лабуду припаивать. Всяко надёжнее чем геморы с прошивками а потом ещё и ошибки на высоких скоростях.
хз какие ошибки. у меня и мега8 и 328 обе на 115200 прошиваются и данные в uart на 115200 без проблем
но я прошивал черзе usbasp
usbasp не использует настройки скорости из boards.txt и шьет совсем по другому протоколу. А то что у вас данные в Serial сыпятся это еще не факт, что они там без ошибок. Просто одно дело текст посылать (причем получается в одну сторону), а другое дело с точностью до одного бита залить прошивку - эта операция куда более требовательная
usbasp. Есть у меня такая хрень, НО! Как-то давно я ей пробовал прошить атмегу, а не получилось. Что-то там с прошивкой самой usbasp, типа старая она, надо обновить. Так вот, какие есть способы обновить в usbasp прошивку? Как понимаю обязательно нужен второй usbasp?
Sirocco главное не запутаться в том о чем речь. Прошивка бутлоадера у тебя и так сделана через ISP, только вместо usbasp использована вторая ардуина, это без разницы.
но потом у тебя не заливаются скетчи
я так понял jeka_tm что у он и скетчи заливает через usbasp, правда не уверен, что верно его понял
а чем закончился эксперимент с бутлоадером на 1МГц?
axill подожди. код то я заливаю через uart на скорости 115200, только бутлоадер через программатор
тогда получается все условия выполняются судя по твоим критериям правильной работы
вторйо usbasp не нужен. прошей через ардуину. он уже рабочий. фьюзы залиты. просто прошивку поменять
другое дело когда голый новый камень
а чем закончился эксперимент с бутлоадером на 1МГц?
Закончился смертью атмеги. При проливке бута выкидывал ошибку, типа что-то не то с сигнатурами, не буду шить. Потом попробовал прошить в стандартный загрузчик, и тоде не шьется, вылетает это:
обновлять прошивку необязательно вроде если не шить напрямую из идэ
нужно 2 программы
eXtreme Burner - AVR
Khazama AVR
во второй можно настроить частоту clk
а в первой удобно шить бутлоадер и фьюзы
Наступил на грабли и я,
собрал ардуино на 1284р (проект MoteinoMega), но слишком тщательно :), даже впаял радиомодуль SPI.
И тут разволновался , ведь бутлоадер не прошит . Я шью обычно батником через usbasp, как правило без сучков прошивается.
А тут встал, шьется и проверяется нормально, но не работает, считываю - считывается каша :(
неужели радиомодуль мешается?
Батник стандартный:
Как думаете, выпаивать модуль или как?
))) а висят на то они на одном spi
или я нет?
а чем закончился эксперимент с бутлоадером на 1МГц?
Закончился смертью атмеги. При проливке бута выкидывал ошибку, типа что-то не то с сигнатурами, не буду шить. Потом попробовал прошить в стандартный загрузчик, и тоде не шьется, вылетает это:
плохой контакт...
))) а висят на то они на одном spi
или я нет?
Вы , да :) на одном
)))) я пролезло. не мог не вставить
ну вот собственно в чем проблема. я про spi
)))))
попробую выпаять, отпишусь потом.
радиомодуль какой? NRF24? он не мешает прошивке
вообще-то по спецификации SPI slave устройство которое не имеет сигнал выбора должно держать все свои линии в третьем состоянии, то есть в высоомном (так называемое Z) то есть по сути как бы "оборванные провода"
у NRF24 со спецификацией все хорошо
это есть некоторые устройства (один из примеров - wiznet5100) у которых косяки в самом чипе, вот они без дополнительных устройств мешают.
Но важно чтобы на провода SPI не было никаких других низкоомных или емкостных нагрузок, вот это все сильно мешает прошивке