Pull to refresh

Comments 50

Как обучающему материалу о конкретном железе зачет.

Для практических нужд лучше применять дешевые CPLD ПЛИС и SPI-десериализаторы вроде MAX7219, к слову последние есть уже на распаянных платах подключенными к разнообразным светодиодным матричным и семисегметным идикаторам. Платы естественно можно каскадировать, по SPI.

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

Да, есть у нас платы и на FPGA

Это плата от небольшого кусочка наружного LED экрана. Тут и ПЛИС и многоканальный гигабитный линк.

Но это все равно что в разговоре про велосипеды упомянуть космические корабли, подводные лодки и самокаты (Arduino).

Вам никто не предлагал использовать FPGA ПЛИС, речь шла, напомню про "дешевые CPLD ПЛИС", например эта на макетке 1500 рублей уже в России. https://marsohod.org/shop/boards/brd-marsohod

Тоесть вместо Вашего "навороченного велосипеда, а скорей мотоцикла"(голая макетка 22 евро а с шилдом думаю под 50, причем это за бугром) тоже самое делает "велосипед обычный" за 1500р из российского магазина. Да и "самокаты"(макетка Ардуино-Про мини), продающиеся где угодно для двухсимвольным матричным дисплеем то же не хуже управляют.

Модули светодиодной матрицы, с управляющей микросхемой SPI-десериализатором MAX7219

https://roboshop.spb.ru/display/svetodiodnye-matricy/led-matrix-module-8x8

Что-то не понял мысль. Зачем CPLD если в контроллере уже есть SPI?
То же и с сериализаторами. SPI уже есть!

Сериализаторы нужны были для адресных светодиодов типа WS2812B, на которые также был разработан простой способ управления с uC

Но да, если надо перевести с UART или I2C или SPI на WS2812B, то делают сериализаторы. Ну так для этого уже изобретены чипы типа PIC16F13145

Смотрите апнот SPI to WS2812 — Use Case for CLB Using the PIC16F13145 Microcontroller with MCC Melody

А так статья вообще-то про использование фреймворка Azure RTOS и GUI.

Элементарно Ватсон!

Макетка "Марсоход" формирует данные(например те же что в Вашем примере), которые будет отражать индикатор, и отправляет их по SPI. Тоесть так же имеем макетку и матричный дисплей.

Модули светодиодной матрицы, с управляющей микросхемой SPI-десериализатором MAX7219 эту информацию отображают.

На всякий случай SPI - это для удобства подключения матричных дисплеев(можно брать стандарные). А CPLD чтобы выполнять функционал "SPI-мастер" требуется примерно 20 строк Veriloga(без всяких библитечных модулей, на языке ПЛИС "IP-ядер"), хоть для светодиодных лент с WS2812B, хоть для матричных дисплеев с MAX7219, хоть для показанного у Вас.

Да я верю, что на CPLD 20 строк кода. Но зачем?
Если можно вообще без CPLD. Это совершенно лишнее здесь звено.

Если у вас курс по обучению программированию CPLD, тогда Ок. Всё понятно.
Но будет ли бесплатный обед?

Кстати, вместо MAX7219 мы применяем AS1115-BSST и тогда вместе с управлением дисплеем получаем ещё и опрос клавиатура автоматический.

CPLD(или для более оширных задач FPGA), это для таких дел универсальный кубик, синтезирующий, за дешево, нужную периферию "в железе" разумеется с "железными" таймингами и нехилой для периферии частотой.

В мире МК как Вы сами вскользь заметили, когда надо "с железными" таймингами и нехилой для периферии(и не только) частотой, да еще если и не один канал нужно заморачиватся с наличием нужной переферии у МК(синтезировать ее нельзя!) и не самой слабой производительносттью камня(в вашем примере это RA8M1 480 MHz Arm® Cortex®-M85 Based Microcontroller).

И цена железа и переносимость проекта между камнями(неситезируемая периферия!) неоптимальна. Что мы и смогли сравнить на конкретном примере.

А шрифт и hello word тоже в этой CPLD размещать? Или atmega присобачить? Зачем вообще нужны контроллеры когда все можно насинтезировать? Правда вот АЦП, ЦАП, компараторы придется внешние, да и с памятью вопрос.. Я походу очень избалованный что подбираю под проект максимально подходящий по периферии контроллер :)

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

Вопрос в разумном балансе того и друго. Вашем конкретном примере этой же CPLD хватит и на ваш привет миру в виде счётчика о нуля до 99 с дешифратором в матричные символы десятичных цифр.

А если в целом есть интерес для чего хватает CPLD, которая уже на макетке стоит 1500 рублей то тут далеко не полный список примеров https://marsohod.org/projects/plata1

Тут начиная от машинки с шаговыми двигателями управляемой ИК пультом, заканчивая синтезированным на CPLD микроконтроллером AVR.

Ну да, вижу там кто-то смог сделать графический вывод используя медленный синтезированный процессор. Это не сложно. На Radio-86RK делали такую графику на 2 МГц лет 30 назад.
Но GUIX вам не установить на тот CPLD.
И Хаброметр на подобии этого не сделать.
В целом видно, что проекты marsohod.org уровня Arduino. Но по количеству и разнообразию не дотягивают. Видимо не особо востребована у начинающих embedder-ов такая "универсальность".
Было бы у FPGA/CPLD конкурентное преимущество, то они бы захватили интерес аудитории, а не Arduino.

Тем более что сейчас есть множество семейств микроконтроллеров с встроенной перепрограммируемой логикой. Я уже приводил как пример PIC16F13145. Может взглянуть на Infineon PSoC 6

С другой стороны у современные микроконтроллеров периферия далеко не такая закаменевшая, как кажется. Теперь один и тот же блок может по желанию работать как SPI, UART, USART, I2C, LIN и т.д.

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

Все эти интерфейсы с открытыми исходниками на veriloge давно придуманы и опробованы. Без всяких аппаратно-зависимых подвохов. Единственная аппаратная часть которая требуется это ножки микросхемы с функциями логических входов и выходов.

Когда Вы умеете работать и с МК и с ПЛИС Вам не нужно загонять себя в угол компромиссами. Каждый камень будет делать ту часть обработки под которую он более оптимален. В частности периферия будет апгрейдися всего лишь перепрошивкой.

Для больших проектов есть уже системы прямо на кристале объеденяющие ПЛИС и процессоры.

 В частности периферия будет апгрейдися всего лишь перепрошивкой.

Спасибо не надо. На сайте по вашей ссылке за много лет ничего подобного не смогли сделать из того что есть в недорогом RA8M1.
Да, там какие-то примитивные синхронные интерфейсы, манчестер и устаревший PAL есть. Но ничего более серьезного.
Потому что программисты на FPGA гоняются за доступными "корками" как embedder-ы за библиотеками верхнего уровня типа GUIX.
Ну так GUIX с SPI и DMA у меня есть, а вам еще реализовать SPI и почти без шансов DMA к нему.

Если Вы хотите доказать, что методом грубой силы(наращивая его ценник) на МК 480 МГц можно худо-бедно выполнить функционал ульрабюджетной CDLD, то кто же спорит. Худо бедно, потому, к примеру, что наши китайские друзья подкрутят какой нибудь интерфейс на своих модулях(а на это они затейники) и камень перестанет понимать модули. Обычный жизненный пример.

Заметьте я никого не призываю делать все в проекте на ПЛИС, то для чего более подходит МК(по сути это был бы просто Ваш отзеркаленный концепт). Всё зависит от постановки задачи и в общем случае нужно разумно сочетать то и другое. Просто в конкретном частном случае вынесенном в заголовок оптимальное всего ограничится ульрабюджетной ПЛИС.

Образно и несколько утрируя для пояснения сути - профессионал по мере надобности умеет и пользуется и отвёрткой и паяльником. А то что можно использовать что то одно, даже когда разумнее другое(но в общем случае и то и то) так кто-же спорит можно и так. Только это будет оптимизировано для цирка и роликов для Ютуба, а не под утилитарные практические проекты.

Боюсь вы неправильно поняли посыл статьи.
Задача была за 4-е часа на неизвестной платформе и неизвестным тулсом портировать GUIX и Azure RTOS.
Я за 10 мин могу в демо-проекте заменить LED модуль на нормальный LCD экран с меню, пиктограммами, графиками, анимированными виджетами и прочим. Смотрите эту статью для справки.

Если вы превратно поняли, что мне нужно было только LED модуль подключить, то сорри. Вышло недопонимание. Название статьи вас ввело в заблуждение. Сожалею.

уже совсем разброс в мыслях пошел.

я тут задумался на досуге посмотреть как сделали avr на марсоходе, на предмет не забыли ли они там что нибуть "ненужного" типа отладки. Ну и кастомную перефирию точно в отладчик не завезли, надо будет свой конфиг создать (благо все в .xml)

"SPI, UART, USART, I2C, LIN....На CPLD замучаетесь так сделать" сразу видно что вы не в теме даже читать не ловко. Все это давно есть в открытых источниках под открытыми лицензиями(как BSD так и GPL).

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

Просто для смеха:

Altera MAXII EPM240T100C5N TQFP-100. Максимальная частота 200 МГц и всего 192 Macrocell-а стоит 13$

А RA8M1 в таком же корпусе на 480МГц и с ускорителем AI стоит 11$

Подумайте над этим.

У Вас вновь рассуждения человека откровенно плавающего в теме. Тут даже думать особо не надо, ибо в плане постановки задачи "Как сделать вывод на LED дисплей за один семинар с нуля" на одной Altera MAXII можно этих интерфейсов(с клоком интерфейса 100 МГц) сделать несколько десятков.

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

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

"Altera MAXII EPM240T100C5N стоит 13$", да у Вас талант искать для себя феерические предложения, поищите тогда уж за 25...

Говоря серьезно она уже на макетке с обвязкой 1500 руб в России(ссылку давал выше), и понятно, что эти макетки не в убыток делаются.

Вообще-то чуть менее чем за 1100 рублей в России предлагают уже Altera MAXII EPM570T100I5N
https://triema.su/shop/products/view/13638984
Характеристики:

Диапазон рабочих температур: -40…+85 °С

Задержка распространения - 5,4 нс (max)
Напряжение питания: 2,5…3,3 В
Частота: (max) - 304 МГц

Типовых макроячеек - 440
Количество: входов/ выходов - 76 I/O

А не пробовали посмотреть в первоисточнике?

Простенький, можно сказать примитивнейший проект с 16-ю только асинхронными приёмниками забирает 308 LUT-ов. В вашем случае LE. О таблице генерации текста и символов даже речь не идёт.

RTL дизайн SPI-интерфейса на MAXII EPM570T100I5N
RTL дизайн SPI-интерфейса на MAXII EPM570T100I5N

На скрине сколько LUT-ов 1 SPI интерфейс занимает в MAXII EPM570T100I5N, к этому добавлю, что ценники на камни 270 и 570 не отличаются, все это по цене от 900 до 1100 рублей можно купить у поставщиков в России.

На 270 есть макетка за 1500 руб(опять же у поставщика в России), на которой интерфейс можно оттестировать в рамках постановки задачи в статье.

Поскольку это ПЛИС, то хелловорд 0-99 это просто 7-бит счетчик и дешифратор, еще ячеек 15-20 на весь проект.

Вы упорно натягиваете задачу на свои компетенции, как сову на глобус. Упрощаете и сводите к абсурду. Но даже читая только название статьи должно быть ясно, что на задачу выделятся всего несколько часов. Если вы поняли её как личный челендж, то давно его проиграли.

Вы серьезно думаете что счетчик был самоцелью. Просто некий абстрактный счетчик?

Ну тогда чтобы было не скучно покажите как на CPLD сделать такое в несколько строчек, как это сделано на RA8M1 под GUIX

Постановка Задачи "Как сделать вывод на LED дисплей за один семинар с нуля»", а не про хелловорд. На MAXII EPM570T100I5N один SPI- интерфейс это 6% ячеек и три пина, каждый последующий + 1 пин, и + 3% ячеек(сигналы CLK и CS, включая логику их формирования одни и те же). Итого 25 - 30 SPI-интерфейсов под светодиожную матрицу 8х8, с клоком 100 МГц, то есть при частоте обновления индикаторов примерно 100 Гц (и размере слова в дешифратор для обновления матрицы 8х8 2 байта)это экран примерно 12000х12000 пикселей с частотой регенерации 100 Гц. Сделайте это на RA8M1.

Да и не надо приписывать другим Ваши собственные коплексы, я как раз не раз писал, что нормальный разработчик должен владет всей элементой базой я не чем то одним, Вы же топите за МК там(сделать вывод на LED дисплей за один семинар с нуля), где он сливает элемнтной базе другого типа по всем параметрам, то что Ваш последний аргумент это более длинный хелловорд(что вообще то к задаче не относиться), доказывает что вы уже поняли что уже проиграли, хотя возможно не хотите в этом признатся даже себе самому.

Да сделайте уже наконец на CPLD этот самый "экран примерно 12000х12000 пикселей с частотой регенерации 100 Гц "

Цены бы вам не было. Весь мир носил бы на руках. Круче Илона стали бы.

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

А на CPLD вы просто можете сделать вспомогательную приблуду к RA8M1. Но у нас любой труд в почёте.

Вы откровенно путаетесь в показаниях, публикация о том, как сделать вывод на двух символьную ячейку с SPI-интерфейсом и дешифратором, из которых по вашим же дальнейшим уточнениям в комментах вы дисплеи собираете, проводите семинар как туда хелловорд вывести, на вопрос как собственно с RA8M1 вывести сигнал на дисплей из этих модулей сколь либо практического разрешения(снизим планку, пускай будет обычный 2K) вы не ответили ничего конкретного.

Собственно, если к постановке задачи добавить текстовый хелловорд вроде Вашего, для показанного на картинке дисплея то тоже хватит 1-го чипа MAXII EPM570T100I5N(1100 рублей в российской рознице). Хотя это если просто выпендрится.

На практике тут рациональна связка из АТ-МЕГИ(150 руб на макетке), и макетки с чипом MAXII EPM570T100I5N(2000 р в России), которая уделает ваши две платы - макетку с шилдом(примерно 50 евро за бугром, без учета доставки) уже по всем параметрам. Если нужно выводить видео на более крупный экран взамен АТ-МЕГИ берете какой нибудь одноплатиник вроде Оранжа.

К слову контролеры реальных светодиодных графических дисплеев(включая не игрушечные матричные "бегущие строки"), они, для тех кто не в курсе в реале на ПЛИС(или ASIC) и делаются.

Отчет компилятора по выводу бегущей строки HELLO WORD
Отчет компилятора по выводу бегущей строки HELLO WORD

Если у вас провалы в памяти, то напомню классическую структуру модуля LED экрана, которую давал выше.

Если бы это можно было сделать проще, это бы сделали.
CPLD здесь не у дел.

Не приписывайте другим свои провалы в памяти.

По теме как сделать вывод на LED дисплей с нуля, у вас вот про это "...EK‑RA8M1. От такого не отказываются. Хороший повод найти применение плате MKR RGB Shield и дополнить копилку демо‑проектов под RA8M1, решил я..."... ..."Плату MKR RGB Shield я тоже подготовил заранее. Понадобилось припаять от неё четыре провода к разъёму."

Так выведите хотя бы что нибудь на весьма скромный 2К экран собранный их таких светодиодных ячеек, при помощи платы RA8M1.

Как выводится на 2К экран я вам уже показал два раза.
В моих собственных разработках такие экраны не нужны.
Если хотите знать границы применимости RA8 , то лучше обратитесь на сайт производителя. В моих планах перейти на RA8 где-то через год.
Пока могу предложить открытый проект на Sinergy c экранами и GUI.
Тоже очень гибкий микроконтроллер

"Как выводится на 2К экран я вам уже показал два раза" - если Вы про эту плату с нехилой такой FPGA, которую показали в комментах(чего на 2К хватит с большим запасом), то ваш семинар из статьи к ней никаким боком.

У Вас тогда прошел семинар с фактической содержательной частью на уровне "Как, заведомо не маштабируемым способом, помигать светодиодом используя новый МК RA8, на который я планирую перейти перейти где-то через год".

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

У вас проблема в неадекватной оценке трудоёмкости и комплексности.
Поэтому и показал эту плату для примера. Он обслуживает только 256 пикселей в высоту. А вы ей приписали управление всем экраном. Очевидно вы не разбираетесь в возможностях современной схемотехники и решениях по передаче и визуализации информации.

Поэтому дальше обсуждать нечего.

Не приписывайте другим свои пробелы в компетенциях, возможности этой платы определяются прошивкой ПЛИС. GPIO на 2K, и тем паче возможностей самой ПЛИС здесь хватет с огромным запасом.

MAXII EPM570T100I5N - текстовый хелловорд, RTL- дизайн и RTL- дизайн верхего уровня.

Такую лабуду Quartus II Design Assistant рисует на автомате.
Здесь нет интеллектуального труда.

Во первых Вы скали глупость. Придется пояснить того что RTL Quartus генерит из исходников. Это примерно так же глупо как сморозить, что в двоичной прошивке для МК интелектуального труда нет. И заканчивая, что вы даже не поняли по отчету компилятора что за версия Quartus сделала RTL и затем точно ответила сколько макроячеек на это ушло.

А вопрос был Ваш в том сколько макроячеек уходит. У вас провалы в памяти.

К счетчику можно еще дорисовать мячик и ракетки и сделать pong, даже с резисторами переменными, но вот более серьезный аналог и тем более беспроводка по радио уже вызовет серьезные вопросы. Только проводные интерфейсы, и то очень (за)хочется взять готовый блок, а не изобретать.

CPLD в корпусе soic-8,12,20 бывают? Потребление интересно сравнить.

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

Замечу, что в Вшем примере постановка задачи "Как сделать вывод на LED дисплей за один семинар с нуля".

По факту ещё требуется сосчитать 0 до 99 частотой примерно 1 Гц это разумеется можно и на АRМ МК 480 МГц, и на суперкомпьютере, и просто на счётчике, в том числе счётчике синтезированным на CPLD заодно со всей периферией из постановки задачи.

Вот с чем согласен, так это с выбором названия для статьи. Никогда не знаешь что зацепит.
Ну не хотел я называть статью типа "Установка и развертывание GUIX на RA8M1 с элементами искусственного интеллекта"
Хотя... Может следующую так назову.

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

Так и содержание статьи соответствует названию. Тут все точно.

"переносимость практически всегда будет достигнута большим таким напильником" это как раз про МК, в случае такого рода интерфейсов на ПЛИС дело а в основном ограничивается свободными пинами микросхемы.

При постановке задачи «Как сделать вывод на LED дисплей за один семинар с нуля» связка EK‑RA8M1 + MKR RGB Shield мягко скажем избытоно неуместна("Хороший повод найти применение плате", с чего я и начал в этом случае разве что для обучения EK‑RA8M1), а для общего решения собственно поставленной задачи указанная CPLD в самый раз, хотя если ограничитя двумя разрядами то и платна АрдуиноПро-мини вполне подойдет.

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

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

первейший вопрос который возникает при заходе на сайт renesas (ссылка здесь) - что такое RASC и нужно ли его качать или нет?

Нет, качать надо e2s. А rasc это когда e2s уже стоит (он один на все микроконтроллеры renesas) и надо апгрейдить до RA8.

Есть ли программная технология чтобы моделировать графический монохромный экран только на pc? При этом код писать на си. И чтобы fps был минимум 10 кадров в секунду.

Это нужно для отладки сложной графики в реальном времени на pc прежде чем зашивать код в микроконтроллер.

Речь идёт про древовидные меню, экранные клавиатуры, анимации и прочее.

Может тут 2d игровой движок нужен?

Конечно есть.
Это и будет порт GUIX на PC под Visual Studio.
Там экранные клавиатуры, динамические меню и куча других виджетов реализовано прямо в демках. Монохром там просто один из видов кодирования цвета. Т.е. 1-битный режим

есть такая штуковина LVGL...

Плата MKR RGB Shield по сути представляет собой графический LED дисплей с адресными RGB светодиодами типа APA102 с интерфейсом SPI.

Кто-нибудь может подсказать, где такую штуку или аналог взять за вменяемые деньги? На Aliexpress это от 6 тысяч рублей стоит, в РФ так и все 15. За такие деньги уже сенсорный цветной экран приличного разрешения купить можно.

ага, а дисплей 64х64 типа для ютуберов еще дороже, и покупают же

Sign up to leave a comment.

Articles