STM32 новичку в ARM что к чему

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

[uquote="СКАЗОЧНИК",url="/forum/viewtopic.php?p=3906657#p3906657"]Пожалуйста, можно подробнее, где почитать про реализацию управления ВС2812 через Таймер и ШИМ? Если это уже где-то было описано Вами.[/uquote]
Это тема ARV про плейер световых эффектов, смотри последние страницы.
Реклама
Идёт направо - песнь заводит, Налево - сказку говорит.
Аватара пользователя
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Сообщение СКАЗОЧНИК »

Благодарю. )
Станислав
Реклама
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Сообщение Dimon456 »

Reflector писал(а):Эти 5 строк делают все
Да, только за этими 5 строчками скрывается ище кое что,
ну а так отличная помощь, особенно начинающим.
Reflector писал(а):тому же Dimon456 было все разжевано, иначе у него до сих пор работало бы с SPI и без DMA.
и конечно же ваш код был использован для теста.
И самый главный ваш совет, разрешите процитирую
Reflector писал(а):
Dimon456 писал(а):Ну и как этот ШИМ реализовать, есть пример реализации?
Если проблемы с реализацией ШИМа, то может не стоить себя мучить и лучше оставить SPI :) Примеров в сети полно, задача из разряда для начинающих, нужно просто захотеть разобраться.
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

[uquote="Dimon456",url="/forum/viewtopic.php?p=3906741#p3906741"]Да, только за этими 5 строчками скрывается ище кое что,
ну а так отличная помощь, особенно начинающим.[/uquote]
Этот код и не должен напрямую помогать начинающим, он скорее показывает, что мк становятся сложнее и ценность всевозможных библиотек возрастает.
Reflector писал(а):и конечно же ваш код был использован для теста.
И самый главный ваш совет, разрешите процитирую
Я еще в теме про плеер принцип на словах объяснил, рабочий пример программы, пусть и на своих классах, привел, и в сети действительно подобных примеров полно, один из них ты сам нашел. А когда после этого в личке опять просят рабочий пример, значит самому разбираться лень и хочется получить все в готовом виде, для чего мне еще, видимо, нужно переписать свой код на регистрах и под мк который у тебя есть в наличии... Естественно был дан совет или захотеть разобраться самому или дальше юзать SPI.
Реклама
Эиком - электронные компоненты и радиодетали
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Сообщение Dimon456 »

Ну вот и истина
Reflector писал(а):был дан совет
а то
Reflector писал(а):было все разжевано
Реклама
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

[uquote="Dimon456",url="/forum/viewtopic.php?p=3906814#p3906814"]Ну вот и истина[/uquote]
Пример на С++ был приведен, могу даже повторить:
Спойлер

Код: Выделить всё

   uint8_t buf[9] = { 51, 109, 109, 51, 109, 109, 51, 51, 0 };
	
	PinA<6, AF1>::mode<PinMode::AF_PushPull>();
	
	Dma1Ch1 ch1;
	ch1.setPeriphRequest(DmaReq::Tim3_CH1);
	ch1.initMemToPeriph(buf, DmaSrc::_8b_Inc, &TIM3->CCR1, DmaDst::_16b, 9);
	
	Timer3 tim3;
	tim3.init(0, 128 * 1.25 - 1, TimMode::Upcounter, true);
	tim3.capCom1.initOutput(1, TimOutputMode::PwmMode1, CcrPreload::On);
	tim3.enableDmaRequests<TimDmaReq::CapCom1>();
	ch1.enable();
	tim3.enable();
Изображение
Не нужно знать C++, чтобы большая часть была понятна нужно знать периферию STM32, в крайнем случае можно спросить что не ясно. Спрашивал? Нет, просто дайте ему код который будет работать у него :)
Реклама
Опытный кот
Аватара пользователя
Сообщения: 819
Зарегистрирован: Вт окт 23, 2012 13:17:25
Откуда: Прокопьевск

Сообщение Oxford »

Калокуб в перемешку с cmsis. Такую бредятину стряпаете. Не надо никаких левых библиотек и уводить людей в заблуждение.
Достаточно си и cmsis. А кому очень хочется есть стандартный cubemx.
А таймера и дма я не зря привел. Код не портируемый и много связей. C++ здесь ничего не ускоряет, все остальное легко на си прогается.

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

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

Кресты в мк дохлая тема и трата времени.

Следующий пример аппаратный декодер на таймерах протокола Nec. Жду на крестах
Последний раз редактировалось Oxford Ср окт 14, 2020 21:17:19, всего редактировалось 1 раз.
Инженер R@D

Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Контактная информация:
Собутыльник Кота
Аватара пользователя
Сообщения: 2567
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

[uquote="Oxford",url="/forum/viewtopic.php?p=3906884#p3906884"]Именно поэтому у vladislav нет автоматизации[/uquote]Вы сообщения выборочно читаете? Я на прошлой странице всё утро показывал таймер, завёрнутый в класс.

С++ в МК уже тем хорош, что думать приучает.
Опытный кот
Аватара пользователя
Сообщения: 819
Зарегистрирован: Вт окт 23, 2012 13:17:25
Откуда: Прокопьевск

Сообщение Oxford »

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

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

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

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

Если ты возьмешь нордик, avr, pic, msp и другие то твои либы там не будут работать. На этом я заканчиваю если кто не понимает я не буду распинаться по сто раз.
Инженер R@D

Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Контактная информация:
Открыл глаза
Аватара пользователя
Сообщения: 56
Зарегистрирован: Вт дек 29, 2015 11:33:49

Сообщение pavell »

[uquote="Oxford",url="/forum/viewtopic.php?p=3906910#p3906910"]На этом я заканчиваю если кто не понимает я не буду распинаться по сто раз.[/uquote]
Не уж-то это произойдет? Или все же станет очередным обещанием, которое в последствии затрется?

В последнее время с++ все активнее продвигается в embedded и мне, например, интересно посмотреть реализации на его основе, особенно без токсичных комментариев, полных околофекальных эпитетов.
Опытный кот
Аватара пользователя
Сообщения: 819
Зарегистрирован: Вт окт 23, 2012 13:17:25
Откуда: Прокопьевск

Сообщение Oxford »

pavell реализации чего? Как сконфигурировать порты чтоли или настроить таймер? Берешь мануал, си и программируешь.
А реализации на си тебе не интересны? Или ты уже все стандарты крестов изучил, англ, архитектуру мк и готов говнолибы пейсать никому не нужные?

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

Нечего там на крестах смотреть.
Инженер R@D

Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Контактная информация:
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

Сообщение Ярослав555 »

разрешите поинтересоваться - какие проекты реализовали гуру? описания в пару слов достаточно. а то с моей колокольни без CUBEMX, HAL, FREERTOS, LWIP и C++ сверху ну никак.
Опытный кот
Аватара пользователя
Сообщения: 819
Зарегистрирован: Вт окт 23, 2012 13:17:25
Откуда: Прокопьевск

Сообщение Oxford »

Мой последний проект это проприетарный полнодуплексный USB-uart радиомост работающий на расстоянии 15-20 метров на скорости 19200 без тормозов в условиях помех. Прошивки для девайса и хоста были написаны за 7 дней. Написаны только на си и cmsis, даже ос не применялась, все практически аппаратно плюс немного алгоритмов программных. использовался чип nrf52832
Изображение


Недавно мне надоело выключать ТВ и приставку с двух пультов, я сделал плату на STM32F030 чтобы ТВ понимал кнопку питания от приставки. Кода там кот наплакал тоже на си и регистрах. Сделано за 2 дня. 1 день я анализировал пульты снимал команды и писал код для декодера и генерации. на второй день сделал плату и установил в ящик. Плата вешается на ИК приемник.
Изображение



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


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

Ярослав555 а зачем тебе LWIP, есть же W5500
Инженер R@D

Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Контактная информация:
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

Сообщение Ярослав555 »

[uquote="Oxford",url="/forum/viewtopic.php?p=3907018#p3907018"]Ярослав555 а зачем тебе LWIP, есть же W5500[/uquote]
А TLS шифрование трафика, сертификаты? MQTT, TCP сервер... Я просто не в курсе, что W5500 умеет. Но могу сказать, что наши с Вами задачи на разных уровнях по объёму использования библиотек.

Вот сейчас сапорчу один немецкий проект - плата должна читать резистивную матрицу. А дальше отправлять данные. Но интерфейсов 4 - юсб, кан, эзернет и вайфай. С одной стороны заказчик хочет стартовать по любому интерфейсу, а данные получать по всех. Но они разные по скорости, и для оптимизации процесса заказчик решил что если стартуем по юсб, то отдаем по юсб, эзернету. по кан не надо - он тормозит процесс. А вот если стартуем по кан - то отдаем по всех интерфейсах. И таких вариаций по разным вопросам набирается вагон и маленькая тележка - все угадать не получается. А вот плюсы дают гибкость - основной процесс я строю на основании списка виртуальных интерфейсов. Все реализации я наследую от этого интерфейса. У меня получается что две части изолированы - я могу менять одно, не ломая другое. А если вспомнить, что это все работает асинхронно и все должно успевать! Это один из примеров.

Еще один пример, это когда я делал мастер Profibus сети. Опять сложность была в большой вариации возможных конечных наборов параметров. Чтобы иметь возможность гибко набирать стек устройств на шине, опять же применялись виртуальные классы и прочие прелести плюсов. Так что, дело в разных задачах. Банальность, но - каждый инструмент под свои задачи. Кому то стройного Си достаточно, кому то нужна гибкость плюсов.
Опытный кот
Аватара пользователя
Сообщения: 819
Зарегистрирован: Вт окт 23, 2012 13:17:25
Откуда: Прокопьевск

Сообщение Oxford »

Шифрование это отдельная библиотека WolfSSL или SharkSSL, все это прогается без каких либо плюсов.
Для MQTT есть Paho MQTT

wolfSSL написана на Си. SharkSSL оптимизирована на Си и Ассемблере.
Paho MQTT так же по стандарту ANSI C написана.

Сервер тоже не проблема на W5500 поднять.

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

Вообще для таких проектов проще малинку взять и линукс, там все это гораздо быстрее и дешевле конфигурируется и поднимается. Но, можно и на МК прогать правда дольше все это будет.
Инженер R@D

Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Контактная информация:
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

Сообщение Ярослав555 »

[uquote="Oxford",url="/forum/viewtopic.php?p=3907046#p3907046"]Вообще для таких проектов проще малинку взять и линукс, там все это гораздо быстрее и дешевле конфигурируется и поднимается. Но, можно и на МК прогать правда дольше все это будет.[/uquote]
Малинку в автомотив индустрию не запихнешь, понимаете. Это заказ для завода. Тут все серьезно. Много людей над концепцией проекта думали.
Зачем мне какие-то отдельные поделки, которые еще в кучу надо собрать, если у меня есть LWIP, которая мне сразу интерфейс предоставит, а шифрование уже на бекграунде сделано. У меня готовый сетевой комбайн, со всем что пожелаешь, а Вы мне рассказываете, что есть какие-то костыли которые можно к какой-то платке прикрутить :)))
Опытный кот
Аватара пользователя
Сообщения: 819
Зарегистрирован: Вт окт 23, 2012 13:17:25
Откуда: Прокопьевск

Сообщение Oxford »

Извини, не знал.теперь буду знать спасибо.
Инженер R@D

Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Контактная информация:
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

А потом любители велосипедов с квадратными колесами (lwip и подобный треш) удивляются: а как это их станок "хакнули"?
Если нужно надёжное сетевое решение, то линукс - отличный выбор, а в случае wifi - исключительный!!!
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

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

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

Мой уютный бложик... заходите!
Контактная информация:
Открыл глаза
Аватара пользователя
Сообщения: 56
Зарегистрирован: Вт дек 29, 2015 11:33:49

Сообщение pavell »

[uquote="ARV",url="/forum/viewtopic.php?p=3907070#p3907070"]... не навязывайте свои подходы, а помогайте просто пройти путь к цели.[/uquote]
Вроде одну тему с вами читаем, какого-то особенного навязывания не увидел, зато "никомунинужно1111" - через край. Хватает Си с CMSIS - отлично (сам так же использую) только зачем 10 страниц доказывать о том, что на чей-то субъективный взгляд С++ это оверхед?
Ответить

Вернуться в «ARM»