Аналоговая нумерация PIN -кода

Дэйвид.Прентис
Ср 22 марта 2017 г., 22:27
Одним из принципов, лежащих в основе Arduino, являются пин -номера для цифровых выводов и пин -номеров для аналоговых контактов.
Обычный щит UNO знает, где находится аналог# A0-A5 и где цифровые 0-7.

Доски клена и нуклео. Только нуклео определяется A0-A5.

Большинство досок Arduino имеют картирование PIN -код в вариантах/вариант/pins_arduino.H (или вариант.час)
Даже маленькие доски, такие как Nano и Pro Mini.

У платы Teensy есть цифровые номера и аналоговые номера.

Большинство пользователей STM32, кажется, ссылаются на булавки по названию портпина E.глин. PC15
И их можно нанести на карту как перечисление.

Можно ли добавить какой -то «официальный» стиль# определяет для клена? (который имеет заголовки щита)
Было бы разумно добавить какой -то «официальный» стиль# определяет для чертежа? (который имеет постоянную компоновку PIN)

Это также будет означать, что новая плата адаптера Bluepill привлечет примеры Plug and Go для популярных щитов.

Дэйвид.

Rogerclark
Ср 22 марта 2017 г. 11:26
Проблема с нумерацией булавок таким образом заключается в том, что ни одно из физического оборудования не отмечена этими числами.

Большинство советов помечены официальными именами STM для Pins E.глин. PB5

Maple Mini просто имеет пин -номера.

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

Efftek
Чт 23 марта 2017 г. 15:46
[QUOTE = "rogerclark"] Проблема с нумерацией булавок в этом смысле заключается в том, что ни одно из физического оборудования не отмечена этими числами.
цитировать]

Это действительно имеет значение?

Разве мы не можем определить стандартное отображение, возможно, даже на основе ядра, как показано ниже, где имена синих булавок - это то, что Ардуино называет их Используется либо A5 OD PC0 в вашем коде, оба будут распознаны?

Мне придется перепроектировать адаптер щита, но если он дал синие таблетки и т. Д., Большая область, C'est la vie!

Кстати, я поместил текущие дизайны в GitHub (никогда раньше не было git Hub, я так горжусь хе -хе) https: // github.com/baartcm/stm32_unoshield
ucleo_pinout_6.jpg
ucleo_pinout_6.JPG (71.26 киб) просмотрено 1223 раза

Efftek
Чт 23 марта 2017 г. 16:57
Нет, не могу основывать его на ядрео, так как используются три булавки, которые недоступны на 48 -контактном STM32F103C

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

Rogerclark
Чт 23 марта 2017 г. 9:06 вечера
Я забыл о нуклео, так как очень мало людей на форуме используют их.

Я не могу вспомнить, есть ли #Defines в файле вариантов для нуклео F193RB, для аналоговых или цифровых пин -номеров.

Но если нет, то они могут быть добавлены.

Однако для Bluepill и т. Д., Я думаю, что это может привести к проблемам, добавляющему определения, которые не связаны с тем, что написано на оборудовании.

я.e Это изменение, кажется, относится к щиту преобразователя для Bluepill, а не к Bluepill самостоятельно.

Пса.

У меня нет окончательного слова...

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

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

Efftek
Чт 23 марта 2017 г., 21:36
@Роджер,

Вы не отрицали, что быть бодрением, хотя!

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

#define d1 0x00ff
#define PC13 0x00ff

Вы можете использовать D1 или PC13 и получить 255 (не могли?)

В любом случае, если бы вы могли, то вот моя первая доска адаптера дизайна. Он может быть перемещен из гнезда ствола от USB, и я включил резисторы 2x22R и резистор 1K5 и подключил USB на плате ООН к D-/D+

Стив
STM32-Uno.jpg
STM32-Uno.JPG (196.46 киб) просмотрено 1190 раз

Efftek
Чт 23 марта 2017 г., 21:42
Извините, Роджер, вы, кажется, говорите, что если мы позвоним в плату с прикрепленной синей таблеткой, нейтрино или каким -то таким именем, то у вас может быть файл варианта. Ах, не читал это так в первый раз! Это может быть пятница для вас, но я все еще наслаждаюсь совиньон Блан в четверг!

Стив.

Редактировать ...

В ....Аппаратное обеспечение/stm32duino/stm32f1/variants/ucleo_f103rb/poard Существует плата.H файл, содержащий определения PIN -кода, так что это можно сделать.

Если бы ты не был чуваком, я мог бы поцеловать тебя!

Мне тоже очень нравится название Neuttrino, его подходит и уходит на сорок с лишним лет, слушая группу под названием klatuu!

Стив

Mrburnette
Чт 23 марта 2017 г., 21:55
Дэйвид.Прентис написал: <...>
Можно ли добавить какой -то «официальный» стиль# определяет для клена? (который имеет заголовки щита)
Было бы разумно добавить какой -то «официальный» стиль# определяет для чертежа? (который имеет постоянную компоновку PIN)

Это также будет означать, что новая плата адаптера Bluepill привлечет примеры Plug and Go для популярных щитов.

Дэйвид.

Efftek
Чт 23 марта 2017 г. 22:10
Mrburnette написал: ИМО, это все о общей картине и оригинальном намерении сделать форум больше посвященного продвинутому пользователю, а не новичок для 32-битного STM32FXXX.

Mrburnette
Чт 23 марта 2017 г. 11:59
Эффтек написал:<...>
ИМО, нет новичков, нет роста количества продвинутых пользователей. И когда старшие пердуны, как ты и я, умирают, тогда что?

Стив.

Efftek
Пт 24 марта 2017 г. 12:22
@Ray,

Ардуино.Форум CC обслуживает 32 -битные платы Atmel, которые по сравнению с STMF103 медленно. По этой точной причине я перешел от использования UNO и Mega2560 -х годов к синей таблетке, несмотря на дифференцированную проводку к ним по сравнению с вышеупомянутыми Arduinos.

Куда пойти, чтобы получить глубокое знание программирования STM32F103, используя Arduino IDE, если нет здесь.

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

Я сам не глубоко знаю о внутренней работе STM32F103, однако, я более чем способен разработать аппаратное обеспечение для облегчения использования этих устройств и предлагая поддержку тем, кто их использует.

Я разработал адаптер, который позволил бы синей таблетке подключаться к различным доступным щитам UNO, включая множество щитов MCUFRIENT TFT. Это также делает множество контактов доступными для использования и имеет много 3.3 В, 5 В и 0 В выводы до датчиков питания от собственного источника питания. Я сделал дизайн этого щита доступным для всех, кто его хочет. Я здесь ничего не продаю, хотя я мог бы предложить несколько на eBay, так как не у всех есть способность или желание сделать свои собственные. Я послал Дэвиду Прентис на доску и синюю таблетку, когда он сказал мне, что у него на самом деле нет синей таблетки. Он любезно изменил свою библиотеку MCUFRIENT_KBV, чтобы она поработала с STM32F103 и моим адаптером, и он сделал это на своем GitHub. Его просьба в верхней части этой темы была в интересах других пользователей STM32Duino, а не самого себя или меня. Теперь у меня есть адаптер и работающий драйвер для многих экранов TFT его поддержки водителей. Я счастливый человек. Если никто больше не хочет использовать мои дизайны или драйвер Дэвида, я все равно буду счастливым человеком. Я пытался поделиться.

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

Это мой последний пост на эту тему, или мы могли бы продолжить страницу за страницей.

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

Стив.

Рик Кимбалл
Пт 24 марта 2017 г. 15:16
Эффтек написал:Последний комментарий, я видел несколько постов, в которых вы предлагаете у Роджера нет времени, и не должен тратить себя на определенную тему. Разве он не должен быть тем, кто решит, что?

Палмерр
Ср 12 апреля 2017 г. 13:06
Луча,

Некоторые мудрые мысли.

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

К гайкам и болтам.

Стивен (@zmemw16) и я сотрудничали в варианте F4Vet6, в первую очередь, чтобы воспользоваться новым кодом "куба" Фредерика. Поскольку наши «черные» доски за 15 долларов имеют встроенное оборудование (Flash, SDIO), некоторые из вариантов были сделаны MCU на заданиях порта/PIN. У нас также есть около 90 булавок к заголовкам, с которыми можно играть на досках Vet6, и даже больше, когда мы перейдем к вариантам Zet6.
http: // wiki.STM32duino.com/index.PHP?title = STM32F407]

Которые являются основными вещами, чтобы сохранить стандарт в рамках вариантов STM32?

Некоторые из компромиссов, с которыми мы играем:

Если мы попытаемся для цифровых пин -пин -пин -пин с Uno для ключевых функций (E.глин. Мисо, Моси, LED = D13...), затем заголовок для цифровых отображений штифтов соходит с ума.

Где важно сохранить базовую функцию (e.глин. SPI1, I2C1, UART1) доступны и нанесены на карту, так что библиотеки, предназначенные для более простых чипов?

Есть ли некоторые умные хитрости, которые могут позволить нам иметь наш торт и съесть его? Например, Фредерик отобразил физический UART6 обратно на виртуальный UART3 в начальном коде куба для совместимости кода.

Любые подсказки для нас, ребята, которые впервые пробуют все это в STM/Arduino Land?

Ричард

Даниэфф
Ср 12 апреля 2017 г. 13:35
Палмерр написал: Если мы попытаемся для цифровых пин -пин -пин -пин с Uno для ключевых функций (E.глин. Мисо, Моси, LED = D13...), затем заголовок для цифровых отображений штифтов соходит с ума.

AG123
Чт 13 апреля 2017 г. 16:02
В то время как «щиты» - хорошая идея, я думаю, что все больше и больше эти платы MCU являются модульными компонентами
Огромное разнообразие для STM32 с большим количеством различных макетов и картирования (некоторые из них с разъемами Arduino)
http: // www.eBay.com/sch/i.HTML?_from = r4 ... 2&_SACAT = 0
Я бы подумал, что «невозможно» определить «стандартную» физическую компоновку, или, скорее, определения STM Pan-P?n, вероятно, хорошая ссылка.
и e.g Это демократическая доска f407zgt6 http: // www.STM32duino.com/viewtopic.PHP?F = 39&T = 1980 обнаружено в ZMEMW16 разбивает большое количество контактов, включая контакты FSMC Memory/LCD

и с досками и датчиками от Adafruit (https: // www.Адафрут.com/категория/42), Sparkfun (https: // www.Sparkfun.com/категории/20) и еще много вариантов/OEM на eBay, Aliexpress и т. Д., В основном оставляет очень мало общего в этой эволюции

и, в частности, с такими вещами, как STM32F407 {v, z}*, с большим количеством разбитых пин, и в которых MCU поддерживает Fast 100 Мбит / с Ethernet (требует внешнего RMII PHY) и высокой скорости 200 Мбит / с USB 2.0 Интерфейсы (требуют внешнего PHY) и с FSMC (мы могли бы положить больше SRAM, если это действительно необходимо), используя все эти контакты Fast Ethernet, USB2.0 Высокая скорость, добавив, что SRAM запустится в области, которые «Arduino Uno Pins» не достигнет ранее. Казалось бы, этот рост уведет нас все дальше и дальше от скромного начала Arduino Uno. На самом деле это хорошая вещь (я бы не был удивлен, если однажды мы взаимодействуем с модулями камеры мегапикселя, HDMI и т. Д.)

Это может привести к тому, что некоторые «старые» арт -формы снова возвращаются в полном разгаре E.глин. *проводная упаковка*
http: // makezine.com/2009/07/27/ ... -упаковка/
https: // форум.Ардуино.CC/INDEX.PHP?Тема = 62942.0
https: // www.BigMessowires.com/bmow1/

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

Казалось, мы уходим от дней «щитов»
На самом деле это оставляет нас, так это то, что основание будет основана на правильно выполненной схеме, показывающей, куда, какой штифт на MCU подходит к какой другой булавке на «заголовке». я.эн. Схема становится частью продукта для досок микроконтроллеров

всего 2 цента

Палмерр
Пт 14 апреля 2017 г. 1:08
Согласованный.

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

Я читаю Danieleff, предлагая, чтобы мы отошли от нотации DX в коде, поскольку он совсем не переводит физически между досками. Либо мы получаем бессмысленную физическую нумерацию PIN -кода по мере сохранения контактов DX UNO по умолчанию, нарушая любую простую схему нумерации. Он защищает просто с PXNN - который, как я слышу, вы поддерживаете.

Фредерик П, кажется, пришел к тому же выводу, просто нуждая булавки вниз по двум внутренним рядам, а затем внешние ряды на заголовках, где доска (E.глин. Disco) не имеет заголовка в стиле UNO, и пытается совместимость с выводом не вывода, где они это делают (нуклео).

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

Учитывая, что упорядочение pxnns в различных перечислениях и массивах, которые определяют переводы порттопина, чтобы следовать физическому (заголовок PIN).

Пользовательское оборудование

Реализация Daniel's STM32GENERIERENERENECT занимает это дальше, чем у Фредерика, поддерживая параметры AF для каждого чипа в коде основного, e.глин. STM32Generic \ STM32 \ System \ STM32F4 \ STM32_CHIP \ STM32_STM32F407VE.H для этого чипа.

Фредерик оставляет эти таблицы на уровне варианта.

Основной выбор Даниэля о том, где картовать булавки были превосходными (возьмите SPI1, SPI3, где многие из возможных булавок доступны для любого).

Тем не менее, у большинства передовых досок есть дополнительное встроенное оборудование - E.глин. Черные платы F4Vet6 имеют SPI Flash, SDIO Socket, USB_OTG_FS и TX1 уже выделены. Дополнительные заголовки JTAG, Touch/TFT и NRF24L01 также предоставляются. Это может означать, что некоторые из вариантов должны быть изменены. В реализации Даниэля это означает поиграть с STM32_STM32F407VE.H файл или клонирование его, а затем редактирование STM32_Build_Defines.час

Каждый подход имеет свои преимущества и затраты при внедрении новых вариантов и разработки проектов.

Нам действительно повезло с качеством поддержки, появившимся для F4. Создание нескольких различных файлов варианта - это небольшая цена, чтобы заплатить!

Ричард

AG123
Пт 14 апреля 2017 г., 4:43
Привет, Ричард,
Я посмотрел на это
https: // github.com/palmerr23/black-f407 ... Пиннамы.час
и это
https: // github.com/palmerr23/black-f407 ... эральпины.в

Я думаю, что это имело большой смысл для разработчика, работающего на доске, так как булавки называются Pann - pznn
и они хорошо нанесены на периферические.в
В качестве примера:
эн.глин. Аналоговые контакты хорошо картируются не обязательно с помощью строгого 1 единичного приращения
аналоговые булавки
PA0, PA1, PA2, PA3, PB0, PB1 (и на самом деле определено больше)- это дало бы те же ресурсы, что и Arduino Uno Poard I.эн. A1-A6
И это выходит за рамки оригинального Arduino Uno, некоторые булавки подселиваются, так что, если они нанесены на карту для обоих аналоговых, и, скажем, другая цель, скажем, SPI, его можно использовать только для аналога или SPI, но не обоих. В то время как в этом случае это беззаботное картирование (я первоначально думал об использовании PA5-PA7 для псевдонимы SPI с аналоговыми булавками, но теперь это становится возможным, чтобы иметь как аналог1-6, так и SPI). ИМХО мы достигли и вышли за рамки первоначальных характеристик для Arduino Uno, предоставляя 6 аналоговых контактов (и мы на самом деле предоставляем больше)

Точно так же Arduino Uno предлагает псевдоним SPI -порт (I.эн. Либо GPIO / аналоговый или целеустремленный), подселенный порт I2C, псевдоним UART Port (RX, TX), мы предоставили те же ресурсы и предоставляем больше, чем это, и наши порты в основном являются взаимоисключающими, как и выводы ADC выше , мы вышли за пределы arduino uno. (я.эн. Встреча с теми же ресурсами, что и Arduino Uno, и фактически предлагает больше)

То, что потребуется, было бы похоже на предоставление диаграммы, показывающей макет платы, в которой мы показываем назначения Pann-Pznn и их функциональные отображения по умолчанию (E.глин. ADC, SPI, I2C, UART, GPIO)
эн.глин.
http: // www.STM32duino.com/viewtopic.PHP ... 913#P25355

Использование назначений PANN - PZNN также поможет в тех случаях, когда существуют разные платы F407 {v, z} ET, где назначения штифта заголовка разные
эн.глин. PA1 может быть первым выводом на заголовке на конкретной плате, но, возможно, это 10 -й PIN -код на другой плате
Периферийное устройство все равно будет работать, если они подключены к булавке с одним и тем же назначением панн, даже если они буквально разные доски
Я думаю, что это эхо, что прокомментировал Даниэффеф

Конечно, это нарушит концепцию «щитов», даже если две разные платы и разъемы одинаково размерны
Но я предполагаю, что это факт жизни, так и работает

Щиты, я думаю, является «аппаратной концепцией», аппаратное обеспечение, следовательно, плата или щит преднамеренно предназначены для соответствия тем же разъемам заголовка Pann

Правда заключается в том, что довольно часто одни и те же булавки Paxx могут быть перенастроены в другую цель, зависит от дизайна MCU этих булавок Paxx
Тем не менее, значение наших отображений по умолчанию, которые мы делаем сегодня для F407 {v, z} et6_blac

всего 2 цента

Даниэфф
Пт 14 апреля 2017 г. 5:42 утра
Палмерр написал: Тем не менее, у большинства передовых досок есть дополнительное встроенное оборудование - E.глин. Черные платы F4Vet6 имеют SPI Flash, SDIO Socket, USB_OTG_FS и TX1 уже выделены. Дополнительные заголовки JTAG, Touch/TFT и NRF24L01 также предоставляются. Это может означать, что некоторые из вариантов должны быть изменены. В реализации Даниэля это означает поиграть с STM32_STM32F407VE.H файл или клонирование его, а затем редактирование STM32_Build_Defines.час

Палмерр
Пт 14 апреля 2017 г. 8:26 утра
AG123 & Даниэль,

Похоже, мы все на одной странице и работаем параллельно.

Я просто переработаю свой вариант Black Vet6 для Cube / Maple, чтобы соответствовать советам Даниэля за последние несколько дней.

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

Я собирался спросить вас (Даниэль), смогли ли мы изменить нумерацию булавки в стиле Arduino, чтобы соответствовать планировке заголовка. Практически все другие ваши значения по умолчанию работают хорошо.

Единственное изменение, которое я внес в по умолчанию схемы,-это назначить SPI3 на заголовки Flash/NRF, так как это оставляет SPI1 доступным для других целей, с полным набором контактов NSS для использования SPI-DMA.

У меня есть код варианта для ядра STD32Duino Core https: // github.com/stm32duino/arduino_core_stm32f4 - Раньше я называл это версией "куба", но у вас одинаково "кубика"! и теперь обновил мою репо https: // github.com/palmerr23/black-f407vet6-cube с файлами.

Моя логика находится в переднем листе в таблице Excel в /Документах.

Очень рад слышать какие -либо предложения по улучшению!

В ближайшие несколько дней я разработаю версию «STM32GENERIERIER». Я просто хочу убедиться, что периферийные булавки по умолчанию верны.

Что касается симпатичной пин -карты - это уже в пути - как только мы стабилизируем булавки!

Ричард

Палмерр
Сб 15 апреля 2017 г. 5:43 утра
Пинковые карты для черной платы F4 Vet6 теперь находятся на вики и в моем репо https: // github.com/palmerr23/black-f407 ... /Документы

Исправления с благодарностью приняты.

Ричард

AG123
SAT 15 апреля 2017 г. 5:57 утра
Спасибо, Ричард ! : D

Дэйвид.Прентис
SAT 15 апреля 2017 г. 15:34
Начав эту тему, я, кажется, проигнорировал ее!

Я все еще утверждаю, что STM32 с заголовками Arduino должен правильно сопоставьте эти булавки.
эн.глин. Доски для клена и нуклео.

Да, Bluepill, Maplemini, ... Напечатаны имена портпинов, а не любой «цифровой номер» Arduino
Так что это кажется мудрым для соответствующего варианта.h, чтобы просто на карту их логично E.глин. с упорядоченным списком перевода

В идеальном мире вы можете выбрать Arduino-совместимое картирование E.глин. как Leaflabs или ST.
Однако я не думаю, что вы можете получить эффективную эквивалентность. И, безусловно, будут аргументы о том, которые были «лучшими».

Я бы предложил, что вариант.H должен содержать «по умолчанию» USART, SPI, I2C, ... Картирование для варианта.
Основной сериал, SPI, ... Функции будут знать, какие регистры USART, SPI для использования. И необходимо ли какое -либо альтернативное отображение функций.

У Maplecore есть средства для альтернативного картирования и множественных периферийных устройств. ST Core, кажется, поддерживает только одно устройство SPI в данный момент.

Что касается любой разработки проекта STM32, то доски Nucleo (и Discovery) хорошо спроектированы и удобны. Даже если готовый дизайн в конечном итоге работает на пользовательской печатной плате. И давайте посмотрим правде в глаза. STM32F4 и STM32L4 превосходят F103. STM32F0 тоже полезен.

Дэйвид.

AG123
Солнце 16 апреля 2017 г. 10:41
На практике вы могли бы определить в заголовке, который идет что -то вроде
Arduino_analog1 .. Arduino_analog6

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

однако
- Булавки на разных досках были бы в разных физических местах, предполагая, что arduino_analog1 - arduino_analog6 отображаются с одними и теми же штифтами Paxx. это побеждает *щиты *

- Некоторые из тех же контактов MCU Paxx могут не использовать на другой плате, так как они могут быть назначены для какой -либо другой цели, это означает, что альтернативные базовые булавки Paxx должны быть переназначены

- То же самое составленное двоичное значение не может быть использовано для 2 разных плат, они * не будут работать *, даже если у них есть определения arduino_analog1 - arduino_analog6, поскольку базовые контакты Paxx MCU разные. Это означает, что вам нужно будет скомпилировать из источника против заголовков для каждой другой платы, даже если MCU идентичен.

Это буквально описывает состояние этих контактов «Arduino Uno Connector», он может работать на разных досках с аналогичным выглядящим соединителем, если вы восстановите программу из источника и предоставите альтернативные определения / сопоставление с базовыми булавками MCU. И это при условии, что вы использовали его для «простой» цели e.глин. Либо только аналоговый или gpio в зависимости от этих ярлыков

- Псевдоним ардуно-булавок будет отличаться в зависимости от назначенных базовых булавок Paxx и от базового MCU, например, на одной плате Arduino A1-A4 может иметь альтернативное отображение в качестве UART,

Предполагая, что вы хотите использовать аналоговый PIN -код Arduino A1 и UART одновременно, теперь у вас есть конфликт PIN, вам либо нужно использовать другой аналоговый PIN -код, либо не использовать UART, если вы решите оставаться как A1 для аналога, и это может отличаться между 2 разные доски для * той же * MCU и, безусловно, различные между 2 разными MCU, даже от одного и того же производителя

Дэйвид.Прентис
Солнце 16 апреля 2017 12:53
ST сделал довольно разумный выбор для картирования штифтов на своих досках ядер. К счастью, они сохранили те же портпины в целом диапазоне плат M0, M3, M4.

Напротив, Freescale также обеспечивает разумное отображение на досках FRDM. Но портпины разные на каждой плате.

Лично я всегда думал, что «щит» был частично ответственен за успех Arduino. Это, безусловно, облегчает прототипирование.

Поскольку ST создает чипсы и ST делают доски ядрево, я бы считал, что их отображение является «официальным». Конечно, это не значит, что все довольны своим выбором.
Это означает, что у вас есть какая -то форма «стандарта».

Дэйвид.

Палмерр
Солнце 16 апреля 2017 г. 13:03
AG123,

Все истинно и полезное резюме дускуссии.

Существует пивоварение Concensus, что нумерация в стиле DX или AX Arduino, вероятно, стоит отложить в сторону для этих более продвинутых досок, поскольку люди, которые их программируют.

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

Есть несколько Gotchas, которые потребуют более тщательного программирования- чтобы проверить комбинации, не только булавки являются законными. Например, на STMF4 SPI1 и SPI3 могут использовать почти идентичные наборы PIN. Таким образом, таблицы могут содержать дублирующие сопоставления портов, e.глин. PA5, для двух разных SPIS. Выбор первого сопоставления не обязательно был бы правильным.

Это все часть веселья !

Палмерр
Солнце 16 апреля 2017 г. 13:44
Дэйвид,

Вы, безусловно, захватили раннюю мечту Arduino, которая все еще живет в Uno и Close Drovelivates. И они отлично подходят для вступления в встроенные вычисления.

ST и некоторые другие сделали UNO «совместимые» доски для различных процессоров, которые помогли укрепить бренд Arduino как простой и совместимый.

Конечно, имеет смысл оставаться с сопоставлением ядревых ядер ST для макетов в стиле Uno.

Тем не менее, некоторые из их выборов не так хорошо разбираются, когда вы пытаетесь использовать всю силу более продвинутых чипсов. Альтернативные заголовки Nucleo F4 являются хорошим примером - они делают полный набор портов - более 80 GPIS по сравнению с 18 UNO!

Это не уменьшает многие из больших преимуществ Arduino для большинства людей: простота IDE-предварительно определенных (и невидимых) макияжных файлов, предварительно созданных инструментов и множества библиотек, которые относительно просты в новом оборудовании. (Особая благодарность ADA и Sparkfun.)

Мы все довольно увлечены продуктивными способами развития стандартов Arduino, чтобы ввести в склад в склад!

AG123
Солнце 16 апреля 2017 г. 15:02
Вот некоторые из моих мыслей по этому поводу, это работает на переключателях по телефону
https: // en.Википедия.org/wiki/nonblocki ... ing_switch

В Arduino-Uno можно сказать, что вы можете сказать.H вместе с эскизом, пока это включает в себя, чтобы быть частью эскиза или приложения

Переключатель 1: Arduino uno в MCU Pins Картирование/перевод
while (spi_is_tx_empty(dev)

Дэйвид.Прентис
Солнце 16 апреля 2017 г. 16:10
Нет, у вас есть вывод «Возможности» в таблице Pindescription G_Apindescription [] в варианте.CPP.
И у вас есть перечисления в варианте.час

Любой ардуно инициализирует как «болотный стандарт» E.глин. ШИМ, Миллис (), ...
с булавками в известном состоянии.

И если вы решите сделать любое переименование, это тоже можно обслуживать.

Да, конечно, вы можете настроить свой собственный код точно так же, как на Uno, Mega, Due, ...
И вы берете на себя ответственность за свои действия. эн.глин. Если вы командуете таймером для ваших собственных целей.

Просто кажется разумным обеспечить простую совместимость с базовым уровнем Arduino. Так что стандартные примеры Arduino работали из коробки.
И стандартные или сторонние щиты могут просто работать.

Что заставляет вас думать, что чипсы Cortex-M0 не имеют АЦП ?
Да, существуют технические различия между периферийными устройствами M0, M3, M4.

Дэйвид.

AG123
Солнце 16 апреля 2017 г. 16:52
Дело в том, что в том, что у некоторых досок даже нет светодиодной булавки, у некоторых MCU (не обязательно Cortex-M0) нет ADC, поэтому нет аналоговых контактов, а у непосредств Аналоговые контакты с теми же штифтами, и Arduino Uno не сможет указать платы и MCU с большим количеством булавок. и даже с Arduino Uno все булавки будут по -разному подселиваются на разных MCU или даже на одном MCU с различными назначениями PIN -кода, поэтому нет «стандарта Arduino»

Представление о том, что «стандартные щиты arduino Щиты» будут «просто работают», чтобы соответствовать очень ограниченному контексту
эн.глин. на основе Arduino uno
- Он должен иметь разъемы arduino uno с конкретными точными размерами
- Это будет ограничено подзаботом Arduino Uno, я.эн. Эти аналоговые контакты будут только аналоговыми булавками без псевдонимов других контактов на тех же PNIS
(Альтернативное отображение может быть невозможно удовлетворить, поскольку основная архитектура MCU отличается
- Он должен иметь светодиодный булавку и на идентичном картировании как Arduino Uno
- Цифровые выводы будут просто булавки GPIO
- И порт SPI будет одним портом SPI - без изменений без изменений вообще, так как альтернативность этого SPI отличается от MCUS и PIN -карт
Следовательно, вышеизложенное будет работать только и применяется к совместимым доскам «Adruino Uno»

Как я уже упоминал спереди, не все общие платы соответствовали бы структуре совместимости Arduino Uno, у некоторых MCU просто нет аналоговых контактов (без ADC)
У какой -то платы нет светодиода пользователя, поэтому вы не можете моргнуть
И поэтому назовите «подготовительную систему» ​​Arduino Uno Framework означает ограничение в противном случае полезные функциональные возможности для других общих плат (E.глин. Настройка альтернативной функциональности на тех же контактах, потому что альтернативные функции, безусловно, не будут одинаковыми, даже если используется один и тот же разъем)

И давайте просто скажем, что мы хотим, чтобы совместимость «arduino uno» в самом широком классе * любые * известные общие платы и MCU (будь то доски ядер, все универсалы OEM China или почти любые другие общие платы Cortex-M)
Единственный разумный способ достичь этого - это то, что эскиз должен выполнять все это отображение с этими конкретными платами для достижения ограниченной функции arduino uno, соответствующей его ограниченным потребностям, я.эн. Аналог A1 - A6 строго аналоговый A1 - A6, SPI - это SPI, и поэтому нет альтернативных функций (без SPI1, SPI2, UART1, UART2, NO Ethernet и т. Д.) I.эн. Только это конкретное ограниченное подмножество будет работать, эскиз должен знать свою доску и MCU и сделать это соответственно

И в любом случае, все общие или любое сторонние советы не обязательно предоставляют соединитель «Ардуино Уно». Следовательно, все, что «arduino uno» щиты просто не подойдут в любом случае. За исключением тех, которые так специально разработаны для подготовки Arduino Uno разъемы

Короче говоря, совместимость Arduino (UNO) является проблемой эскиза, а не варианта.H как вариант.H должен удовлетворить оптимальное использование ресурса платы и не ограничивать себя подмножеством Arduino (uno), i.эн. Эскиз делает его собственное отображение в назначениях Paxx, определенные вариантом.H так, чтобы эскиз всегда мог использовать, является собственным ограничительным подмножествам arduino uno, картированием и представлением о мире Arduino uno