Я работал над проектом Arduino. После того, как я все заработаю, используя Arduino, я бы хотел перейти к решению, которое НЕ использует Arduino. То есть я бы хотел использовать микроконтроллер без использования платы Arduino. Это позволит одну доску, без щита решение.
Я знаю, что есть способы сделать мой собственный Arduino на макете, но это не совсем то, что я пытаюсь сделать.
Я не совсем уверен, как это сделать.
Если нет лучшего варианта, я склоняюсь к использованию ATmega328, который используется Arduino. Я понимаю, что инструменты разработки доступны бесплатно или, по крайней мере, не очень дорого.
В целях этого вопроса, предположим, что я могу получить + 5В к моей схеме.
Мой первый вопрос - как запрограммировать MCU. Я считаю, что есть два варианта:
- Купите программатор, запрограммируйте микроконтроллер и вставьте микросхему в мою схему.
- Разработайте мою схему, чтобы включить поддержку внутрисхемного программирования.
Я предполагаю, что если я выберу вариант 1, это так же просто, как вставить запрограммированный чип в мою схему; Мне больше ничего не нужно. Конечно, изменение программного обеспечения было бы неудобно.
Но для варианта № 2 я не уверен, что мне нужно. Судя по тому, что я прочитал, думаю, мне нужен кабель для программирования и разъем на моей плате (какого типа?). Затем, я думаю, я (правильно) подключаю разъем к определенным контактам ATmega.
В любом случае, мне понадобится студия Atmel.
Во-вторых, кроме блока питания, есть ли на Arduino что-нибудь, что мне абсолютно необходимо? Я думаю, может быть, переключатель сброса?
Ответы:
Добро пожаловать в удивительный мир Atmel. Позвольте мне предложить вам ответы на ваши вопросы, основываясь на моем хобби и профессиональном опыте.
Ничего не беспокойтесь, НО внутрисхемное программирование. Если вы не идеальный кодер, удаление чипа каждый раз, когда вы хотите его запрограммировать, - это кошмар. Я рекомендую AVRISPmkII в качестве инструмента программирования начального уровня. Недостаток в том, что аппаратная отладка не поддерживается. Альтернативой является дракон, но у меня нет опыта с этим. Я могу сказать, что JTAGICEmk3 - хороший инструмент для отладки.
Атмел студия хороша для программирования. На самом деле это моя любимая встроенная среда разработки. Вы можете использовать инструменты CLI, такие как AVRDUDE и AVR-GCC, но IDE позаботится об этом за вас.
В ИТОГЕ:
Купите AVRISP для простого программирования (проще, подключи и играй) или ДРАКОНА (не могу дать совет).
На вашей плате выньте контакты ICSP к 6-контактному двухрядному 0,100-дюймовому разъему - соединения описаны в этой спецификации .
Переключатели сброса не нужны.
источник
Вам не нужно «выпускать» все сразу. Вот как я преобразовал:
Для начала я продолжал использовать Arduino, но преобразовывал вызовы библиотеки Arduino в чтение и запись в регистр, по одной строке за раз, чтобы проверить, все ли мои программы работали. Таким образом, я привык к использованию регистров и увидел, что они не являются радикально прерывистыми по отношению к Arduino. Функции Arduino, такие как digitalWrite (), просто управляют регистрами - вы можете читать и записывать их прямо в свои эскизы.
Следующим моим шагом было поставить ATTiny 85 на макет и запрограммировать его с Arduino в качестве интернет-провайдера ( http://highlowtech.org/?p=1695 ). Если вы покупаете макетный блок питания и используете внутренний генератор ATTiny, для этого требуется смехотворно небольшая проводка. Я использовал Arduino IDE для компиляции, но продолжал использовать регистры столько, сколько мог.
Затем я установил бесплатный набор инструментов командной строки Crosspack и скомпилировал мигающую программу. После еще нескольких проб и ошибок мне удалось запрограммировать ATTiny только на avrdude, оставаясь полностью вне экосистемы Arudino.
Как только вы достигнете моргания только с помощью инструментов командной строки, вы свободны от Arduino. Исследуйте различные периферийные устройства и их регистры, и вскоре это будет совершенно естественно.
После всего этого я часто использую Arduino, потому что это быстрее. Я обнаружил, что просмотр описаний регистров отстой; нет смысла делать это, если не нужно. Хотя хорошо знать, как это сделать.
источник
Я согласен с комментарием HL-DSK выше. Я потратил бы дополнительные деньги и получил бы программиста с возможностями отладки. Я использую JTAGICE3, около $ 110 на цифровой ключ.
Читайте о программировании ISP здесь . Он покажет вам, как вывести соединения SPI. Соединения SPI на вашем чипе будут указаны в спецификации ATmega. Смотрите на странице 2 контакты MISO / MOSI / SCK / RESET. Программист должен иметь возможность контролировать строку сброса. Не забудьте использовать подтягивающий резистор на линии сброса, чтобы ваша микросхема заработала после отключения программатора.
Получите себе заголовок 2х3 здесь . Или сделайте свой собственный, используя отколовшиеся заголовки.
источник
Разница между Arduino и голым ATmega328 - только две вещи. Загрузчик Arduino и библиотеки Arduino. Вы можете кодировать Arduino на голом C или C ++ без использования каких-либо библиотек. Вы также можете использовать сборку вместо. Загрузчик позволяет вам загружать новый код через последовательный порт, не проходя (немного) более сложное внутрисхемное последовательное программирование (в основном SPI).
Вы можете использовать стандартные библиотеки программирования и avr-gcc практически с любым ide. Вопреки тому, что могут сказать другие, кодирование Arduino в основном похоже на кодирование голого микроконтроллера с некоторыми дополнительными удобствами за счет некоторой производительности.
источник
Я покупаю предварительно загруженные чипы Atmega328P и программирую их внутрисхемным кабелем FTDI. и avrdude, так же, как я запрограммировал Arduino. Мне нравится Eclipse IDE, но вы можете использовать любую среду, какую пожелаете - Atmel Studio, Arduino IDE, emacs или barefoot в командной строке.
Эта плата строится в тот момент, когда она достаточно полна для тестирования с помощью программы Hello, используя кабель для программирования, питания и терминала. Ему все еще понадобится источник питания - в моем случае сверхмалый стабилизатор напряжения LM2936 и разъем аккумулятора, а также любые другие встроенные компоненты и внешние разъемы, которые понадобятся проекту:
Поскольку у вас есть Arduino, вы можете сэкономить немного денег и использовать непрограммированные чипы, используя Arduino для установки загрузчика. Приятные синие ярлыки с пинаутом помогают мне сдержать глупость! Я использую кристалл 16 МГц, но если вы можете работать с внутренним осциллятором, то количество ваших компонентов уменьшится на 3 (конденсатор xtal и 2).
источник
Чтобы перейти от Arduino, где предоставлено оборудование и программное обеспечение наложено на язык Си, я хотел бы сделать несколько предложений. Я вижу, что люди опубликовали несколько полезных ответов, но я был там, где вы есть, и я бы сделал что-то немного другое.
У меня есть несколько схематических идей, которые я узнал сам, чтобы у вас был чистый и плавный интерфейс к вашему микро. Дайте мне знать, если вам нужна помощь.
источник
Честный Совет
Arduino для начинающих, отсюда два пути
Способ 1: Понимание того, как работает микроконтроллер / процессор (предпочтительный подход)
Под этим я подразумеваю изучение архитектуры и кода сборки (или голого металла) для микро-п / к. Если вам нужна отправная точка для этого, я бы предложил Atmel 8051, который представляет собой 8-битный микроконтроллер с самой простой архитектурой и набором инструкций по сборке. Любой другой современный 32-битный или 64-битный процессор имеет производную от него форму архитектуры. Этот микроконтроллер все еще используется как часть моей курсовой работы для аспирантов, потому что это хорошая отправная точка и много литературы доступно.
Да, и комплекты для создания вашей платы ISP продаются (полностью собранные комплекты с процессором, паяными компонентами и комплектами платы, и вы можете собрать плату разработки самостоятельно, для этого требуется всего пара ИС / кабелей / разъемов RS-232)
Поскольку это высокотехнологичный, все компоненты будут дешевыми.
Способ 2: переход к аппаратно-программному подходу (менее предпочтительный)
Это подход для бездельников, которые погрузились в небольшую сборку и «выбили» ИЛИ людей, которые хотят перейти на большее количество программного обеспечения, чем аппаратного обеспечения. Я бы предложил перейти на другую платформу для любителей, например, Raspberry Pi или BeagleBoneBlack с процессорами ARM, и начать заниматься проектами и их творчеством.
источник
Вы можете использовать плату Arduino, не используя библиотеки песочниц и окружение, вы можете сами все программировать. Если вы хотите использовать их загрузчик через serial / uart для программирования, это прекрасно работает. Но большинство / все части avr также могут быть запрограммированы другим способом, с частью, удерживаемой в сбросе, что означает, что она не подлежит обработке кирпичом. это довольно легко укусить Spi от Arduino или другого микроконтроллера или с FDDI из какого-то аромата. У sparkfun есть платы arduino и non-arduino (например, 32u), что заголовок spi очевиден. и панели управления ftdi, которые вы можете легко добавить в бит, используя библиотеку ftdi или библиотеку ftdi, которая поставляется с linux.
Документация для каждой части показывает параметры загрузки и параметры программирования flash. да, это не сложно просто купить некоторые детали и сделать свою собственную разделочную доску. Я не буду этого делать, пока вы не воспользуетесь существующим прорывом или простой платой eval, а затем клонируете это, если это будет необходимо. В идеале начать с детали с внутренним генератором постоянного тока, в основном, с питанием, заземлением и контактами программирования ...
источник