Вопрос по разводке клона Arduino ProMini
- Войдите на сайт для отправки комментариев
Понадобилось мне сделать клон ПроМини, но чуть в другом форм-факторе (надо ужаться в 14 мм вместо 18, зато длина аж до 45) и без лишних деталей, типа стабилизатора.
В широко известном букваре arduinoBasicConnections.pdf приведена такая схема:
Подскажите, на сколько она верная? Могу на нее ориентироваться при разводке платы?
Камень будет в корпусе TQFP32, ноги там все вроде нормально подписаны. И что делать с лишними ногами, которые на схеме не указаны, в каком виде оставлять? :)
На всякий случай ссылка на букварь:
http://homes-smart.ru/upload/arduino/arduinoBasicConnections.pdf
Ну и если вдруг у кого из благородных донов есть (вдруг) макетик под atmega 328p в TQFP32 да в Sprint Layout, буду очень благода. :) Ибо с чего-то надо начать. Плата будет двухслойная, JLCPCB - наше все. :)
Какие странные у вас подходы... Почему просто на рефренсную схему не ориентируетесь, предпочитая рисунок для детей?
Размер корпуса TQFP-32 около 9х9мм по краям ножек. Если разьемы типовые штырьки с шагом 2.54мм то их размер равен шагу. Если выводите по длинным сторонам платы, то "вплотную к ногам корпуса получится 9+2х2.54 = 14,08мм, что уже превышает желаемое на 0.08мм, а вам ещё надо "просунуть" дорожки и оставить просвет на "паяльную маску" и, крайне желательно "запас" по краю платы.. разве что разьемы увести в сторону от корпуса, если длина позволяет.
Разводил свои поделки в kicad "веселье" ещё то, но как-то приспособился. JLPCB вполне принимает гербер из кикада (похоже ему ваще все равно откуда он приходит, был бы корректным). В кикаде корпус TQFP-100 рисовал сам .. оказалось "это не сложно", не знаю как в виндовых программах.
По рисунку: да вроде там все есть, нормально. Собственно Вам надо развести провод Reset как надо и кварцевую часть, и то, если планируете использовать внешний - "ни абязательна", может работать от внутреннего в 8Мгц.
И ещё: если Вам нужны аналоговые входы, то Avcc и Agnd стоит разводить строго по рекомендациям из даташита. Точность измерения оказалась чувствительна к варианту разводки и размещениям "спец. конденсатора". В общем по моим оценкам можно потерять 1-2LSB.
Какие странные у вас подходы... Почему просто на рефренсную схему не ориентируетесь, предпочитая рисунок для детей?
Потому что задумался я об этом как раз после просмотра "рисунка для детей". Касательно референсных схем - есть нюансы. Скажем, возьмем мой любимый MAX7219. По даташиту, ему кроме мелкого кондера на питание вообще ничего не надо. Ну, резистор не в счет.
Вот только на практике, когда мы собираем на одной плате скажем три или шесть штук - у нас бывают проблемы на этапе инициализации, если используется ардуиновский LedControl. Которые лечатся добавлением электролита, причем достаточно например одного на троих.
А так как с иглы ардуино я пока слезать не планирую, имеет смысл смотреть именно их клоны, imho.
Размер корпуса TQFP-32 около 9х9мм по краям ножек. Если разьемы типовые штырьки с шагом 2.54мм то их размер равен шагу. Если выводите по длинным сторонам платы, то "вплотную к ногам корпуса получится 9+2х2.54 = 14,08мм, что уже превышает желаемое на 0.08мм, а вам ещё надо "просунуть" дорожки и оставить просвет на "паяльную маску" и, крайне желательно "запас" по краю платы.. разве что разьемы увести в сторону от корпуса, если длина позволяет.
2.54 для меня не догма, да и ног будет меньше относительно "расово верной" промини. Я исходил что с учетом пайки мне 10 на 10 надо будет резервировать, что вполне себе в допуске. Тут вопрос именно в том, все ли необходимые компоненты есть на схеме выше. А там я уже буду играть с компонентами в рамках вписывания в нужный размер. Как я понимаю, по размещению важно правильно решить вопрос с кварцем (+2 конденсатора) и конденсатором по питанию, все остальное плюс/минус по расположению переносит спокойно.
Для моих нужд 4 аналоговых входа да штук 8 цифровых пинов - за глаза по идее. Avcc и Agnd в даташите посмотрю, спасибо.
Вот только на практике, когда мы собираем на одной плате скажем три или шесть штук - у нас бывают проблемы на этапе инициализации, если используется ардуиновский LedControl. Которые лечатся добавлением электролита, причем достаточно например одного на троих.
Так это источник питания не вытягивает, поди. Его-то в референсе наврядли рисуют.
Этак проблемы, поди, будут и с первой схемой, если десятка два-три самопальных плат к кроне подключить.
Промини, как сами понимаете, спаркфаном выпускаются вполне себе и наврядли там плохая топология. Схемы и разводку контора не прячет... Кварц и конденсаторы китайцы меняют на детальку, где емкости интегрированы. Она и мелкая вдовесок. Запамятовал, как зовется.
Керамический резонатор.
Чечако - если важны габарит и простота, советую разводить без кварца. Все, что нужно - это подвести питание и GND на пару соответсвующих ног справа и слева корпуса . Если использовать внутренний клок - НИЧЕГО БОЛЬШЕ НЕ НУЖНО.
Можно подтянуть RESET к питанию резистором 10К. но в принципе все отлично работает и с внутренней подтяжкой.
Блок питания вполне вытягивает, скорее помехи начинают переть по линиям питания, когда на них несколько максов оказывается. Ибо если я их питание проводами разведу, а не через некую объединяющую плату, проблема уходит и без конденсаторов при том же самом БП. Где-то я читал, что 7219/7221 любят по земле активно погадить, чему сами не рады. :)
По поводу резонаторов почитаю, тема интерестная. Хотя я в качестве образца изучаю миньку от RobotDyn (испытываю я к ним некую симпатию, да), на ней стоит стандартный большой кварц на 16 и два отдельных кондера.
Касательно без кварца вообще - я так понимаю, на встроенном генераторе больше 8 мегагерц мне не светит. Или туплю? Гугл пока однозначно не ответил. :)
Керамический резонатор.
https://ru.aliexpress.com/item/20PCS-CSTCE16M-SMD-16MHZ-16-00MHZ-CSTCE16...
Это ведь оно, если я правильно понимаю?
Угу. Только не забываем, что характеристики у них похуже, чем у кварцевых. Для большинства применений это не критично, но для измерений, зависящих от точности и стабильности тактовой МК это может сказаться.
Касательно без кварца вообще - я так понимаю, на встроенном генераторе больше 8 мегагерц мне не светит.
Да. не больше 8 МГц. А оно надо - больше?
Да. не больше 8 МГц. А оно надо - больше?
Да хрен его знает. Я сейчас пытаюсь понять, как объективно оценить загрузку МК текущими задачами, если визуально он все успевает. Но есть ли там какой запас, и какой он - вопрос...
Прикидочная оценка достаточно проста и тут уже где-то была: пиковая скорость ногодрыга на 16Мгц, около 5.33Мгц. Если это "завернуть в функцию", то скорость падает примерно до 1Мгц. Это цена "вызова". Библиотеки на С++, особенно то, что связано с классом Stream (Serial к примеру) кроме вложения 2-4 уровней call (функций) ещё имеют и виртуальные методы, а это ещё 2 уровня косвенности. То есть, типовое применение Wiring (+вызов из программы библиотечных функций) это снижение рабочей частоты МК примерно (2..4 + 2 + 1) = 5..7 * 4 => 20-35 раз. .. вплоть до "тактовой" около 10-100кГц. Если "терпимо", то можно уходить на 8Мгц и пользовать Wiring, если нет, то отказываться от Wiring и писать код на С, управляя регистрами МК напрямую.
Тут же есть разьяснение "почему С++ не подходит для программирования МК". :)
То есть, типовое применение Wiring (+вызов из программы библиотечных функций) это снижение рабочей частоты МК примерно (2..4 + 2 + 1) = 5..7 * 4 => 20-35 раз. .. вплоть до "тактовой" около 10-100кГц. Если "терпимо", то можно уходить на 8Мгц и пользовать Wiring, если нет, то отказываться от Wiring и писать код на С, управляя регистрами МК напрямую.
Проще поставить кварц на 16, imho. Места хватит. Вспоминать ассемблер у меня пока нет ни малейшего желания. :)
Сам Ассемблер, тут не нужен ни разу. Есть стандартный io.h который позволяет управлять регистрами напрямую через макроопределения типа PORTB. Транслируются практически "в Ассемблер". Если не пользовать "типовые библиотеки" и понимать "что" пишешь - этого вполне достаточно.
Блок питания вполне вытягивает, скорее помехи начинают переть по линиям питания, когда на них несколько максов оказывается. Ибо если я их питание проводами разведу, а не через некую объединяющую плату, проблема уходит и без конденсаторов при том же самом БП. Где-то я читал, что 7219/7221 любят по земле активно погадить, чему сами не рады. :)
А писание ты читал невнимательно:
"Supply Bypassing and Wiring
To minimize power-supply ripple due to the peak digit driver currents, connect a 10µF electrolytic and a 0.1µF ceramic capacitor between V+ and GND as close to the device as possible. The MAX7219/MAX7221 should be placed in close proximity to the LED display, and connections should be kept as short as possible to minimize the effects of wiring inductance and electromagnetic interference. Also, both GND pins must be connected to ground."
Проще поставить кварц на 16, imho. Места хватит. Вспоминать ассемблер у меня пока нет ни малейшего желания. :)
не нужен для ногодрыга ассемблер.
Wiring'овые функции заменить на макросы из CyberLib - и скорость, и понятно.
А писание ты читал невнимательно:
"Supply Bypassing and Wiring
To minimize power-supply ripple due to the peak digit driver currents, connect a 10µF electrolytic and a 0.1µF ceramic capacitor between V+ and GND as close to the device as possible.
Да, виноват. Нашел в даташите. Подорвался видимо на том, что на типичных схемах был только 0.1.
Но что интерестно - пока питание на модули шло посредством скрученных проводов, глюков не бывало никогда. А вот когда я им сделал объединяющую плату, куда они воткнулись, т.е. с разводкой плюса дорожками и общей землей посредством полигона, глюки стали иногда проскакивать. Сами модули и БП не менялись, только способ соединения. Были BLS разъемы, стали PBD. Правда, сечение проводов побольше сечения дорожек было. :)
Есть у меня еще один вопрос по разводке. Банальный. :) Толщина дорожек. В найденных примерах я видел от 0.2 до 0.5. Скажем, к тем же аналоговым входам есть смысл стараться сделать 0.4, а не 0.3, или вообще пофигу?
Использование - да как обычные промини/нано, т.е. универсальное применение. Цифровые дороги опять же - пытаться все что можно делать толще, или не важно это? Я просто не знаю, какое сечение используется в продаваемых готовых модулях, имеющиеся инструменты не позволяют замерить. Слой меди будет 35 микрон.
Пока с учетом габаритов планирую все сигнальное разводить 0.3, питание 0.4. Но могу быть не прав, нужен совет бывалых.