Делаем сами Single-Side Arduino c COM-портом на борту

    Занимаясь электроникой и микроконтроллерами, я прекрасно осознаю, что было бы неплохо иметь под рукой готовую отладочную плату. С ее помощью можно быстро проверить какой-нибудь сервопривод, датчик и т.д., а то и собрать на ней целиком весь проект. Именно поэтому решил самостоятельно изготовить Arduino.

    Создатели знаменитой платформы позаботились о любителях DIY и подготовили для этого специальную одностороннюю версию платы. Также в интернете есть весьма подробные инструкции о том, как изготовить ее в домашних условиях. К сожалению, у этой платы есть несколько недостатков, а именно: подключение только через COM-порт и питание исключительно от адаптера. Я решил устранить и получил в итоге вот такую, симпатичную плату:

    image

    Конечно, идея не новая, и на просторах интернета не раз звучала идея прикручивания виртуального COM-порта к Single-Side Board, но готового проекта я нигде не встречал.

    Всех, кто когда-нибудь мечтал сделать для себя Arduino самостоятельно, прошу под кат.

    В исходной плате COM-порт я заменил на ИМС FT232RL. Она работает с логическими уровнями ТТЛ, так что конвертер (которой в исходной ардуйне сделан на транзисторах) не нужен. Для выбора источника питания на схеме предусмотрен трехконтактный пинхэдер. Он позволяет задать положением джампера источник питания: USB-порт (положение «int») или разъем БП(положение «ext»). FTRL’ка всегда питается только от USB. Так же есть джампер «auto reset enable». Принципиально делаю ответственные проекты в P-CAD'е. Экспорт графики в нем достаточно сложный, поэтому выкладываю только скриншоты чертежей.

    фотохостинг

    Плата почти полностью содрана с оригинальной, кроме подключения FTRL'ки, вид «насквозь»:

    image

    а также сборочный чертеж:

    image

    конденсаторы С7, С8 рекомендую положить на бок, чтобы не выступали выше разъема.

    О том, как самостоятельно что-то спаять, написал лучше и больше всех DI HALT. Добавлю только, что проблемы могут возникнуть с распайкой FTRL'ки. Я пытался на протравленной плате залудить пады под нее — чуть не оторвал. Так что рекомендую пропаивать выводы по одному. Кстати, желательно плату отмыть от флюса: два раза видел такое, что после пайки неотмытая микруха не определялась компьютером. При желании, можно тем же ЛУТ'ом нанести на лицевую сторону платы сборочный чертеж, но тогда ее уже не получится отмыть в ванночке с ацетоном.

    Когда плата изготовлена, можно заняться программным обеспечением. В первую очередь надо скачать и установить ардуиновскую IDE'шку. а так же драйвер для микросхемы FT232RL.

    Теперь необходимо прошить бутлоадер. Лично я для прошивки использую вот такой программатор, не сочтите за рекламу. Более подробно о прошивке бутлоадера можно почитать здесь. Сам прошивочный файл лежит на жестком диске по адресу: C:\Program Files\arduino-1.0.1\hardware\arduino\bootloaders\atmega8\ATmegaBOOT.hex. Я просто установил контроллер в ZIF-сокет и прошил непосредственно этот файл. Фьюз-биты я взял отсюда. Необходимо отметить, что я пытался запустить эту плату с 168ой мегой, но мне так и не удалось это сделать. Скорее всего ни один бутлоадер не подошел.

    Программировать ардуино проще простого. Запускаем среду программирования и выбираем плату (в нашем случае это Arduino NG or older w/ATmega8):

    image

    Затем запускаем готовый пример, который моргает пользовательским светодиодом:

    image

    Далее, жмем Файл->Загрузить и наблюдаем:



    Если все правильно собрано, то работает сразу. У меня при загрузке обнаружилась ошибка — плохо был пропаян вывод Rx FTRL'ки, но я это быстро поправил.

    В архиве вы можете взять все чертежи, прошивку, а также список деталей для покупки. Чертежи сделаны в САПР P-CAD 2006. Если кто-то поможет подготовить файлы для ЛУТ, буду очень благодарен.

    Эта плата полностью arduino-совместима и позволяет работать со стандартными шилдами и IDE'шкой, хотя я сам их редко использую. На мой взгляд проще собрать проект в AVR-studio — по старинке))).

    UPD:
    Основная статья теперь хранится здесь.
    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 23

      +2
      с такими умениями вам и ардуино не нужно, можете уже делать произвольные платы на МК и работать из avrstudio или iar
        +3
        Я всегда так и делал. Просто иногда необходимо иметь под рукой плату, что проверить по-быстрому какой-нибудь двигатель, а за ардуино платить не хочется.
          +1
          Так в таком случае сразу сделать что то более продвинутое. Ардуино далеко не шедевр удобности и практичности.
            +5
            Уважаемый тёзка, вы так скромны (или осторожны), что не сказали ни слова о своей плате Pinboard (:
            Сам я не фанат таких решений, да и не нужны они мне (я не проф. электронщик, мне для баловства хватает STM32VLDISCOVERY и беспаечной макетки), но признаю, что для профессионального освоения МК сложно придумать что-то удобнее. В конце концов, если бабло даёт контора, почему бы не купить такую плату, а если хватает знаний и навыков, то почему бы не сделать подобную? А потом, когда надо проектировать очередное устройство, набросал код, проверил на плате с минимумом возни (большинство необходимых для решения задачи компонентов/модулей уже есть на плате), а когда будет готова плата устройства, достаточно будет просто переназначить пины и периферию в коде (в большинстве случаев будет достаточно).
              +2
              Тем не менее, она достаточно проста и минималистична для применения во встраиваемых системах. И еще подкупает количество готовых примеров и библиотек.
          –1
          А торчащий электролит и стабилизатор не будут мешать шилдам? не из-за этого ли 2-й электролит лежит?
            –1
            читал как обычно затылком и пропустил строчку про кондюки… просто ориентировался по снимку готового устройства.
              +2
              Я и шилды делаю сам. Так что могу себе позволить)
              +1
              А почему PCAD? Вроде как Eagle основной инструмент у Ардуинщиков. PCAD удобнее?
                0
                Дело в том, что я не «ардуинщик». Мне PCAD больше нравится.
                  0
                  В самом деле? Я, конечно, не проф. электронщик, но у меня таки волосы дыбом встали от интерфейса Eagle, а вот DipTrace оказался интуитивно-понятным.
                    +1
                    Интуитивно понятный интерфейс далеко не показатель эффективности.

                    Как говорится, лучше день потерять, потом за пять минут долететь. Игл похож чем то на автокад. У него очень мощная консоль через которую можно делать все. Например толщину текущей линии можно вбивать прям сразу туда, не отрываясь от разведения куска. Можно на лету вызывать макросы, менять инструмент.
                    0
                    Я еще очень часто пользую Sprint Layout, но профессиональный электронщик все-таки должен быть знаком с CAD-системами. Я один раз потратил месяц, чтобы разобраться в P-CAD'е и не пожалел.
                    –1
                    Только вот COM-порта на борту то и не видать. Стоит, как и у всех, конвертер USB-TTL.
                      +1
                      А что вы ожидали увидеть? Я имел ввиду именно это. И я не нашел у «всех» ардуино с USB, которую можно сделать в домашних условиях самостоятельно.
                        –1
                        Я ожидал увидеть хардварный COM-порт(который RS-232).
                          0
                          Ну, тогда вам похоже сюда, если я вас правильно понял.
                            +1
                            А ЗАЧЕМ?
                              –3
                              А затем, что в названии треда сказано, что на борту платы есть COM-порт. В соответствии с названием, я, открывая тред, ожидал увидеть COM-порт. Так что логичнее было бы спросить у автора, зачем выносить в шапку треда факты, не соответствующие действительности.
                          0
                          ИМХО разводить на плате конвертер USB-TTL неразумно ни по цене, ни по эффективности. Все равно в Arduino он используется главным образом только для загрузки кода (перепрошивки) и отладочного вывода. Т. е. в готовом проекте конвертер USB-TTL часто не нужен. Если выкинуть этот атавизм, то схема становится совсем простой, экономится место на плате (на котором можно разместить что-то более полезное, хотя бы макетное поле), экономятся детали, экономятся усилия по сборке. Поэтому гораздо удобнее на плате просто вывести только коннектор для USART (достаточно по минимуму 3 провода, GND, TXD, RXD), и подключить туда готовый китайский переходничок USB-TTL COM. Они дешевые, можно купить на ebay или dealextreme, да еще и с бесплатной доставкой, например такой. Или даже собрать самому один раз.

                          Фактически любая плата с микроконтроллером ATmegaXX на борту может стать «Arduino-совместимой» (т. е. с ней можно полноценно работать в Arduino IDE, как с родной платой Arduino), если в память микроконтроллера прошить USART-загрузчик Arduino. Поэтому для тех, кто «знает как», не нужно покупать никакие Arduino-платы, и не нужно покупать никакие шилды, даже если хочется писать программы в среде Arduino. А у кого есть лишние деньги, и кому надо готовенькое — для них и существуют родные Arduino и шилды.

                          Именно по такому принципу (без USB TTL конвертера на борту) сделаны Arduino-совместимые макетные платы metaboard, Nanode, veroduino, USnooBie, и т. п. Многие из них имеют интерфейс USB (который может работать и как USB HID, и как USB CDC, в зависимости от загруженной программы), хотя конвертера USB TTL на плате нет. Загружать программы в них тоже можно и через USB (если прошит соответствующий загрузчик).
                        +1
                        Кстати, по поводу USB-UART — я обычно использую cp2102 — она дешевле раза в 3 (в Киеве во всяком случае), и обвязки еще меньше. А с драйверами, скоростью и прочим — ситуация такая же, как и у ftdi: Linux видит сразу, а для Win и Mac драйвера находятся и ставятся с пол-пинка. Рекомендую.

                        Only users with full accounts can post comments. Log in, please.