Leonardo на 3,3 В. Возможно ли?
- Войдите на сайт для отправки комментариев
Пнд, 02/10/2017 - 08:55
Здравствуйте, знатоки!
Возникла необходимость применить контроллер ATmega32U4 (используется и на Arduino Leonardo) в схеме с питанием 3,3 В. В аналогичной схеме, но с питанием 5 В, для удобства успешно использовал указанный контроллер с butloader-ом Леонарды. Но смена питания требует снижения тактовой частоты до 8 МГц. Как это повлияет на работу полученного монстра? И можно ли чё-ить придумать для получения результата?
Жду Вашего совета, знатоки.
Спасибо.
Peotr, что собссно вы хотите услышать? Ардуино-образные платы на чипе 32U4 с кварцем 8МГц и питанием 3,3в серийно выпускаются несколькими производителями. Можете переделать 5-вольтовый, можно купить готовый.
dimax, да, собсно, я хотел узнать, как повлияет смена частоты кварца на работу программы. Например, скетч, разработанный для Леонарды, зашить в леонардовский чип (ATmega32U4), но с частотой 8 МГц вместо 16-ти. Как-то туплю. Выход, правда, нашёл. LilypadUSB как раз работает на 8 МГц, и на леонардовском чипе. Залью лилипадовский бутлоадер, и вперёд.
Но вот узнать влияние смены частоты в данной ситуации всё же хотелось бы.
Спасибо.
Нужно выбрать вариант платы с частотой 8МГц в настройках ардуино. Если её там нет, то нужно добавить вручную такой вариант (в файле boards.txt). Иначе временнЫе задержки в программе будут в два раза больше (из расчёта на 16 МГц).
Jeka_M, сначала я так и хотел поступить. Однако, потом увидел, что бутолоадеры для Леонарды и Лилипады различны, хотя те имеют идентичные контроллеры. Отсюда сделал вывод: не достаточно использовать скетч, разработанный для Лилипады, для контроллера с леонардовским бутлоадером. По всей видимости, бутлоадер тоже нужно менять. А значит, не всё так просто.
Спасибо.
Бутлоадер на скетч никак не влияет (с оговоркой на вочдог).
Yarik.Yar, зайду с другой стороны. Почему бутлоадеры Леонарды и Лилипады различны, если процессоры идентичны? Если дело только в "задержках" программы, то скетч, разработанный для Лилипады должен грузиться и работать в процессоре с леонардовским бутлоадером и с 8 МГц-овым кварцем. Тогда зачем два различных бутлоадера?
Нет времени пощупать это на железе.
А кстати, насчёт "оговорки", нельзя ли по-подробнее?
1. Как вы определили, что они различны?
2. Бутлоадер только загружает программу. Он не делает никаких задержек, ничего. Единственное - в старых бутлоадерах была проблема со скетчами, использующими вочдог, потому что бут тоже его использовал. В новых это пофиксено, в оптибуте например.
Yarik.Yar, я тупо заглянул в hardware, и нашёл там два бутлоадера: caterina-LilyPadUSB и Caterina-Leonardo. Тупо сообразил, что два одинаковых файла с одним именем, как это говорят?.. - стрёмно. Значит, "нестрёмно", когда два файла с различными именами имеют различные внутренности. Что-то не так?
О "задержках" писал собеседник выше, имелось в виду функционирование программы с различной тактовой частотой (паузы и т.п.).
В Леонарде, как я понимаю, вочдог "не пофиксен", а в Лилипаде, что, "пофиксен"? Тогда я могу использовать в Леонарде "пофиксенный" Лилипадовский бутлоадер (сталкивался с проблемой сброса)?
Сомневаюсь, что вы использовали хоть раз вочдог. Не паррьтесь по этому поводу)
Я не знаю, на каких частотах работают как тот, так и другой контроллер. Если вы хотите 8МГц, то нужен лоадер, скомпилированный под эту частоту.
Сожалею, но Ваши сомнения ошибочны. Я уже "парился", пытался договариваться с "собакой", но она оказалась "кусачей", вместо RESET лезла в бутлоадер. Пришлось вручную клепать "горбатого": примитивный возврат в начало программы.
В Леонарде процессор работает на 16-ти МГц, в Лилипаде - на 8. Проблема встала в переходе на 3,3 В, что повлекло за собой снижение частоты, а дальше... Дальше всё уже описал.
Значит, заливайте бут от Лили, ставьте кварц 8 и вперёд. Извините, недооценил )
Да вот я уже к этому и пришёл, о чём писал выше. Просто, как я опять же писал выше, хотелось разобраться, почему смена частоты требует смены бута.
Спасибо за "дооценку".
Бутлоадер компилируется под определённую частоту. В первую очередь, от частоты ядра считается скорость обмена по UART процессора и ПК во время загрузки. Поэтому просто поставить другой кварц не выйдет - все частоты собьются и бут отзываться не будет.
Во-о-о-оттт!!!!!!!!!!!!
Этого я и ждал.
С П А С И Б О !!!!!!!!!!!!
Если загрузчик вы шьете в ARDUINO IDE, то всместе бутлоадером "правильно" прошиваются и фьюзы под нужный кварц. Зашив Лилипадовский загрузчик, например при помощи USBasp, вы тем самым выставляете фьюзы под 8 МГц, и сам загрузчик можете дальше не использовать, с промощью того же USBasp - "загрузить с помощью программатора", тем самым экономя 2 кило памяти. Да кстати и "собака" при этом не должна кусаться, т.к. бутлоадера не будет вовсе, а она аппаратная.
Очень интересно.
lean_74, но всю эту возню я как раз и затеял для того, чтобы использовать загрузчик, для удобства отладки программы в изделии. И поэтому, приходится дружить с норовистой "собакой"! Загрузчик зашиваю ChipProg-ом, поэтому фьюзы выставляю вручную (как говорится, что имею).
А у Вас есть другие варианты отладки с использованием USB-порта? Было бы интересно
Да, кстати, в некоторых ардуинках, не помню, кажется в UNO или MEGA собака не кусается. :))
Спасибо.
Можно тут самому создать себе загрузчик на основе optiboot -а, который в UNO "не кусающийся", причем он места займет всего 512 байт, вместо 2 кило(проверено на 328 меге с каким хочешь кварцем, а то без такового). Для своих небольших бытовых задач мне особо отладка по USB и не нужна, в крайнем случае вывожу информацию, на LCD 1602, подключенный по i2c. Программатор USBasp стоит 150 руб в любом радиомагазине, или можно "за пять минут" mk2 собрать от dimax -a.
Для конкретизации проблемы рисую свою ситуацию.
Есть некий "чёрный ящик", из которого торчит два разъёма: один - для шнура 220 В, другой - USB, по которому текут "крестики-нолики" прямиком в обычный ноутбук с Виндой. Этот "ящик" решает несколько задач. Скетчи для решения этих задач весьма откормлены, и все сразу не влезают в память контроллера. Да и в этом нет особой необходимости. Поскольку, а вот здесь прошу обратить внимание: для решения конкретной задачи производится ЗАЛИВКА ТРЕБУЕМОГО СКЕТЧА В КОНТРОЛЛЕР! А уж как не хочется вшивать в этот ящик дополнительный ICSP! А таскать за собой, хоть и маленький, но так стремящийся потеряться программатор! Поэтому, я и использую арудиновские буты для заливки скетчей прямо из рабочего ноута.
Есть в плане переход на DUE с его огромным желудком, способным переварить враз кучу скетчей. Но это пока в перспективном планировании.
А за напоминание о конструкторе загрузчика отдельное спасибо. Я когда-то в него пялился, но, уже не помню, почему, не занялся.
Сейчас посмотрел конструктор загрузчика. Там в выпадающем списке можно найти ATmega32. Но меня что-то свербят сомнения, что для, например, ATmega32A и ATmega32U4 подойдёт один и тот же загрузчик. Можно, конечно, попробовать. Где можно купить время???
Кажется, понял. В этом конструкторе используются только те контроллеры, которые установлены на ардуинах. Тогда ATmega32U4. Я прав?
Все. До оверлеев докатились.
Тогда ATmega32U4. Я прав?
Нет, там на сороканогую атмегу32, я сам пробовал только тинькой, восьмой и 328 мегой. извини что ввел в заблуждение.
Что ж, после долгих метаний возвращаюсь к Lily-чке. :))
Спасибо за помощь.