Сообщество - Arduino & Pi
Добавить пост

Arduino & Pi

1 377 постов 20 573 подписчика

Популярные теги в сообществе:

Электроника для новичков: разводка плат, заказ сборки, прошивка

Привет, Пикабу! Делюсь подробнейшим двухчасовым гайдом по разводке плат в бесплатном редакторе EasyEDA с особенностями разводки под микроконтроллер (на примере AVR), а также рассмотрим заказ сборки платы силами китайцев, прошивку МК и работу с ним в среде Arduino.


Уроки направлены в первую очередь на новичков, которые хотят научиться делать платы под свои электронные поделки. Объясняю всё максимально простыми словами, как сам бы хотел слышать будучи новичком. Прикладываю план уроков, чтобы было понятно, о чём идёт речь:


Первая часть с канала AlexGyver - общий подробный гайд по работе в EasyEDA, включает в себя:

00:01:14 - Обзор возможностей программы

00:04:21 - О сайте и оффлайн версии

00:06:07 - Менеджер проектов и библиотек

00:12:00 - Ещё немного по интерфейсу

00:14:39 - Обзор инструментов рисования

00:16:30 - ВКЛЮЧАЕМ РУССКИЙ ЯЗЫК

00:17:39 - Обзор инструментов создания схемы

00:23:22 - Настройки в верхнем меню, экспорт схемы

00:24:50 - Продолжаем делать схему

00:27:50 - Доделываю свою схему

00:30:29 - Конвертируем схему в плату

00:31:00 - Верхнее меню PCB

00:34:14 - Правое меню PCB

00:38:01 - Инструменты разводки и оформления платы

00:47:25 - Готовимся к разводке

00:18:16 - Автотрассер, настройки

00:52:08 - Земляной полигон

00:56:01 - По поводу силовых частей платы

01:01:29 - Вставка компонентов в плату

01:02:58 - Привязываем 3D модели

01:06:04 - Создаём компонент схемы

01:08:00 - Создаём компонент платы

01:10:12 - Продолжаем делать его

01:10:28 - Привязываем футпринт к компоненту

01:11:50 - Режим симуляции

01:13:58 - Вывод картинки платы для ЛУТ

01:14:54 - Панелизация плат и заказ с JLCPCB

01:18:10 - Обзор полученных плат

01:20:09 - Переделал свою плату, обзор

01:21:58 - Создание "модуля"

01:22:49 - Пытаемся выгодно заказать платы =)

01:24:30 - Делаем плату для проекта из модулей


Вторая часть с канала Заметки Ардуинщика ориентирована на работу с микроконтроллером, особенности разводки платы, тактирования и прошивки при помощи программатора и bootloader'а.

01:51 - Зачем делать проект на плате?

04:22 - Три главных момента

04:57 - Тактирование

06:18 - Переходим в EasyEDA

08:24 - Частота тактирования

09:03 - Конденсатор и питание

09:45 - Кнопка перезагрузки

10:11 - Рекомендации по разводке платы

10:43 - Пример с ATtiny

10:51 - Прошивка

11:50 - Выводим UART

12:36 - Добавляю светодиоды

13:05 - Как прошиваться по USB?

13:57 - JLCPCB SMT сервис

14:43 - Заказ плат и сборки на JLCPCB

18:00 - Настройка Arduino IDE, ядра

18:45 - Фьюзы

20:51 - Немного о ксенофобии

22:31 - Обзор плат

23:52 - Ещё немного о тактировании

24:56 - Плата с ATtiny

26:34 - Плата с ATmega


Также прикладываю список "работы над ошибками и неточностями" из комментариев под видео:

Первая часть:

1. У инструмента "полигон" для печатной платы в настройках можно поставить "вырез" - тогда он сделает физически вырез в плате (при заказе у китайца), например так можно отделить высоковольтную часть, посмотрите например на ардуиновское реле

2. Русский язык в программе есть, смотрите дальше

3. Дорожки после неудачной разводки можно убрать при помощи Ctrl+Z

4. Всё дорожки с платы можно убрать из меню Edit/Unroute all

5. Можно вывести одиночную плату и сделать panel непосредственно на сайте jlcpcb (указать сколько штук). Выходит на несколько центов дешевле, чем заказывать плату с панелизацией EasyEda :)


Вторая часть:

1. "Минимальное количество компонентов" не всегда соответствует, чаще всего можно заказать пару штук при указанных 100+

2. USB-UART можно поставить CH340C - ей не нужен внешний кварц

3. 9:00 есть там в Basic кварц SMD на 8 МГц

4. 14:30 для SMT не V-cut, а второй способ, с отверстиями

5. Резистор на RST можно не ставить, если от RST не идёт длинная дорожка и/или нет кнопки

6. Электролиты и прочие емкости ставить до стабилизатора

7. Можно включить "Confirm Production file" - перед производством вам вышлют подтверждение и файлы для проверки, все ли в порядке

8. В "ядрах" нельзя писать чисто PB PD как в видео! Эти слова задефайнены на номера в порте, то есть PB0 и PD0 равны 0. Читайте описание ядер, в миникоре например нужно дописать PIN_ для работы с дигиталрайтом, например digitalWrite(PIN_PB5, HIGH)

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

10. Конденсатор 0.01 мкФ надо размещать рядом с каждым выводом питания, а для Avcc еще и бусинку последовательно добавить или хотя бы резистор

Показать полностью 1

RP2040 - разбираем даташиты. Часть 2.1.2: Доступ к атомарному регистру

Содержание:

Часть 1: Введение

Часть 1.3: Чип

Часть 1.4: Распиновка

Часть 2: Описание системы

Часть 2.1.1: Матрица AHB-Lite


Каждому блоку периферийных регистров выделяется 4 КБ адресного пространства, доступ к регистрам осуществляется одним из 4 методов, выбранных посредством декодирования адреса.


Addr + 0x0000: нормальный доступ для чтения и записи

Addr + 0x1000: атомарное исключающее "или" при записи

Addr + 0x2000: установка атомарной битовой маски при записи

Addr + 0x3000: очистка атомарной битовой маски при записи


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


Четыре псевдонима атомарного доступа занимают в общей сложности 16 КБ. Большинство периферийных устройств на RP2040 обеспечивают эту функциональность изначально, а атомарная запись имеет те же временные характеристики, что и обычный доступ для чтения/записи. Некоторые периферийные устройства (I2C, UART, SPI и SSI) вместо этого имеют эту функциональность, добавленную с помощью промежуточного устройства шины, которое переводит восходящие атомарные записи в нисходящие последовательности чтения-изменения-записи на уровне периферийного устройства. Это увеличивает время доступа на два системных тактовых цикла.


SIO (Часть 2.3.1), одноцикловый блок ввода-вывода, подключенный непосредственно к портам ввода/вывода ядер, не поддерживает атомарный доступ на уровне шины, хотя некоторые отдельные регистры (например, интерфейс ввода/вывода общего назначения) имеют псевдонимы set / clear / xor.


2.1.3. Мост APB


Мост APB связывает высокоскоростное основное соединение AHB-Lite с периферийными устройствами с более низкой пропускной способностью. В то время как матрица AHB-Lite предлагает доступ с нулевым временем ожидания повсюду, доступ к APB имеет штраф за цикл:

- Доступ к шине APB занимает минимум два цикла (фаза настройки и фаза доступа)

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

- Мост добавляет два дополнительных цикла для доступа к записи, так как этап настройки APB не может начаться, пока данные записи AHB-Lite не станут действительными.


В результате пропускная способность части APB структуры шины несколько ниже, чем у части AHB-Lite. Однако пропускной способности более чем достаточно для насыщения последовательной периферии APB.


2.1.4. "Узкая" запись в регистр ввода/вывода


Отображенные в память регистры ввода/вывода на RP2040 игнорируют ширину доступа для чтения/записи по шине. Они обрабатывают все записи, как если бы они были размером 32 бита. Это означает, что программное обеспечение не может использовать запись байтов или полуслов для изменения части регистра ввода-вывода: любая запись по адресу, где 30 старших битов адресов совпадают с адресом регистра, повлияет на содержимое всего регистра.


Для обновления части регистра ввода-вывода без последовательности чтения-изменения-записи лучшим решением на RP2040 является атомарные set/clear/XOR (см. Раздел 2.1.2). Обратите внимание, что это более гибко, чем запись байтов или полуслов, так как любая комбинация полей может быть обновлена за одну операцию.


После 8-битной или 16-битной записи (такой как инструкция strb на Cortex-M0+) регистр ввода-вывода будет производить выборку всей 32-битной шины данных записи. Cortex-M0+ и контроллер прямого доступа к памяти на RP2040 всегда будут реплицировать "узкие" данные по шине:


https://ideone.com/Qk6Vxz (код с комментариями и выводом на русском)


https://github.com/raspberrypi/pico-examples/blob/2fb08a028f... (оригинальный код)

Показать полностью

RP2040 - разбираем даташиты. Часть 2.1.1: Матрица AHB-Lite

Содержание:

Часть 1: Введение

Часть 1.3: Чип

Часть 1.4: Распиновка

Часть 2: Описание системы


В центре шины RP2040 находится полносвязная матрица 4:10. Её 4 восходящих порта подключены к 4 мастерам системной шины, а 10 нисходящих портов подключаются к ведомым устройствам AHB-Lite с самой высокой пропускной способностью (а именно, интерфейсам памяти) и к нижним уровням структуры. На рисунке 5 показана структура матрицы AHB-Lite 2:3, устроенная аналогично матрице 4:10 на RP2040, но ее легче показать на схеме.

RP2040 - разбираем даташиты. Часть 2.1.1: Матрица AHB-Lite Спецификация, Datasheet, Raspberry pi, Перевод, Длиннопост

Матрица состоит из двух компонентов:


Разветвители:

- Выполняют декодирование адреса

- Маршрутизируют запросы (адреса, запись данных) в нисходящий порт, указанный при декодировании начального адреса

- Маршрутизируют ответы (чтение данных, ошибки шины) от правильного арбитра обратно на восходящий порт

Арбитры:

- Управляют одновременными запросами к нисходящему порту

- Маршрутизируют ответы (чтение данных, ошибки шины) на правильный разветвитель

- Реализуют правила приоритета шины


Основная матрица на RP2040 состоит из 4 разветвителей 1:10 и 10 арбитров 4: 1 с сеткой из 40 каналов шины AHB-Lite между ними. Обратите внимание, что, поскольку AHB-Lite является конвейерной шиной, разветвитель может направлять обратно ответ на предыдущий запрос от нисходящего порта A, в то время как новый запрос к нисходящему порту B уже выполняется. Это не влечет за собой никаких штрафов за цикл.


2.1.1.1. Приоритет шины


Арбитры в главной матрице AHB-Lite реализуют двухуровневую схему приоритета шины. Уровни приоритета настраиваются предварительно, при помощи регистра BUS_PRIORITY в блоке регистров BUSCTRL.


Когда имеется несколько одновременных обращений к одному и тому же арбитру, любые запросы от высокоприоритетных мастеров (уровень приоритета 1) будут рассматриваться перед любыми запросами от низкоприоритетных мастеров (приоритет 0). Если несколько мастеров с одним и тем же уровнем приоритета пытаются одновременно получить доступ к одному и тому же ведомому устройству, применяется циклический разделительный интервал, то есть арбитр предоставляет доступ каждому мастеру по очереди.


ПРИМЕЧАНИЕ

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


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


2.1.1.2. Счетчики производительности шины


Счетчики производительности автоматически подсчитывают количество обращений к основным арбитрам AHB-Lite. Это может помочь в диагностике проблем с производительностью в случаях использования в проектах с высоким трафиком.


Есть четыре счетчика производительности. Каждый из них представляет собой 24-битный счетчик насыщения. Значения счетчика можно прочитать из BUSCTRL_PERFCTRx и очистить, записав любое значение в BUSCTRL_PERFCTRx. Каждый счетчик может одновременно подсчитывать одно из 20 доступных событий, выбранных в BUSCTRL_PERFSELx. Доступны следующие события шины:

RP2040 - разбираем даташиты. Часть 2.1.1: Матрица AHB-Lite Спецификация, Datasheet, Raspberry pi, Перевод, Длиннопост
Показать полностью 2

Уроки Ардуино. Прерывания таймера

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

RP2040 - разбираем даташиты. Часть 2: Описание системы

Содержание:

Часть 1: Введение

Часть 1.3: Чип

Часть 1.4: Распиновка


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


2.1 Шина данных


Шина RP2040 маршрутизирует адреса и данные через микросхему.


На рисунке 4 показана высокоуровневая структура коммутационной сети шины. Основная матрица AHB-Lite направляет адреса и данные между своими 4 восходящими портами и 10 нисходящими портами: в каждом цикле может происходить до четырех передач по шине. Все тракты данных имеют ширину 32 бита. Устройства памяти имеют выделенные порты на главной панели, чтобы удовлетворить их требования к высокой пропускной способности. Периферийные устройства AHB-Lite с высокой пропускной способностью имеют общий порт на кросс-панели, а мост APB обеспечивает доступ по шине к регистрам управления системой и периферийным устройствам с низкой пропускной способностью.

RP2040 - разбираем даташиты. Часть 2: Описание системы Спецификация, Datasheet, Raspberry pi, Перевод

Структура шины соединяет 4 мастера AHB-Lite, то есть устройства, которые генерируют адреса:

- Ядро процессора 0

- Ядро процессора 1

- Порт чтения на контроллере прямого доступа к памяти

- Порт записи на контроллере прямого доступа к памяти


Они соединены с 10 нисходящими портами на главной шине:

- Постоянное запоминающее устройство (ПЗУ)

- Память с поддержкой функции исполнения на месте (Flash XIP)

- Статическая память с произвольным доступом (SRAM) по одному модулю на порт (0-5)

- Периферийные устройства Fast AHB-Lite: контроллеры программируемого ввода/вывода (PIO0, PIO1), универсальная последовательная шина (USB), регистры управления прямым доступом к памяти и исполнению на месте (один общий порт)

- Мост ко всем периферийным устройствам APB и регистрам управления системой


Четыре мастера шины могут получить доступ к любым четырем различным портам матрицы одновременно, структура шины не добавляет состояния ожидания при любом принудительном доступе через AHB-Lite. Таким образом, при системной частоте 125 МГц, максимальная устойчивая пропускная способность шины составляет 2,0 ГБ/с. Карта адресов системы организована таким образом, чтобы сделать эту параллельную полосу пропускания доступной как можно большему количеству программных вариантов использования - например, чередующийся псевдоним SRAM (раздел 2.6.2) распределяет доступ к основной памяти по четырем портам матрицы (SRAM0… 3), поэтому большее количество обращений к памяти может происходить параллельно.

Показать полностью 1

GSM900 для arduino - need help

Всем привет, уважаемые члены сообщества Arduino & Pi, разрешите обратиться к нашему коллективному разуму и ПЗУ - сравнительно недавно, хотя может и пару лет прошло, впрочем неважно: я видел или здесь у нас на Пикабу или возможно на Ю-тюбе - решение проблемы включения GSM900 shield (картинка из инета, ни на что не претендую).

GSM900 для arduino - need help Arduino, YouTube, Помощь

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


Внимание вопрос - кто-то может сталкивался с подобным или видел этот пост на Пикабу / ролик на Ю-тюбе и помнит расположение данного резистора и номинал?


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

Показать полностью 1

RP2040 - разбираем даташиты. Часть 1.4: Распиновка

Содержание:

Часть 1: Введение

Часть 1.3: Чип


В этом разделе содержится краткий справочник по распиновке и функциям контактов. Полную информацию, включая электрические характеристики и чертежи корпуса можно найти в части 5.


1.4.1. Расположение контактов

RP2040 - разбираем даташиты. Часть 1.4: Распиновка Спецификация, Datasheet, Перевод, Raspberry pi, Длиннопост

1.4.2. Описание контактов

RP2040 - разбираем даташиты. Часть 1.4: Распиновка Спецификация, Datasheet, Перевод, Raspberry pi, Длиннопост

1.4.3. Функции контактов интерфейса ввода/вывода общего назначения


Каждый отдельный вывод интерфейса ввода/вывода общего назначения может быть подключен к внутреннему периферийному устройству с помощью функций интерфейса ввода/вывода общего назначения, определенных ниже. Некоторые внутренние периферийные соединения присутствуют в нескольких местах, чтобы обеспечить некоторую гибкость на системном уровне. SIO, PIO0 и PIO1 могут подключаться к любому контакту GPIO и управляются программным обеспечением (или конечными автоматами с программным управлением), поэтому могут использоваться для реализации многих функций.

RP2040 - разбираем даташиты. Часть 1.4: Распиновка Спецификация, Datasheet, Перевод, Raspberry pi, Длиннопост
RP2040 - разбираем даташиты. Часть 1.4: Распиновка Спецификация, Datasheet, Перевод, Raspberry pi, Длиннопост
Показать полностью 4

Угадайте звездного капитана юмористической команды «Сборная Красноярска» по описанию одного из участников

Ну что, потренировались? А теперь пора браться за дело всерьез.

Показать полностью

Компьютер под Cyberpunk

Если кто-то действительно захочет повозиться со сборкой, скину скетч и объясню как сделать.

Отличная работа, все прочитано!