Leonardo на 3,3 В. Возможно ли?

Peotr
Peotr аватар
Offline
Зарегистрирован: 17.02.2014

Здравствуйте, знатоки!

Возникла необходимость применить контроллер ATmega32U4 (используется и на Arduino Leonardo) в схеме с питанием 3,3 В. В аналогичной схеме, но с питанием 5 В, для удобства успешно использовал указанный контроллер с butloader-ом Леонарды. Но смена питания требует снижения тактовой частоты до 8 МГц. Как это повлияет на работу полученного монстра? И можно ли чё-ить придумать для получения результата?

Жду Вашего совета, знатоки.

Спасибо.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Peotr, что собссно вы хотите услышать? Ардуино-образные платы  на чипе 32U4 с кварцем 8МГц и питанием 3,3в серийно выпускаются несколькими производителями. Можете переделать 5-вольтовый, можно купить готовый.

Peotr
Peotr аватар
Offline
Зарегистрирован: 17.02.2014

dimax, да, собсно, я хотел узнать, как повлияет смена частоты кварца на работу программы. Например, скетч, разработанный для Леонарды, зашить в леонардовский чип (ATmega32U4), но с частотой 8 МГц вместо 16-ти. Как-то туплю. Выход, правда, нашёл. LilypadUSB как раз работает на 8 МГц, и на леонардовском чипе. Залью лилипадовский бутлоадер, и вперёд.

Но вот узнать влияние смены частоты в данной ситуации всё же хотелось бы.

Спасибо.

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Нужно выбрать вариант платы с частотой 8МГц в настройках ардуино. Если её там нет, то нужно добавить вручную такой вариант (в файле boards.txt). Иначе временнЫе задержки в программе будут в два раза больше (из расчёта на 16 МГц).

Peotr
Peotr аватар
Offline
Зарегистрирован: 17.02.2014

Jeka_M, сначала я так и хотел поступить. Однако, потом увидел, что бутолоадеры для Леонарды и Лилипады различны, хотя те имеют идентичные контроллеры. Отсюда сделал вывод: не достаточно использовать скетч, разработанный для Лилипады, для контроллера с леонардовским бутлоадером. По всей видимости, бутлоадер тоже нужно менять. А значит, не всё так просто.

Спасибо.

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Бутлоадер на скетч никак не влияет (с оговоркой на вочдог). 

Peotr
Peotr аватар
Offline
Зарегистрирован: 17.02.2014

Yarik.Yar, зайду с другой стороны. Почему бутлоадеры Леонарды и Лилипады различны, если процессоры идентичны? Если дело только в "задержках" программы, то скетч, разработанный для Лилипады должен грузиться и работать в процессоре с леонардовским бутлоадером и с 8 МГц-овым кварцем. Тогда зачем два различных бутлоадера?

Нет времени пощупать это на железе.

А кстати, насчёт "оговорки", нельзя ли по-подробнее?

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

1. Как вы определили, что они различны?

2. Бутлоадер только загружает программу. Он не делает никаких задержек, ничего. Единственное - в старых бутлоадерах была проблема со скетчами, использующими вочдог, потому что бут тоже его использовал. В новых это пофиксено, в оптибуте например.

Peotr
Peotr аватар
Offline
Зарегистрирован: 17.02.2014

Yarik.Yar, я тупо заглянул в hardware, и нашёл там два бутлоадера: caterina-LilyPadUSB и Caterina-Leonardo. Тупо сообразил, что два одинаковых файла с одним именем, как это говорят?.. - стрёмно. Значит, "нестрёмно", когда два файла с различными именами имеют различные внутренности. Что-то не так?

О "задержках" писал собеседник выше, имелось в виду функционирование программы с различной тактовой частотой (паузы и т.п.).

В Леонарде, как я понимаю, вочдог "не пофиксен", а в Лилипаде, что, "пофиксен"? Тогда я могу использовать в Леонарде "пофиксенный" Лилипадовский бутлоадер (сталкивался с проблемой сброса)?

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Сомневаюсь, что вы использовали хоть раз вочдог. Не паррьтесь по этому поводу)

Я не знаю, на каких частотах работают как тот, так и другой контроллер. Если вы хотите 8МГц, то нужен лоадер, скомпилированный под эту частоту.

Peotr
Peotr аватар
Offline
Зарегистрирован: 17.02.2014

Сожалею, но Ваши сомнения ошибочны. Я уже "парился", пытался договариваться с "собакой", но она оказалась "кусачей", вместо RESET лезла в бутлоадер. Пришлось вручную клепать "горбатого": примитивный возврат в начало программы.

В Леонарде процессор работает на 16-ти МГц, в Лилипаде - на 8. Проблема встала в переходе на 3,3 В, что повлекло за собой снижение частоты, а дальше... Дальше всё уже описал.

 

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Значит, заливайте бут от Лили, ставьте кварц 8 и вперёд. Извините, недооценил )

Peotr
Peotr аватар
Offline
Зарегистрирован: 17.02.2014

Да вот я уже к этому и пришёл, о чём писал выше. Просто, как я опять же писал выше, хотелось разобраться, почему смена частоты требует смены бута.

Спасибо за "дооценку".

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Бутлоадер компилируется под определённую частоту. В первую очередь, от частоты ядра считается скорость обмена по UART процессора и ПК во время загрузки. Поэтому просто поставить другой кварц не выйдет - все частоты собьются и бут отзываться не будет.

Peotr
Peotr аватар
Offline
Зарегистрирован: 17.02.2014

Во-о-о-оттт!!!!!!!!!!!!

Этого я и ждал.

С П А С И Б О !!!!!!!!!!!!

lean_74
Offline
Зарегистрирован: 22.12.2015

Если загрузчик вы шьете в ARDUINO IDE, то всместе бутлоадером "правильно" прошиваются и фьюзы под нужный кварц. Зашив Лилипадовский загрузчик, например при помощи USBasp, вы тем самым выставляете фьюзы под 8 МГц, и сам загрузчик можете дальше не использовать, с промощью того же USBasp - "загрузить с помощью программатора", тем самым экономя 2 кило памяти. Да кстати и "собака" при этом не должна кусаться, т.к. бутлоадера не будет вовсе, а она аппаратная. 

Peotr
Peotr аватар
Offline
Зарегистрирован: 17.02.2014

Очень интересно.

lean_74, но всю эту возню я как раз и затеял для того, чтобы использовать загрузчик, для удобства отладки программы в изделии. И поэтому, приходится дружить с норовистой "собакой"! Загрузчик зашиваю ChipProg-ом, поэтому фьюзы выставляю вручную (как говорится, что имею).

А у Вас есть другие варианты отладки с использованием USB-порта? Было бы интересно

Да, кстати, в некоторых ардуинках, не помню, кажется в UNO или MEGA собака не кусается. :))

Спасибо.

lean_74
Offline
Зарегистрирован: 22.12.2015

Можно тут самому создать себе загрузчик на основе optiboot -а, который в UNO "не кусающийся", причем он места займет всего 512 байт, вместо 2 кило(проверено на 328 меге с каким хочешь кварцем, а то без такового).  Для своих небольших бытовых задач мне особо отладка по USB и не нужна, в крайнем случае вывожу информацию, на LCD 1602,  подключенный по i2c.  Программатор USBasp стоит 150 руб в любом радиомагазине, или можно "за пять минут" mk2 собрать от dimax -a.

Peotr
Peotr аватар
Offline
Зарегистрирован: 17.02.2014

Для конкретизации проблемы рисую свою ситуацию.

Есть некий "чёрный ящик", из которого торчит два разъёма: один - для шнура 220 В, другой - USB, по которому текут "крестики-нолики" прямиком в обычный ноутбук с Виндой. Этот "ящик" решает несколько задач. Скетчи для решения этих задач весьма откормлены, и все сразу не влезают в память контроллера. Да и в этом нет особой необходимости. Поскольку, а вот здесь прошу обратить внимание: для решения конкретной задачи производится ЗАЛИВКА ТРЕБУЕМОГО СКЕТЧА В КОНТРОЛЛЕР! А уж как не хочется вшивать в этот ящик дополнительный ICSP! А таскать за собой, хоть и маленький, но так стремящийся потеряться программатор! Поэтому, я и использую арудиновские буты для заливки скетчей прямо из рабочего ноута.

Есть в плане переход на DUE с его огромным желудком, способным переварить враз кучу скетчей. Но это пока в перспективном планировании.

А за напоминание о конструкторе загрузчика отдельное спасибо. Я когда-то в него пялился, но, уже не помню, почему, не занялся.

Peotr
Peotr аватар
Offline
Зарегистрирован: 17.02.2014

Сейчас посмотрел конструктор загрузчика. Там в выпадающем списке можно найти ATmega32. Но меня что-то свербят сомнения, что для, например, ATmega32A и ATmega32U4 подойдёт один и тот же загрузчик. Можно, конечно, попробовать. Где можно купить время???

Кажется, понял. В этом конструкторе используются только те контроллеры, которые установлены на ардуинах. Тогда ATmega32U4. Я прав?

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Все. До оверлеев докатились.

lean_74
Offline
Зарегистрирован: 22.12.2015

Peotr пишет:

Тогда ATmega32U4. Я прав?

Нет, там на сороканогую атмегу32, я сам пробовал только тинькой,  восьмой и 328 мегой. извини что ввел в заблуждение.

Peotr
Peotr аватар
Offline
Зарегистрирован: 17.02.2014

Что ж, после долгих метаний возвращаюсь к Lily-чке. :))

Спасибо за помощь.