Оглавление:

Учебник по ассемблеру AVR 8: 4 шага
Учебник по ассемблеру AVR 8: 4 шага

Видео: Учебник по ассемблеру AVR 8: 4 шага

Видео: Учебник по ассемблеру AVR 8: 4 шага
Видео: Программирование AVR на языке Ассемблер, часть 1. "Установка программного обеспечения". 2024, Июль
Anonim
Учебник AVR Assembler 8
Учебник AVR Assembler 8

Добро пожаловать в Урок 8!

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

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

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

Мы потратим большую часть этого руководства на выполнение физических задач, таких как проектирование схемы, отображение макетной платы и пайка, но есть немного программирования, которое нам нужно выполнить в конце, после того, как мы переместим вещи. Причина в том, что мы в конечном итоге собираемся использовать 2-проводный последовательный интерфейс для связи между нашим основным «главным» контроллером и всеми «подчиненными» контроллерами, которые составляют компоненты нашего общего проекта в этой серии руководств и, Как вы помните, в Уроке 6 мы изобрели своего рода метод типа кода Морзе для передачи наших бросков кубиков с ролика кубиков (Урок 4) на анализатор регистров (Урок 5), который отображал результат броска кубиков в двоичном формате на 8 светодиодах.. Что ж, это был просто метод общения, который я решил использовать, потому что в то время было слишком рано переходить к двухпроводной последовательной связи. Теперь мы почти готовы погрузиться в глубину последовательной связи, и мы сделаем это в Уроке 10, но сейчас нам нужно предвидеть это будущее развитие и повторно подключить наши светодиоды ролика в кости, чтобы освободить два контакты, которые нам нужны для последовательной связи.

Это контакты SCL и SDA на ATmega328P. Вы можете видеть на схеме выводов, что они также называются ADC5 и ADC4 при использовании в аналого-цифровом преобразовании, они называются PCINT13 и PCINT12, когда используются как выводы «прерывания смены вывода», и, наконец, мы обычно называем их PC5 и PC4. если рассматривать их просто как контакты на PortC. Поскольку мы использовали эти два контакта как часть нашего ролика для игры в кости по разным причинам (основные из которых заключались в том, что это упростило кодирование и подключение к светодиодам на плате), теперь нам придется изменить наш код и немного переподключить его, чтобы освободите эти контакты для будущего общения.

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

Для выполнения этого учебного пособия вам потребуются следующие предметы:

  1. Стандартные вещи, которые вам всегда нужны, которые я перестану постоянно повторять: ваша макетная плата, ваша копия таблицы данных и набора инструкций, а также ваш мозг.
  2. Печатная плата для прототипирования беспроводной схемы, подобная этой: https://www.ebay.com/itm/191416297627 Я собираюсь использовать версию этой платы Measure Explorer 103RAWD: https://www.ebay.com/itm/103RAT -circuit-proto-proto… так как у меня их куча под рукой, но версия 103RAW-0, на которую я ссылаюсь выше, тоже будет работать нормально.
  3. Машинки для стрижки, провода, припой, паяльник, «руки помощи» или что-то еще, чтобы удерживать вещи, и т.д., и т.д. Если вы действительно зашли так далеко в этих руководствах, то, вероятно, у вас уже есть все это.

Вот ссылка на полную коллекцию моих руководств по ассемблеру AVR:

Шаг 1. Разработайте схему подключения

Разработайте электрическую схему
Разработайте электрическую схему
Разработайте электрическую схему
Разработайте электрическую схему
Разработайте электрическую схему
Разработайте электрическую схему

Отличная особенность плат Measure Explorer заключается в том, что если вы потратите немного времени и наметите все в начале, вы можете сэкономить чертовски много проводов в конце. Итак, мы начнем с разработки макета, прежде чем что-либо паять. С такой платой вам придется разрезать связку соединительных проводов, что не так уж и просто, но в результате получится очень красивая компактная плата с минимумом путаницы проводов. Первое, что нам нужно сделать, это спроектировать нашу схему так, чтобы она поместилась на плате. Хороший способ сделать это - загрузить карту доски, а затем использовать ее, чтобы поиграть с разными дизайнами, пока не найдете тот, который работает. Вот макет ME-PB-103RAWD https://www.bluemelon.com/photo/3483513-T800600.jpg, а вот макет ME-PB-103RAW-0 https://www.bluemelon. com / photo / 57107/2297363-T8006… Я также приложил их как изображения. Существует несколько способов спроектировать схему. Первый - просто распечатать карту выше, взять ручку или карандаш и начать рисовать на ней связи. Вы, вероятно, захотите сначала установить свои светодиоды, ATmega328P и прочее на самой плате, чтобы знать, сколько места они занимают, затем изобразите их на диаграмме, а оттуда вы можете попробовать различные схемы подключения. Сделайте то же самое, что и первый, за исключением того, что вы найдете компьютерную программу, которая будет отображать проводку для вас с использованием новейших топологических алгоритмов. Наконец то, как я это сделал. Сначала я установил компоненты на плату, чтобы знать размер вещей и их расположение. Затем я загрузил Android-приложение под названием «Белая доска» на свой Galaxy Tab 4, загрузил на него карту доски, а затем пошел в местный паб и поигрался с дизайном над несколькими пинтами овсяного стаута Black Ghost.:) Я показываю результат на двух последних картинках. Приятная вещь в том, чтобы нарисовать его таким образом, заключается в том, что когда вы смотрите на него с помощью средства просмотра изображений, вы можете щелкнуть «перевернуть по горизонтали», и он перевернет изображение, давая вам схему соединений для другой стороны платы! Очень удобно для следующего шага.

Шаг 2: вырежьте схему на плате

Вырежьте схему на плате
Вырежьте схему на плате
Вырежьте схему на плате
Вырежьте схему на плате
Вырежьте схему на плате
Вырежьте схему на плате

Сначала возьмите резчик и, используя макет, который вы наметили на предыдущем шаге, нарисуйте свою схему на плате. Т.е. нарисуйте линии для обозначения проводов. Не рисуйте ничего в терминах компонентов, только соединительные провода, как показано на первом рисунке. Обратите внимание, что когда вы ошибаетесь (и если вы похожи на меня, вы много раз ошибаетесь на этих шагах), вы можете использовать ластик и стереть линию. Проделайте это с обеих сторон доски.

Затем вам нужно разрезать соединения по линиям. Если вы внимательно посмотрите на доску, вы увидите, что каждое отверстие для штифта соединено с 4 соседними отверстиями на обеих сторонах платы, так что все отверстия на плате соединяются друг с другом, когда вы начинаете. Таким образом, вам нужно разрезать обе стороны каждого провода, чтобы изолировать их. Чаще всего это делается с помощью ножа Exacto. Но я не умею пользоваться ножами Exacto и, вероятно, порежусь. Поэтому я использую дремель с насадкой для тонких режущих инструментов. Хотел бы я иметь какое-то приспособление для шлифования, которое подходило бы к острой точке, так как оно будет работать лучше всего, но у меня нет такого приспособления, поэтому я использовал приспособление для резки. (Примечание добавлено: после завершения этого проекта я обнаружил, что меньшие головки для "тяжелых отрезных кругов" для Dremels работают лучше всего, они выглядят как маленькие кружочки наждачной бумаги и работают как показанный здесь режущий инструмент, за исключением того, что они имеют меньший диаметр и поэтому намного легче увидеть и контролировать, где вы режете)

Попутно поднесите плату к свету и убедитесь, что провода действительно обрезаны. Вас может раздражать тот факт, что с обеих сторон платы есть соединения, поэтому вам придется снова повторить процесс резки с другой стороной, но я думаю, что вы поймете смысл этого к тому времени, когда закончите. Я сделал много ошибок, обрезая провода, которые не следовало резать, и, как оказалось, было хорошо, если другая сторона все еще была подключена.

На то, чтобы вставить схему в плату, потребуется немало времени и терпения, но, если вы научитесь хорошо разбираться в ней, это будет довольно весело.

Шаг 3: припаиваем компоненты и тестируем

Припаиваем компоненты и тестируем
Припаиваем компоненты и тестируем
Припаиваем компоненты и тестируем
Припаиваем компоненты и тестируем
Припаиваем компоненты и тестируем
Припаиваем компоненты и тестируем

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

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

Аналогично и с другим кубиком.

Затем подключите резистор к каждой матрице и резистор 10 кОм на задней панели платы.

Затем прикрепите кварцевый генератор, колпачки 22pf, кнопки и ATmega328P. Возможно, вы захотите припаять гнездо для микросхемы, а затем вставить в него свой ATmega328P, чтобы вы могли удалить его, если хотите, и повторно использовать в другом месте. Я просто припаял свой чип к плате, так как я знаю, что мы в конечном итоге создаем с помощью всех этих руководств, и я знаю, что мне это понравится настолько, что я не захочу вынимать чип.

Обратите внимание, глядя на обратную сторону платы, как мы прикрепили заголовки. Я использовал длинные штыревые наконечники и согнул их по горизонтали, чтобы они не торчали из платы. Это сделано для того, чтобы я мог в конечном итоге закрыть доску до уровня кнопок и светодиодов контейнером, чтобы заголовки не мешали. У нас есть заголовок для Tx, Rx, чтобы мы могли программировать чип, у нас есть заголовок для SDA, SCL, чтобы мы могли использовать 2-проводную связь позже. и у нас есть 3-контактный разъем для AVCC, AREF, GND на другой стороне платы. У меня все контакты заземления и контакты VCC соединены вместе на микросхеме, поэтому нам нужен только один вход питания.

Наконец, когда все подключено, мы подключаем кристалл 1 к кристаллу 2, как на макетной плате, чтобы мы могли управлять обоими игральными костями всего с 9 контактами.

Теперь нам нужно изменить наш код, чтобы он управлял этой новой настройкой.

Шаг 4: код сборки и видео

Я приложил код сборки и видео ролика для игры в кости в действии. Все, что я сделал, это взял код для нашего ролика для игры в кости из Урока 6, изменил контакты в соответствии с новым макетом и удалил подпрограмму связи, поскольку мы будем писать новый в Уроке 10. В следующий раз мы снова разберем нашу клавиатуру и научимся управлять 7-сегментным дисплеем. До встречи!

Рекомендуемые: