Jump to content
IgnatiusF

Сделать USB отладочную плату для avr микроконтроллеров

Recommended Posts

В последнее время слишком много работаю с МК avr, постоянно что-нибудь изучаю на нем, и начал задумываться о создании отладочной платы "под себя".

Надобность в этой роскоши понадобилась из-за того, что по 20 раз вытаскивать МК и шить его, а потом вставлять обратно из-за каждой мелкой ошибки очень неудобно. Поскольку я пока только изучаю микроконтроллеры, то такие мелкие ошибки появляются постоянно, и очень много совсем не лишнего времени уходит на перепрошивку отдельным программатором.

Плата должна подключаться по USB к компьютеру, и прошиваться по одному клику avrdude, а так же нужна возможность использовать любые МК avr. Всего по минимуму, МК, USB, макетка, кварц на всякий пожарный. А так же схема стабилизации питания при подаче через клеммник или DC разъем. Ну и защита от переполюсовки и КЗ на входе.

И проблема только с автоматическим программированием МК на схеме, ничего не разбирая и не вынимая. Как на ардуино.

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

Какие есть варианты для создания подобной отладочной платы? Впихнуть на нее какой-нибудь небольшой программатор на подобии USBasp или USBtiny, или использовать схемы FT232RL или PL2303? Сделал разводку платы для первого варианта с USBasp, однако не нашел нигде никакой информации по поводу можно так делать или нельзя, и почему. И как можно тоже. Также видел варианты макетных плат под конкретные модели микроконтроллеров, где не используются никакие дополнительные микросхемы. Прошу помочь разобраться в этом вопросе и найти хорошее решение.

Share this post


Link to post
Share on other sites

Я так и не понял, чем просто плата с 6-пиновым ISP-разъемом и отдельный китайский клон USBAsp в качестве программатора не устраивает? Если же "подключение по USB" подразумевает не только прошивку, но и отладку, то чем не устраивает ардуино?

Сделать универсальную плату, в которую одинаково успешно "втыкаются" и attiny13 и atmega128 будет весьма сложно, т.к. назначение пинов очень сильно варьируется. И тот же USART "гуляет" по пинам вплоть до порлного отсутствия вообще. Есть ли смысл в такой постановке задачи?


Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Share this post


Link to post
Share on other sites

Не устраивает тем, что в таком случае прошивка МК заставляет делать лишние телодвижения. И это будет не сильно отличаться от того, что сейчас я вынимаю постоянно микроконтроллер. Нужен именно микроконтроллер сам, а не вся ардуино. Да и макетку не приделать компактную, ни питания через другие разъемы не сделать. Отладка совсем не нужна.

А под платой для любых МК я подразумевал то, чтобы сама схема имела возможность быть созданной для любого МК от Atmel отдельно.

Есть желание сделать по-настоящему удобный и компактный инструмент для работы с микроконтроллерами, и чем он удобнее, тем лучше.

 

Share this post


Link to post
Share on other sites

Вебинар «Решения Analog Devices для гальванической изоляции. Обзор технологий и новинок» (27.04.2021)

Компания «Компэл» и Analog Devices приглашают всех желающих 27/04/2021 принять участие в вебинаре, посвященном решениям Analog Devices для гальванической изоляции. В программе вебинара: технологии гальванической изоляции iCoupler, цифровые изоляторы, изолированное питание и технология isoPower, гальванически изолированные интерфейсы (RS-485, CAN, USB, I2C, LVDS) и другое.

Подробнее

Только что, IgnatiusF сказал:

Не устраивает тем, что в таком случае прошивка МК заставляет делать лишние телодвижения.

Давайте определимся в терминах, ибо я не понимаю вас...

Вот я отлаживаю свои конструкции так: есть макетка с 6-пиновым ISP разъемом, в который воткнут USBAsp. Этот программатор является и питанием для платы, и заодно прошивальщиком. На время всех экспериментов не отключается (кроме крайне экзотических случаев). О каких телодвижениях говорите вы?

Или основные ваши проекты сильно завязаны на использование в микроконтроллере SPI-интерфейса, что вынуждает постоянно отключать программатор?


Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Share this post


Link to post
Share on other sites

Пружинные клеммники Degson - высокое качество соединения по оптимальной цене!

Пружинные клеммные блоки Degson для монтажа на печатную плату – это простое и надежное соединение, которое позволяет легко решать задачи для различных приложений за счет обширного ассортимента. Клеммники Degson доступны в двух конструктивных исполнениях (торцевой контакт и зажимная клеть), имеют различные направления ввода проводника (45°, 90°, 180°) и обладают широким диапазоном поперечных сечений (0,2…2,5 мм2).

Подробнее

Цитата

Сделал разводку платы для первого варианта с USBasp, однако не нашел нигде никакой информации по поводу можно так делать или нельзя, и почему.

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

То есть просто соединить программатор с МК и схемой и все будет работать без проблем? Или все таки какие-то проблемы могут возникнуть в работе при их постоянном прямом подключении между собой? Например будут ли они оказывать друг на друга какое-то влияние, и можно ли будет использовать ножки МК MISO, MOSI, SCK для подключения к схеме?

Edited by IgnatiusF

Share this post


Link to post
Share on other sites

Новое семейство ИП от MEAN WELL мощностью 150, 300, 600 Вт с повышенной перегрузочной способностью

Компания MEAN WELL разработала семейство источников питания номинальной мощностью 150, 300 и 600 Вт с возможностью кратковременной безопасной работы при мощности в 2,5 раза выше номинальной (до 5 секунд). Данное семейство источников питания востребовано в промышленных установках с использованием электродвигателей или с емкостной нагрузкой. Применяя новые источники питания HRP/N можно получить экономический выигрыш.

Подробнее

USBAsp в моменты "между прошивками" никак не воздействует на линии, к которым подключен. Проблема может возникнуть, если к линиям SPI микроконтрроллера помимо программатора подключено что-то еще. Но чаще всего это проявляется всего лишь в некоторых "спецэффектах" во время прошивки. Например, я подключал ленту WS2812b к SPI, и во время прошивки первый светодиод ленты мерцал всякими цветами. Но разве это проблема?


Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Share this post


Link to post
Share on other sites

На то оно и In-System Programming, что позволяет в конечном устройстве программировать. У меня как и у @ARV программатор постоянно подключен к плате с МК, зачастую от него и питается.


3D модели радиодеталей + макросы

С уважением, Михаил.

Share this post


Link to post
Share on other sites

Спасибо большое за ответ, тогда получается и проблемы никакой нету. И все же я не пойму, почему в подобных отладочных платах программатор всегда "рядом", а не подключен к выводам МК. Разве так не удобней?

Share this post


Link to post
Share on other sites
Только что, aitras сказал:

сигнал Slave Select не должен же допустить таких "спецэффектов"?

Видимо, производители лент WS2812B не в курсе, что надо еще и этот сигнал использовать :) 

Вообще говоря - да, но не совсем. Во время прошивки все пины МК, включая SS, находятся в третьем состоянии, и не факт, что такое состояние будет воспринято ведомым устройством, как "не выбран". Плюс ко всему, подлые производители SD-карт, например, придумали такой протокол обмена, в котором и при неактивном CS уровни на других линиях играют определенную роль... Так что эффекты могут быть.


Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Share this post


Link to post
Share on other sites

Значит, что на плате присутствует, но в виде отдельной части схемы. То есть не подключен к МК напрямую. Или я просто чего-то не понимаю, что скорее всего. Среди плат, которые я рассматривал была эта: ссылка

Share this post


Link to post
Share on other sites
Только что, IgnatiusF сказал:

на плате присутствует, но в виде отдельной части схемы

На любой универсальной плате, рассчитанной на применение РАЗНЫХ МК, невозможно соединить программаор "наглухо" с пинами для прошвки, т.к. у каждого МК эти пины в разных местах. Поэтоу программатор и не делают частью общей схемы, а обособляют. И даже на фирменном STK500 (схемы гуглятся) есть куча всяких "джамперов" для решения этой проблемы.


Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Share this post


Link to post
Share on other sites

Кстати, а отладку в микроконтроллере можно осуществить только при помощи интерфейса JTAG, или нет? Если есть еще способы, можно на статью направить? Я именно про аппаратную отладку, а не программную.

Share this post


Link to post
Share on other sites

Для отладки AVR практически нет доступных по цене средств аппаратной отладки, будь то JTAG или новый интерфейс по 1 проводу (забыл фирменное название). Все отладчики довольно дороги, единственный известный клон AVR JTAG ICE поддерживается только в древней студии (4.18), да и то криво... Во всяком случае я не смог его заставить НАДЕЖНО работать даже со студией, не считая попыток работы с avr-gdb/avarice.

Так что, скорее всего, увы и ах...


Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

  • Similar Content

    • By LEVV2006
      Всем привет! 
      Давно разрабатываю проект беспроводного и живучего датчика температуры. Вообще изначально я хотел найти готовое устройство с понятным интерфейсом взаимодействия. Что бы без гемороя и танцев с бубном можно было подключать датчик температуры к любому проекту (Как пример: часы на ГРИ или ВЛИ) и просто выводить температуру.  К сожалению ничего вменяемого я не нашел. Либо датчики используются в закрытой эко-системе. Либо это BLE с которым вообще не понятно как работать ибо информации почти нет.
      Решил попробовать разработать такую вещь самостоятельно. Конечно это изобретение велосипеда, но лично для себя я практиковался с BME280, nrf24l01 и сном МК. Как минимум тут выгода есть
      Вот что получилось. Приемник и передатчик. 

      Немножко информации. 
      Приемник: МК (328p) + USB to COM (CP2102) ____ (Дополнительно светодиод и расшивка SPI)  частота 8MHz от внутреннего кварца 
      Передатчик: МК (328p) + BME280 + nrf24l01 + бат CR2032 +Опорное напряжение   ____ (Дополнительно светодиод и расшивка SPI, uart, кнопка) частота 1MHz от внутреннего кварца
      Что по потреблению: 
      Очень долго пытался понять по мультиметру, но он постоянно как то врал. При первом сне показывал 40мкА, а потом с каждой итерацией сна прибавлял +10мкА. В общем поставил стрелочный прибор на 100мкА
      По прибору. ЕСЛИ ВСЕ ШТАТНО РАБОТАЕТ!!!!!    Во время сна стрелка лежит в 0. При измерении и отправке 70-100мкА. Но стрелка мгновенно дергается и потом сразу в 0.
       ВОТ Дальше я зашел в тупик! И мне нужна ваша помощь! 
      1) У меня в СОМ порт постоянно летят логи программы и как выяснилось это очень много жрет энергии. Странность вот в чем. Если вытащить провода Тх, Rx то МК как бы зависает несколько секунд для отправки пакета.... скажите разве у UART есть подтверждение отправки пакета? 
      2) Я решил убрать вообще весь код UART. И все равно если убрать провода Тх, Rx то зависание присутствует (Зависание я фиксирую на стрелочном приборе. Как максимальное потребление и неуход в сон). PS/ питаю все от 3,3в с платы конвектора 
      3)Теперь я подключаю батарейку она у меня немного подсевшая 2,8в, Но я планировал что устройство должно работать до 2в! . Раз я отключил  UART, то решил использовать светодиод как метку как выполняется код. И вот еще САМАЯ СТРАННАЯ проблема. Программа не стартует! Вообще. Идет большое потребление тока, но светодиод не горит. 
      Почему так происходит? ___________________________________________(У меня есть предположение что это бутлоадер как то не так себя ведет..... )
      PS/ в Фьюзах я отключил отслеживание питания. 
    • By sunjob
      добрый день
      проект v-usb
      выкус из спецификации/инета/форумов:
      - реализация не полностью соответствует стандарту
      - работа на 100% не гарантируется
      - питание по USB / с компа может провалиться до 4-4.5В (а F_CPU идет в "притирочку" ...)  :))
      у всех рекомендованных схем подключения (3 шт) имеются те или иные очевидные минусы.



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


       
      достаем помидоры, баркова, мысли, высказываемся (заранее благодарен)
      tag: v-usb, usb, avr, atmega328p, avr-gcc, linux/mac-osx
      NO atmega32u4, NO arduino pro micro etc...

    • By Игорь Аксенов
      1.Не будет ли конфликта питания при одновременном подключении к ПК  stlink(UART) 3.3V и usb 5V (Узнал , что внешнее(5V)  недопустимо с USB).
         А про USB+stlink(UART)  честно долго искал, но так и не нашел.
      2. На USB: кто будет хабом(ПК или микроконтроллер) , а кто устройством.
    • By Tuxford
      С помощью STM32CubeMX сгенерил самый примитывний проект чтобы что-то принять-передать по USB. Все бы ничего, но обмена не происходит, хотя в системе устройство видно.
      Шаг за шагом обнаружил что приходит прерывание SOF, и просто скидывается. На этом финиш. И так постоянно. Находил проекты по эти борды (Blue pill, STM32 Smart), где собственно все то же. Но нифига не рабтает.

      Что же такого особенного в этом MCU особенного чтобы USB работал?
      PS. Пробывал делать тоже на STM32L4-Discovery. Работает старта. В чем разница?
      IOC в атаче.
      TestBP.ioc
    • By Георгий Кулава
      На панели магнитолы есть свободное место под распайку usb порта, но далее по дорожкам находится L901 и FL901,вопрос - что там должно быть распаяно?
×
×
  • Create New...