Этого треда уже нет.
Это копия, сохраненная 24 июня 2021 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
STM32 тред 339005 В конец треда | Веб
Хочу вкатится в разработку на stm32. Сначала стоит вопрос выбора отладочной платы. Что лучше взять: NUCLEO-F401RE или NUCLEO-F303RE ? Или может вообще, что то другое.
Нужно максимальное количество АЦП для обработки звука.
Какую среду разработки лучше использовать?
2 339010
>>339005 (OP)
Тут есть ARM-тред, в котором ты вполне мог бы задать свой вопрос. Хотя действительно есть некоторый смысл в раздельных тредах.

>Или может вообще, что то другое.


Именно. Ты бы посмотрел какие АЦП используют для звука. У тебя в компьютере сколько разрядов в АЦП для звука? А сколько в STM32?

>Какую среду разработки лучше использовать?


Это не не оказывает существенного влияния на процесс вкатывания. Но если спрашиваешь, то это будет в самый раз: https://www.instructables.com/id/Quick-Start-to-STM-Nucleo-on-Arduino-IDE/
3 339011
>>339010

>А сколько в STM32?



Написано что 12 разрядов. Для моих задач, запись голоса с низким качеством, вполне должно подойти
4 339014
>>339011
выбирай stm с dsp
5 339015
>>339014

А они разве не все с DSP? Если я не путаю это просто набор инструкций процессора?
6 339016
>>339015
Нет. С тчк зрения программиста.
7 339689
>>339005 (OP)
Ждал этот тред больше 3 лет. Мимо начинал свой путь освоения контроллеров с AVR в AtmelStudio и теперь сижу на STM32 с STM32CubeMX как на герыче сука. Если совсем с нуля хочешь вкатиться, возьми на али пару простых отладочных плат и программатор:

https://ru.aliexpress.com/item/1PCS-ST-LINK-Stlink-ST-Link-V2-Mini-STM8-STM32-Simulator-Download-Programmer-Programming-With-Cover/32792513237.html
https://ru.aliexpress.com/item/48-STM32F030F4P6-s-CORTEX-M0-Core-32bit/32881417785.html
https://ru.aliexpress.com/item/Free-Shipping-STM32F103C8T6-ARM-STM32-Minimum-System-Development-Board-Module-Forarduino/32525208361.html

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

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

У меня еще валяются такие же платы с STM32F103RET6 и STM32F103RFT6, когда нужно совсем много памяти для графики или больших массивов данных, да и в целом 103я серия очень нравится. Также есть STM32F429I-DISCO - это былая моя первая отладочная плата STM32, с которой я начал свое изучение и пилил тогда фо фан систему использующую DSP для распознавания цветов и простых форм с Omnivision камеры + наложение информации на кадры и трансляция через ESP8266 модуль по WiFi, чтоб через обычный браузер смотреть - было очень интересно.

Насчет Nucleo, так себе варчик, особенно если больше 1 покупаешь - неоправданная переплата за програматор на плате и кучу перефирии - она будет только мешать (не будешь же ты выпаивать каждый раз какую-то лабуду с нее, когда нужны будут ножки на которой она висит). Лучше взять у китайцев с голой разводкой (если имеются нужные тебе варианты) и навешивать все свое, единственную Nucleo которую я б купил это с контроллером STM32F334R8 из-за наличия в нем таймера разрешением 217 пикосекунд и отсутствия самого контроллера на али.

По звуку ничего определенного не могу посоветовать, но как писали выше - бери плату с DSP. А по среде разработки советую связку STM32CubeMX + Keil + STMStudio. Сгенерил проект в кубе и пишешь себе код в лучшей IDE для ARM, а потом тестишь всякие баги или проводишь наблюдения в STMStudio, которая будет строить график изменения значения наблюдаемых переменных хоть целый день.
7 339689
>>339005 (OP)
Ждал этот тред больше 3 лет. Мимо начинал свой путь освоения контроллеров с AVR в AtmelStudio и теперь сижу на STM32 с STM32CubeMX как на герыче сука. Если совсем с нуля хочешь вкатиться, возьми на али пару простых отладочных плат и программатор:

https://ru.aliexpress.com/item/1PCS-ST-LINK-Stlink-ST-Link-V2-Mini-STM8-STM32-Simulator-Download-Programmer-Programming-With-Cover/32792513237.html
https://ru.aliexpress.com/item/48-STM32F030F4P6-s-CORTEX-M0-Core-32bit/32881417785.html
https://ru.aliexpress.com/item/Free-Shipping-STM32F103C8T6-ARM-STM32-Minimum-System-Development-Board-Module-Forarduino/32525208361.html

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

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

У меня еще валяются такие же платы с STM32F103RET6 и STM32F103RFT6, когда нужно совсем много памяти для графики или больших массивов данных, да и в целом 103я серия очень нравится. Также есть STM32F429I-DISCO - это былая моя первая отладочная плата STM32, с которой я начал свое изучение и пилил тогда фо фан систему использующую DSP для распознавания цветов и простых форм с Omnivision камеры + наложение информации на кадры и трансляция через ESP8266 модуль по WiFi, чтоб через обычный браузер смотреть - было очень интересно.

Насчет Nucleo, так себе варчик, особенно если больше 1 покупаешь - неоправданная переплата за програматор на плате и кучу перефирии - она будет только мешать (не будешь же ты выпаивать каждый раз какую-то лабуду с нее, когда нужны будут ножки на которой она висит). Лучше взять у китайцев с голой разводкой (если имеются нужные тебе варианты) и навешивать все свое, единственную Nucleo которую я б купил это с контроллером STM32F334R8 из-за наличия в нем таймера разрешением 217 пикосекунд и отсутствия самого контроллера на али.

По звуку ничего определенного не могу посоветовать, но как писали выше - бери плату с DSP. А по среде разработки советую связку STM32CubeMX + Keil + STMStudio. Сгенерил проект в кубе и пишешь себе код в лучшей IDE для ARM, а потом тестишь всякие баги или проводишь наблюдения в STMStudio, которая будет строить график изменения значения наблюдаемых переменных хоть целый день.
8 339752
>>339689
А зачем тебе куб нужен, только ради схемки тактирования и пинов? Я просто сразу с регистров начал и Keil и не понимаю зачем вообще эти говнокубы и говнохалы. Единственное - приходится читать исходники хала и комментарии ибо бывает сложно понять что и в какой последовательности врубать для того чтобы врубить какую-нибудь периферию ибо в RM не всё так понятно расписано.
9 339757
>>339015

>А они разве не все с DSP? Если я не путаю это просто набор инструкций процессора?



Нет, только F4 и F7
10 339762
>>339752
stm32f7 вне кубика дюже сложно будет сконфигурировать
11 339821
>>339752
Ради инициализации периферии, меня это заебывало на AVR - постоянно лезть в мануал потому что на каждой атмеге свои регистры и комбинации флагов для одной и той же настройки частоты шима или параметров uart. Потом то я надрочился с ними и запомнил, но когда перекатился на stm, решил ну его нахуй пусть генерит - за 3 года никаких проблем не было, тем более HAL'овские функции довольно хорошо написаны, изи понимать что там происходит когда дебажишь. А в кубе все задал, оно сгенерило функцию с инициализацией двух десятков параметров и тебе не надо лезть каждый раз в мануал на 300 страниц если надо что-то изменить, особенно это касается всяких DCMI, FMC, встроенного LCD-TFT контроллера и прочего.
12 339829
Взял себе такую платку. Какие подводные?
13 339839
>>339829
Открыл шебм, изображение на экране посыпалось, все в полоску стало, пришлось ресет жать, теперь стремно снова открывать, что это за хуйня была.
WP20180305224221Pro (2).jpg1 Мб, 3241x1827
14 339843
>>339829

>Какие подводные?


Поморгаешь диолдами и положишь на полку. Анус ставлю.
мимовладелец 429-discovery
15 339844
От треда у меня сложилось впечатление, что вы тут обсуждаете тысячекратно оверпрайснутые аналоги ардуины.
Лучше бы накидали литературы, желательно на русском. А также плюсы-минусы разных средств разработки.
И все это желательно с ориентиром на массовую дурино-подобную плату с STM32F103C8T6, дабы вкатиться мог любой бомж.
16 339847
>>339844
Тебе для чего? Как можно быстрее что-то сделать или основательно вкатиться? Если первое - бери ардуину.

>литературы, желательно на русском.


1) Без книг по Си по любому не обойтись. Конечно можно это заменить каким-то кратким курсом, но тогда знания останутся поверхностными. Для начала микроконтроллеры можно вообще не трогать, а примеры с упражнениями компилировать под винду (или что там у тебя).
Хороших книг тут две:
- Подбельский и Фомин http://publ.lib.ru/ARCHIVES/P/PODBEL'SKIY_Vadim_Valerievich/_Podbel'skiy_V.V..html
- Керниган и Ричи. http://publ.lib.ru/ARCHIVES/K/KERNIGAN_Brayan_Vil'son/_Kernigan_B.V..html
Но в этих книгах есть существенная проблема - не рассматриваются нововведения C99, без которых (хотя и совсем малой части) для микроконтроллеров не обойтись. Об этих нововведениях нужно где-нибудь прочитать, хотя бы статейку нагуглить.
2) Нужно что-то для понимания того что такое процессор. Нужно понимание о том что такое система команд, гарвардская/фон-неймановская архитектура, CISC/RISC и прочее. В рамках этого пункта, для общего развития, неплохо было бы разобрать систему команд какого-нибудь простенького процессора и написать десяток строк на ассемблере. Тут я не знаю какую литературу советовать.
3) Ядро Cortex-МЗ компании ARM. Полное руководство. Джозеф Ю. Стоит прочитать, хотя бы по диагонали.
4) После того как осилишь предыдущие пункты, остается только открыть документацию на микроконтроллер, посмотреть примеры и понять куда тыкать в IDE.

>А также плюсы-минусы разных средств разработки.


Это по вкусу.

>И все это желательно с ориентиром на массовую дурино-подобную плату с STM32F103C8T6, дабы вкатиться мог любой бомж.


Вообще без разницы. Все отличие этих плат лишь в наличии/отсутствии встроенного отладчика и количестве светодиодов.
17 339849
>>339847

>Тебе для чего?


Для махараек.

>бери ардуину.


С нее и AVR заинтересован в перекате.

>Без книг по Си по любому не обойтись


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

>Нужно что-то для понимания того что такое процессор. Нужно понимание о том что такое система команд, гарвардская/фон-неймановская архитектура, CISC/RISC и прочее


Зачем? Вещатели о CISC/RISC и прочих общих определениях в 99% случаев тоже нихуя не смогут объяснить внутреннее устройство процессора, глубже чем "вот этот квадратик - АЛУ, а вот эти стрелочки - шина данных".

>для общего развития, неплохо было бы разобрать систему команд какого-нибудь простенького процессора и написать десяток строк на ассемблере


Так открываем даташит на те же аврки и пишем, список команд с кратким описанием там дан. Чего тут разбирать-то? Ну и смысла в этом нет, только для общего развития.

>3) Ядро Cortex-МЗ компании ARM. Полное руководство. Джозеф Ю. Стоит прочитать, хотя бы по диагонали.


По диагонали определенно стоит изучить.

>После того как осилишь предыдущие пункты, остается только открыть документацию на микроконтроллер, посмотреть примеры и понять куда тыкать в IDE.


Т.е. я уже практически готов к секасу?

>Это по вкусу.


Ну, допустим. А какие самые популярные у махарайщиков, с большим коммьюнити?

>отличие этих плат лишь в наличии/отсутствии встроенного отладчика


Вот, кстати, важный момент. Где на компе тестить и симулировать код внутри МК? С аврками Протеус в этом деле все решает, а вот с стм32 полные непонятки.
18 339854
>>339849

>В дроч регистров, ногодрыг и битовые операции могу, книг особо не читал. Думаешь, стоит?


Ну если ты можешь сказать (не подглядывая) чем отличается i++ от ++i и знаешь, что в выражениях типы короче чем int, неявно приводятся к int, то наверное не нужно ничего читать. Даже если не знаешь, то для махараек и так сойдет.

>Зачем?


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

>Так открываем даташит на те же аврки и пишем, список команд с кратким описанием там дан. Чего тут разбирать-то? Ну и смысла в этом нет, только для общего развития.


Может и нет смысла. Но дает некоторое представление о том что может процессор. Например, явно не лишним будет знать, что в cortex-M0 и M1 нет команды деления, а в M3 остальных она есть. Те же DSP инструкции, которые выше обсуждали.

>Ну, допустим. А какие самые популярные у махарайщиков, с большим коммьюнити?


Бери кейл.
Остальные варианты те же что для AVR - это практически любые, не заточенные под микроконтроллеры IDE. Преимущество тут во множестве мелочей, которыми IDE отличается от блокнота. Недостатки и так должны быть понятны.

>Где на компе тестить и симулировать код внутри МК?


На компе - толком нигде. Пошаговая отладка и прочие штуки - прямо на микроконтроллере через ST-Link, J-Link и прочие. ST-Link, как видно из названия, только для ST. J-Link для всех ARM.
19 339859
Посоны, я правильно понял, что CMSIS это самый такой байтоебский способ погромирования, с прямым обращением к регистрам и прочее. HAL сродни ардуиновскому языку. А по SPL какой положняк?
SPL.png35 Кб, 806x539
20 339862
>>339859

>Посоны, я правильно понял


Может правильно, а может и вовсе неправильно. Особенно подозрительно про "ардуиновский язык".

>А по SPL какой положняк?


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

ST постепенно отказываются от SPL, поэтому использовать SPL не стоит. Сейчас у них есть LL, которая мало чем отличается от SPL. Хотя может я в чем-то не прав, т.к. за STM наблюдаю издали, так сложилось что мне приходится использовать другие микроконтроллеры.
21 339864
>>339862

>Как видно, берутся поля из структуры


Дополню, а то вдруг не совсем понятно окажется. В эту структуру уже все вручную пихается. Получается что документацию в части регистров все равно, как правило, необходимо читать.
22 339869
>>339859
CMSIS - по сути просто набор определений регистров, чтоб тебе не пришлось в одном контроллере писать значения в TFIT1 и TFIT2, а в другом для той же настройки в TFIT3 и TFIT4, можно с помощью CMSIS в обоих случаях задавать через REGISTER_ZALYPI_1 и REGISTER_ZALYPI_2.

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

HAL - так как SPL было корявым поделием с кучей багов и проблем переноски кода с одного контроллера на другой, ST создали новый набор либ с учетом всех проебов и он оказался просто 10 из 10, если тебе надо написать что-то сложнее мигания лампочки по таймеру.

LL - низкоуровневый API, который ST выкатили относительно недавно, по сути является аналогом CMSIS, но лучше и полностью совместим с STM32Cube и HAL, тоесть можно использовать в проекте написанном на HAL в качестве оптимизированных вставок.

>>339849

>С аврками Протеус в этом деле все решает


Чет вообще вголос с этого, ведь есть AtmelStudio, купи только программатор нормальный и наслаждайся всеми плюшками бесплатной IDE от производителя микросхем.
LL.png81 Кб, 818x1492
23 339877
>>339869

>SPL - набор высокоуровневых либ, по сути надстройка над CMSIS


>LL - низкоуровневый API, который ST выкатили относительно недавно, по сути является аналогом CMSIS


Что-то ты странное пишешь. Вот на на картинке код функции из LL, выше код аналогичной функции из SPL. Как говорится, найди 10 отличий (кроме имен). Ну да, записываются чуть разные биты (назначение функций немного отличается). Еще вместо переменных tmpreg в LL используется макрос MODIFY_REG. Но существенных отличий нет.

>по сути является аналогом CMSIS


Вот только как видно из приведенного кода, LL это такая же надстройка над CMSIS как SPL. И LL ничуть не заменяет CMSIS, а наоборот его использует.
24 339878
>>339843

>Поморгаешь диолдами и положишь на полку. Анус ставлю.



Ну у меня есть конкретная, промышленная задача под STM. Нужно писать звук с АЦП и передавать в комп. Желательно минимум 8 каналов одновременно. Максимум 16 хотелось бы. Качество звука не волнует. Главное чтобы речь можно было разобрать.
25 339881
>>339829
>>339878
Сразу не понял что это именно ты, а то похоже тут пишут уже все вкатывальщики подряд.
Если не делать цифровую фильтрацию, то по вычислительным возможностям слишком жирно для твоих задач, впрочем это не плохо. Немного хуже то, что периферия там сложнее, будет сложнее освоить. Если цифровую фильтрацию не делать, то DSP инструкции тоже почти не пригодятся. Зато АЦП наоборот слабенький, но все равно должно хватить. Насколько я помню, у NXP были микроконтроллеры с более серьезными АЦП, но тебе это вроде не требуется.
Я правильно понял, ты писать на компе собираешься? Тогда суммарная скорость передачи на ПК будет небольшая - 16 бит на канал, частота дискретизации максимум 16 кГц и на 16 каналов - получается 4 МБит/с, это вообще ерунда.
26 339883

>Я правильно понял, ты писать на компе собираешься?



Да надо передавать звук из АЦП на комп и там писать

>получается 4 МБит/с, это вообще ерунда.



а COM порт на плате сможет пропустить столько? У него вроде максимальная скорость 128000 байт в секунду.
27 339889
>>339883

>а COM порт на плате сможет пропустить столько? У него вроде максимальная скорость 128000 байт в секунду.


На материнской плате компа? По разному, но я больше 921600 бод/с (это 737280 бит/с) я не встречал. А микроконтроллер вполне может несколько мегабит выдать.

У тебя два варианта - USB и Ethernet. На счет USB посоветовать ничего толком не могу, т.к. делал только HID и то давно. Знаю только что есть стандартный аудио класс, но не знаю можно ли в нем сделать столько каналов. Впрочем можно сделать составное USB устройство, т.е. чтобы компьютером виделось как несколько устройств.
Другой способ - это использовать FT232H или другие микросхемы от FTDI. Программно это намного проще, только для компа придется что-то придумывать. Сам я это не делал, но пользовался устройством где они применялись для передачи видео из ПЛИС.
С Ethernet все можно сделать совсем просто. Если воткнуть в сетевуху компа напрямую, то можно обойтись без TCP/IP и слать RAW пакеты. С TCP/IP тоже не сложнее, только требований к микроконтроллеру может быть чуть больше.
28 339924
>>339878
Есть же прекрасные мемс-микрофоны с полкой 20-20000 Гц, которые выдают уже цифровой выход правда, нужна обработка фильтром. Один такой даже стоит на stm32f4discovery
29 339925
>>339889

> С TCP/IP тоже не сложнее, только требований к микроконтроллеру может быть чуть больше.


Я поднимал lwip стек на m4, работал прекрасно с потоком примерно 10мбит/с. Главное, с буферами не мельчить
30 339975
https://www.youtube.com/watch?v=VYhAGnsnO7w
Пссст, там Дейв создал хайп про китайские МК по 3 цента в розницу. На сайте производителя есть IDE и шиты на ангельском. Реально найти и купить программатор. Т.е. все есть, только разбирайся.
Фанатики STM8, по 40 центов за штуку, массово режут себе вены и вешаются.
STM32-господа тоже в легком недоумении от китайского чуда.
Но есть один подводный камень: все эти мк однократно программируемые.
31 339978
>>339975
И это еще что, на том сайте есть китайские 16-битные ЦАПы по 30 центов и 16-битные АЦП по 50 центов... Вот это реально ШОК. Полагаю, ОП ёбнется под стол от охуения.
32 339979
>>339975
Ну а смысл? Будто есть разница для единичных самоделок - 100 рублей или два рубля. Обычно в любом изделии, микроконтроллер это не самое дорогое, если это конечно не мигалка одним светодиодом. Или ты свои поделки делаешь сериями по тысяче штук?
Тематике треда тоже не соответствует. Это восьмибитный микроконтроллер, а тут тред про STM32.
33 339981
>>339979
Ну, вообще в видео речь шла про массовое производство. Но народ все-равно набежал. Забавно, что вскоре после выхода видео все запас тех мк резко раскупили.
Тем не менее, магаз с китайскими брендами - это охуенная находка.
>>339978

>16-битные АЦП по 50 центов


24-битные, фикс
Есть даже дешевле.
34 339982
>>339978

>Полагаю, ОП ёбнется под стол от охуения.


Полагаю ему будет без разницы. Тем более ты наверное про одноканальные или двухканальные пишешь. На диджикее PCM1681PWP с восемью каналами стоит 4 доллара поштучно.
А еще, внезапно, разрядность и частота дискретизации - это не единственные характеристики АЦП.

>>339981

>Тем не менее, магаз с китайскими брендами - это охуенная находка.


Ты свои самоделки делаешь сериями по несколько тысяч штук?
35 340117
Есть вопрос по теме. Предложили работу с программированием STM32 и обработке инфы с него на компе, построение графиков и прочее. Контора вроде занимается машиностроением. Глубокими знаниями по теме я не обладаю. До этого только занимался PIC-контроллерами на поверхностном уровне. И тут вопросы?
1)Тяжело ли новичку адаптироваться к сфере?
2)Актуально ли вообще в 2018 году вкатываться в встраивыемые системы?
3)Стоит ли заниматься этим, если вообще нет знаний по электронике дальше закона ОМА? Прогать под железо нравиться на отладочниках, но не нравиться разводка плат, расчёты электротехнические и прочее...
4)Насколько это творческая деятельность и насколько оплачиваемая? Куда может расти разработчик дальше?
36 340258
>>340117
Изучаю геймдев и параллельно веб-макакинг, ещё в параллель на онлайн-курсы ардуино записался. Там видно будет когда всё развалится.
15363799073970.jpg26 Кб, 347x330
37 340259
>>340258

>онлайн-курсы ардуино записался

38 340287
>>339689
Ты крутой. А мои эстээмки повторили путь ардуины. Покупка - блинк - ящик.
39 340295
>>340117

>PIC-контроллерами


Изучал в институте ассемблер PIC18. Угадал?
40 340299
>>340287
У меня создалось впечатление, что он тоже особо плотно не занимается. Фотки одни и те же, готовых девайсов не показывал. Наверняка ошибаюсь, но впечатление создалось именно такое.
41 340303
>>339877
Ок ладно, согласен, LL не заменяет CMSIS, но нет особой разницы использовать чистый CMSIS или LL, который используется для инициализации периферии, а потом код пишется снова на CMSIS. Я например вообще HAL'о адепт, не понимаю почему его постоянно поливают грязью в ру комьюнити, при том что за рубежом все пользуются и довольны кроме небольшого количества заядлых байтодрочеров.
42 340304
>>340299
Та нечего показывать, разработал 2,5 девайса, собираю и продаю их (в течении пары дней паяю платы и подготавливаю корпуса, которые продаю за 1-2 недели, остальное время кинчики смотрю или играю - на жизнь и обновление пеки/смартфона каждые пару лет хватает), последний год ничего нового на STM32 не писал, кроме ковыряния всяких новых датчиков и дисплеев с али. Пару раз в месяц достаю с ящика ESP32 в ожидании того, что наконец-то запилили нормальные библиотеки для асинхронного веб сервера под ESP-IDF...
27854781465368.jpg59 Кб, 900x616
43 340311
>>340304
Найс. Тоже, видимо, созрел до этого. Осталось только родить что-нибудь стоящее.
44 340453
>>340295
MPASM и поверх адаптированный под них СИ. Вроде во многих универах это распространённый набор. Правда умирающий.
45 340486
>>340304
Что за девайсы?
46 340693
>>340304
Что за девайсы? Может дашь каких советов, как найти свою нишу? Я хиккан-программист-фрилансер, имею средненькие знания электроники, паю махарайки для себя. Крутится идея создать стартап какой-то или типа того, в общем делать реальные вещи.
47 340699
>>340303

>Я например вообще HAL'о адепт, не понимаю почему его постоянно поливают грязью в ру комьюнити, при том что за рубежом все пользуются и довольны кроме небольшого количества заядлых байтодрочеров.



Потому что кроилово на себестоимости и вытекающая из него байтооптимизация головного мозга.
48 340783
>>340486
>>340693
Не хочу палить то что я делаю, потму что довольно востребованная херовина среди обычных людей и продается изи.

Двигайся в направлении бытовых систем автоматизации, которые будут дешевые по себестоимости и при этом не будет особо аналогов, кроме китайского говна с али. Например простой контроль температуры и влажности при помощи тэна/лампы и увлажнителя/осушителя - он лежит в основе инкубаторов, сушилок, хранилищ продуктов, климат контроля в доме. Добавляешь к этому свои фишки которые нужны пользователям или которых еще никто не делал и у тебя уже несколько устройств для разной целевой аудитории но с одинаковым принципом работы и элементной базой.
image.png84 Кб, 563x513
49 341412
Раз уж такой тред, спрошу: пытаюсь вкатиться в STM32F407VG, хочу отправить пару байтиков по USART. Но проблема в том, что нихуя не работает.

https://ideone.com/tUfssc

Что делаю:

17-30: инициализирую периферию
32: подключаю USART6_TX к PC6
34-42: светодиодик для индикации
44-50: настройка PC6 (AF)
52-56: инициализация USART6
58-64: шлю байтик

Так вот, светодиод моргает, но PC6 как сидит в +3В, так и сидит, никаких данных не передает. В чем косяк может быть? Собираю arm-gcc-none-eabi в linux x64, шью через openocd.
50 341418
>>341412

>никаких данных не передает


Осциллографом или логическим анализатором смотрел? Может у тебя скорость неправильная?

Возможно у тебя проблема из-за неправильного определения тактовой частоты. Я давно ничего не делал с STM32, могу ошибаться. Если я правильно помню, то в дефолтном startup файле вызывается функция SystemInit (это не только у STM32, кажется это требование CMSIS), которая включает тактирование от кварца. Функция USART_Init, для того чтобы правильно посчитать делители, определяет тактовую частоту с помощью еще одной функции, которая использует дефайны с частотами генераторов, которые определяются (если не были определены) в stm32f4xx.h.

Наверное тебе следует глобально определить HSE_VALUE. Ну и еще ты зря используешь SPL.
51 341429
>>341418
Осциллографом, пик 2. Данные должны иди через канал 1 (желтый) сразу после включения светодиода (канал 2, синий). Тактовая частота вроде верно настроена, пик 1.
image.png150 Кб, 1058x534
52 341431
>>341418
>>341429
Я напал на след и, кажется, ты прав. Почему-то все частоты кроме SYSCLK стоят в 0.
image.png23 Кб, 207x442
53 341437
Все, решилась проблема. В USART_Init вызывалась RCC_GetClocksFreq, которая лезла в глобально объявленный массив APBAHBPrescTable. А там был мусор. Убрал модификаторы volatile и все заработало. Теперь вопрос к знатокам - какого хуя?
image.png19 Кб, 213x451
sage 54 341438
APBAHBPrescTable здорового человека.
55 341440
>>341437
>>341438
Это скорее вопросы по стандарту Си или к компилятору. Разве оно там не static volatile const в результате получается?
Попробуй через objdump -t посмотреть в каком сегменте оказывался этот массив.
image.png25 Кб, 676x114
sage 56 341441
>>341440
я немного ошибся, массивов два, один объявлен статически в XXX_rcc.c (APBAHBPrescTable), второй - глобально в system_XXX.c (AHBPrescTable). если вернуть все как было, то AHBPrescTable попадает в секцию .data в бинарнике.
57 341442
>>341441
Ах да, в рабочем состоянии он в секции .text
58 341447
>>341442
>>341441
Возможно ты это и так знаешь, но на всякий случай скажу. Очевидно, что секция .data должна инициализироваться в самом начале из флешки. Код этой инициализации находится в startup файле. И в скрипте линкера это тоже должно быть отражено.
Если все переменные из секции .data не инициализируются, то это может быть из-за неправильного startup или скрипта линкера.
Full HD 1080p.jpg2 Кб, 300x300
59 345085
Хватит ли ресурсов контроллера, чтобы захватывать и слегка обрабатывать (смотреть среднюю яркость и превалирующий цвет) цветное аналоговое видео PAL или NTSC?
60 345161
>>345085

>чтобы захватывать и слегка обрабатывать


raspberry pi zero w
61 345172
>>345085
Цвет и яркость по всему кадру? Или по краям экрана? Мне кажется что микроконтроллер тут лишний, хватит какой-нибудь телевизионной микросхемы TDA для выделения цветоразностных сигналов. Для получения средней яркости так вообще достаточно лишь пропустить привязанный по уровню видеосигнал через RC-цепочку.
На микроконтроллере выделить цветоразностные сигналы должно быть затруднительно, как минимум потребуется довольно высокая частота дискретизации.
243243 5464465 62 345189
342432
63 345200
>>345172
Спасибо. Немного не так выразился. Нужно разбить кадр на участки квадратно-гнездовым способом (т.е. что-то типа таблицы) и определить средние цвет и яркость каждого участка (ячейки таблицы).
64 345238
>>345200
Типичная задача для плис
65 345251
>>345238
Ерунду выдумываешь. Достаточно лишь получить цветоразностные сигналы на какой-нибудь телевизионной микросхеме, пропустить их через ФНЧ (в соответствии с ячейками таблицы) и в нужные моменты времени запустить АЦП. Длительность строки 64 мкс, даже на ардуине можно сделать запуск АЦП в нужный момент, если конечно ячейки не слишком мелкие.
Это скорее задача для компьютера (может одноплатника) с easycap для видеозахвата.
.jpg1,1 Мб, 2048x1232
66 345311
>>345251

>на какой-нибудь телевизионной микросхеме


Как-то так? Нет уж, лучше на плис.
67 345384
Так, я тут заказал простейшую stm32f103c8-базед плату и ст-линк в2 прошивальщик и надеюсь на то, что первое время поучусь без обвязки контроллера. Нормально жи? Я просто хочу с ним пообщаться с пекарни типа "посчитай мне корень из пи". Мне кажется, что после традиционного погромирования так проще будет.
Я вообще адекватно задачи ставлю по вкату?
Потом, если чё, докуплю макет за 200 рублёв с диодами разноцветными.
68 345526
>>345384
Думаю, что это гораздо адекватнее чем покупать пачку модулей или всякие демоплаты типа дискавырей. Лично мне идеальным видится вариант покупки под конкретную задумку, когда сначала придумываешь охуительный велосипед, а затем подбираешь под него железо, которое и осваиваешь в процессе.
мимо
69 345547
>>345526

>придумываешь охуительный велосипед


и начинаешь ЛУТить до дыму, запарывать детальки, пока Дискавери-боярин занимается написанием кода.
70 345549
>>345547
Да, хотеть писать код.
Так что, в принципе кроме стлинка ничего не надо?
Вернуть на комп результат вычислений и бенчить МИПСы можно будет?
71 345563
>>345547

>Дискавери-боярин занимается написанием кода.


Ты хотел сказать написанием хеллоуворлдов?

>>345549
Стоит еще взять переходник USB-UART.
72 345566
>>345547

>Дискавери-боярин занимается написанием кода


Велосипед потом поедет по назначению, а дискавери отправится в небытие. Это примерно как делать детей или дрочить.
1542113727-352ff777c43ec6ce5cf71ce7f25b15a1.jpeg41 Кб, 700x438
73 345570
>>345566

>Велосипед потом поедет в помойку,


а Дискавери-боярин будет отлаживать код вывода на дисплей и работу с памятью. Данную связку велосипедо-нищенка не сможет спаять своими кривыми ручонками и забросит затею. А почтенный Дискавери-господин закончит написание кода, отрисует схему своего йоба-устройства, спокойно сочинит печатку и закажет ее изготовление китайским мастерам. Затем спаяет свое устройство и зальет в него отлаженный и рабочий код.
74 345571
>>345570

>дисплей и работу с памятью


То есть во всех твоих самоделках, кроме микроконтроллера, дисплея, памяти и может быть батарейки, ничего более существенного нет?
7546459748676479.jpg55 Кб, 589x545
75 345572
>>345570
Так, а что с дискавырей станет по итогу?

>нищенка


Щас бы всерьёз думать, что у кого-то нет денег на дисковырь.
76 345578
>>345571

>ничего


Ну чому ты так? Есть памяти 8Мб, есть GPRS-модем, есть порт Ethernet, 7" touch-LCD 800х640
77 345598
>>345578
Ну а смысл делать такое на STM32? Не проще ли и дешевле взять одноплатный компьютер?
Толку от дискавери не так много. Допустим захочется отмакетировать синтезатор частоты для радиоприемника или часы на неонках, сильно поможет дискавери по сравнению с простейшей платой? Или взять к примеру задачу ОП-а, ему будет какой-то толк от дискавери только если он решит использовать ethernet.
78 345696
>>345563

> usb-uart


Пичаль, а что тогда вообще st-link v2 делает? Я читал, он и шьёт, и дебажит.
Т.е. доступ к памяти МК у него есть.
Так почему бы через него не возвращать результаты?
79 345699
>>345696

>Я читал, он и шьёт, и дебажит.


>Т.е. доступ к памяти МК у него есть.


Это все верно. Но printf-ами удобнее срать в UART. В отладчик тоже можно, например через SWO или semihosting, но по моему это не так удобно. Так что USB-UART дополняет отладчик.
80 345711
>>345699
Можешь нищепример кинуть?
Просто плата 120, отладчик столько же, а эти уарты нахожу по 800.
Проще тогда борду докупить за 200 и моргать диодами, так там ещё фоторезюки в комплекте.
81 345712
>>345711

> борду за 200


Сиранул, це макет, нувыпонели.
82 345718
>>345711
Эт что ты за 800 нашел?
Пик1 можно брать, или на chg340 что-то, но лучше пик2 - им можно как gpio/i2c/spi over usb пользоваться.
shutterstock909080811-300x225.jpg17 Кб, 300x225
84 347146
Пагни, а можно ли сделать на платке stm32f103c8t6 что-то вроде SPI сниффера или примитивный логический анализатор? Чтобы просто послушать SPI.
85 347158
>>347146

>примитивный логический анализатор


На Хабаре была статья про логаналайзер на стм32ф4ххх, думаю можно адаптировать под твои нужды. Гугл ит!
86 347161
>>347146

>SPI


>serial pereprherial interface


>SERIAL


Ну почему в вопросе опять ответ, а задавший его этого не видит? Конечно можно! Главное не мешай ему работать и всё. Тебе надо слушать MOSI, MISO по тактам через SCK.
1541106821149368570.jpg180 Кб, 672x1000
87 347164
>>347158
У него там осциллограф с аналоговой частью. Мне просто надо посмотреть, что стм8 передает модулю нрф24.
ra - STM32 тред - Google Chrome 2018-11-27 16.51.04.png1,8 Мб, 1289x780
88 347167
>>345311
Где такой булыжник купить? Помню батя паял телевизоры и постоянно тыкал паяльником в него. А как он называется не знаю. Ищу его лет 10 уже.
89 347178
Аноны, есть STM32F103 на Cortex M3, есть SSD1306. как реализовать прошивку, чтобы вывести на дисплей элементарное анимированное изображение с ПК?
90 347181
>>347167
Первая сцылка из гугла по словам "кусковая сосновая канифоль" http://prodiel.ru/product_info.php?products_id=468
91 347182
>>347161

>Тебе надо слушать MOSI, MISO по тактам через SCK.


Я только вчера с ардуины слез. Всё в теории выглядит довольно очевидно. Но где посмотреть пример кода для стм?
92 347183
>>347182

>nurgle: STM32 SPI sniffer

93 347184
>>347164
А что ещё может STM32 передавать nRF24I01+ , кроме команд и данных? Или тебе лень проверять ВЕСЬ ЭФИР, НА ВСЕХ АДРЕСАХ И КАНАЛАХ? А ведь там 5 байт на адрес, лол.
94 347191
>>347181
Спасибо
95 347268
>>339005 (OP)
Аноны, купил на али stm32f4.., до этого только с авр дело имел.
Битый час уже пытаюсь лед зажечь. Что я делаю не так? https://pastebin.com/K5FH5SCr
96 347274
>>347268
Не игрался с 40x серией, но ради интереса попробую помочь.
1) Вроде бы светодиоды на той плате сидят начиная с 12. Т.е. ты должен написать: GPIOD->MODER |= GPIO_MODER_MODE12_0;
2) Для светодиода можешь не трогать GPIOD->OSPEEDR
3) GPIOD->PUPDR тоже, ибо там 0 должны быть
4) Ну и далее уже GPIOD->ODR = GPIO_ODR_ODR12; (вроде, так, но ты понял в общем).
5) Если светодиод не зажёгся, возможно, следует писать 0 для зажигания(Это зависит от того где он сидит - на минусе или плюсе).
97 347275
>>347268
Для начала выкинул бы строчку GPIOD->OTYPER &= ~(GPIO_OTYPER_OT0);
Заглянул в документацию (ни камня, ни название доски) что висит на выводе PD0 и чем зажигать светодиод (есть вариант что его надо нулем зажигать). Без схемы ловить нечего.
STM32F407ZET6devboard.jpg548 Кб, 1500x1000
98 347285
>>347274
>>347275
Доска на пике.
Использую свой внешний LED, хочу его через пин зыжечь, так что должно с любого пина работать, или я ошибаюсь? Собираю из под линукса с помощью arm-none-eabi-gcc, флешу через st-link v2. Флешится всё без проблем (по крайней мере так говорит мне программер). Говорит ли это о том, что я правильно компилирую? Может я там флагов каких-нибудь левых понапихал или еще чего...
99 347286
>>347285
Вот мэйкфайл вдогонку pastebin.com/HaR59pbT
100 347287
>>347285
Очевидно же, что если ты написал: "GPIOD->MODER |= GPIO_MODER_MODE0_0;" и так дальше всё, то у тебя светодиод будет зажигаться только от pd0.
led4.png3 Кб, 189x184
101 347288
>>347285
Попробуй перебить свой код на портА вывод 6 или 7. Обрати внимание - светодиоды зажигаются НУЛЕМ, те по идее сразу засветится после строчки "GPIOA->MODER |= GPIO_MODER_MODE6_0;".
Кейл говорит код компилится в такой набор инструкций. По ним можно примерно сравнить компилируемость кода.
;;;3 int main(void)
000000 4813 LDR r0,|L1.80|
;;;4 {
;;;5
;;;6 RCC->AHB1ENR |= RCC_AHB1ENR_GPIODEN;
000002 6800 LDR r0,[r0,#0]
000004 f0400008 ORR r0,r0,#8
000008 4911 LDR r1,|L1.80|
00000a 6008 STR r0,[r1,#0]
;;;7 GPIOD->MODER |= GPIO_MODER_MODE0_0;
00000c 4811 LDR r0,|L1.84|
00000e 6800 LDR r0,[r0,#0]
000010 f0400001 ORR r0,r0,#1
000014 490f LDR r1,|L1.84|
000016 6008 STR r0,[r1,#0]
;;;8 GPIOD->OSPEEDR |= (GPIO_OSPEEDR_OSPEED0);
000018 480e LDR r0,|L1.84|
00001a 3008 ADDS r0,r0,#8
00001c 6800 LDR r0,[r0,#0]
00001e f0400003 ORR r0,r0,#3
000022 490c LDR r1,|L1.84|
000024 3108 ADDS r1,r1,#8
000026 6008 STR r0,[r1,#0]
;;;9 GPIOD->OTYPER &= ~(GPIO_OTYPER_OT0);
000028 1f08 SUBS r0,r1,#4
00002a 6800 LDR r0,[r0,#0]
00002c f0200001 BIC r0,r0,#1
000030 1f09 SUBS r1,r1,#4
000032 6008 STR r0,[r1,#0]
;;;10 GPIOD->PUPDR &= ~(GPIO_PUPDR_PUPD0);
000034 4807 LDR r0,|L1.84|
000036 300c ADDS r0,r0,#0xc
000038 6800 LDR r0,[r0,#0]
00003a f0200003 BIC r0,r0,#3
00003e 4905 LDR r1,|L1.84|
000040 310c ADDS r1,r1,#0xc
000042 6008 STR r0,[r1,#0]
;;;11
;;;12 GPIOD->ODR = 1;
000044 2001 MOVS r0,#1
000046 4903 LDR r1,|L1.84|
000048 3114 ADDS r1,r1,#0x14
00004a 6008 STR r0,[r1,#0]
;;;13 while (1) {
00004c bf00 NOP
|L1.78|
00004e e7fe B |L1.78|
;;;14
;;;15 }
;;;16 }
ENDP
led4.png3 Кб, 189x184
101 347288
>>347285
Попробуй перебить свой код на портА вывод 6 или 7. Обрати внимание - светодиоды зажигаются НУЛЕМ, те по идее сразу засветится после строчки "GPIOA->MODER |= GPIO_MODER_MODE6_0;".
Кейл говорит код компилится в такой набор инструкций. По ним можно примерно сравнить компилируемость кода.
;;;3 int main(void)
000000 4813 LDR r0,|L1.80|
;;;4 {
;;;5
;;;6 RCC->AHB1ENR |= RCC_AHB1ENR_GPIODEN;
000002 6800 LDR r0,[r0,#0]
000004 f0400008 ORR r0,r0,#8
000008 4911 LDR r1,|L1.80|
00000a 6008 STR r0,[r1,#0]
;;;7 GPIOD->MODER |= GPIO_MODER_MODE0_0;
00000c 4811 LDR r0,|L1.84|
00000e 6800 LDR r0,[r0,#0]
000010 f0400001 ORR r0,r0,#1
000014 490f LDR r1,|L1.84|
000016 6008 STR r0,[r1,#0]
;;;8 GPIOD->OSPEEDR |= (GPIO_OSPEEDR_OSPEED0);
000018 480e LDR r0,|L1.84|
00001a 3008 ADDS r0,r0,#8
00001c 6800 LDR r0,[r0,#0]
00001e f0400003 ORR r0,r0,#3
000022 490c LDR r1,|L1.84|
000024 3108 ADDS r1,r1,#8
000026 6008 STR r0,[r1,#0]
;;;9 GPIOD->OTYPER &= ~(GPIO_OTYPER_OT0);
000028 1f08 SUBS r0,r1,#4
00002a 6800 LDR r0,[r0,#0]
00002c f0200001 BIC r0,r0,#1
000030 1f09 SUBS r1,r1,#4
000032 6008 STR r0,[r1,#0]
;;;10 GPIOD->PUPDR &= ~(GPIO_PUPDR_PUPD0);
000034 4807 LDR r0,|L1.84|
000036 300c ADDS r0,r0,#0xc
000038 6800 LDR r0,[r0,#0]
00003a f0200003 BIC r0,r0,#3
00003e 4905 LDR r1,|L1.84|
000040 310c ADDS r1,r1,#0xc
000042 6008 STR r0,[r1,#0]
;;;11
;;;12 GPIOD->ODR = 1;
000044 2001 MOVS r0,#1
000046 4903 LDR r1,|L1.84|
000048 3114 ADDS r1,r1,#0x14
00004a 6008 STR r0,[r1,#0]
;;;13 while (1) {
00004c bf00 NOP
|L1.78|
00004e e7fe B |L1.78|
;;;14
;;;15 }
;;;16 }
ENDP
102 347289
>>347288
Безрезультатно. Есть предположение, что борда поломаная.
103 347293
>>347289
Попробуй залить этот кекс (светодиод PA6 на плате). Его исходник (включая стартап код):
#include <stm32f407xx.h>
int main(void)
{
RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN;
GPIOA->MODER |= GPIO_MODER_MODE6_0;
GPIOA->OSPEEDR |= (GPIO_OSPEEDR_OSPEED6);
GPIOA->ODR = 0x0000;
while (1) {
}
}
(в состоянии же скопипастить текст ниже в файл и прошить его?)
:020000040800F2
:10000000600600200D020008150200081702000813
:10001000190200081B0200081D0200080000000071
:100020000000000000000000000000001F020008A7
:100030002102000800000000230200082502000839
:1000400027020008270200082702000827020008EC
:1000500027020008270200082702000827020008DC
:1000600027020008270200082702000827020008CC
:1000700027020008270200082702000827020008BC
:1000800027020008270200082702000827020008AC
:10009000270200082702000827020008270200089C
:1000A000270200082702000827020008270200088C
:1000B000270200082702000827020008270200087C
:1000C000270200082702000827020008270200086C
:1000D000270200082702000827020008270200085C
:1000E000270200082702000827020008270200084C
:1000F000270200082702000827020008270200083C
:10010000270200082702000827020008270200082B
:10011000270200082702000827020008270200081B
:10012000270200082702000827020008270200080B
:1001300027020008270200082702000827020008FB
:1001400027020008270200082702000827020008EB
:1001500027020008270200082702000827020008DB
:1001600027020008270200082702000827020008CB
:1001700027020008270200082702000800000000EC
:10018000270200082702000800F002F800F02EF80D
:100190000AA090E8000C82448344AAF10107DA45E2
:1001A00001D100F023F8AFF2090EBAE80F0013F006
:1001B000010F18BFFB1A43F001031847B0010000FC
:1001C000C00100000023002400250026103A28BFAB
:1001D00078C1FBD8520728BF30C148BF0B607047B9
:1001E0001FB500F0BDF81FBD10B510BD00F031F80F
:1001F0001146FFF7F5FF00F099F800F04FF803B44F
:10020000FFF7F2FF03BC00F057F8000009488047F1
:1002100009480047FEE7FEE7FEE7FEE7FEE7FEE7E8
:10022000FEE7FEE7FEE7FEE704480549054A064B00
:1002300070470000C9020008890100086000002022
:1002400060060020600200206002002070477047B6
:100250007047754600F02CF8AE46050069465346D7
:1002600020F00700854618B020B5FFF7DDFFBDE898
:1002700020404FF000064FF000074FF000084FF00D
:10028000000B21F00701AC46ACE8C009ACE8C0099E
:10029000ACE8C009ACE8C0098D46704710B504460B
:1002A000AFF300802046BDE81040FFF7A8BF000074
:1002B000004870470000002001491820ABBEFEE74F
:1002C00026000200704700001448006840F47000E7
:1002D000124908601248006840F0010010490860A7
:1002E00000200F49083108600D4800680D4908409A
:1002F0000B4908600C48091D0860081F006820F4BD
:100300008020091F0860002005490C3108604FF06B
:1003100000600249803908607047000088ED00E005
:1003200000380240FFFFF6FE103000240A48006843
:1003300040F00100084908600848006840F4805017
:10034000064908600846806840F4405088600020F4
:10035000486100BFFEE70000303802400000024064
:100360004FF04070E1EE100A704700007C03000877
:0C0370000000002060060000C40100082E
:040000050800018965
:00000001FF
103 347293
>>347289
Попробуй залить этот кекс (светодиод PA6 на плате). Его исходник (включая стартап код):
#include <stm32f407xx.h>
int main(void)
{
RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN;
GPIOA->MODER |= GPIO_MODER_MODE6_0;
GPIOA->OSPEEDR |= (GPIO_OSPEEDR_OSPEED6);
GPIOA->ODR = 0x0000;
while (1) {
}
}
(в состоянии же скопипастить текст ниже в файл и прошить его?)
:020000040800F2
:10000000600600200D020008150200081702000813
:10001000190200081B0200081D0200080000000071
:100020000000000000000000000000001F020008A7
:100030002102000800000000230200082502000839
:1000400027020008270200082702000827020008EC
:1000500027020008270200082702000827020008DC
:1000600027020008270200082702000827020008CC
:1000700027020008270200082702000827020008BC
:1000800027020008270200082702000827020008AC
:10009000270200082702000827020008270200089C
:1000A000270200082702000827020008270200088C
:1000B000270200082702000827020008270200087C
:1000C000270200082702000827020008270200086C
:1000D000270200082702000827020008270200085C
:1000E000270200082702000827020008270200084C
:1000F000270200082702000827020008270200083C
:10010000270200082702000827020008270200082B
:10011000270200082702000827020008270200081B
:10012000270200082702000827020008270200080B
:1001300027020008270200082702000827020008FB
:1001400027020008270200082702000827020008EB
:1001500027020008270200082702000827020008DB
:1001600027020008270200082702000827020008CB
:1001700027020008270200082702000800000000EC
:10018000270200082702000800F002F800F02EF80D
:100190000AA090E8000C82448344AAF10107DA45E2
:1001A00001D100F023F8AFF2090EBAE80F0013F006
:1001B000010F18BFFB1A43F001031847B0010000FC
:1001C000C00100000023002400250026103A28BFAB
:1001D00078C1FBD8520728BF30C148BF0B607047B9
:1001E0001FB500F0BDF81FBD10B510BD00F031F80F
:1001F0001146FFF7F5FF00F099F800F04FF803B44F
:10020000FFF7F2FF03BC00F057F8000009488047F1
:1002100009480047FEE7FEE7FEE7FEE7FEE7FEE7E8
:10022000FEE7FEE7FEE7FEE704480549054A064B00
:1002300070470000C9020008890100086000002022
:1002400060060020600200206002002070477047B6
:100250007047754600F02CF8AE46050069465346D7
:1002600020F00700854618B020B5FFF7DDFFBDE898
:1002700020404FF000064FF000074FF000084FF00D
:10028000000B21F00701AC46ACE8C009ACE8C0099E
:10029000ACE8C009ACE8C0098D46704710B504460B
:1002A000AFF300802046BDE81040FFF7A8BF000074
:1002B000004870470000002001491820ABBEFEE74F
:1002C00026000200704700001448006840F47000E7
:1002D000124908601248006840F0010010490860A7
:1002E00000200F49083108600D4800680D4908409A
:1002F0000B4908600C48091D0860081F006820F4BD
:100300008020091F0860002005490C3108604FF06B
:1003100000600249803908607047000088ED00E005
:1003200000380240FFFFF6FE103000240A48006843
:1003300040F00100084908600848006840F4805017
:10034000064908600846806840F4405088600020F4
:10035000486100BFFEE70000303802400000024064
:100360004FF04070E1EE100A704700007C03000877
:0C0370000000002060060000C40100082E
:040000050800018965
:00000001FF
123.png9 Кб, 322x159
104 347295
>>347293
Та плата, что на прошлом моём пике, оказалась чуть другой. Нашел схему своей. Можешь для PF9 хекс запилить, пожалуйста? Прошил своим - опять ноль эмоций.
105 347296
>>347295
RCC->AHB1ENR |= RCC_AHB1ENR_GPIOFEN;
GPIOF->MODER |= GPIO_MODER_MODE9_0;
GPIOF->OSPEEDR |= (GPIO_OSPEEDR_OSPEED9);
GPIOF->ODR = 0x0000;

:020000040800F2
:10000000600600200D020008150200081702000813
:10001000190200081B0200081D0200080000000071
:100020000000000000000000000000001F020008A7
:100030002102000800000000230200082502000839
:1000400027020008270200082702000827020008EC
:1000500027020008270200082702000827020008DC
:1000600027020008270200082702000827020008CC
:1000700027020008270200082702000827020008BC
:1000800027020008270200082702000827020008AC
:10009000270200082702000827020008270200089C
:1000A000270200082702000827020008270200088C
:1000B000270200082702000827020008270200087C
:1000C000270200082702000827020008270200086C
:1000D000270200082702000827020008270200085C
:1000E000270200082702000827020008270200084C
:1000F000270200082702000827020008270200083C
:10010000270200082702000827020008270200082B
:10011000270200082702000827020008270200081B
:10012000270200082702000827020008270200080B
:1001300027020008270200082702000827020008FB
:1001400027020008270200082702000827020008EB
:1001500027020008270200082702000827020008DB
:1001600027020008270200082702000827020008CB
:1001700027020008270200082702000800000000EC
:10018000270200082702000800F002F800F02EF80D
:100190000AA090E8000C82448344AAF10107DA45E2
:1001A00001D100F023F8AFF2090EBAE80F0013F006
:1001B000010F18BFFB1A43F001031847B8010000F4
:1001C000C80100000023002400250026103A28BFA3
:1001D00078C1FBD8520728BF30C148BF0B607047B9
:1001E0001FB500F0C1F81FBD10B510BD00F031F80B
:1001F0001146FFF7F5FF00F099F800F04FF803B44F
:10020000FFF7F2FF03BC00F057F8000009488047F1
:1002100009480047FEE7FEE7FEE7FEE7FEE7FEE7E8
:10022000FEE7FEE7FEE7FEE704480549054A064B00
:1002300070470000C9020008890100086000002022
:1002400060060020600200206002002070477047B6
:100250007047754600F02CF8AE46050069465346D7
:1002600020F00700854618B020B5FFF7DDFFBDE898
:1002700020404FF000064FF000074FF000084FF00D
:10028000000B21F00701AC46ACE8C009ACE8C0099E
:10029000ACE8C009ACE8C0098D46704710B504460B
:1002A000AFF300802046BDE81040FFF7A8BF000074
:1002B000004870470000002001491820ABBEFEE74F
:1002C00026000200704700001448006840F47000E7
:1002D000124908601248006840F0010010490860A7
:1002E00000200F49083108600D4800680D4908409A
:1002F0000B4908600C48091D0860081F006820F4BD
:100300008020091F0860002005490C3108604FF06B
:1003100000600249803908607047000088ED00E005
:1003200000380240FFFFF6FE103000240C48006841
:1003300040F020000A4908600A48006840F4802024
:100340000849086007480830006840F44020054923
:1003500008310860002003491431086000BFFEE73F
:1003600030380240001402404FF04070E1EE100AB5
:1003700070470000840300080000002060060000B1
:04038000C4010008AC
:040000050800018965
:00000001FF
105 347296
>>347295
RCC->AHB1ENR |= RCC_AHB1ENR_GPIOFEN;
GPIOF->MODER |= GPIO_MODER_MODE9_0;
GPIOF->OSPEEDR |= (GPIO_OSPEEDR_OSPEED9);
GPIOF->ODR = 0x0000;

:020000040800F2
:10000000600600200D020008150200081702000813
:10001000190200081B0200081D0200080000000071
:100020000000000000000000000000001F020008A7
:100030002102000800000000230200082502000839
:1000400027020008270200082702000827020008EC
:1000500027020008270200082702000827020008DC
:1000600027020008270200082702000827020008CC
:1000700027020008270200082702000827020008BC
:1000800027020008270200082702000827020008AC
:10009000270200082702000827020008270200089C
:1000A000270200082702000827020008270200088C
:1000B000270200082702000827020008270200087C
:1000C000270200082702000827020008270200086C
:1000D000270200082702000827020008270200085C
:1000E000270200082702000827020008270200084C
:1000F000270200082702000827020008270200083C
:10010000270200082702000827020008270200082B
:10011000270200082702000827020008270200081B
:10012000270200082702000827020008270200080B
:1001300027020008270200082702000827020008FB
:1001400027020008270200082702000827020008EB
:1001500027020008270200082702000827020008DB
:1001600027020008270200082702000827020008CB
:1001700027020008270200082702000800000000EC
:10018000270200082702000800F002F800F02EF80D
:100190000AA090E8000C82448344AAF10107DA45E2
:1001A00001D100F023F8AFF2090EBAE80F0013F006
:1001B000010F18BFFB1A43F001031847B8010000F4
:1001C000C80100000023002400250026103A28BFA3
:1001D00078C1FBD8520728BF30C148BF0B607047B9
:1001E0001FB500F0C1F81FBD10B510BD00F031F80B
:1001F0001146FFF7F5FF00F099F800F04FF803B44F
:10020000FFF7F2FF03BC00F057F8000009488047F1
:1002100009480047FEE7FEE7FEE7FEE7FEE7FEE7E8
:10022000FEE7FEE7FEE7FEE704480549054A064B00
:1002300070470000C9020008890100086000002022
:1002400060060020600200206002002070477047B6
:100250007047754600F02CF8AE46050069465346D7
:1002600020F00700854618B020B5FFF7DDFFBDE898
:1002700020404FF000064FF000074FF000084FF00D
:10028000000B21F00701AC46ACE8C009ACE8C0099E
:10029000ACE8C009ACE8C0098D46704710B504460B
:1002A000AFF300802046BDE81040FFF7A8BF000074
:1002B000004870470000002001491820ABBEFEE74F
:1002C00026000200704700001448006840F47000E7
:1002D000124908601248006840F0010010490860A7
:1002E00000200F49083108600D4800680D4908409A
:1002F0000B4908600C48091D0860081F006820F4BD
:100300008020091F0860002005490C3108604FF06B
:1003100000600249803908607047000088ED00E005
:1003200000380240FFFFF6FE103000240C48006841
:1003300040F020000A4908600A48006840F4802024
:100340000849086007480830006840F44020054923
:1003500008310860002003491431086000BFFEE73F
:1003600030380240001402404FF04070E1EE100AB5
:1003700070470000840300080000002060060000B1
:04038000C4010008AC
:040000050800018965
:00000001FF
106 347297
>>347296
Спасибо тебе, анон, большое, но не работает. На сегодня брошу это дело.
f429.jpg1,6 Мб, 3264x2448
107 347299
>>347297
На 429 камне стартанул код. Здесь PG14 зажигается единицей. Пикрил горит красным и сеанс отладки за заднем фоне. Мне кажется как-то не так прошиваешь хекс или страницы памяти не чистишь. В самом дубовом варианте попробуй через uart прошить - кажется бут0=1 , бут1=0 и через какую-то утилиту от st можно по компорту заливать прошивку. Нужен преобразователь уровней, напрямую к компорту подключать нельзя. Нужен как минимум usb-uart ttl преобразователь.
108 347300
>>347296
Вы на каком-то неправильном наречии базарите с контроллером. Используйте HAL и не ебите себе моск
109 347302
>>347297
Есть один вариант на проверку..
"install: main.bin
st-flash write main.bin 0x8000000"
Обращаем внимание - тут бин файл указываем, а тебе кидался хекс. Использовал внешнюю программу чтобы из HEX получить BIN? Кажется в этом косяк. Так и гуглить hex2bin.exe - старая консольная программка и обратная ей bin2hex.
110 347303
>>347299
спасибо, буду курить
>>347302
st-flash хексы тоже кушает - https://github.com/texane/stlink/blob/master/doc/man/st-flash.md

Может ИДЕ какую-нибудь на линукс накатить? Посоветуете что-нибудь для этих целей?
111 347304
>>347302
а в хекс через всё тот же arm-none-eabi-objcopy, только с ihex вместо binary
112 347305
>>347303

> st-flash хексы тоже кушает


"Flash binary files to arbitrary sections of memory, or read arbitrary addresses of memory out to a binary file." - четко же написано что двоичные файлы кушает, а шестнадцатеричные - не файлы, а размеры и смещения.

Из лога компиляции
linking...
Program Size: Code=496 RO-data=408 RW-data=0 ZI-data=1632
FromELF: creating hex file...
На диске test.hex занимает 2600 байт, а не полкилобайта. Преобразуй HEX в BIN и еще раз попробуй.
113 347306
>>347303
Еще мелочь - (как минимум в Keil) - после заливки прошивки (flash->download) ничего не происходит до тех пор, пока руками камень не перезагрузишь. Те или ресет на нем нажать или по питанию передернуть. Ребут после заливки делал?
114 347318
Кста, раз уж тут про хэллоуворды спрашивают, я тоже спрошу. Есть ли разница в форме импульсов ШИМ при использовании таймера и простого ногодрыга? Реально ли на stm32f103c8t6 разогнаться на частоту, хотя бы 2-х мегагерц? В регистрах то максимальная скорость 50мгц проскакивает, но вот что она значит и не будут ли фронты завалены?
mco.png17 Кб, 602x253
115 347330
>>347318

> Есть ли разница в форме импульсов ШИМ при использовании таймера и простого ногодрыга?


Что GPIO, что Timer используют одинаковый тип выхода - Push-Pull. Разницы нет.

> не будут ли фронты завалены?


Зависит от емкости того, что подключено к выводу. Чем больше емкость, тем больше будут завалены и искажены. Как вариант можно взять только один вывод - MCO, на который выводить системную тактовую частоту. Настроек нет, доступен только меандр и с жестко заданной частотой.
1.png2 Кб, 287x76
116 347339
>>347306

>ничего не происходит до тех пор, пока руками камень не перезагрузишь.


http://www.keil.com/support/man/docs/ulink2/ulink2_su_download_functions.htm

>Reset and Run the application on target after the download and verification completed.


Но по умолчанию это действительно выключено.
Аноним 117 347361
>>339689

Привет, напиши мне в личку или на почту tyler.harper, есть тема.
Аноним 118 347362
>>347361

На эту почту tylerYib.harperANUSmarTVilPUNCTUMr:9au
119 347367
Лень гуглить@Спрошу анона
STM32F407. На какие пины можно выставлять прерывания? Если на все, то как сконфигурировать прерывания? У меня все кроме PA0 не дают повесить на себя прерывания в кьюбе.
120 347370
>>347367
По даташиту на (почти) любую ногу можно повесить. Единственное что есть аццкая подстава - нельзя получить более 16 внешних прерываний, тк прерывание от PA6 PB6 PC6.. Px6 - это условно одно и то же прерывание и слушается только один порт. Что бы получить все 16 прерываний - нужны разные выводы портов от 0 до 15, сам порт (A-H) не важен (те например PA9 PB4 PC0 PG5.. - уже 4 прерывания).
121 347376
>>347370
Забей на кукареканья шизиков-HALовцев, CMSIS и подобных - тебе нужны регистры:
SYSCFG_EXTICRх - задается какой порт слушается и какой вывод (всего 4 регистра, в каждом 4 линии - нужно указывать с какого порта слушать)
EXTI_IMR - разрешить прерывания с линии (0-15)
EXTI_RTSR - какие линии (0-15) должны вызывать прерывание по ВОСХОДЯЩЕМУ фронту (0->1)
EXTI_FTSR - какие линии (0-15) должны вызывать прерывание по НИСХОДЯЩЕМУ фронту (1->0)
EXTI_PR - записью 1 сбрасывать флаг сработки прерывания (из обработчика или из основного цикла, если просто смотришь - произошло прерывание или нет).

Регистрация/разрешения прерывания в NVIC NVIC_EnableIRQ(EXTI1_IRQHandler); - На первые 5 прерываний (0-4) индивидуальные обработки, далее сгруппированы по 5 штук EXTI9_5_IRQHandler и EXTI15_10_IRQHandler.
Глобальное разрешение прерываний __enable_irq();
Настойки GPIO не трогать, они должны оставаться входами (подтяжка по желанию).
122 347384
Нашёл в кубе как выставить прерывания на пины, тупанул изначально.
Мне нужно записывать сигнал, в тот момент когда он изменяется на пинах. Попробовал пока послать на него I2C, но почему-то либо вешается ардуино, с которой посылаю, либо просто прерывания не срабатывают.
>>347376
Вроде бы я и понял, что ты мне описал, а вроде бы и нет.
Как понять какая линия к какому входу подведет и чем это отличается от 16 линий, про которые сказал >>347370-анон?
Могу ли я назначить прерывания более чем на 16 пинов, и если могу, то при пересечении двух пинов с противоположными подтяжками/уровнями сигнала (лог. единица и ноль) на одной линии, что произойдёт?
123 347389
>>347384

> записывать сигнал, в тот момент когда он изменяется на пинах


Обоссанное крылатое школололо с пердуино треда?
Настаивай сработку прерывания по обоим фронтам. Хоть и большая частота у STM, можно соснуть ( https://habr.com/post/161617/ ). Вопрос интересный, может поищу можно ли как-то через DMA ловить.

> Назначить прерывания более чем на 16 пинов


Нет, тк регистры SYSCFG_EXTICRх не дадут - там только выбор порта (A-..H) для конкретной линии (0-15) прерывания. Невозможно назначить прерывание на одноциферные(? незнаю как сказать) выводы разных портов - те одновременно ловить прерывания по линиям например PD6 и PH6 или PA6 или PC6 - невозможно, будет слушаться только что-то одно.

> при пересечении двух пинов с противоположными подтяжками/уровнями сигнала


Читай выше - это невозможно. Прерывание будет приходить только с того порта, который указан в SYSCFG_EXTICRх, другой порт никак не будет влиять.

Задавай лучше односложные вопросы - на них проще отвечать.
Если брать пердуину (в частности AVR микроконтроллеры) - на древних версиях было всего 2(3) прерывания по уровню (INT0 INT1 INT2(асинхронное)) - 2 жестко выделенных вывода с настраиваемыми фронтами и 2 обработчика прерывания. На версиях посвежее появилась фича - pin change interrupt - оно НЕ настраиваемое по фронтам, только задается на изменение (любое 1->0 0->1) и какие биты порта, на все 8 бит порта один обработчик. В STM есть 5 "выделенных" обработчиков прерываний (0-4) и 2 групповых по 5 выводов, оказавшись в которых нужно смотреть по какой линии произошло прерывание (в отличие от 0-4, которые однозначно говорят по какой линии было прерывание).
Если прям хочется всю шину снифать - мне кажется нужно CPLD ставить на входе. Завести на нее шину, поставить конвейер из 2 D триггеров с компаратором, которым ловить изменения на входе и достаточно будет всего одного прерывания, которое будет оповещать об изменении любого бита на шине, а не 16 обработчиков прерываний на каждую линию. Если почти сразу 2 прерывания сработает - можешь соснуть, тк пока просрешся на первое есть шанс потерять данные из второго прерывания (см ссылку выше).
это один и тот же анон
123 347389
>>347384

> записывать сигнал, в тот момент когда он изменяется на пинах


Обоссанное крылатое школололо с пердуино треда?
Настаивай сработку прерывания по обоим фронтам. Хоть и большая частота у STM, можно соснуть ( https://habr.com/post/161617/ ). Вопрос интересный, может поищу можно ли как-то через DMA ловить.

> Назначить прерывания более чем на 16 пинов


Нет, тк регистры SYSCFG_EXTICRх не дадут - там только выбор порта (A-..H) для конкретной линии (0-15) прерывания. Невозможно назначить прерывание на одноциферные(? незнаю как сказать) выводы разных портов - те одновременно ловить прерывания по линиям например PD6 и PH6 или PA6 или PC6 - невозможно, будет слушаться только что-то одно.

> при пересечении двух пинов с противоположными подтяжками/уровнями сигнала


Читай выше - это невозможно. Прерывание будет приходить только с того порта, который указан в SYSCFG_EXTICRх, другой порт никак не будет влиять.

Задавай лучше односложные вопросы - на них проще отвечать.
Если брать пердуину (в частности AVR микроконтроллеры) - на древних версиях было всего 2(3) прерывания по уровню (INT0 INT1 INT2(асинхронное)) - 2 жестко выделенных вывода с настраиваемыми фронтами и 2 обработчика прерывания. На версиях посвежее появилась фича - pin change interrupt - оно НЕ настраиваемое по фронтам, только задается на изменение (любое 1->0 0->1) и какие биты порта, на все 8 бит порта один обработчик. В STM есть 5 "выделенных" обработчиков прерываний (0-4) и 2 групповых по 5 выводов, оказавшись в которых нужно смотреть по какой линии произошло прерывание (в отличие от 0-4, которые однозначно говорят по какой линии было прерывание).
Если прям хочется всю шину снифать - мне кажется нужно CPLD ставить на входе. Завести на нее шину, поставить конвейер из 2 D триггеров с компаратором, которым ловить изменения на входе и достаточно будет всего одного прерывания, которое будет оповещать об изменении любого бита на шине, а не 16 обработчиков прерываний на каждую линию. Если почти сразу 2 прерывания сработает - можешь соснуть, тк пока просрешся на первое есть шанс потерять данные из второго прерывания (см ссылку выше).
это один и тот же анон
124 347391
Нашлось что-то в виде AN4666 от ST.
AN4666 Application note Parallel synchronous transmission using GPIO and DMA
https://www.st.com/content/ccc/resource/technical/document/application_note/7a/88/df/e3/d3/36/40/29/DM00169730.pdf/files/DM00169730.pdf/jcr:content/translations/en.DM00169730.pdf

Ни ивенты, ни прерывания к DMA явно не привязать. Fail~.
Интересно послушать как собрались делать логический анализатор на STM32.
125 347396
>>347391

>как собрались делать логический анализатор на STM32.


https://habr.com/post/165853/
126 347412
>>347391

>Интересно послушать как собрались делать логический анализатор на STM32.


Помигали светодиодом и расходимся.
127 347439
>>347306
Анонче, спасибо тебе за твоё вчерашнее время. Прошивал без стартап файла. Даже не знал, что он нужен был. Вот уж не думал, что буду когда-нибудь еще буду так радоваться загоревшемуся леду. Пошёл читать даташиты.
128 347440
>>347439

>буду когда-нибудь еще буду


Ну вы поняли.
129 347445
>>347439

>Даже не знал, что он нужен был.


В таком случае тебе нужно читать не даташиты, а Джозефа Ю.
yiu.png259 Кб, 597x737
130 347447
>>347445

>Джозефа Ю


Пикрл подойдет?
131 347463
>>347389

>Обоссанное школололо с пердуино треда?


Да. Ну ты заебал, я ж не школоло

>Невозможно назначить прерывание на одноциферные выводы разных портов


Ок

>Если почти сразу 2 прерывания сработает - можешь соснуть, тк пока просрешся на первое есть шанс потерять данные из второго прерывания (см ссылку выше).


Если на разных пинах сработает прерывание, оно же просто встанет в очередь, не? На частоте 165mHz, или сколько там пиковая, прочитать с нескольких пинов значение и записать время - должен вписаться во временные рамки. Если только не все 16 пинов изменят состояние единоразово, но такие состояния я не встречу

>Задавай лучше односложные вопросы - на них проще отвечать.


Ок, логично.

Тогда простым вопросом уйду немножко в другую степь:
Как настроить USB? Есть готовые примеры с BULK передачей?
Те готовые примеры что есть, пока завести не смог.
eth.png249 Кб, 2795x1035
132 347493
> я ж не школоло
You make me sad

> на разных пинах сработает прерывание, оно же просто встанет в очередь


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

> Как настроить USB? Есть готовые примеры с BULK передачей?


С USB говном не работал и ебись оно конем разбираться в этих помоях и реализаций под каждую ось. Сам то хоть нашел СДК или либы через которые собрался принимать помои с USB шины?
Пикрил - немного погуглил и используя православный Ethernet сразу на 3 разных машинки лилось дерьмище броадкастом по UDP - Windows, FreeBSD, Linux - все приняли это. Дальше на том же питоне или сях import socket и вперед. По временнЫм меткам видно что срет примерно каждую миллисекунду (os.Delay(1)) как и задумывалось. Скорость сам прикинешь.
133 347502
>>347493

>ебись оно конем разбираться в этих помоях и реализаций под каждую ось


Libusb же, просто не разобрался как она работает и почему не могу с ней достучаться к STM.
Пока читаю этот https://damogranlabs.com/2018/02/stm32-usb-cdc/ гайд
134 347510
Вопрос короткий и по делу. Может кто сталкивался.

Либа LibUsb-1.0. На команду библиотеки libusb_open_device_with_vid_pid(ctx, USB_VENDOR_ID, USB_PRODUCT_ID);, STM с сгенерированным в кубе HID-кодом, отзывается как должна. STM с кодом же CDC-устройства сгенеренном там же, в кубе, с этим запросом не работает (возвращается Null). Так же, при этом, устройство определяется в системе как COM-6, но ни один терминал не с ним работает как говорится в примере из интернета, мы должны получать ответ в терминале, от сгенерированного кубом кода.
ucb.png69 Кб, 1569x565
135 347764
>>347510
Как мне кажется - всем по хуй. Троллинга ради попробовал создать проектик CDC. Ну и пиздец, осталась огромная куча вопросов по режиму отладки этого говна.
Запустил отладку. При самом первом прогоне кода до строчки 121 ничего не происходит(????). После первого прохода 121 строчки появляется компорт.
После появления компорта при попытке подключиться putty снова сосу - даже окно терминала не появляется пока еще раз не выполнится 121 строка (или криво тестил или в этот проход спам не шлется).
После третьего и последующего выполнения 121 строки уже шлется спам в терминал.
Определенно этот быдлокод поломал манямирок - U$B шина активна всегда, даже если ничего не передается летают какие-то пакеты опроса есть че? и при останове(?) выполнения кода соединение не рвется и компорт не пропадает.
При выходе из отладки/перезагрузке компорт пропадает, но putty не говорит что компорт недоступен (как при выдергивании FTDI или PL2303 и подобных) и при повторном прогоне кода в терминале тишина, ничего не шлется, а если закрыть терминал и заново открыть - говорит иди на хуй, не могу открыть, хотя он виден в диспетчере устройств.
Перезайдя в отладку - пропадет компорт и см начало поста. WTF?
136 347767
>>347764

>Перезайдя в отладку - пропадет компорт и см начало поста. WTF?


Потому что микроконтроллер перестает отвечать компу, а спецификация USB устанавливает определенное время на ответ.
137 347828
>>339005 (OP)
Гуры, расскажите как вы организуете расположение папок в проекте? Я уже заебался копировать примеры стм и корректировать их. Получается какая-то безумная ебала с папками библиотек и исходников. Как захуярить отдельно неизменяемое местоположение либ и прочих халов и облако/гит своего говнокода, чтобы его можно было быстро найти?
Screenshot20181202-010657Chrome~2.jpg45 Кб, 1080x1152
138 347916
>>347828
CMSIS, HAL_Driver, startup - стандартная хуйня
inc - хедеры
src - c/cpp-файлы
layout - kicad схема/плата
external - сабмодули на драйверы периферии
С cubemx дрочусь скриптом который переносит файлы вроде spi.c dma.c spi.h dma.c main.h
main.c не переношу, ибо меняется он никогда, а генерит кашу неподдержтюиваемую
139 347917
>>347916
Забыл дописать. Если нужна периферия, а готовой репы нет, то ты обязан сделать отдельный готовый репозиторий из ошметков интернета и запушить на гитхаб, таким образом ты сделаешь жизнь другим легче. Ну и кидаешь эту репу в сабмодули. Реюзабельность +, карма +++
140 347929
>>347917

>и запушить на гитхаб


Ты же понимаешь, что весь гитхаб будет ржать над моими потугами в кодинге?
141 347934
>>347929
Никто не будет ржать. Портировал код с Raspberry на PIC.
142 347968
>>347934
Удваиваю, все похуй. Пока твой говнокод выполняепт задачу, всем похуй.
143 348213
>>347929
Никто даже не воспользуется твоим кодом
144 348215
>>348213
Не пизди.
запилил репу, получил четыре звезды в течение года
145 348464
>>340304
А кому продаешь? В рашке или за бугор с ибея какого-нибудь?
15344409730020.png104 Кб, 645x729
146 348466
>>339005 (OP)
Приделал батарейку к своей STM32F429I-Discovery, теперь буду задрачивать все регистры RTC!
147 348468
>>348466
И сразу соснул с проглотом. Часы хоть и не сбрасываются при отключении питания, но таки останавливаются.
148 348495
>>348468
Держи в курсе. не сарказм
149 348506
>>348495
Насколько хватило моих знаний ангельского и мощности гуглопереводчика, понял, что для работы RTC от Vbat необходимо тактирование часов от LSE. В демонстрационной программульке от ST, дохуя завязано на тактирование от LSI и желания разбираться в дебрях их кода у меня нет. Сейчас засяду писать сам свои часы и попробую еще раз.
150 348508
А вот эти вот примеры, типа TouchGFX_Demo, студии пишут или йоба-программисты одиночки? Этож охуеть можно сколько кода надо написать. Он только канпилируется 7 минут.
151 348516
>>348508
Наверное это на С++ с использованием шаблонов написано, из-за этого вполне может компилироваться на порядок дольше чем аналогичный код на Си.
152 348566
>>347463
Как дела у школьника? Давно не видно и не слышно. Уроки учит? Или в крестики-нолики играет над дампом?
153 349270
>>348566
Дохуя всего параллельно, и мне немножко лень.
Пока пилю I2C повторитель. К стати, анонче, подскажите нормальный пример I2C-Slave на LL, а то я ничего найти не могу даже те примеры которые я нашёл на хале, какие-то укуренные и не прозрачные.

Но если совсем не лень, то не откажусь от след. инфы:
1. От чего (от каких действий на I2C шине) срабатывает I2C1_EV_IRQHandler?
1.1 Возможно ли где-то прочесть, какой адрес всплыл на шине? Просто флаг ADDR в I2C_SR1 настораживает.
2. Как определить/обнаружить STOP и START на линии? ACK/NACK?
3. Как отправить NACK/ACK на мастера/слейва в передаче/приеме?
3. Как прижать SCL к нулю?
Я понимаю, что ручной доступ есть не ко всем перечисленным вещам если мы говорим об аппаратном I2C, но мне пока не найти даже нормальный пример слейва на LL, так что сам не раскопаю даже то, к чему доступ получить явно можно.
P.S: про STOPF в I2C_SR2 знаю, но без понимания всего процесса и того, как что срабатывает (особенно эвенты), я делать выводов не берусь
154 349272
Даже нет, не так, подправлю:
В принципе то понятно, когда срабатывает эвент сейчас с позиции слейва: как настроишь - на приходе адреса, при заполнении буффера, при срабатывании BTF, при получении стопа.
Только не ясно, как понять, что на линии был старт. Или оно тогда и не надо, даже если это повторный старт? Просто в таком случае получим задержку в ~2 пакета. Хотелось бы конечно минимизировать, но если что - не смертельно.
А NACK/ACK я хочу ставить сам, тогда когда мне удобно.
i2c.jpg644 Кб, 3264x2448
155 349288
>>349270
Да вы батенька походу Reference Manual не открывали, или увидев овер 1К страниц открестился, закрыл и забыл как страшный сон.
Что у тебя за побрякушка как платка называется и что за камень (полное название)?
Мыльница говно. Открываю древний мануал Да, он бумажный, 4 страницы на листе. Как минимум его можно читать в сортире, делать пометки и пиздить им тех, до кого с первого раза не доходит.

> 1. От чего (от каких действий на I2C шине) срабатывает I2C1_EV_IRQHandler?


На странице 843 есть замечательная табличка, где видно как двумя битами включить и прерывания и события от блока I2C. Только вот незадача - два бита действуют глобально, те нельзя выбрать например автобус сломался и ошибка подтверждения.
Очень внимательно почитай раздел Inter-Integrated circuit interface - он короткий.
На первый взгляд только 2 адреса слейва себе можешь назначить. Остальное - через особо жесткие костыли. Возможно SPI+EXTI поможет ловить произвольные адреса.
Что меня напрягает в IIC - нет таймаутов и можно основательно повесить шину, которая отвисает только после ребута по питанию или руками давать STOP, но это не всегда корректно, так как некоторые слейвы очень привередливы и STOP например после 5 тактовых импульсов игнорируют.
156 349363
>>349288
У меня реф мануал немного отличается (RM0090 Rev 17), но суть та же. На эти страницы (IIC Functional Description) не обратил внимания, сейчас почитаю.
Железка STM32f407.

>Что меня напрягает в IIC - нет таймаутов и можно основательно повесить шину, которая отвисает только после ребута


Так то в том же референсе есть намёки на то что можно и без этого перезапустить шину. Как минимум я видел что настраиваются какие-то тайм-ауты, есть определение подвешенной линии и контроль недопустимых состояний на шине. А сбросить шину ты можешь и программно, но это не точно
157 349470
>>349270
Масштаб троллинга неуклонно растет и достиг опасных показателей.
Собрал из подручного хлама - F429 под эмулятор, мега328 - для первоначальной отладки шины, онанокомп с линуксой под тестилку ебать она медленная, особенно i2cdump - на каждый байт оно дает команду записи адреса и потом команду чтения, но похуй - нашел говнокод на си - он чуть быстрее работает , логический анализатор, пара микросхем памяти и... CPLD на 64 макроячейки - может получится из нее сделать костыль I2C->SPI. На STM32F4 SPI умеет или 8 или 16 бит. Интересно, это все говно взлетит?

>>349363
Через жопу читал и мануал и пост повыше. В классической IIC нет таймаутов вообще. Таймауты в SMBUS (в компе можно найти). Повисший контроллер IIC можно попытаться "перезагрузить" через отключение и включение, но выше писалось про СЛЕЙВА, который считает такты и только спустя 9 тактов поймет команду СТОП и отпустит шину и игнорирует сигнал СТОП в другие моменты времени. Где-то видел описание подобных случаев.
158 349475
>>349470
Я не могу понять, что ты снял анализатором. Что ты получить то хотел и чего добился?
image.png24 Кб, 1015x181
159 349485
>>349470
Посмотри проект если не сложо.
Сгенерировал в кьюбе инициализацию, при установке адреса слейва1 зависает SCL на земле (пикрил).
Если вернуть адрес в ноль, то всё нормально. Сравниваю с примером из интернета , вроде последовательность инициализации похожа, в функцию тоже всё приходит норм.
Это на f103.
https://yadi.sk/d/CDEei4OVxVj1DQ
shololo2.png89 Кб, 1677x794
160 349486
>>349475
Кое как подогнал смехоту. 5 макроячеек из 64.
Здесь за одно хорошо видно как тупит железка на линуксе и мне похуй. Это же proof of concept.
Как у меня ебануло.. Черную магию что ли еще раз почитать? CPLD настолько нежная, быстрая и суровая, что ловит отраженку с конца никуда не подключенного примерно 40 см шланга и считает ее за реальные импульсы/фронты. Временно отключил - уже нет аномалий. Если правильно понял вывод - оно легко прожует и не подавится от IIC с тактовой 50 МГц.
Смотреть на 7 и 5 анал, их "сумма"- 6 анал. Если включить мозги - догадаешься что это за костыль сбоку.
161 349488
>>349485
Точного камня не знаю, но серия F1 оставила тяжелые воспоминания.. Сам поищешь подобное, тем более что или здесь или в пердуино треде говорилось что F103 и IIC - крайне хреновая затея из-за аппаратных глюков. Поэтому ебитесь как хотите со своей F103.
edge.png27 Кб, 1659x379
162 349667
>>349475
Пока что переехал на циклон для обкатки. С учетом реального риалтайма есть бага, которую не пофиксить - возможна ошибка кадрирования не проверял еще. Поломали rarjpeg или нет?. Анал 5+6 - входные данные, анал 0+1 - "подогнанные" под формат SPI, которым в теории могу перехватывать с линии все, полностью игнорируя - мой не мой адрес.
Это аццки тупая штука, которая дает ответы на вопросы

> Как определить/обнаружить STOP и START на линии?


Смотри фронты 2 и 3 анала.

> ACK/NACK?


В 8 бит не впишешь и по идее на хуй не надо, но выводится в отдельную линию - 4 анал.

Это не к месту в данной железке-коверкалке I2C в SPI

>Как отправить NACK/ACK на мастера/слейва в передаче/приеме?


I2C_CR1
Bit 10ACK: Acknowledge enable
This bit is set and cleared by software and cleared by hardware when PE=0.
0: No acknowledge returned
1: Acknowledge returned after a byte is received (matched address or data)

> 3. Как прижать SCL к нулю?


Руками, сделав перенастойку порта с периферии AFxx на режим GPIO и выдать 1, прижав линию к земле.
Или снова заглянуть в I2C_CR1 Bit 7 NOSTRETCH: Clock stretching disable (Slave mode)
This bit is used to disable clock stretching in slave mode when ADDR or BTF flag is set, until
it is reset by software.
0: Clock stretching enabled
1: Clock stretching disabled
163 349701
Пагни, кто-нибудь заводил этот(1.8 TFT ST7735S SPI 160x128) дисплейчик на stm32?
Сначала заработал, подключил на следующий день, а у него только подсветка загорается и всё.
Как понять что не так. Провода прозванивал тестером, все в порядке.
shololo3.png39 Кб, 1591x340
164 349743
>>349475
Как оно меня заебало.. Какая-то странная фигня в виде глитчей, пропусков и прочей радости было когда подцеплен анализатором к одной из линий (scl или sda). Сделав из CPLD буфер-повторитель - как-то получше стало, минимум полдня просрал на шараду - одна и та же схема на FPGA работает, на CPLD - нет, зависимость от фазы луны не обнаружена, осциллографом с ходу ничего не нашел - поймать иголку(?) среди потока говна.
Жуткая асинхронщина в CPLD, выдает глитчи (под конец виден). Пока нет идей где или из чего синхру взять.
Анал 0+1 - исходные данные, анал 2+3 - закос под SPI, служебные сигналы (местами дублирующиеся) - аналы 4-6. Можно начинать дрючить STM32F429.
165 349751
Анончики, поясните за I2C в STM32F10x.
Что там за глюки страшные на практике?
Смогу я к нему подключить часики?
Там же вроде можно программно i2c, так?
166 349754
>>349701
Ты прошивку менял? Мб процедуру инициализации проебал?
167 349756
>>349701
Ты отключал его перед тем, как он перестал работать?
Пины точно не перепутал потом?
Я как-то ебался с JLX жк экраном 20 минут, выясняя, почему он сегодня ничего не показывает, а потом наконец заметил перепутанные SDA и SCK. Прототипы на ардуинах - они такие.
168 349768
>>349751
Школота не палится? Рандомно к одному из представителей каждой серии заходит и смотрел Errata.

> I2C analog filter may provide wrong value, locking BUSY flag and preventing master mode entry.


> This issue occurs randomly.


https://www.st.com/resource/en/errata_sheet/cd00288116.pdf
https://www.st.com/resource/en/errata_sheet/cd00197763.pdf
https://www.st.com/resource/en/errata_sheet/cd00190234.pdf
https://www.st.com/resource/en/errata_sheet/cd00197763.pdf
https://www.st.com/resource/en/errata_sheet/cd00238166.pdf

> This issue occurs randomly.


> occurs randomly.


> randomly.


Желаю побольше багов в отладке..
У Wiznet W7500 тоже есть бага с IIC - зажевывает одинаковые байты. Сам производитель рекомендует использовать программную реализацию IIC.
475.jpg76 Кб, 620x679
169 349810
>>349756
Мне удалось его запустить и потом не разбирая отложил всё в сторону. На следующий день он уже не запустился. С этих дисплейчиков можно считать какие-нибудь данные, чтобы понять что там с ним внутри происходит?
170 349811
>>349754

>Ты прошивку менял?


А ему можно менять прошивку? Я такого не встречал.
shkololo4.png159 Кб, 1914x1004
171 349831
Где школота? Уроки учит? Или референс мануал раскуривает? Как у него успехи?
Такой вот тупой быдлокод, пропитанный насквозь индусами и их стилем программирования подает признаки жизни.
Здесь нет никакого буфера захваченного спама, как захвачен байт через SPI- сразу шлем через VCP. То что что-то теряется - поебать. Оно уже подает признаки жизни, дальше тюнинг всего этого.
0x15 (0x2A) - это и есть сам слейв на STM42F429, который косит под память 24_02 (256 байт).
Походу ACK некорректно захватывается - идет задержка на цикл обмена. Делать сдвиг на 1 такт? Может и получится, надо только мозги для укрощения CPLD.
172 349850
>>349768
Да ты же сам капитанящий школодебил. Эррату я и сам могу посмотреть. Я хотел послушать реальные кулстори от анонов.
173 349864
>>349751
програмно это как?
174 349869
>>349864
http://we.easyelectronics.ru/khomin/i2c-programmnyy-stm32.html
Если кратко - сам в соответствии с протоколом выключаешь-выключаешь выходной транзистор (включая - получаешь 0 на линии, отключая - получаешь 1 на линии). Например для условия СТАРТ SCL должен быть отключен (те 1 на линии) и включить выходной транзистор на линии SDA - притянется к 0. Если же отпустишь SDA - будет СТОП. Потом включаешь выходной транзистор на линии SCL - она притягивается к 0. Все, сигнал СТАРТ выдан и шина условно захвачена. Выход типа Push-Pull нельзя использовать, только OpenDrain.

>>349850
Реальные кулстори только в гугле и тематических форумах типа electronix.ru . Школота - это ты, тк в еррате написано - может ёбнуть в любой момент. Может сразу, может через час, может через пару калобайт, может вообще не проявиться. Баг описан, известен и подтвержден производителем, пробуй. Никто не запрещает, но предупреждают что возможен BSDM. Сам запилишь кулстори как перекопипастил программный IIC. Впервые с ним столкнулся на F103ZC и DS2482-100
175 350047
>>349667
Братишка, ты отвечаешь на вопросы, но не на те, что я задаю.
Я спрашивал как это всё делать на встроенном I2C.
Ответ на определение стоп старта прост - запрограммировать логику. А на ACK/NAK так же в ручную не ответить.
Ты мне ответил как это делать с твоими девайсами.
Я спрашивал как прижимать SCL к нулю, в контексте действующего ресива/трансмита, ты мне ответил как вообще в принципе прижать. Ну ты понял.
Про флаги в CR я в курсе, но там не очевидно как этим пользоваться. Нужен пример из кьюба например, но охуительные ребята из STM не могут добавить примеры, которые конвертировались бы в их собственную IDE
176 350050
>>350047
Сейчас особо некогда пилить железку или быдлокодить - хотя на первый взгляд там мелочь осталась - кольцевой буфер вклеить. Fail. Пришла платка и могу 407 попробовать запустить и на работе иногда работать надо.
Задам вопрос проще - нарисуй сигналы на шине и явно отметь моменты когда хочешь делать гадости. Рисовать максимально подробно, что бы были видны каждый такт шины и фронты + свои камменты - какую гадость хочешь сделать в данный отмеченный момент. Если собрался делать гадости прямо посреди передачи байта - без адовых костылей ничего не выйден.
177 350056
>>350050
Я хотел решать, когда мне отвечать на ак/нак мастеру, беря это знание у слейва.
Полагаю, это считается прямо посреди передачи байта. Жеппа.
Самое тупое, что не могу до сих пор завести аппаратный I2C в Slave-режиме вообще. Ни на готовых Cube-примерах только что сообразил как их запустить в трустудио, ни просто написав код. Всё равно получается какая-то срака.
178 350060
top
179 350062
>>350056
Илья, залогинься.

> Я спрашивал как это всё делать на встроенном I2C.


> Ответ на определение стоп старта прост - запрограммировать логику.


Нет. Нет. Нет. Просто START и STOP на линии блоком IIC не поймаешь. Бит START устанавливается только если твой блок IIC, настроенный в режиме слейва (увидел старт) И (увидел свой адрес на шине), после чего битом ACK или говоришь что я тут или шлешь NACK мастера. Аналогично со СТОПом - только если твой слейв понял что с ним общение УЖЕ ведется, тогда он распознает сигнал СТОП на шине и установит бит STOPF и ТЕБЕ надо будет подтвердить стоп. Аналогично с растяжкой/остановкой обмена на тупняк - он и так есть "stretches SCL low" если сильно не менял настойки - пока тупишь, твой аппаратный блок IIC держит SCL в нуле, говоря - помедленней, я записываю, думаю и туплю.
Очень внимательно посмотри на картинки на 846-847 странице.

> А на ACK/NAK так же в ручную не ответить.


Жопой читаешь.. или не понимаю вопроса. Бит ACK.

> Ты мне ответил как это делать с твоими девайсами.


Снова жопой читал - они только ДЛЯ ЗАХВАТА. На обмен они не влияют, а то что в посте >>349831 виден в самом верху ответ 0x15 (0x2A) - это отвечает слейв на встроенном в STM32F429 IIC из блока I2C3 - видна независимая и одновременная работа захвата и слейва на одной железке.
По поводу внешних костылей - покажи как захватывать данные с IIC шины, ИГНОРИРУЯ адрес назначения? Можешь обоссать и сказать заведу в SPI - допустим. Только вот у тебя 9-ти битовые посылки, а SPI умеет 8 или 16 бит. Ну принял 8 бит, а дальше? Ушел в прерывание чтобы сбросить настойки модуля SPI и перезагрузить его для стирания огрызка из 1-го бита ? Ну изъебнулся, сделал. Как условия Старт-Стоп на шине ловить ? Прерывание на SDA вешать и при передаче 0x55 или 0xAA каждые 2(1) такта шины уходить в прерывания?

> Я спрашивал как прижимать SCL к нулю, в контексте действующего ресива/трансмита, ты мне ответил как вообще в принципе прижать.


Еще раз - бит ACK.

> Я хотел решать, когда мне отвечать на ак/нак мастеру, беря это знание у слейва.


Еще раз - бит ACK.

> Полагаю, это считается прямо посреди передачи байта.


Жеппа. Да, тк никто среди передачи байта такую хуйню не делает. Пробовал думать - можно таймером считать такты и после нужного такта через DMA записать в BSSR (не проверял) 1 чтобы прижать SCL к нулю, остановив обмен. Еще раз - ты ебанулся посреди (именно посреди, а не после) передачи байта обмен останавливать ? Прямая дорога повесить шину, введя в ступор настоящих аппаратных слейвов.

> Самое тупое, что не могу до сих пор завести аппаратный I2C в Slave-режиме вообще.


Тоже немного думал гадал что не так, ни ответа, ни привета. Перебор шин, настоек - мимо. Потом понял что туплю и... Ответ прост и повыше.

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

Прости меня грешного Может это попробуешь попилить https://habr.com/post/357918/ ? Как всегда все упрется в скорость, ты же не говоришь чем управляешь. Может ядерным реактором/андронный коллайдером где критичны задержки или время с часов читаешь. Может у тебя там бегущая строка и по хуй что буквы с интервалом в пару раз дольше будут обновляться.
Но и тут проблемка - будешь видеть трафик только до себя, пролетающий мимо спам не виден, а это условие есть в ТЗ...
179 350062
>>350056
Илья, залогинься.

> Я спрашивал как это всё делать на встроенном I2C.


> Ответ на определение стоп старта прост - запрограммировать логику.


Нет. Нет. Нет. Просто START и STOP на линии блоком IIC не поймаешь. Бит START устанавливается только если твой блок IIC, настроенный в режиме слейва (увидел старт) И (увидел свой адрес на шине), после чего битом ACK или говоришь что я тут или шлешь NACK мастера. Аналогично со СТОПом - только если твой слейв понял что с ним общение УЖЕ ведется, тогда он распознает сигнал СТОП на шине и установит бит STOPF и ТЕБЕ надо будет подтвердить стоп. Аналогично с растяжкой/остановкой обмена на тупняк - он и так есть "stretches SCL low" если сильно не менял настойки - пока тупишь, твой аппаратный блок IIC держит SCL в нуле, говоря - помедленней, я записываю, думаю и туплю.
Очень внимательно посмотри на картинки на 846-847 странице.

> А на ACK/NAK так же в ручную не ответить.


Жопой читаешь.. или не понимаю вопроса. Бит ACK.

> Ты мне ответил как это делать с твоими девайсами.


Снова жопой читал - они только ДЛЯ ЗАХВАТА. На обмен они не влияют, а то что в посте >>349831 виден в самом верху ответ 0x15 (0x2A) - это отвечает слейв на встроенном в STM32F429 IIC из блока I2C3 - видна независимая и одновременная работа захвата и слейва на одной железке.
По поводу внешних костылей - покажи как захватывать данные с IIC шины, ИГНОРИРУЯ адрес назначения? Можешь обоссать и сказать заведу в SPI - допустим. Только вот у тебя 9-ти битовые посылки, а SPI умеет 8 или 16 бит. Ну принял 8 бит, а дальше? Ушел в прерывание чтобы сбросить настойки модуля SPI и перезагрузить его для стирания огрызка из 1-го бита ? Ну изъебнулся, сделал. Как условия Старт-Стоп на шине ловить ? Прерывание на SDA вешать и при передаче 0x55 или 0xAA каждые 2(1) такта шины уходить в прерывания?

> Я спрашивал как прижимать SCL к нулю, в контексте действующего ресива/трансмита, ты мне ответил как вообще в принципе прижать.


Еще раз - бит ACK.

> Я хотел решать, когда мне отвечать на ак/нак мастеру, беря это знание у слейва.


Еще раз - бит ACK.

> Полагаю, это считается прямо посреди передачи байта.


Жеппа. Да, тк никто среди передачи байта такую хуйню не делает. Пробовал думать - можно таймером считать такты и после нужного такта через DMA записать в BSSR (не проверял) 1 чтобы прижать SCL к нулю, остановив обмен. Еще раз - ты ебанулся посреди (именно посреди, а не после) передачи байта обмен останавливать ? Прямая дорога повесить шину, введя в ступор настоящих аппаратных слейвов.

> Самое тупое, что не могу до сих пор завести аппаратный I2C в Slave-режиме вообще.


Тоже немного думал гадал что не так, ни ответа, ни привета. Перебор шин, настоек - мимо. Потом понял что туплю и... Ответ прост и повыше.

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

Прости меня грешного Может это попробуешь попилить https://habr.com/post/357918/ ? Как всегда все упрется в скорость, ты же не говоришь чем управляешь. Может ядерным реактором/андронный коллайдером где критичны задержки или время с часов читаешь. Может у тебя там бегущая строка и по хуй что буквы с интервалом в пару раз дольше будут обновляться.
Но и тут проблемка - будешь видеть трафик только до себя, пролетающий мимо спам не виден, а это условие есть в ТЗ...
180 350210
Посоны, вкатился недавновчера, СИ не знаю, инглиш не знаючитай долбоеб. Есть плата Nucleo на STM32F303RET6, пытаюсь пердануть символом в UART без использования кубов и библиотек периферии. Нахуячил простыню говнокода, само-собой, через отладчик работает, отдельно железка нет. Если выполнять программу пошагово, то данные в регистр TDR записываются, вроде как положено, но когда включаю плату и смотрю на выводах RX/TX saleae logic'ом, там нихуя нет. Сам говнокод, гляньте где обосралсяпо жизни:
https://pastebin.com/fZS79ui5
181 350212
>>350210

>NVIC_EnableIRQ(USART2_IRQn); // Пока прерывания не использую, но пусть будет


А в дефолтном обработчике прерывания бесконечный цикл. Придет на вход байт - все повиснет.

>SystemInit();


Эта функция вообще-то вызывается из startup-а, перед main-ом.

>void delay (uint32_t time){


>uint32_t i;


И эта задержка без volatile может сломаться в любой момент, особенно при включении оптимизации.

Ничего конкретно подсказать не могу, т.к. STM-ами не занимаюсь. Но ты попробуй вместо "зажечь светодиод просто так" не зажигать, а инвертировать, чтобы мигал, тогда будет видно зависло оно или нет.
182 350214
>>350212
Поправил цикл.
while(1) {
GPIOA->ODR = GPIO_ODR_5;
delay(300000);
if ((GPIOC->IDR & GPIO_IDR_13) == 0) {
delay(1000);//задержка в 1000 чего-то там
USART2_Send ('1');//отправить символ
}
}
Светодиод мигает. Ради эксперимента отправил на плату единицу через терминал, не зависла, продолжала мигать. Говорит ли это о том, что уарт вообще не запустился? Может я проебался где с настройкой. Но, NVIC_EnableIRQ все же закомментировал, на всякий случай. Почему же тогда в отладке, регистр TDR все же принимал значение?
183 350215
>>350210
Этот антон >>350212 прав

> >NVIC_EnableIRQ(USART2_IRQn); // Пока прерывания не использую, но пусть будет


> А в дефолтном обработчике прерывания бесконечный цикл. Придет на вход байт - все повиснет.


Дописал бы для вида затычку void USART2_IRQHandler(void) {unsigned short tmp; tmp = USART2->RDR;};
Это первый косяк - закомменти прерывание пока не раскуришь референс -> USART2->CR1 |= USART_CR1_RXNEIE;
Второй косяк - при BRR 0xEA6 скорость 2135 бод, при 0x3A8 - 8556 бод (по анализатору).
Третий косяк - "Подтяжка 13 ножки PС к Vcc" и "if ((GPIOC->IDR & GPIO_IDR_13) == 0)" - без подачи 0 или земли на PC13 не войдешь в цикл. Проверял на STM32F3-Discovery (STM32F303VC)
184 350216
>>350214
Поздравляю, у тебя походу хуита творится. Или быдлокод, или плата не але или еще что(сторожевого пса завел?)..
Светодиод мигать НЕ БУДЕТ.. ты постоянно пишешь одно и то же значение в порт. Как он зажегся, так и будет гореть.
Возможно вакаба съела символ исключающего ИЛИ - "^" - если он есть в этой строке "GPIOA->ODR = GPIO_ODR_5;" перед знаком присвоения, тогда да, будет мигать. у меня с частотой 3.33 Гц по анализатору.
Безымянный.jpg123 Кб, 972x467
185 350221
>>350215

>закомменти прерывание пока не раскуришь референс


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

>при BRR 0xEA6 скорость 2135 бод


Я считал по: USART_BRR = (fck + baudrate /2 ) / baudrate, где fck - частота шины APB1. В эту формулу я подставил 36мгц - максимальную частоту шины. Какая частота там в реальности, я не знаю, поскольку мк работает от внутренней цепочки, с дефолтными делителями. Думал заняться настройками, когда распаяю внешний кварц. Может тут и проеб.>>350215

>без подачи 0 или земли на PC13 не войдешь в цикл


На Nucleo пользовательская кнопка включена по схеме.
>>350216

>(сторожевого пса завел?)..


Он нужен мне на данном этапе? Если да, то объясни, интересно.

>Возможно вакаба съела символ исключающего ИЛИ


Yep.
186 350225
Анончики, какие подводные в разводке ЮСБ на плате для stm32f103? Нужно ли располагать контроллер как можно ближе к разъему, могут ли соседние компоненты давать наводки на подводящие дорожки д+ и д- и т.п.? Где можно почитать об этом? Гуглятся только статьи о работе с уже готовыми платами.
187 350244
>>350221

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


Давай с начала. Через что подключил UART к компу? К выводам 2,3,5 компорта? Через USB-UART преобразователь? Как соединял выводы ? RX-RX TX-TX или RX-TX TX-RX? Землю не забыл?
У ЮАРТа нет подтверждения доставки или получения.

> Я считал по:


Если 9600 поделить на 2135, то получишь 4.5, и поделив 36 на 4.5 получаем.. получаем.. 8МГц.. Прямо частота HSI. Вот это поворот. Намек понял? Попробуй BRR около 0x341 - должно быть около 9600 бод.
188 350247
>>350244

>Через что подключил UART к компу?


FT232RL, TX-RX RX-TX, земли объединялхотя и мк и USB-UART подключены к одному источнику.
Смотрел через Saleae, мк на уарт ничего не выдает.
BRR пересчитывал на 8мгц, да, там 0х341.
Сейчас на pastebin код с крайними правками. Не работает.
189 350261
>>350247
Может в инструкцию(схему) заглянешь ?
Через какую задницу подключился к PA2 и PA3? На пердуиновские выводы они НЕ подключены, а идут на отладчик.
Тебе повезло если выводы не попалил, что очень реально. Сам переведешь текст на скинах из документации? Код то у тебя рабочий, а вот в схеме куча ошибок.
190 350297
>>350261
Блять, кто бы мог подумать?! Действительно, на ст-линк вывели, а я к ST morpho подключал. Забавно, в бумажном буклетике, что с платой шел, об этом ничего не сказано. Работает. Спасибо за помощь всем кто отвечал. Как опять проблемы появятся, я сюда вернусь. Короче, всем спасибо, всем по пирожку!
191 350304
serdes.jpg565 Кб, 3116x2120
192 350317
>>350304
На первый взгляд - просто забить хуй. Даже в серийных железках народ не боится пускать "SerDes interface includes a 1.25 Gbaud data signal with a 625 MHz clock." через обычные штыри на 2.54мм и 2.0мм.
Если не сильно забивать - посмотреть хотя бы начало правой книги - волновое сопротивление и как оно зависит от ширины проводника, высоты подъема, расстояния между ними. Подобрать соотношения для импеданса 90 ом и спокойно спать.
193 350388
>>350317
Спасибо, анон.
Я и вижу, что все вроде не заморачиваются с разводкой юсб, но несколько раз сталкивался, что некоторые устройства не работают с кабелями, с которыми больше ни у чего нет проблем.
194 350416
>>350056
Школотрон, ты где? Запилил слейва?
Впилил кольцевой буфер. CDC давится потоком говна, пропуская 2 или 3 байта. Впилил адовый костыль-задержку, что не очень то хорошо, но выдает все говно без зажевывания байтов. По идее все. Концептуальная модель на 100 КГц завелась и подает признаки жизни. Нет, не все - можно прикола ради запилить правку памяти слейва через компорт.
Пикрил 1 (dump0) - слева виртуальный компорт, справа склейка из 3 окон терминала. Как видишь - захват работает и ему поебать к кому обращение идет. Пишет всех, все и вся, проебывая бит ACK (не занимался этим, поэтому "+" от фонаря стоит). Реальные слейвы IIC - 0x50, 0x57,0x41. Слейв на STM32F4 - 0x15, который косит под память 24__02 (256 байт), которая после старта забита нулями и командами i2cset заполняется вполне осмысленным текстом и читается обратно.
Пикрил 2 (dump1) - как выглядит внутри собранный дамп с шины (с багом и с отключенной отправкой в компорт здесь и на dump2) - 0100 - старт, С0хх - Адрес, 0300 - стоп.
Пикрил 3 (dump2) - первые 4 шорта - это команда записи в EEPROM по адресу 0х50 байта 0х50, оставшиеся - захваченный обмен с шины при чтении содержимого настоящего слейва (памяти) с адресом 0x50 блоками по 32 байта (особенность i2cdump c режимом "i" - i2c block data).
Тут дольше всего идет преобразование байтов + отправка по виртуальному порту. Захваченный поток говна можно и на самом STM пофильтровать между 0100 и 0300 (старт и стоп на шине) и слать только нужное для большего риалтайма или готовить больший буфер отправки и не по одному байту слать, а по несколько или вообще все что было между состояниями 0100 и 0200 (старт-повторный старт) и 0200(0100) - 0300 (повторный старт(старт)-стоп).
vlcsnap-2018-12-25-13h05m28s115.jpg163 Кб, 1280x738
195 351322
>>347463
Прошло 9 дней тишины. Школьник или познал дзен шкодинга или клал большой болт на затею-реализацию или его душа таки улетела на небеса... R.I.P. школота. Скучно без траллинга.
USB CDC как оказалось не совсем отборное, костыльное и вонючее дерьмецо или говнокод из кубика все хорошо скрывает.
196 351554
Нужно разработать USB устройство класса CDC на STM32 с помощью библиотеки SPL в среде Keil. Не могу найти примеры в инете, может у кого есть инфа по этой теме?
tenor.png174 Кб, 300x300
197 351556
>>351322

>SPL


>Keil



школьник ордуинщег, ищущий БИБЛИОТЕКУ, детектед
198 351561
>>351556
>>351554
Это больше похоже на курсовую работу в какой-нибудь шараге.
199 351563
>>351561

> Это больше похоже на курсовую работу в какой-нибудь шараге.


Так и есть, но я другой анон.
200 351764
>>351563
Pomogite
201 351776
>>351764
Смотри кубовские примеры, спл нахой выбросить вместо него взять лл. Спл списан в утиль истории, его замена как раз лл.
202 351786
>>351776
Я студень, задали спл
203 351788
>>351786
Возьми готовый пример с сайта ST. Если примера нет, то возьми код от какой-нибудь радиолюбительской поделки. Все, тут делать нечего.

>с помощью библиотеки SPL


Такая формулировка не запрещает дополнительно пользоваться еще какими-нибудь библиотеками. Можно взять весь код на LL или HAL и сбоку приделать что-нибудь на SPL.

>в среде Keil


Надеюсь ты понимаешь, что все компиляторы следуют стандарту и практически нет разницы каким компилятором пользоваться?
204 351793
>>351786
Вот погуглил немного за тебя. https://www.st.com/en/embedded-software/stsw-stm32046.html Когда-то сам на этом в институте делал, еще никаких кубов тогда не было.
Достаточно было в гугле задать период с 2000 по 2010 год, сайт st.com и тогда по "usb library" оно находится в первой строке. Там же готовый кейловский проект, тебе вообще ничего делать не нужно было.
205 351804
>>351786
Ленивый пидорас ты, а не студень. Мне преподы ни разу не отказали, если я приходил и говорил, что технология списана, давайте я возьму более новое решение.
206 351806
>>351804
Будто есть разница на чем учиться. Все равно, если он пойдет работать по специальности (что сомнительно), то не факт что будет касаться микроконтроллеров вообще. А даже если и будет, то не факт что STM32.
И если я правильно помню, то библиотека >>351793 не использует SPL, там только CMSIS. SPL там в примерах только для настройки портов, тактирования и прочего. В SPL, если я правильно помню, нет ничего связанного с USB.
207 351807
>>339005 (OP)
Есть хуйнюшка как на первом пике. К ней возможно ардуину цепануть? Дабы ебашить асинхронное устройство.
208 351826
>>351807

>К ней возможно


Да. Почитай даташит, может преобразователь уревней еще придется въебать.
209 351847
>>351776
Сразу CMSIS херли мелочиться
210 352114
>>349488
Я вот, кстати, уже не в первый раз встречаю нарекания на серию f1 и рассказы о том, что её особо не поддерживают. Какую серию тогда взять взамен, чтобы близко по фичам и производительности?
IMG20190108124456.jpg610 Кб, 2400x2332
211 352116
>>352114
Кто бы его знал. При взгляде со стороны F2=F4, особняком F373 - для любителей анальных утех с 16 битными сигма-дельта АЦП. Когда-то работал в связи реально днище - знать надо дохуя, получаешь нихуя и были попытки воссоздать клон Netagent CP504B (верхняя левая). У "конкурентов" (нижняя центральная) SNR ERD 3.2 - atmega644+enc28j60, более новая версия на stm32f407 https://nag.ru/user/notes/25598/kak-rojdayutsya-erd-pro-mini-fotki-.html . У нас же (только для внутренних нужд) - железки на stm32f107 (центральная вверху) и на Wiznet W7500P (это и cortex-m0 и phy в одной микросхемке). Умерло после первых тестов и ухода из той помойки.
Тупо шарясь по алиэкспрессу в происках плат с 2хCAN и 2xRS485 - нашлись только на stm32f407. Так вот и делался выбор - на чем can (до)изучать + в даташитах есть пара страничек про совместимость между сериями (как минимум F1-F2-F4) - где и что предусмотреть на плате для установки конкретной серии. Если надоели баги одной серии, можно заменить на другую.
Если не работаешь с аналогом и точными измерениями - бери любой, хоть F2, хоть F4.
ST-Link V2 212 352265
Я правильно понимаю, что отладка в TrueStudio должна работать через этот свисток? У меня почему-то студия его видет, даже предложила обновить прошивку, заливает мой говнокод в микроконтроллер, но не работает пошаговая отладка.
Так и должно быть с этим китайским клоном или я что-то не так делаю.
213 352268
>>352265
Такой набор и всё нормально, и на ф103 и на ф407. Дело скорее всего в прокладке между клавиатурой и монитором.
214 352270
>>352268
Судя по знакомым цифра обоссанная школота проснулась? Так и не завел своего i2c раба?
215 352271
>>352268

> Дело скорее всего в прокладке между клавиатурой и монитором.


И какое может быть дело?
Установил куб, TrueStudio, stm32 utility. Дровишки встали при установке студии.
При первом подключении студия обновила прошивку свистка.
stm32 utility также видит свисток.

stm32ldiscovery в которую встроен стлинк работает корректно.
216 352277
>>352271
Если обновился, значит китайским остался только bootloader. Сомневаюсь что bootloader может оказывать такой эффект, хотя все возможно. Схема тем более не будет так влиять, она по идее везде практически одинаковая, за исключением разъемов и согласования уровней.

Ну и лучше было брать J-Link.
217 352278
>>352277
С некоторыми ограничениями "штатный" st-link перешивается под j-link.
http://we.easyelectronics.ru/STM32/chudesnoe-prevraschenie-st-link-v-j-link.html
218 352287
Глубоко копаете, там скорее всего точка в коллбэке, в который не заходит, или их больше пяти, или ещё какая хуйня.
219 352782
Суп радиач, решил тут вкатиться в STM, будучи гуманитарием (да-да я вообще охуел).
Собственно взял Nucleo 303, пошел курить погромирование этого чуда. И тут я прихуел, везде всё равное, кто-то под HAL, кто под SPL, кто с регистрами напрямую работает. В ру-сегменте адекватных уроков/учебников нет.
Наткнулся тут на MBED, довольно интересно в плане, что не надо читать мануалы на 2к страниц чтобы помигать светодиодом (привет ардуине). Суть вопроса - есть какие-то ресурсы русскоязычные по MBED? По STM вообще ресурсов негусто, видимо специфика что МК скорее проф. уровня накладывает свое говно на вентилятор и никто не хочет делиться опытом разработок (которые скорее всего продают, в отличие от ардуиновских).
220 352791
>>352782
Задрачивай HAL и не обращай внимания на кукаретиков требующих вникания в букву даташита и кодинга регистров. Потом, когда отдуплишь, что к чему, переходи уже на LL
221 352794
>>352782
Ищи на ютубе канал narod stream, ставь кубик и truestudio и бахай на хале. После генерации кубом мигать диодом можно одной строчкой.
222 352796
>>352794
Вся фигня в том, что надо же сгенерить еще, а чтобы генерить надо все эти регистры, тактирование и прочее знать еще лучше чем в случае с ручным написанием.
hal2.png23 Кб, 478x609
223 352800
>>352791
Да, буду кукарекать - Reference Manual наше все. Те же сраные параметры функций настойки где брать будешь?
Взять тот же кусок инициализации RCC
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
RCC_OscInitStruct.HSEState = RCC_HSE_ON;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
RCC_OscInitStruct.PLL.PLLM = 4;
RCC_OscInitStruct.PLL.PLLN = 120;
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
RCC_OscInitStruct.PLL.PLLQ = 5;
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
или I2C
hi2c3.Instance = I2C3;
hi2c3.Init.ClockSpeed = 100000;
hi2c3.Init.DutyCycle = I2C_DUTYCYCLE_2;
hi2c3.Init.OwnAddress1 = 132;
hi2c3.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
hi2c3.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
hi2c3.Init.OwnAddress2 = 0;
hi2c3.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
hi2c3.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
Что за поеботина написана справа после знака равно? Где список всех значений смотреть? Список сочетаемых и непротиворечивых значений?
Или то же ссаное GPIO
GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_14;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
Здесь только с ходу видно что только 13 и 14 вывод настраивается. Остальное- неведомая хуита, которая смотрится с расшифровкой в том же RM. Думаешь совсем ньюфаг поймет что тут написано?
С простой периферией - ничего не знаю, CMSIS наше все, для USB и Ethernet - не выебывался, использовал то говно, которое дают в кубике.
Reference Manual однозначно надо читать. Просто тупо несколько раз прочитать раздел не особо вникая, хоть что-то да запомнишь что видел что-то похожее в описании регистров, а не гадать что это за поебень тут написана.
Школотрон - можешь подглядеть настойки IIC.

>>352796
Частично согласен. Знать периферию надо ВСЕГДА, а это чтение RM чуть чаще, чем постоянно.
Когда знаешь как все работаешь - тебе без разницы на чем писать - что HAL, что SPL, что CMSIS. На CMSIS может даже проще будет делать прямые обращения, чем искать тормозные библиотечные функции с кучей проверок, а всякая логика типа for; while; if живет сама по себе.
GPIOC->BSRR = GPIO_BRR_BR3; вывести в линию PC3 лог1
GPIOC->BSRR = GPIO_BSRR_BR8; вывести в линию PC8 лог0
Неужели это какие-то страшные заклинания?
hal2.png23 Кб, 478x609
223 352800
>>352791
Да, буду кукарекать - Reference Manual наше все. Те же сраные параметры функций настойки где брать будешь?
Взять тот же кусок инициализации RCC
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
RCC_OscInitStruct.HSEState = RCC_HSE_ON;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
RCC_OscInitStruct.PLL.PLLM = 4;
RCC_OscInitStruct.PLL.PLLN = 120;
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
RCC_OscInitStruct.PLL.PLLQ = 5;
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
или I2C
hi2c3.Instance = I2C3;
hi2c3.Init.ClockSpeed = 100000;
hi2c3.Init.DutyCycle = I2C_DUTYCYCLE_2;
hi2c3.Init.OwnAddress1 = 132;
hi2c3.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
hi2c3.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
hi2c3.Init.OwnAddress2 = 0;
hi2c3.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
hi2c3.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
Что за поеботина написана справа после знака равно? Где список всех значений смотреть? Список сочетаемых и непротиворечивых значений?
Или то же ссаное GPIO
GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_14;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
Здесь только с ходу видно что только 13 и 14 вывод настраивается. Остальное- неведомая хуита, которая смотрится с расшифровкой в том же RM. Думаешь совсем ньюфаг поймет что тут написано?
С простой периферией - ничего не знаю, CMSIS наше все, для USB и Ethernet - не выебывался, использовал то говно, которое дают в кубике.
Reference Manual однозначно надо читать. Просто тупо несколько раз прочитать раздел не особо вникая, хоть что-то да запомнишь что видел что-то похожее в описании регистров, а не гадать что это за поебень тут написана.
Школотрон - можешь подглядеть настойки IIC.

>>352796
Частично согласен. Знать периферию надо ВСЕГДА, а это чтение RM чуть чаще, чем постоянно.
Когда знаешь как все работаешь - тебе без разницы на чем писать - что HAL, что SPL, что CMSIS. На CMSIS может даже проще будет делать прямые обращения, чем искать тормозные библиотечные функции с кучей проверок, а всякая логика типа for; while; if живет сама по себе.
GPIOC->BSRR = GPIO_BRR_BR3; вывести в линию PC3 лог1
GPIOC->BSRR = GPIO_BSRR_BR8; вывести в линию PC8 лог0
Неужели это какие-то страшные заклинания?
224 352801
>>352796

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



Ясно.
225 352803
>>352800
За меня это говно пишет куб, и меняет он же. Прежде чем пиздеть, покажи свой код чтения-записи файлов с длинными именами в FAT на цмсис, папаша. Поговорим за хал после этого.
226 352804
>>352803
Лол, порвался. CMSIS - это управление периферией, а не логикой, которой является твой высер про FAT. Максимум что увидишь - это чтение/запись блоков на flash/sd карту, сама же логика работы FAT - независима и можно хоть на 8051 запустить.
227 352808
>>352801
Неуместное сравнение. Это ты скорее для ардуинки описал.
Тут ближе будет завести двигатель на самолете типа боинга 737
То есть проверить состояние аккумов, включить питание, подключить шину переменного тока, запустить топливные насосы (не один а дохуя, каждый отдельный тумблер), ВСУ, генератор ВСУ, воздухоподачу, etc...
228 352817
>>352808
Так-то никто не говорил, что использование хал освобождает от чтения рефмана, и особенно от доки о самом хале. Кубик просто генератор, но этот генератор сильно облегчает процесс создания инициализации. Я когда начинал, буквально за пару часов разобрался с кубом по ютубам, и впоследствии стал им пользоваться.

Все эти типы которые топят за цмсис в массе своей дальше мигания диодом не ушли, зато цмсисом помигали, ага. Без USB, Ethernet и SD-карты домашние проекты, за редким исключением - мертворождённое говно, и то с чем цмсис-пердолик будет ебаться неделями, на хале пишется за несколько дней. Однако строитель сарая будет смеяться над башенным краном, типа смотрите какие лохи, молотка не держали, ровно до тех пор, пока он строит сараи, потом же

>>352791

>для USB и Ethernet - не выебывался, использовал то говно, которое дают в кубике.



Вот и весь его боевой задор. Любители цмсис - лицемерные пидоры.
229 352839
>>352817

>Ethernet


Делал без всяких халов, только не на STM32. Ничего такого сложного в этом нет.

>SD-карты


Когда-то делал на ассемблере чтение и запись секторов. Не для практических целей конечно, а для тренировки и изучения. Тот анон все правильно пишет >>352804 Там по части взаимодействия с периферией микроконтроллера достаточно сделать только инициализацию, чтение и запись секторов карты, все остальное есть в FatFs и прочих. Это всего лишь несколько команд, ничего сложного.

Способ настройки периферии вообще не столь существенен, это ведь обычно совсем небольшая часть программы получается.
230 352848
>>352839
Именно. Претензии к хал начинаются когда открывается файл сгенерированный кубом, хотя хал и куб никак не связаны. В библиотечных файлах функции названы корректно, что называется самодокументируемо, сопровождены описанием и принимаемыми/возвращаемыми значениями, что куда лучше записей цмсис. Никто не запрещает для повышения быстродействия использовать в критических секциях цмсис или ассемблер, это необходимо для серийных устройств, но видимо цмсис юзеру кажется что это элитный клуб.

Tl;dr новичку и доморощенному эмбеду куб, хал и лл подойдут больше чем цмсис, профессионал в советах не нуждается.
231 352864
>>352848

>лл


Ты точно видел LL?
LL это набор функций, в основном только распихивающих поля из структур по регистрам в нужном порядке. Для использования LL или SPL нужно знать назначения битов в регистрах, точно так же, как для использования CMSIS. Преимущество LL только в том, что снижается вероятность ошибки.
Поэтому противопоставлять LL и CMSIS это как-то очень странно. Просто невозможно научиться использовать LL и при этом не научиться использовать CMSIS.

Более того, если использовать LL без HAL, то для управления SysTick, NVIC и MPU, по любому придется использовать функции из CMSIS.
232 352866
>>352864
Видел, даже i2c -> uart на 103 поднимал, в связке LL + RTOS, генерация полностью кубом, иде - трустудио. Цмсис проект был такой же, только без ртос и в вижуалгдб. Хал однозначно понравился больше, но для оптимизации программ и направления развития, лл после хал выглядит прекрасно.
233 352875
Какие профессиональные пути развития сейчас актуальны при работе с stm32?
Имеется в виду в ракурсе работы/карьеры
234 352887
>>352875
Впаривать девборды лошарам
currentlychargingdonotdisturbbyrockingscorpion-db30xpq.png972 Кб, 1000x700
235 353218
Пагни, я пытался прикрутить bluetooth HC-06. С USB uart он работает нормально в оба направления. А с СТМа bluetooth принимает, только если подключить логический анализатор к RX блютуса. Что за бред?
236 353256
>>339005 (OP)
Народ, а как вы организовываете свои проекты? Git обязательно использовать или легче копировать папки?
237 353264
>>353256
Лучше иметь какой нибудь контроль версий. Геморроя меньше и в принципе как-то удобнее
sage 238 353290
>>353256
Конечно, используем.
1. Сохраняется прогресс.
2. Можно откатиться если понял что за день хуйню наделал.
3. Если не стыдно то можно подрочить лайки на гитгабе
239 353292
>>353264
>>353290
Ок. Спасибки за ответы. Буду изучать Git.
А насчет организации папок проекта, свою используете или STM-овскую Templates из архива с демонстрациями и примерами?
240 353295
>>353292
У git команды наркоманские, возьми лучше hg.
images-1.jpg2 Кб, 140x91
Карта памяти 241 353362
Есть готовые решения для работы с картами памяти micro SDHC по SPI?
Файловая система не нужна. Требуется чтение и запись блоков.

Что-то я туповат для реализации этого с нуля.
Инициализацию сделать получилось.
Но при записи блока размером 512 байт, все значения 0хАА и последующем чтении этого блока, получаю какую-то херню.
Идут 7 байт как положено 0хАА, а восьмой мусор, дальше все повторяется до конца считанного блока.
242 353363
>>353362
Смотри примеры в файлах куба.
243 353364
>>353218
Поставил подтяжку к + и все заработало. Странно.
WP20190118114115Pro.jpg1,8 Мб, 3264x1840
244 353365
Заебенил пучок хуевин для изучения погроммирования своей дискавери. Пятый год валяется, а я только сподобился залить в нее демо от TouchGFX и поморгать светодиодом. В этом году думаю таки немного подучить клятый Си и одолеть 1-Wire, энкодер, шим, датчик влажности и emWIN
245 353377
>>353363
А они там разве есть?
Там есть возможность подключить библиотеку для фат, но без реализации доступа к карте по spi или sdio ничего не будет работать
246 353378
>>353377
Тут например для F4. %USERPROFILE%\STM32Cube\Repository\STM32Cube_FW_F4_V1.23.0\Projects\STM32F4-Discovery\Applications\FatFs\FatFs_USBDisk
247 353381
>>353365

> своей дискавери.


Какой, что за контроллер?

> думаю таки немного подучить клятый Си


Зачем это тебе если плата пять лет валялась?
248 353383
>>353381

>что за контроллер?


429ZIT

>Зачем


Для общего развития. Может я на пенсии в кодеры-эмбеддеры хочу податься. Кек.
249 354554
Зачем удалять? Отписался в совершенно бесполезный /d/ Пост был вполне по тематике треда.
250 354555
>>354554
Да, с недавних пор тут модератор совершенно ебанутый и похоже в радиотехнике совершенно не разбирается.
Напиши вопрос еще раз, может не удалит (можешь еще в /d/ продублировать). Для ЦОС кортексы не особо подходят, весьма вероятно что ты собрался делать ерунду.
251 354559
>>354555
Если не подходит, то что именно гуглить? Раньше тут писали что STM32 самое то для вката в DSP. Нужна простейшая железяка, в которую я бы смог грузить короткие импульсы в WAV, чтобы сделать кроссовер со своими настройками для АС.
252 354564
>>354559
Ну так-то ЦОС можно делать на абсолютно любом микроконтроллере, вопрос только в требуемом быстродействии.
Но я не понимаю твой вопрос.

>грузить короткие импульсы в WAV


Что это значит? Ты хочешь сделать КИХ фильтр, импульсную характеристику которого называешь "короткими импульсами"? Если так, то все зависит от частоты дискретизации и порядка фильтра.

>сделать кроссовер


Но зачем для этого ЦОС?
253 354566
>>354564
Чтобы вместе с кросовером можно было вхардкодить эквализацию, и всё это вбить в один короткий импульс. а точнее по импульсу на каждый из динамиков, в типичной стереосистеме этих динамиков 4 штуки. Частота дискретизации? Ну не знаю, по идее 96кгц хватило бы, лично мне по крайней мере точно.
Мне надо понять что именно гуглить для этого, я не очень въезжаю.
254 354567
>>354564
В любом случае кажись я понял куда копать, в сторону эмуляции гитарных кабинетов, там эта тема будет нормально раскрыта, т.к там в обязательном порядке в результате процесса звукозаписи формируется импульс для конволюции.
stm32cube-5.png109 Кб, 1016x900
255 354573
>>352794
Не слушай этого дебила. Ставь system workbench for stm32 и stm32cubemx. Последний генерирует код для первого, периферия тупо кнопками настраивается. В настройках генерации выбирай SW4STM32 IDE, генерируй, дальше уже код меняй, и дрочи HAL.
256 354580
>>354567
Можешь написать то же но на русском или на английском, а то ничего не понятно.

>один короткий импульс.


>импульс для конволюции


О чем ты вообще? Открой любой учебник по ЦОС - там не будет таких терминов.

>что именно гуглить для этого, я не очень въезжаю.


Естественно, для начала терминологию изучи.

>в сторону эмуляции гитарных кабинетов


Можешь сколько угодно копать, но от этого STM32 не станут лучше подходить для ЦОС.
257 354731
>>354573
Ты, видимо, промазал. Все так и делаю, только в тру студио, он новее и лучше чем воркбенч.
258 354732
>>354731
Дай ссылку, а? Хочется вкатиться, а создание первичного кода было год назад через задницу и ничего с пинка не работало.
259 354744
Используйте лучше CMake.
260 354767
>>354732
Открываешь две вкладки в браузере, в одной набираешь в гугле Atollic TrueStudio, в другой STM32CubeMX. Обучалка есть в ютубе на канале NordicEnergy.
261 354860
>>354767
Только на канале narod stream. Там с халом и нуклео, для вката самое то.
1541815009161725913.jpg117 Кб, 978x1304
262 354886
А кто-нибудь прикручивал Black Magic Probe к какой-нибудь IDE?
263 354898
>>354886
Это не нужно, есть J-Link.
А в чем проблема? Принцип тот же самый что при использовании OpenOCD или других GDB-серверов.
151773568718136317.jpg248 Кб, 1242x1209
264 354951
>>354886
Мне понадобился встроенный UART и я перепрошил свой ST-link в него. И внезапно осознал, что не знаю, как прикрутить это к Кейлу.
265 354961
>>354951
Наверное к кейлу по нормальному действительно сложно приделать сторонний программатор/отладчик.
С программированием проблем не должно быть, достаточно лишь использовать "Use External Tool for Flash Programming". http://www.keil.com/support/man/docs/uv4/uv4_fl_usingflashmenu.htm
А с отладкой наверное никак, кейл вроде как не умеет работать с gdb. Большинство IDE нормально работают с gdb, но тебя угораздило выбрать кейл.

>понадобился встроенный UART


Наверное ты и так знаешь, но на всякий случай напишу. Отладочную информацию можно выводить с простым ST-Link через SWO.
266 354970
>>354961

>Отладочную информацию можно выводить с простым ST-Link через SWO.


Там только в одном направлении, а я хочу как в ардуине, чтобы и туда послать можно было. Приходится подключать дополнительный UART-USB.

>Большинство IDE нормально работают с gdb


На какой-нибудь atollic truestudio это натягивается?
267 354976
Я сегодня узнал, что трустудио умеет в гит искаропки. Каждый день что-то новое, отлично просто.
Аноним 268 354980
>>354970
не знаю как в nucleo, сам регулярно юзаю discovery stm32f723, то у неё прокидан виртуальный ком порт через st-link (как архуины)
269 354985
>>354980

>nucleo


У меня 2 Blue Pill вставленные в бредборд. Одна из них в роли отладчика :з Покупать стшные платы жаба душит.
270 354996
>>354976

>трустудио умеет в гит искаропки


интересно. а куда тыкаться? :-)
271 354998
>>354970

>atollic truestudio


Это обыкновенный эклипс с плагинами. Как использовать этот отладчик с эклипсом вполне находится гуглом.
272 354999
>>354996
Гитом создаёшь локальный репозиторий, или клонируешь его в папку. Потом в эту папку генерируешь кубом проект трустудио, и открываешь. Если репо подцепился, то в трустудио рядом с названием в project explorer (список проектов слева) рядом с названием появится [твойгитрепо] и становятся доступны действия из пкм->Team. Хотя GitKraken по-прежнему удобнее, чем из трустудио.
273 355003
>>354999
>>354976
Только правильнее будет написать, что для эклипса есть плагин EGit, который по умолчанию установлен в этой студии. Этот плагин можно установить в любом поделии на эклипсе. Причем установка плагинов через marketplace аналогична установке дополнений в браузере - открыл каталог, ткнул в нужное и готово.
274 355004
>>354998

>Как использовать этот отладчик с эклипсом вполне находится гуглом


Ну если бы я нашел в гугле, я бы не полез сюда. Можно ссылочку. С меня большое спасибо.
Anime-Anime-Art-show-by-rock!!-cyan-2140994.png1,3 Мб, 1000x1245
276 355158
>>355018
Я уже был по этим ссылкам и ничего не понял. Но все равно спасибо, пойду раскуривать это дальше.
277 355168
>>355158

>ничего не понял.


Я тоже все это не идеально знаю, но попробую объяснить ничего не напутав. Хотя ты может и так это все знаешь.
GDB - это консольная программа со своими командами, которые можно выучить и отлаживать без IDE. Для отладки, IDE запускает GDB и передает туда команды, аналогично тому, как если бы это делал человек вручную. При использовании GDB-сервера вроде OpenOCD (ST-LINK GDB-server, J-Link GDB Server и прочие) сначала запускается GDB сервер, потом запускается сам GDB, в который передается адрес, порт сервера и elf-файл. При использовании Black Magic Probe вместо адреса сервера задается порт, естественно другой командой.

Соответственно IDE нужно настроить таким образом, чтобы оно не пыталось подключиться к серверу (через TCP) или не пыталось запустить как нативную программу. А все необходимые для подключения команды (порт, elf-файл) передавать либо через опцию командной строки "-ex" либо сохранить в отдельный файл как скрипт и передавать уже его.
Для начала, если ты этого еще не делал, я бы попробовал все эти команды ввести вручную, без IDE. Но лучше возьми J-Link и не пользуйся кривыми поделками.
278 355170
>>355168
GDB сервер там работает и даже програмируемый микроконтроллер видно. Осталось понять как заставить Трустудио подключаться к отладчику не по TCP, а через COM порт. В обычном эклипсе это есть, в Трустудио это куда-то упрятано.

>не пользуйся кривыми поделками


если не осилю просто перешью Блюпилл, который отдадчик, обратно в ST-link. Но хочется COM порт в отладчике, чтобы не подключать кучу лишних кабелей.
279 355171
>>355170
В чем тогда проблема использовать обычный эклипс?
Либо, если иначе никак, можно попробовать соорудить костыль - скрипт, который подменяет или переопределяет команды для GDB. Вроде как такое проще сделать на питоне посредством gdb-py.
Как-то так https://github.com/in4lio/mdr1986x-JFlash
280 355244
>>355171

>обычный эклипс


Лишний пердолинг с генерацией проекта в кубе. Хотя там не так и сложно.
281 355245
А VisualGDB на рто как раздавали, так и раздают. GDB да в вижуал студио 2017, ух бля. Куб генерит искаропки под него почти все. Не генерил у меня только связку LL+FreeRTOS, остальное норм.
282 355252
>>355245

>генерит искаропки под него


Уж лучше мейкфайлы использовать.
283 355260
T
284 355261
>>355252
Да сразу на асме бахай, нахер те этот высокоуровневый си.
285 355275
Сап радач, дело в том, что есть одна отладочная платка STM32F407Discovery, и вот такие видеоуроки
https://www.youtube.com/watch?v=VD8OaPyAEtI&index=11&list=PL8OgDYWys_b6XtOjCejd37aVv0ic24jqV
Если я освою все это, то мне этого хватит, чтобы найти работу инженером микропроцессорных систем, или нужно еще что-то? из МК знаю только MCS-51, и вот сейчас стм32 начал ковырять
286 355304
>>355245

> ух бля


black magic probe заработал в визуал студии с VisualGDB. Регистры видно, можно рулить светодиодом прямо из отладки. Аж обои от стен отклеиваются. Пойду удалять Эклипс.
287 355322
>>355275
Для начала хватит чтобы ваять программы, а остальное зависит от работодателя. Хотя в будущем придется изучать самостоятельно дальше и больше всякие фичи из даташита. Ну и сами уарты-хуярты с прочими интерфейсами читай. Он вроде не объясняет. А в работе нужно знать.
И учти что у него в первом видосе не полностью указывается как создать проект (он это объясняет где-то в 4ом видео или около того) и откуда качать библиотеки ищи в комментариях под нужным видео. Сайт обновился и инструкция в ролике немного не актуальная.
Добра тебе
Ps сам изучал по этим роликам и год с лишним пользуюсь кейлом +stdperiph
288 355323
>>355322
>>355275
А вообще если нужно для работы, то почитай hh и выдели что в требованиях пишут.
289 355326
>>355275

>найти работу инженером микропроцессорных систем


ЗАБУДЬ.Будешь сосать последнюю залупу по этому направлению.
Учи лучше Java, будешь получать чуть больше, чем дворник или сантехник из ЖЭК-а.
https://www.rbc.ru/newspaper/2016/07/05/577a08e19a794717070ba97b
"R&D в России — это дешево. Например, китайский software-инженер стоит $150 тыс. в год, это приближается к зарплатам в Калифорнии. Те, кто занимается computer science, — $200–250 тыс. в год. Наши инженеры стоят в разы дешевле."
290 355494
>>355326
>>355323
>>355322
Спасибо большое, радач торт лучей добра
291 356075
Здравствуйте. Такая проблема у меня. Есть один микроконтроллер. И есть SD-флешка. Подключаю её по SPI. Пока флешка была новая и чистая всё работало, флешка инициализировалась, файловая система монтировалась, файлы записанные на неё читались. После того как я очередной раз записал на неё парочку файлов, флешка внезапно перестала инициализироваться. Купил новую флешку, закинул на компьютере на неё файлы, вставил - всё опять прекрасно работает. До того момента когда я ещё раз не попытался записать на неё ещё на компьютере. После этого она аналогично перестала инициализироваться. Причём на компьютере обе карты без проблем читаются и пишутся.
На пиках мой код. Красным подчеркнул там где обнаруживается косяк - в этом месте возвращаемый переменной ans ответ функции transfer =-1, то есть нет ответа по линии MISO. Смотрел осциллографом - SCK, MOSI - всё ок, то есть команда отсылается, CS тоже вроде всё на месте. Дальше идут тактовые сигналы по SCK - а ответа нет, на MISO остаётся единица. Пробовал на разной скорости - и на 32МГц, и на 250кГц - ничего не меняется, причём новая флешка работала на любой. На MISO у меня включена подтяжка. Что я делаю не так?
292 356116
>>356075

>Что я делаю не так?


Форматируешь в компе?
293 356168
>>356116
Всё, уже разобрался. Вот, выделил то, что пофиксил. После этого всё заработало. Пробовал вообще выпиливать этот кусок - тоже работает, видимо это для каких-то совсем древних флешек предусматривают. Кстати, пробовал ещё втыкать простую флешку (не НС) на 2 Гб. Думал что будет определяться как тип 1, но нет. Определяется как тот же тип 2, только без блочной адресации (номер сектора при доступе нужно умножать на 512). Ещё у меня теперь инициализируется на частоте 250кГц, потом если ок, то переключается на 32МГц. Так, на всякий случай, хотя оно и на 32МГц инициализируется.
11.png152 Кб, 826x722
294 356169
>>356168
Пикча отклеилась.
295 356221
>>356169

>Пикча отклеилась.


Ой, блядь. Всё сразу стало понятно. После просмотра рандомного кода на первых двух и отклеившейся. Ты просто космос, Анон.
296 356222
>>356221
Для тех, кто подключал sd флешку вполне должно быть понятно, так как непосредственную работу с интерфейсом тут всегда нужно прописывать ручками. Так что не понимаю твоего подрыва, мог бы просто пройти мимо.
297 356263
Дороу, хочу вктатиться в ARM и смотрю на две платы: NUCLEO-F767ZI и NUCLEO-H743ZI. Разница -- 300 рубасов. Какую взять?
На бумаге H7 интереснее, а на практике?
298 356264
>>356263
H-серия не поддерживается многими сторонними штуками вроде micropython , mbed, embedded rust etc, или поддерживается на уровне "быстрый F7". Но это пока что.
299 356274
Набигай пока не разобрали:

https://www.avito.ru/moskva/tovary_dlya_kompyutera/otladochnaya_plata_stm32_f429_discovery_1686029149

https://www.avito.ru/moskva/tovary_dlya_kompyutera/otladochnaya_plata_stm32f407_mcu_discovery_novaya_1311081989

Только там не DISC1, а DISCO (т.е. без mbed)

мопэд не мой, но я себе взял
15400346493000.jpg63 Кб, 816x816
300 356288
>>356274
У меня первая уже пяты год валяется. Все никак не соберусь с духом поковырять. Кек. Еще за 2400 покупал, в 2014
301 356316
>>356222
И да, аноны. Ещё одно наблюдение. Библиотека FatFs глючит, если в настройках ИАРа включён уровень оптимизации выше среднего. Уж не знаю чего он там накрутил, разработчик сей библиотеки. Мне пока лень разбираться. Возможно как-нибудь прослежу в отладке, возможно проставить нужно где-то volatile. Пока что допилил их для быстрой загрузки картинок через DMA - как минимум раза в два быстрей стало выводиться на экран.
302 356324
>>356316
Есть вообще разница что юзать, ИАР или Кеил? Я пока что у кеила недостаток нашел только в том, что нет "Live watch" в менюхе view
303 356332
>>356324
Никогда не юзал кил, поэтому не могу ничего сказать. Мне и божественного ИАРа хватает.
304 356535
>>339005 (OP)
Решил перекатиться с авр на стм, короче вопрос такой - есть у меня самописная либа для управления дисплеями типо 1602 по 4 wire интерфейсу, но она под авр, я хочу ее переделать под стм, но уже в самом начале возникла проблема: у меня либа состоит из файла с самой прогой и файла с расширением h, в h прописывается к каким портам что подключать вот таким образом:
// порт к которому подключаем шину данных
#define DPORT PORTD
#define DDDR DDRD
#define DPIN PIND

// порт к которому подключаем RS, RW, E
#define CDDR DDRD
#define CPORT PORTD

Похоже в стм порты называются несколько по другому чем в авр, потому что на PORTD, DDRD, PIND и т.д. компилятор ругается (Error: Identifier "DDRD" is undefined in "lcd.cpp", Line: 8, Col: 6).
Вопрос - где можно глянуть названия портов для стм? И нужно ли для того подтягивать какие либо либы типо io.h как в авр?
gpio.PNG185 Кб, 1412x687
305 356550
>>356535

>где можно глянуть названия портов для стм?

306 356552
>>356550
А ссылочку можешь кинуть? А?
307 356554
>>356552

>А ссылочку можешь кинуть? А?


Ты трудный какой-то. Какой у тебя камень? В каком IDE пишешь? https://st.com все мануалы, даташиты, сопутствующее ПО, драйвера и прочая чухонь.
308 356557
>>356535
Гугл в помощь. Порты там перебить и всё будет работаь. Для вывода значения в порт есть регистр PORTx->ODR - аналог PORTx у атмеги, для атомарного вывода на пин PORTx->BSSR - аналог операций PORT{x}_Bit{y}={1 или 0} (или ассемблерных команд sbi/cbi) у атмеги. Библиотечные функции HAL_WritePin использовать можно, но дисплей будет работать раза в полтора-два медленнее, чем при работе напрямую с портами через BSSR.
309 356561
>>356535
И да, для работы по SPI для начала лучше используй библиотечные функции из библиотеки HAL - самая главная для тебя это HAL_SPI_Transmit(), для вывода пикселей лучше использовать HAL_SPI_Transmit_DMA() - быстрей будет работать. Но для этого придётся устанавливать STM32CubeMX, либо изучать всё это дело и инициализировать вручную, либо самому накатывать библиотеку HAL.
310 356573
>>356554
IDE - mbed, камень stm35l053r8. Ок я понял, просто на стм не работал вообще поэтому могу тупить.
>>356557
Вот теперь уже несколько понятнее стало.
311 356594
>>356573

>IDE - mbed


Проиграл с мани. Установи нормальное ПО уже наконец и не еби моск. Используй СТМ-кубик - он упрощает вхождение в СТМ. Ты бы ещё в Atollic программу писал.

>stm35l053r8


Хотя куда тебе программировать, если ты даже название своего процессора без ошибок не можешь написать.
опытный иараст
312 356652
>>356535

>PORTD, DDRD, PIND


>PORTD



GPIOC
@
GPIO_PIN_13
@
GPIO_PIN_SET
@
GPIO_PIN_RESET
@
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET);
313 356656
>>356594
Ну не ругайся, я же писал что совсем нуб в стм. После авр с которым 3 года проработал все очень необычно. Даже названия микроконтроллеров. Борду купил, мозги и руки не купил.
Кстати mbed мне тоже много чем не нравится. Мне бы какую-нибудь IDE с автоматическим поиском методов по всей структуре программы как ко всяких Visual Studio, Sharp Develop и т.д.
>>356652
Короче как я понял вместо DDRD в стм нужно писать GPIOD, вместо RS 5 писать RS GPIO_Pin_5, а вместо CDDR |= (1 << RS) нужно писать GPIO_SetBits(CDDR, RS); ну и GPIO_ResetBits(CDDR, RS); соответственно.
Правда не совсем понятно как сконфигурировать несколько портов одинаковым образом, например мне нужно сконфигурировать 4 порта определенным образом. Для конфигурации 1 порта на выход с подтяжкой к земле нужно написать вот такую телегу:
GPIO_InitTypeDef data;

data.GPIO_Mode = GPIO_Mode_OUT; // Выход
data.GPIO_OType = GPIO_OType_PP; // Хз зачем надо
data.GPIO_PuPd = GPIO_PuPd_DOWN; // Подтяжка на землю
data.GPIO_Speed = GPIO_Speed_2MHz; // Скорость низкая
data.GPIO_Pin = GPIO_Pin_2; // 2 вывод

GPIO_Init(GPIOD, &data);
И так для каждого вывода чтоли? Это же ебнутся можно. Есть способ это сократить?
314 356659
>>356656
Хотя чего это я туплю, можно же метод создать:
void ConfigPort(char port, char pin)
{
GPIO_InitTypeDef data;

data.GPIO_Mode = GPIO_Mode_OUT;
data.GPIO_OType = GPIO_OType_PP;
data.GPIO_PuPd = GPIO_PuPd_DOWN;
data.GPIO_Speed = GPIO_Speed_2MHz;
data.GPIO_Pin = pin;

GPIO_Init(port, &data);
}

ConfigPort(GPIOD, GPIO_Pin_2);
Могут быть ошибки, но суть я думаю понятна. Или можно как-то проще?
315 356662
>>356656
Если надо сконфигурировать одинаково несколько пинов одного порта, в структуре параметр pin можно писать несколько ножек через ИЛИ
GPIO_Pin_1|GPIO_Pin_3
316 356663
>>356659
Проще только в кубе тыкать наверное
И ты тут забыл тактировние порта врубить. И тип входных параметров мне кажется неверный.
317 356667
>>356662
О! Вот то что надо. Знал же что должен быть способ.

>в структуре параметр pin можно писать несколько ножек


Вот так чтоли?
data.GPIO_Pin = pin1;
data.GPIO_Pin = pin2;
data.GPIO_Pin = pin3;
data.GPIO_Pin = pin4;
>>356663
А зачем тактирование врубать в данной ситуации вообще?
Тип возможно и неверный. Не отрицаю.
318 356668
>>356667
А забей. Жопой твой пост прочел, думал ты написал "писать несколько ножек или через ИЛИ".
319 356687
>>356667
Тактировние надо включить, потому что у тебя работать иначе не будет. В стм по умолчанию почти вся переферия отключена. Перед использованием надо поднять соответствующий бит в регистрах rcc, чтобы подключить нужную фигню к тактировние шине.
320 356725
>>356687
А, ты неверное про это RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE); ?
321 356743
>>356725
да, то самое
322 356780
>>356656

> CDDR |= (1 << RS) нужно писать GPIO_SetBits(CDDR, RS); ну и GPIO_ResetBits(CDDR, RS);


Да. Но лучше всё-таки с регистрами портов атомарно обращаться, также как в атмеге. Здесь всего-то выучить как правило:
GPIOA->BSSR = 1<<(pin1|pin2) - установить ноги
GPIOA->BSSR = 1<<((pin1|pin2)+16) - сбросить ноги
value=GPIOA->IDR - считать состояние ногю

>Ну не ругайся


>ебнутся


Как на тебя не ругаться, если ты даже русский язык не осилил. В таком случае тебе лучше использовать библиотечные функции, как в ардуино иде, а инициализацию генерировать в кубике, тамм уж совсем для дебилов всё сделано чтоб освоили.
323 356899
может для кого-то банальный вопрос (тому респект и уважуха за ответ), но прошу пояснить.
Начал изучать FreeRTOS и там написано что мол все круто, псевдопараллельность выдается за счет того что каждый равный промежуток времени обработчик задач (sheduler) забирает выполнение от одной задачи, сохраняя все данные в стек, и дает поработать следующий квант другой задаче.

Появилось два не связанных вопроса
1) Если у меня задача скажем выполнится за время, меньшее чем системный квант, он пойдет по новому кругу выполнения или отдаст власть обработчику? (написал и думаю ответ в самом вопросе --> новая итерация бесконечного цикла в задаче. Но все равно жду ответ знающих)
2) Если системный квант равен скажем 1мс, а одновременно работающих задач у меня скажем штук 200. Значит ли это, что если одна из задач выполняет обработку клавиатуры, то со стороны человека она будет как-бы тормозить? Реакция на нажатие же 200мс = 200 задач, слишком частое нажатие тупо не сможет обработаться
324 356970
А как можно убрать одиночный импульс при запуске ШИМа на таймере? У меня от этого светодиоды на ws2812 глючат.
325 356984
>>356970
>>356970

> как


Вставить задержку перед выдачей ШИМа в ногу?
326 357002
>>356984

>Вставить задержку


Я вообщем-то так и сделал, но я думал, что я в кубе что-то забыл настроить.
PWM.png44 Кб, 1122x497
327 357003
>>357002
забыл
IMG20180307130408-672x372.jpg37 Кб, 672x372
328 357010
Аноны, я правильно понял вот этого
https://blog.danman.eu/st-link-clone-as-stm32-dev-board/
что для вкатывания хватит двух st-link v2 клонов, и можно сразу начинать одним прошивать другого?
329 357015
>>356970
>>357003

>А как можно убрать одиночный импульс при запуске ШИМа на таймере?


Никак. Только допиливанием библиотеки HAL.
IMG20190214010534.jpg106 Кб, 1048x786
330 357026
>>357010

>для вкатывания



Да. Выпаиваешь оттудова камень и впаиваешь в свою плату.

Две платы Blue Pill самое то. Одну через UART-USB переходник или ардуину прошить в ST-Link. Подключить и работать со второй.

https://hackaday.io/project/158262-using-blue-pill-stm32f103c8t6-as-st-link

На фотке немного другое, но принцип тот-же.
331 357171
Привет анон.
У меня возникла проблема с Дискавери (stm32f407g disc1).
Настраиваю порт B как показано на первом пике. Но при работе, вижу охуительную картину - висящая в воздухе дискавери, не подключенная ни к чему, детектит единицу на входе PB6 (второй пик).
Я что-то делаю не так? Тут есть какой-то нюанс, который надо учитывать?
На порте E такой хуйни не нашёл.
pull-up.png58 Кб, 535x459
332 357191
333 357198
>>357191
Спасибо.
Это бля.
Есть предложения, как пофиксить? Не выпаивать же её.
334 357209
>>357198
есть предложение использовать другую ногу, а не расхуячивать плату
335 357210
>>357209
Отдельную ногу не вариант, придётся переносить как минимум пины с 0 по 7.
336 357292
>>357210
Пока пришлось отпаять подтяжку.
Если есть варик как запустить эту красоту с подтяжкой на месте - было бы збс.
337 357323
>>357292
Чувак, просто интересно, чем тебя другая нога не устраивает,? Уверен, на плате достаточно свободных пинов
338 357342
>>357323
Потому что я уже спаял макетку и мне лень перепаивать 16 проводов.
339 357344
Нужно собрать проект, в котором stm32F103 работает с EEPROM. Думаю использовать для этой цели BluePill, а вот как память подключить хз. И в инетах никаких гайдов нет
340 357367
>>357344
Любишь BDSM? Бери что-то типа 24LC64 и подключаешь по IIC, который может зависнуть в любое время, или писать программную реализацию IIC.
Не любишь BDSM? Берешь что-то типа 95512 https://www.st.com/resource/en/datasheet/m95512-df.pdf - EEPROM с SPI интерфейсом.
Где-то посередине - 93С66 и подобные 93 серии.
Если верить производителю - хуй вам, а не EEPROM - используйте одну/../ из страниц FLASH памяти(с).
Blank+edb31036d949bee728e4dbe6cef91b05.jpg10 Кб, 326x195
341 357404
>>357367

>stm32


>iic может зависнуть


Серьёзно? Как так?!
342 357418
>>357404
F100 серия была первопроходцем, самая горбатая из всех. Описания вообще всех проблем есть в Errata shit на любое семейство.
Пользуйте F0/F2/F3/F4/L серии, 100 слишком горбата, много отличий. На любую серию МК есть листок "миграция с 100й серии" что как-бы намекает, что даже производитель считает их мусором
343 357419
>>357418
В демоплату STM32VLDISCOVERY нормально становится F071/F301 и подобное пин ту пин. Проще выкинуть 100ю серию и забыть
BEAR-USTAL.png434 Кб, 564x564
344 357439
>>357418

>производитель считает их мусором


Аноны, посоветуйте тогда годную недорогую плату на СТМ32 для собственных экспериментов.
345 357488
>>357418
Посоветуй камень:

два SPI
три UART
аппаратный TRNG
флеш хотябы 128кб
оперативной памяти 20кб
цена: до 2$
346 357499
>>357488

>цена: до 2$


Сильно растяжимое требование. Цена при покупке в каком месте? При каких партиях?

>аппаратный TRNG


Чем не подходит младший разряд с АЦП? Можешь еще диод с обратным смещением приделать, чтобы сильнее шумело.
12.PNG62 Кб, 567x460
347 357508
>>357488

>аппаратный TRNG


Вещь сомнительной полезности. F405 с ней, в китае они по 3,5$.
По остальным требованиям ближе всего пойдет старшие F0 семейство (16кб озу)
348 357545
>>357488
Прямо сейчас, в электронщике, 401vbt6 по 175р. Не джва бакса, но близко
349 357562
>>357545
В китае STM32F401RCT6 1$ стоит. Хватит кормить барыг и пыню
350 357573
>>357562
кокхол что ли?
351 357577
>>357562
Разве что сальваж. Не может новая стоить 60р. Да и сдается ты пиздишь безпруфно в тред
352 357599
>>357573

>кокхол что ли?


Да

>>357562

>Да и сдается ты пиздишь безпруфно в тред


https://item.taobao.com/item.htm?id=544907210814
Конкретно у этого продавца беру и F4 и F0 серии, ADUMы различные, АЦП, Токовые ЦАПы. Разницы с деталями с маузера/фарнела/тме не заметил ни визуально ни в работе. Можете брать смело. Если детали не оригинал или Б/У это пишут в описании.
Например SP485
Оригинал https://item.taobao.com/item.htm?id=549197050879
Китайская копия https://item.taobao.com/item.htm?id=524754218256
Как видите разница в 10 раз. Копии кстати хорошо работают. Единственно что, подтяжки внутри у них более высокоомные. Ну и на "живую" длинную линию я не рискнул бы ставить без испытаний переходных процессов.
Выбор есть, ультрадешевые китайские копии, или дешевые оригиналы.
То же самое и дисплеев касается, 16х2 классический стоит меньше доллара. Большой ассортимент, в десятки раз больше чем могут предложить где угодно. Особенно COG графические. С местных цен хуею давно. Но знаю точно одну вещь, если цена с доставкой и всеми расходами ниже в 2-2,5 раза чем в космодроме - смело берите, это оригинальные детали.
353 357605
>>357577
Разве что сальваж. Не может новая стоить 60р.

Вам барыги это втюхали в головы. Все детали в китае дешевле раза в 3 как минммум из-за отсутсивия импорт/экспорт пошлин, НДС, барыжинга, зарплат монагеров и машин директора.
По своему опыту - видишь цену, дели в уме на 2-3 раза, это то, что ты заплатишь за поставку напрямую с китая, где стоят эти заводы где клепают эти микросхемы.
1471599687874.jpg151 Кб, 1280x1381
354 357614
>>357599

>космодроме


Как он меня заебал, блядь. Гандоны, блядь, в 2к19м году не иметь https? Сайт из 90х. Вы если цены заломали, то сделайте хоть сайт удобный.
355 357619
>>356316
Выбросил бы ты fatfs, и взял бы littlefs. Меньше памяти, wear leveling, также можно монтировать в комп через блочное устпоймтво. Fatfs оперативно тебе флешку ушатает.
356 357623
>>357614

>2к19м


Не продолжай, все с тобой понятно.
Что с ценами не так, примерно +- как у других. Космодром, VDMAIS и РКС в принципе полностью перекрывают потребности для прототипов. Для серии даже 10шт - китай.
357 357649
>>357623
Ты мой пост читал? Я рвался на сайт, а не на цены.
358 357650
>>357649
Окей, каким должен быть сайт радиокомпонентов? Свистелки и перделки? Или как у РКС конченое глючащее жабаскрипт говно? Зато новое.
По личному опыту формирования закупок на 200+ позиций, удобнее космодрома пока не видел сайтов
1481723400725.jpg462 Кб, 3216x2136
359 357653
>>357650
По приоритету
1. АШ ТИ ТИ ПИ ЭС блядь. Не заказать все эти 200 позиций, не слив провайдеру/СБУ/твоей мамке их содержимое вместе с твоим номером телефона именем и адресом
2. Поисковой движок говно, только точное совпадение или соси хуй. Фильтров нет, иди нахуй. Категоризация только если повезет и найдешь страницу линейки чипов.
3. Даташитов часто нет, пиздуй гуглить. Ой, не гуглится? Мы же заказали это у ноунейм китайцев, на плате ни обозначений нихуя, ну сорян придумаешь что-нибудь.
4. Вырвиглазный дизайн, каждая страница самая блять разнообразная по стилю.
5. В корзине блядь не узнать что ты там назаказывал, только наименование товара (50% их собственное) и пиздуй обрать искать в их "движке" этот товар чтоб понять что это.
360 357654
>>357650
В догонку, пидарасы разбросали все по двум магазинам, шоб и дальше быть ФОПами и наебывать налоговую. Из-за этого самому заехать и забрать не получится, обязательно придется ездить и туда и туда. Ну или заказывать по НП в тот же город, но доставка минимум 4 дня получается. Обычно в среду заказываешь, в понедельник забираешь.
361 357688
>>357599

>Конкретно у этого продавца беру


>Согласно соответствующим местным законам и правилам и политике Taobao, этот товар не может быть отправлен в вашу страну или регион.


Кто-то запизделся.
362 357689
Подскажите, пожалуйста, что будут спрашивать на собеседовании на программиста микропроцессорных систем. Наконец-то судьба дает мне шанс, а я не готов, и времени до пятницы.
363 357697
Привет анон.
Странная ситуация - никак не могу настроить I2C Slave при помощи Cube/Hal. (пробовал на f103 и f407).
Вроде составляю всё правильно, но при попытке обратиться на выбранный мною адрес - не получаю никакого прерывания (в кубе они конечно выбраны).
ЧЯДНТ? Есть годный пример? А то гугл направляет только на встроенные кьюбо-примеры, которые мне нихуя не понятны.
364 357730
>>357697
Школотрон, хватит летать в облаках, вернись на землю. Крыльями поделишься?
Старый говнокод закоса под память 24 серии. Буду рад бурлящим потокам говна.
unsigned char i2cbuf[256];
unsigned char i2cbuf_i=0;
void I2C3_EV_IRQHandler(void)
{
static volatile unsigned short tmp1,tmp2,SR1,SR2;
static volatile unsigned char addr;
SR1 = I2C3->SR1;
SR2 = I2C3->SR2;
if (SR1 & I2C_SR1_RXNE) //incoming
{
if (addr)
i2cbuf[i2cbuf_i++]= I2C3->DR;
else
{i2cbuf_i = I2C3->DR;
addr = 1;
};
};
if (SR1 & I2C_SR1_TXE) //send spam
{
I2C3->DR = i2cbuf[i2cbuf_i++];
};
if (SR1 & I2C_SR1_AF) //last byte send
{
I2C3->SR1 = (I2C3->SR1 & (~I2C_SR1_AF));
addr = 0;
};
if (SR1 & I2C_SR1_ADDR) //start
{
I2C3->CR1 = (I2C3->CR1 & (~I2C_CR1_STOP));
};
if (SR1 & I2C_SR1_STOPF) //stop
{
I2C3->CR1 |= I2C_CR1_STOP;
addr = 0;
};
};
void I2C3_ER_IRQHandler(void)
{
};

...
MX_I2C3_Init();
...
//FUCK HAL! Tune I2C3 Interrupts
//Enable ITEVFEN & ITBUFENT INT
I2C3->CR2 |= (I2C_CR2_ITEVTEN | I2C_CR2_ITBUFEN);
I2C3->CR1 = (I2C3->CR1 & (~I2C_CR1_PE));
I2C3->OAR1 = 0x002A;
I2C3->FLTR = I2C_FLTR_ANOFF;
I2C3->CR1 |= I2C_CR1_PE | I2C_CR1_ACK ;
NVIC_EnableIRQ(I2C3_EV_IRQn);
__enable_irq();
...
/ I2C3 init function /
static void MX_I2C3_Init(void)
{

hi2c3.Instance = I2C3;
hi2c3.Init.ClockSpeed = 100000;
hi2c3.Init.DutyCycle = I2C_DUTYCYCLE_2;
hi2c3.Init.OwnAddress1 = 132;
hi2c3.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
hi2c3.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
hi2c3.Init.OwnAddress2 = 0;
hi2c3.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
hi2c3.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
if (HAL_I2C_Init(&hi2c3) != HAL_OK)
{
_Error_Handler(__FILE__, __LINE__);
}
}
364 357730
>>357697
Школотрон, хватит летать в облаках, вернись на землю. Крыльями поделишься?
Старый говнокод закоса под память 24 серии. Буду рад бурлящим потокам говна.
unsigned char i2cbuf[256];
unsigned char i2cbuf_i=0;
void I2C3_EV_IRQHandler(void)
{
static volatile unsigned short tmp1,tmp2,SR1,SR2;
static volatile unsigned char addr;
SR1 = I2C3->SR1;
SR2 = I2C3->SR2;
if (SR1 & I2C_SR1_RXNE) //incoming
{
if (addr)
i2cbuf[i2cbuf_i++]= I2C3->DR;
else
{i2cbuf_i = I2C3->DR;
addr = 1;
};
};
if (SR1 & I2C_SR1_TXE) //send spam
{
I2C3->DR = i2cbuf[i2cbuf_i++];
};
if (SR1 & I2C_SR1_AF) //last byte send
{
I2C3->SR1 = (I2C3->SR1 & (~I2C_SR1_AF));
addr = 0;
};
if (SR1 & I2C_SR1_ADDR) //start
{
I2C3->CR1 = (I2C3->CR1 & (~I2C_CR1_STOP));
};
if (SR1 & I2C_SR1_STOPF) //stop
{
I2C3->CR1 |= I2C_CR1_STOP;
addr = 0;
};
};
void I2C3_ER_IRQHandler(void)
{
};

...
MX_I2C3_Init();
...
//FUCK HAL! Tune I2C3 Interrupts
//Enable ITEVFEN & ITBUFENT INT
I2C3->CR2 |= (I2C_CR2_ITEVTEN | I2C_CR2_ITBUFEN);
I2C3->CR1 = (I2C3->CR1 & (~I2C_CR1_PE));
I2C3->OAR1 = 0x002A;
I2C3->FLTR = I2C_FLTR_ANOFF;
I2C3->CR1 |= I2C_CR1_PE | I2C_CR1_ACK ;
NVIC_EnableIRQ(I2C3_EV_IRQn);
__enable_irq();
...
/ I2C3 init function /
static void MX_I2C3_Init(void)
{

hi2c3.Instance = I2C3;
hi2c3.Init.ClockSpeed = 100000;
hi2c3.Init.DutyCycle = I2C_DUTYCYCLE_2;
hi2c3.Init.OwnAddress1 = 132;
hi2c3.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
hi2c3.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
hi2c3.Init.OwnAddress2 = 0;
hi2c3.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
hi2c3.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
if (HAL_I2C_Init(&hi2c3) != HAL_OK)
{
_Error_Handler(__FILE__, __LINE__);
}
}
365 357737
>>357688

>Кто-то запизделся


Я где-то говорил, что продавец напрямую отправляет мне детали?
Нет, я пользуюсь услугами доп склада, заказываешь хуйни, детали, кастомные изделия, материалы, химию, жидкости, печатки с jlcpcb, небо и даже аллаха. Все локальной доставкой складывается в гуанджоу, а потом я решаю сам, сколько это стоит (декларация) как это упаковать и чем отправить, самолетом, поездом.

Вы блять как типикал рагули, если вы не знаете как это делается, значит все пиздят атата.
366 357750
>>357737

>Аноним


Но зачем ты пиздишь, что камень тебе обходитмя в дорар? Добавь услуги посредников, доставку, растаможку и вкаля, цена одного контроллера нихуя не отличается от цены электронщика. Только заместо Путина, тв кормишь китайского кормчего и кучу барыг присосавшихся к доставке
367 357759
>>357750

>Но зачем ты пиздишь, что камень тебе обходитмя в дорар? Добавь услуги


Как вы заебали...
Окей, хотите полную цену контроллера - доставка по китаю примерно как новая почта. 1$. Накладные расходы с учетом банковских процентов переводов, складу - 15%. Доставка 10$/кг
Стоит ли напоминать вес контроллера.
Короче этот сратый 401RCT6 обойдется в 1.2$
368 357761
>>357750
Притом за доставку ты платишь в любом случае, не важно кто доставляет, телепорты не изобрели. Все поставщики покупают ровно также. Только к этой цене (1,2$ при учете что ты покупаешь не один МК а сразу все детали на все необходимые устройства), ты добавляешь 100% жадности и 20% налогов и получаешь ровно ту же цену того же космодрома.
Заебали, как нищеброды считаете каждую копейку в ссылках. Я говорю как есть в сухом остатке - 2-3 раза дешевле обходится ящик деталей например на 10 устройств. Дисплеи, кнопки, корпуса, платы (кстати ПП довольно тяжелые), короче все что нужно затариваешь и особо не колупаясь в ценах ты гарантированно экономишь в 2 раза
369 357762
>>357761
Вот именно. У китайцев то зачем покупать, если можно на диджикее? Там хотя бы не подсунут ерунду.
370 357764
>>357762
Насчет ерунды я уже говорил, ты сам выбираешь что покупать.

>если можно на диджикее


Поехавший? Барыжинг значительно похлеще хохломагазинов, цены оттуда выйдут еще дороже нем просто сходить в магазин.
Есть конечно позиции которые производят не в китае, тогда цена что в европе, что в китае одинаковая или даже дешевле из европы.
Недавно светодиоды японского производства покупал с TME, вышли более чем в 2 раза дешевле чем с китая. Конечно, такие позиции нужно смотреть отдельно.
Но речь изначально шла о цене деталей в целом, вам барыги вбили в головы, что если вы можете купить что-то в 2-3 раза дешевле, то это подделка. Конечно нет, подделка стоит в 10-20 раз дешевле, просто барыгам выгодно чтоб вы так думали.
371 357765
>>357764
https://item.taobao.com/item.htm?id=572835945719
https://item.taobao.com/item.htm?id=44346842148
Как видишь, цена в 4 раза отличается на самом магазине. На фото думаю отличия тоже увидишь. На второй ссылке не указано что это оригинал. В чем обман со стороны китайцев? Если барыги у нас покупают за 1,2 юаня, а продают как оригиналы, ну блять, это не китайцы виноваты.
372 357767
>>357765
Как вы блядь вообще разбираетесь в этих иероглифах? Гугл транслейт?
373 357772
>>357765
Как там, BSOD-ы уже вылечили?
Вместо этого говна можно взять не намного дороже CP2102N.
https://www.digikey.com/product-detail/en/silicon-labs/CP2102N-A01-GQFN20R/336-4826-1-ND/8619802
А лучше вообще такое не использовать, cейчас всюду аппаратный USB пихают.
374 357780
>>357772
Господи, как обычно, абы ляпнуть что. Речь о позиции оригинал и копия, что китайцы предоставляют выбор, а не про какой-то конкретный радиоэлемент, это было бы достаточно глупо.

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

Личный выбор на то и личный, у меня к китаю достаточно положительное отношение, особенно если что-то заказывать напрямую с завода под заказ, не единично конечно же. Например заказать пьезоэлементы по своим чертежам в европе/США обходится 7-8$ за штуку на сотне, то же самое сделать в китае - 0,6-0,8$ за штуку при той же партии. Хотя это и так очевидно.

Рассуждать где лучше покупать нужно после сборки изделия, передачи заказчику, засунуть руку в карман и поглядеть сколько у тебя в итоге осталось, тогда и делать объективный выбор.
375 357788
>>357764

>вам барыги вбили в головы, что если вы можете купить что-то в 2-3 раза дешевле, то это подделка


Но ведь т ы можешь посмотреть цены на сайте ST и убедиться, что 401rc стоит 2.43 от 10к штук. Как же добрая китайца продает по дорару? Сальваж? Подъебка? Или злой СТ вбивает нам в головы, что 2.43 это нормальная цена?
376 357792
>>357788
Цены на сайте производителя указаны с учетом интересов дистрибьюторов, просто чтоб не срать им. Опять же, цены для покупателя. Это легко проверить, у того же VDMAIS цены на продукцию Analog Devices ниже чем цены на сайте AD, поставки у них прямые от AD без дополнительных посредников. В некоторых случаях (если они брали большую партию чего-либо) у них цены даже ниже чем в китае, но это не особо часто такое.
Texas например указывает что цена может сильно варьироваться от условий.
Так что эти цены хороши для быстрой оценки в большую сторону, например заказчик спрашивает, сколько это будет стоить? Берешь цены с сайтов производителей и будь уверен что не проебешься, т.е. она будет "с запасом"
377 357793
Вот вопрос тогда, сколько стоит законченное рабочее изделие с внутренним ПО, конфигурация примерно такая
msp430fg4618
XC2C32A-6VQG44
msp430fg2112
max9202
dg403
mc1350
tc4427 2
4х слойная ПП 80
80мм
штук 10 операционников типа 358х, 4 оптрона, диоды, батерая, 2576, конденсаторы, мелочевка, кварцы 2ши, несколько светодиодов, дроссели короче как обычно
Вот сколько навскидку это стоит?
378 357799
>>357793
Тут стоимость будет в основном определяться потраченным на разработку временем, а не стоимостью деталей, если конечно это не относительно большая серия. За единичное устройство я бы обсуждал от $1500 самый минимум.
379 357800
>>357792
Нет. У всех вендоров цены на сайте включают только маржу вендора без учета дистрибьютора. Тексас, например, можно вообще поштучно купить и оплатить кредиткой, дистрибьютора в цепочке не будет.
Далее, каждый вендор имеет свою стратегию - тексас имеет высокие сайтовые цены, но может сильно снижать квотные цены, особенно на коммодити, 300мм пластины помогают. Девицы наоборот. Им нет смысла продавать крутой аналог задешево, особенно после покупки Linear - конкурентов почти не осталось.
Есть простой лайфхак: конечная цена в РФ примерно равна сайтовой. Ну то есть дистик получит скидку от вендора, накрутит свою маржу и НДС - то на то и выйдет. До 50к штук приблизительно работает.
380 357801
>>357800

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


Куда смотрел швятой антимонопольный комитет? У них же там вроде как такие сделки запрещены.
381 357802
>>357800
Абсолютно верно. Вот эти НДС, маржа и прочее и дает 100% цены товара. Именно об этом я и говорил, что цены на сайтах - индикативные. Покупая в китае вы фактически покупаете со склада с которых отгружают дистрибьюторам. Отсюда и разница в цене в 2 раза. Если вы сами захотите продавать эти детали, купленные в китае, вы добавите налог, свою прибыль и получится ровно то, что и в магазине. Тут нет никакой магии, нет подделок продукции, просто многие люди забывают, что цена товара в стране составляет едва ли 30%, все остальное - накрутки, налоги
382 357803
>>357799
Если что - 65$ цена. Я это к тому, что это законченное изделие, проверенное, настроенное. Пример привел лишь для того, чтоб показать истинную дешевизну радиокомпонентов
383 357817
>>357803
Просто именно эти радиокомпоненты уже многократно окупили свою разработку и выпускаются настолько большими партиями что практически стоят копейки. Стоимость сырья, издержки производства, логистики, амортизации станочного парка просто растворились в количестве уже реализованного
384 357828
>>357802
Тексас и ADi уже прекращают отгрузки в Китай, оставив по одному большому дисти. Скоро и вендоры второй-третьей руки будут делать то же самое - ты или лидер рынка, или следуешь за лидером. Никому не охота ебаться с реэкспортом.
Маржа и прочее - это треть цены максимум. 100% накрутки будет если покупать со склада. Но опять же через пару лет ты со склада купишь только коммодити. Нужен тебе будет проц или что повеселее - добро пожаловать в мир квот и лид таймов.
А цены в Китае.. Сегодня они есть, потому что у Фоксконна эппл не выбрал весь объем аудиокодеков, завтра нет, потому что в этот раз выбрал.
385 357829
>>357793
Без учета памяти и керамических конденсаторов, я готов сделать тебе такую плату за 22-23 доллара тут в РФ. В партии от 5к штук. Керамику достаешь сам, я не буду связываться с керамическими конденсаторами в партиях менее миллиона.
386 357830
>>357801
Ну, формально конкуренция есть. Но после сделок c Hittite и Linear, девицы получили себе в портфолио уникальные продукты.
387 357852
Ничего не меняется, зашла речь о цене деталей и покупке, все свели к глобальной политике, каким-то фоксконн, эпл, блять, каким-то хуем какие-то аудикодеки приплели, все что "слышал звон", все высрали в тхреад и довольно урчат.
Двач такой двач
d1a37563495598f9f6d1f6d8ef5b3b8e.jpg34 Кб, 500x336
388 357853
>>357829

>я не буду связываться с керамическими конденсаторами в партиях менее миллиона



Вся русня в одном предложении. Нахуй вы кому нужны с такими запросами. Китаец сделает все гораздо лучше и качественнее при партии в 100шт за меньшие деньги. Ведь они не столь брезгливые господа.
389 358087
>>357853
Не сделает. Сейчас на керамику ебанутая аллокация по всему миру. Или 35 недель, или трехкратная цена, или искать по стокам. Последнее очень времязатратно.
390 358129
Кто какой средой разработки пользуется?
391 358131
>>358129
CubeMX + VSCode
392 358133
>>358129
Обсуждали уже много раз, в этом треде в том числе. Вообще советую осознать, что на STM32 микроконтроллеры вовсе не заканчиваются.
393 358181
394 358187
>>358181
Хуя ты. И как она, стоит того?
395 358191
>>358187
Я давно на игле джетбрейнса, поэтому да. Знакомая и привычная для меня среда, все красиво собирается через cmake, есть дебаг и вообще все как положено.
я вообще на работе на джаве прогромирую, микроконтролёры только как хобби
396 358334
>>357730
На F407 работает (спс), но на F103 не генерируются прерывания.

И я не совсем понял принцип, того что у тебя происходит и как мне то же самое реализовать на HAL.
Я р разобрался как по-отдельности прочитать и записать в I2C, а как делать всё вместе как у тебя - не понял.
397 358624
>>358191
А я сосу хуи в eclipse. Просто она работает, но блядь, как же бесит в мелочах. А переходить на другую ide, это cubemx настраивать, линковщик, openocd ублажать и тд.
398 358638
>>358191
Все хорошо, только оперативки многовато жрет и тормозит. Иногда это создает некоторые неудобства.

>>358624

>cubemx настраивать


Не знаю что вы все в этом cubemx настраиваете, т.к. не использую STM32. Но при использовании CMake файлы проекта IDE генерить уже не нужно. Необходимо только написать (или найти готовые) скрипты CMake. Настройка IDE в результате сводится практически только к заданию правил автоформатирования.
Один раз сделаешь по нормальному через CMake и у тебя будет все одинаково компилироваться в любой IDE (без IDE тоже), где есть поддержка CMake или хотя бы make.

>openocd ублажать


А мог бы взять J-Link, который не требуется ублажать.
399 358646
Котаны, кто-то сталкивался с RTC на STM32?
По интеренетам люди пишут, что абы какой кварц не подходит, что нужен какой-то с низкой ёмкостью и т.п.
У меня из десятка разных кварцев более-менее стабильно работает один, и то, после холодного старта (при том что бекап батарейка есть) часы останавливаются, и нужно тыкать reset. Бесит пиздец.
Может есть какой-то пердолинг тайный?
400 358649
401 358651
>>358646
Если это для часов, то не лучше ли брать TCXO?
402 358663
>>358649

F429

>>358651

Нагородить можно много чего, но я просто впилил кврц в STM32F4discovery, ножку резервного питания подвесил куда нужно, большего огорода городить не охота, в т.ч. и всякие буферы для кварца.
Предвосхищая вопросы - дорожки к отладочным пинам отключены, кварц впаян на штатное место с конденсаторами.
403 358699
>>358663
Какие емкости впаял и какой кварц? Ты читал даташит на кварц? Какая у него нагрузочная емкость?
404 358708
>>358699

Ёмкости спиздил парой с того же места, где взял кварц. Конкретно эти по 10пик, плюс минус точность моей мерялки.

Вот может для stm32 надо их меньше? Ноги на которых висит кварц пиздец хилые, щуп 1:10 тут же срывает генерацию.
32768.PNG34 Кб, 1007x680
405 358723
>>358708

>надо их меньше?

406 358726
>>358723

Ох бля, еще и разные сверху/снизу.
Спасибо за табличку, думаю решу свою проблему.
407 358738
>>358726

>еще и разные


Не, С0 - емкость кварца, СL - нагрузочные кондеры.
408 358739
>>358726
И вообще, иди на st.com и качай AN2867
409 358740
>>358726
По таблице ищещь параметры Gm_crit_max которые меньше Gm в 5 и более раз, или меньше Gmcritmax хотя бы на 20%
Gm и Gmcritmax - из даташита на МК, на пикчах для STM32F407
Учти, что Cload это не емкости конденсаторов, а общая емкость между выводами кварца, т.е. Сшунт + (Сконд+Свходов)/2
Т.е. если берешь ABRACON ABS06 c Сшунт 1,7пФ, и Сload 4пФ, тогда твои конденсаторы будут равны С = ((Сload - Сшунт)*2) - Свх =~0, т.е. без конденсаторов вообще
В F4хх меньше F411 очень слабые генераторы, прям вот очень.
condition.PNG28 Кб, 743x232
410 358741
>>358740
У тебя скорее всего стандартный кварц с Gm примерно 1,5 (типа Geyer и любой другой ширпотреб), т.е. в желтой зоне - нестабильный запуск и работа.
На на платах все равно делай места под конденсаторы, +-1-2пФ могут очень хорошо подстроить частоту кварца особо не влияя на работу его
411 359073
>>339005 (OP)
Разрабам примеров для STM32F4 приготовили особое место в Аду? У меня пердак уже полыхает просто. Пытаюсь состряпать голый темплейт со STemWin и нихуя не работает. Вроде все подключил, в хидерах прописал, компилируется без ошибок, а на выходе ЗАЛУПА.
412 359168
>>359073
Дарагой дневничок!
Сегодня я забил на самостоятельную сборку проекта с emWin и запилил его в Кубике. Сразу нарвался на неповорачиваемость дисплея с помощью команды GUI_SetOrientation. Вылечилось увеличением памяти в GUIConf.c до 180кБ. Может кому сэкономит пару минут в гугле.
413 359965
Хай анон.
Столкнулся с такой хуйнёй: поставил на линукс TrueStudio и CubeMX, компилирую пробный проект, пытаюсь запустить в дебаге, а он мне отвечает:

ST-Link enumeration failed
Error in initializing ST-LINK device.
Reason: ST-LINK DLL error.

Или "Error message from debugger back end: Connection timed out", в зависимости от того, выбираю ли в настройках автоматический коннект к GDB серверу.
Полагаю, что просто не заводится GDB-сервер. Как проверить, и как пофиксить?
414 359969
>>359965
Проверь хотя бы права, посмотри вывод lsusb для начала...
Зачем вообще взял эту хрень? Мог бы из репозитория поставить Qt Creator или тот же эклипс.
415 359990
>>359969
Какие права? На исполнение в папке с GDB? Так вроде ж стартует, пишет что гдб стартед.
Выбрал потому что искаропки и есть на винду и Линукс. Планировал переходить на Эклипс + ОпенОСД, но позднее.
Screenshot1.png50 Кб, 827x486
416 359992
Как считать read-only memory на скрине те самые 4 адреса которые надо считать?
Пытаюсь считать как EEPROM:
uint32_t ByteRead(uint32_t addr)
{
return ((__IO uint32_t)addr);
}
Получаю хард фаулт.
КАК ЭТУ ХУЙНЮ ВООБЩЕ СЧИТЫВАТЬ БЛЯДЬ?
Screenshot2.png2 Кб, 278x77
417 359993
>>359992
Макаба скушала знаки умножения.
418 359994
>>359992
Читаешь uint32_t, а в имени функции byte. Что-то тут не так.
Ну и читаешь то по невыровненным адресам похоже, для Cortex-M0/M1 так нельзя. На Cortex-M3 уже можно, но вроде как не для всех инструкций, хотя может я что-то путаю.
419 359995
>>359994
Может подскажешь как правильно, а то я чет искал и так и не нашел никаких других вариантов.
420 359997
>>359992

Код для stm32f0

int8_t adc_conv_12bitsTo_tempC(uint16_t ts_value, uint16_t vref_mV) {
int32_t r;
//Normalize sensor data to VREF
uint32_t ts_normalized = (ts_value vref_mV) / 3300;
//Substract 30C calibration point
r = ts_normalized -
temp30_cal_ptr;
//Avg_Slope calc
r = 80; //110C - 30C
r /= (
temp110_cal_ptr - *temp30_cal_ptr);
r += 30;

return (int8_t)r;
}
421 359998
>>359995
Читай только по выровненным адресам. uint32_t - по кратным четырем, uint16_t - по четным, либо читай только uint8_t. Ты лучше сам посмотри, может ли твой микроконтроллер читать по невыровненным адресам.
1.png15 Кб, 669x420
422 360007
>>359997
>>359998
Спс. Работает вроде.
423 360030
>>360007

>вроде


Читать документацию — не наш путь? Прям как в ардуино-тред попал.
424 360037
>>359965
Интересное продолжение.
Со встроенным в Дискавери СТ-линком, всё работает.
А вот с китайским донглом и BluePill - нет.
425 360101
Нужна среда программирования под winXP для stm32f103, какую посоветуете?
426 360106
>>360101
Попробуй Блокнот. Можно открывать файлы, сохранять файлы. Их еще можно менять. В нем можно создать файл типа bat с таким содержимым:

ISUCKCOCKS

Который, будучи запущен, установит последную версию IDE.
Снимок.PNG4 Кб, 524x143
427 360144
>>360106
ЧЯДНТ? Ничего не происходит, анон помогай
428 360160
>>360144

>ЧЯДНТ?


Кодировка не та. Надоть в KOI8-R
429 360170
>>339005 (OP)
Анон, поясни за waveshare OpenF3-D/Open407V-D/Open429Z-D - Standard.
Какие подводные?
У меня есть все эти дискавери и несколько модулей кажется совместимых с этими мезонинами (lcd, ethernet, камера и тд), хочу просто играться с этим барахлом без ебли с проводами и макетками.
Screenshot2019-03-2215-15-32.png127 Кб, 1352x1185
430 360217
>>360170
Ну, у меня есть Open407Z. Недостатков три с половиной: материнка занимает много места на столе; никаких защёлок у разъёмов для модулей не предусмотрено, держится только на трении; с другой стороны — мезонинный модуль входит (и выходит) в гнездо на материнке OCHE туго, так что легко можно погнуть ножки, когда вытаскиваешь; ну и все сразу модули подключить ко всем разъёмам не получится, надо смотреть как там выводы микроконтроллера используются.
431 360435
>>339005 (OP)
Товарищи!
У меня есть вот такая ардуина:
https://ru.aliexpress.com/item/STM32F103C8T6-ARM-STM32-Minimum-System-Development-Board-Module-Forarduino/32342717171.html?spm=a2g0v.search0302.3.10.3901d766U7hWAS&ws_ab_test=searchweb0_0,searchweb201602_0_10910_453_10911_454_10914_10915_10618_536_317_537_319_10059_10696_10084_10083_10887_10307_321_10889_322_10902_10065_10068_10301_10103_10884,searchweb201603_0,ppcSwitch_0&algo_pvid=729c7d31-ba42-45b3-a8f7-e3a3805546a6&algo_expid=729c7d31-ba42-45b3-a8f7-e3a3805546a6-1
Пишут, что загрузчик надо загружать через адаптер USB-UART. Его у меня нет.
Есть вот такой прибор:
https://ru.aliexpress.com/item/1-j-JLink-V8-USB-ARM-JTAG/32860933960.html?spm=a2g0v.search0104.3.2.444917bcHMiTWc&ws_ab_test=searchweb0_0,searchweb201602_1_10065_10068_319_317_10696_453_10084_454_10083_10618_10307_10301_537_536_10902_10059_10884_10889_10887_321_322_10915_10103_10914_10911_10910,searchweb201603_54,ppcSwitch_0&algo_pvid=89ce7926-7fb0-4589-a9ba-0d1b9f219779&algo_expid=89ce7926-7fb0-4589-a9ba-0d1b9f219779-0

Еще есть отладчик с интерфейсом SWD.
Я контролеры ни разу не прошивал и паяльник в руках ни разу не держал, подскажите, что нужно делать чтобы из первой платы сделать ардуину и программировать её из арудино иде. Или как её программировать на имеющемся оборудовании. С программированием разберусь - в школе бейсик и паскаль проходили. Если интересно буду выкладывать результаты.
432 360439
>>360435
Если это ардуина, то не лучше ли пойти к ардуинщикам? Или это у тебя просто микроконтроллер с минимальной обвязкой? Ты для начала с этим определись.

>загрузчик


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

>как её программировать на имеющемся оборудовании


Подключаешь свой J-Link к этой плате, запускаешь на компе сеггеровский J-Flash, выбираешь файл прошивки и нажимаешь кнопку F7. Или еще как-нибудь.
433 360440
>>360439
Они меня оттуда сюда выслали, это STM32 в минимальной обвязке.
Тем загрузчиком что есть можно как-то пользоваться?
У J-Linka штырьков больше, а тут я так понял, 4 боковых это отладочный интерфейс. В каком порядке их подключать, можно J-linkom управлять из CooCox?
434 360443
>>360440

>4 боковых это отладочный интерфейс


Они там подписаны прямо на плате. Все очень просто — SWDIO (SWIO) этой платы подключаешь к SWDIO отладчика, так же поступаешь с SWCLK и GND. Отдельно как-нибудь подключаешь питание.
435 360446
>>360440

>Тем загрузчиком что есть можно как-то пользоваться?


Читать документацию - для слабаков? Ну тогда ищи в гугле "STM32F103 bootloader". Но этот загрузчик тебе не нужен.
436 360447
>>360443
Товарищ, ты хорошо объясняешь, спасибо!
Это я давно понял, загвоздка в том, что в j-linke выводов с таким названием нет https://www.segger.com/products/debug-probes/j-link/technology/interface-description/
>>360446
Вот так прямо и искал, только без букв F103, выдает мануалы по написанию собственного загрузчика и как работает загрузчик и вообще, попробую с указание полного наименования контролера. В основном предлагает через UART, это готовый встроенный, на плате есть усб гнездо и всё сводится к тому, что сначала надо залить через уарт собственный загрузчик, чтобы грузить потом через усб. Адаптера uart нет, есть jlink, на форумах о нем в основном нахожу сначала вопрос "А чо, он работает, да?" Потом сложные слова, а картинки как подключить его к SWD найти не могу. Не серчай, товарищ, все были нюфагами, подскажи что гуглить? Спасибо, товарищ!
437 360449
>>360447

>Это я давно понял, загвоздка в том, что в j-linke выводов с таким названием нет https://www.segger.com/products/debug-probes/j-link/technology/interface-description/


Прокрути чуть ниже страницу - и посмотри внимательно на имена 7 и 9 вывода.
438 360450
>>360447

>в j-linke выводов с таким названием нет


>https://www.segger.com/products/debug-probes/j-link/technology


Прокрути эту страницу ниже, дебилоид!

>Адаптера uart нет


Возьми компьютер с COM-портом. Но зачем, если у тебя сразу два отладчика?!!
439 360451
>>360449
>>360450
Товарищи, спасибо! Благодарю за справедливое товарищеское порицание! Впредь буду внимательнее, чтобы не досаждать окружающим своей тупостью. Благодарю за потраченное на меня время! Надеюсь эти дамы охладят ваше справедливое негодование.

>Возьми компьютер с COM-портом.


Этот компьютер у меня уже сломался.
440 360501
>>359965
Смотри вывод lsusb и ищи VID/PID своего донгла. Потом иди в /etc/udev/rules.d и ищи там файл, который поставился с пакетом ст-линка. Добавь туда такую же строчку, как сейчас там, только поставь VID/PID, которые ты выяснил в начале. После этого нужно будет либо перезагрузиться, либо выполнить от рута udevadm control --reload-rules && udevadm trigger и, возможно, переподключить донгл. После этого всё должно взлететь.
441 360700
>>354998
>>359965
>>354767
Пацаны, я вот не понял о чем они вещают?
http://blog.atollic.com/build-your-embedded-code-as-a-windows-.exe-app

Как бы говорят можно экзешники делать... Но как их запускать на x86 как их делать не говорят, про знаю симуляцию, писал симуляторы.
Есть инфа, о чем они?
442 360703
>>360700
О том, что можно из TrueStudio компилить и под микрухи, и под пеку. То, что можно переиспользовать код проекта между этими двумя таргетами - это уже дело второе
443 360705
>>360703
Ну типа готовой магии нет, которая позволила бы софт сделать бридж между микрухой и пекой, для симуляции отдельных частей? Типа, вам дан конпелятор. Ебитес.
444 360945
Подумываю взять Nucleo-F446RE, нормально или лучше что-то другое?
445 360970
>>360945
Диодом мигать - подойдет. Хочешь еще и F(S)MC - бери nucleo 144 (типа F446ZE), если ethernet - F429ZI
447 361794
>>361793
Открыть даташит на микроконтроллер и посмотреть там? При желании UART можно сделать программно, тогда можно подключать почти к любым выводам. Уточни что именно требуется и зачем.
448 361796
>>361794
курсач делаю, задача отправить данные с компа на внешнюю EEPROM. Пока думаю над частью передачи данных с компа на stm
449 361798
>>361796
В FT232RL (у тебя на первой картинке) есть bit-bang, посредством которого можно писать в ПЗУ с SPI и I2C. Дополнительный микроконтроллер для этого не нужен.
450 361800
>>361796
Осторожней с этим горбатым говном. Да здравствует IIC на серии F1! BDSM Любишь же?
Зачем uart? Может usb-cdc (виртуальный компорт)?
Немного порвал в свое время шаблон - из кубика довольно быстро собирается рабочий пример.
>>357344
>>357367
>>357404
>>357418
>>357419
451 361803
>>361794
У меня вопрос по UART. На пике 1 >>361793 есть гнезда по бокам, там есть RXD, TXD, RXL, TXL. Еще слева пины RX и TX. Какие из них использовать? Под эту плату конкретного даташита нет, только под ft232, там ничего такого не нашел
452 361806
>>361803
Олсо, где взять 3.3V и GND для UART? На stm вижу вот такие гнезда (пик 1), но не уверен что это для внешнего устройства.
Еще на st link есть две пары пинов с 3.3 и GND, одна из пар занята по д stm32 (пик 2). Может быть можно использовать другую пару?
453 361812
>>361806

>Под эту плату конкретного даташита нет


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

Но еще раз повторю — микроконтроллер для такого не нужен, ну просто совсем.
454 361827
>>339005 (OP)
кстати по звуку
хочу на матарошку сигнал - звук боевой фуры
да да вот это ТА ТА с басухой и прочей хуйней...
но ставиь кампрессор ...
да сначала была идея с воздухом и клапаном от выхлопа
но...
сейчас есть не хуевая такая компактная акустика = излучатель - нет проблем его раскачать
проблема в том чтобы именно как в мад максе было - тое парой мультивибраторов хуй обойдешся
тое как минимум там 4-6 нужны гармоник
да я знаю что по басухе даже близко не подойду к воздуху
но всеже
есть ли какие идеи? желательно без контроллеров
455 361985
>>361806
Для UART не нужно подводить питание, соедини GND между собой и подключи RX к TX и TX к RX соответственно. Три провода.
456 362161
Аноны, посоветуйте что почитать чтобы вкатиться? статей-то куча, но везде вброшены куски кода, а никакого объяснения толком нет.
Вот по авр есть крутой курс на изи электронике, есть ли что-то подобное по стм, чтобы разжевывалось все детально, для самых маленьких?
457 362167
>>362161
А кроме стм других микроконтроллеров с архитектурой ARM не существует?
458 362169
>>362161
Читай Reference Manual, лол.
Вообще, а чего ты ждёшь от чтения? Микроконтроллеры - это не наука какая-то, здесь нет никакой теории, формул, законов. Какую периферию с ядром тебе барин даст, такую и придётся использовать. Это тупо макакинг, и опыт здесь приходит только при решении практических задач. Это как если бы ты по книгам учился водить машину или боксировать. Более того, всё микроконтроллеры друг от друга принципиально ничем не отличаются
459 362171
460 362185
>>362167
я понимаю что именно сам язык он один, но объявление портов у авр и арм выглядит по разному, и именно вот эти вещи мне непонятны. Спасибо, буду курить маны, правда так и не могу определиться что взять, нуклео или что-то с али и ст-линк.
>>362171
спасибо.
461 362186
>>339005 (OP)
Аноны, у меня есть мечта детства - умный дом своими руками. В микроконтроллерах я совсем нуб. Программировал разве что AVR в атмел студио когда учился. Очень нравилось.
С чего начинать вобще?
462 362212
463 362219
>>362186

С овна или какого-нибудь другого дешманского ПЛК.
464 362220
>>362219

>ПЛК


Йобу дал? Он пятнашку выложит за говно которое годится только лампочками моргать заместо светодиодов. Нахуя нубу предлагать промоборудование за сотни нефти?
465 362235
>>362186

> мечта детства


> умный дом


Ты 2001 года рождения?
466 362236
>>362235

>2001 года рождения?


Ващет еще в 80-х усачи лепили акустические включалки света от хлопка одной ладони, датчики присутствия на лампах и прочую умноту
467 362243
>>362236
Бедолаги
изображение.png20 Кб, 279x270
468 362347
Сап анонче.
Сегодня начал писать программную реализацию I2C.
Отлаживаюсь на STM32f4 Discovery (камень f407).
Решил работать с шиной таким образом: два пина будут использоваться для прерываний (PD10, PD11), два пина будут использоваться для подтяжки на землю (PD8, PD9).
Прерывания пока никаких проблем не доставили, а вот пины подтяжки вызвали вопрос: включаю выход в режиме Open Drain (в интернетике пишут, что это самый правильный вариант), и при подключении пина в шину I2C он повторяет форму сигнала на шине. Если же отсоединить пин от шины, то он выдаёт то, что я от него и ожидаю.
Если подключить или отключить встроенную пожтяжку к питанию, ситуация не меняется.
Проверяю при помощи логического алианализатора и ардуино (A4 и A5 подтянуты к питанию).
Подскажи анон, я правильно понимаю, что мне придётся поставить по лишнему транзистору на линию? Или задуманное можно осуществить стандартным набором подтяжек?
469 362354
>>362347
Нихрена тебя не понял, но у тебя что-то странное начинается отсюда:

>подтяжки на землю


>Open Drain


Разве на картинке у тебя подтягивающий резистор к земле?
470 362363
>>362347

> Сегодня начал писать программную реализацию I2C.


Но нахуя? Там же есть аппаратная
471 362370
>>362347
Нахуя тебе программный I2C в F4 серии? Горбатые только F100, про них лучше забыть вообще, все остальные (F0/2/3/4/Lx) уже другая периферия
472 362376
>>362363
>>362370
Да я на нём просто алгоритм отлаживаю, потом эту прогу на другой микроконтроллер переносить собираюсь.

>>362354
Так это внешняя подтяжка к питалову. У меня она и есть.
Я же, хочу притягивать линию SDA к земле, своим PD8.
473 362388
>>362376
Все равно не понимаю в чем у тебя проблема. Может быть ты не понимаешь что такое открытый сток (коллектор)? Дополнительные внешние транзисторы не нужны, если что.
474 362391
>>362388
Может быть и так.
Опирался на вот эту статью:
https://hubstub.ru/stm32/152-push-pull-vs-open-drain.html
475 362392
>>362388
Т.е. ты к тому, что мне не нужен открытый коллектор, а нужен Пуш-Пулл?
476 362394
>>362392
Совершенно без понятия что тебе нужно. Для полноценного I2C ребуется открытый сток. Но зачем тебе дополнительный транзистор?
477 362402
>>362394
У меня устройство будет слейвом, если что. Принципиально разницы не должно быть, но на случай если я чего-то не понимаю.

>Но зачем тебе дополнительный транзистор?


Ну, так как у меня встроенный вывод не справляется с задачей, я думал подтягиваться на землю открытием транзистора.
478 362403
>>362402
В каком это месте оно у тебя не справляется?

Допустим взяли вывод микроконтроллера с открытым стоком и подключили его к другому устройству (допустим ведущему) тоже с открытым стоком и притянули все это резистором к питанию.
1) Ведущий выдает лог. 1, тогда на проводе будет:
1.1) лог. 1 если ты выдаешь лог. 1 с микроконтроллера
1.2) лог. 0 если ты выдаешь лог. 0 с микроконтроллера
2) Ведущий выдает лог. 0, тогда на проводе будет лог. 0 вне зависимости от того что выдает микроконтроллер.
479 362405
>>362402
Ты опять выходишь на связь, школотрон?
Сделай простой тест на вшивость - возьми любой вывод, подключи его через резистор 1..10К к питанию. Настрой вывод как open-drain и проверь, что когда в выходном регистре ODR 0 - на выводе напряжение питания, записав 1 в ODR - получишь ноль на выводе.
Как минимум покажет правильно-не правильно быдлокодишь управление уровнями на шине.
jIb7RK2Ri0.jpg32 Кб, 500x350
480 362431
>>362405

>вывод как open-drain


>ODR 0 - на выводе напряжение питания

481 362467
>>362403
>>362405
01 канал - SCL, 03 канал - PD9, 05 канал - SDA
Первый кадр - подтянутый к питалову PD9 - как видно, форму выдаёт как надо.
Второй кадр - PD9 включен в шину, повешен на SDA. Тут уже то о чем я и говорил.
Походу где-то в коде косяк, правда очень странно.
image.png156 Кб, 1281x1054
482 362468
>>362405
>>362402
Прикрепить забыл
483 362469
>>362468
Настойки порта PD9? Полные, куда что пишешь. Каким говнокодом определяешь когда выдавать 0 на шину? На пиках очень разный масштаб. Может свой говнохал неуспевает продристаться? Если включил аппаратый iic-slave - то снова читай тред выше. Если программно - см чуть выше про хал или на каких костылях пишешь - потестируй чем-то другим снаружи на разных скоростях.
484 362478
>>362467
Не понимаю тебя, ты делаешь что-то очень странное и нелогичное.
Зачем ты подключаешь логический анализатор, если у тебя подозрение на то что микроконтроллер в режиме с открытым стоком как-то не так работает? Например микроконтроллер не перешел в режим с открытым стоком или мощи не хватает чтобы притянуть выходной уровень к земле. Тут нужно мультиметром в статике тыкать (без I2C вообще), приблизительно как советовал анон выше >>362405
485 362482
>>362478
Потому что я так и сделал, и увидел что косячит код.
И теперь переделываю код.
>>362469
Хал пока успевает тут как видишь - на первой диаграмме с PD9 можешь видеть импульс. Нашёл в чем был косяк, сейчас подправил. Пойду пилить дальше.
STM32F103C8T6STM32SmartV2.0-1.jpg517 Кб, 1920x1280
486 364545
Посоны, купил на алике значт ЭТО. stm32 Smart 2.1 ебать.
Ну лохонулся, зажал сотку на программатор. Короче dmesg выдаёт такую хуйню:
new full-speed USB device number 13 using ehci-pci
device not accepting address 13, error -32
unable to enumerate USB device
А теперь вопрос, как реализован последовательный интерфейс на эстээмах? У ардуины какой то преобразователь на плате стоит из сериала в усб, а у stm вроде имеет какое то готовое решение на борту которое надо заливать в прошивку или я ошибаюсь?
USBasp 2.0 можно переделать в программатор stm32?
487 364546
>>364545 а да, при включенном питании моргает шоколадным глазом светодиодом
488 364573
>>364545
Ты вообще отличаешь микроконтроллер от отладочной платы с микроконтроллером, или это для тебя одно и то же? Возьми схему своей платы. Может ты не умеешь "читать" схемы? Как ты вообще без схемы собрался что-то программировать?

В самих микроконтроллерах STM32 (а также многих других) есть масочное (т.е. неперепрошиваемое) ПЗУ, в котором записан бутлоадер. Этот бутлоадер может грузить прошивку через UART, а также через другие интерфейсы в зависимости от микроконтроллера. Поэтому для программирования STM32 а также других кортексов достаточно переходника USB-UART.
489 364629
>>364545

> А теперь вопрос, как реализован последовательный интерфейс на эстээмах?


У конкретно этого МК на борту есть контроллер usb. Но без бутлодера, или другого ПО, которое его настроит, он не будет просто так работать.

> а у stm вроде имеет какое то готовое решение на борту которое надо заливать в прошивку или я ошибаюсь?


Да, у них прошит первичный бутлоадер, но он работает только через uart

> USBasp 2.0 можно переделать в программатор stm32?


Чтобы залить бутлоадер тебе нужен usb uart ttl конвертор, как написал анон выше. Внимательно проверь напряжение, стмки рассчитаны на 3.3В
Как через него залить ардуиновский usb бутлоадер можно почитать здесь
https://habr.com/ru/post/395577/
490 364647
>>364629

>Внимательно проверь напряжение, стмки рассчитаны на 3.3В


Там эти выводы 5V-tolerant. Из популярных переходников USB-UART наверное только в CH340 могут быть пятивольтовые уровни. Если сравнить логические уровни CH340 и STM32, то будет видно что проблем не должно быть.

>ttl


А КМОП значит не подойдет?

>Как через него залить ардуиновский usb бутлоадер можно почитать здесь


Мерзость. И для отладочной платы бессмысленно, потому что есть дешевые отладчики (J-Link и другие).
491 364678
>>364647
Пожалуйста, не выёбывайся
492 364688
>>364678
Я выебнулся только в том месте где написал что это мерзость. Разве это не мерзость? Про то что не подойдут пятивольтовые - подойдут, это не критично. Писать usb uart ttl тоже не стоит, потому что ТТЛ тут часто абсолютно не при чем.
493 365291
А Mastering STM32 0.26 нет нигде? Есть на Scribd, но оттуда нельзя скачать.

https://www.scribd.com/document/398873018/Mastering-Stm32
494 365359
>>365291

>нет нигде?


Купи да выложи, что тебя останавливает?
495 365380
>>365291
Если посмотреть чейджлоги, то валяющаяся везде 0.21 не сильно хуже - там только пара ошибок и не описаны семейства L4 и WB.
496 365385
Только вкатываюсь, объясните что за дела.

В общем, есть stm32f030 — https://www.openimpulse.com/blog/products-page/product-category/stm32f030f4p6-mini-development-board/
Пример проекта оттуда, использующий CMSIS и SPL, я скомпилил в uVision'е, objcopy из .axf'а в .bin. Пользуюсь другой ОС, MDK не могу и не буду использовать.

Далее st-flash write led.bin 0x8000000 всё нормально работает, после прошивки я могу его ресетать кнопкой иил прошивать ещё.

А вот если я попробую скопилировать arm-none-eabi-gcc вот этот bare-metal пример - https://github.com/bjornfor/stm32-test/tree/master/bare-metal (make all ; st-flash write main.bin 0x8000000), то я получаю ситуацию, что программа работает, но st-flash двайс больше не видит. Если нажать кнопку ресета, то программа больше не работает, а st-flash его снова видит и можно прошивать.
Если я после этого нажму ресет, выполню st-flash reset, то теперь уже нажатие кнопки просто ребутает чип и он исполняет программу. Однако, st-flash'ем теперь зписать сложно: нужно зажать ресет, запустить st-flash и отпустить ресет после начала работы но до таймаута. Не очень круто.

Это как-то связно с BOOT0 и его подключением на gnd или 3v3, видимо, но я не очень понял, как именно и почему бинарник из того проекта по ссылке таких проблем не имеет.

Разве st-link не должен сам сбрасывать девайс перед прошивкой? Пробовал подключать st-link RST -> NRST, ничего не поменялось. (st-link у меня китайский клон, v2).

Собственно, кто виноват и как сделать так, чтобы я мог и прошивать постоянно, и после ресета программа запускалась?
497 365400
>>365385
Даже не знаю что тебе посоветовать.

>этот bare-metal пример


Для начала выкини из него все лишнее, включая настройку RCC (функция clock_setup). Микроконтроллер вполне можно подвесить если неправильно настроить тактирование. Оставь только настройку вывода к которому подключен светодиод.

>Это как-то связно с BOOT0


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

>Разве st-link не должен сам сбрасывать девайс перед прошивкой? Пробовал подключать st-link RST -> NRST


На счет st-link не знаю, но обычно это настраивается.
498 365402
>>365400

>Для начала выкини из него все лишнее


Вот это хорошая была идея, спасибо.

Значит, там в main.c было:

>GPIOC->MODER = 0x01 << (LED_IR2);


>GPIOC->MODER |= 0x01 << (LED_BLUE2);


>GPIOC->MODER |= 0x01 << (LED_GREEN*2);



А у меня-то диод подключён к 4-ому пину GPIO, поэтому я тут просто заменил всё на GPIOA, и дефайны LED все сделал равными 4-м, лень было удалять и потом разгребать ошибки компилятора.
И вот "GPIOA->MODER = 0x01" всё ломает, так как SWDIO и SWCLK же к на пинах PA13 и PA14 висят.

Правда, почему после ресета программа не выполнялось не очень ясно, есть идеи?
FLASHACR.png47 Кб, 935x621
499 365403
>>365400
Я похоже угадал на счет тактирования.

>RCC->CFGR |= 10 << 18; // PLLMUL[3:0]: set PLL input clock multiplier


Умножение частоты HSI/2 на 12, получается 48 МГц, вроде как не превышает допустимую. Однако флешка не может работать на столь большой частоте и перед переключением на тактирование от PLL необходимо настроить количество тактов ожидания при чтении памяти.
500 365404
>>365403
Не, clock_setup не влияет ни на что.
501 366361
Надоело рисовать алгоритмы работы на бумаге, перед непосредственно написание программы. Есть ли годные удобные редакторы для рисования алгоритмов?
502 366362
>>366361
Simulink
Какие нибудь опенсорсные фреймворки для ПЛК
503 366484
Не пойму, что происходит, почему я не могу поделить обычные целые числа?

STM32F030F4P6 + CMSIS + стандартные system/startup файлы.

>int main() {


> int x = 20;


> int y = x / 10;


>}



Вызывает у контроллера бугурт:
Breakpoint 1, main () at src/main.c:48
48 int x = 20;
(gdb) s
49 int y = x / 10;
(gdb) s
^C
Program received signal SIGINT, Interrupt.
WWDG_IRQHandler () at device/src/startup_stm32f030.s:148
148 b Infinite_Loop
(gdb) bt
#0 WWDG_IRQHandler () at device/src/startup_stm32f030.s:148
#1 <signal handler called>
#2 0x08000894 in ?? ()
#3 0x08000574 in main () at src/main.c:49

на 2-4-8 и прочие степени двойки делить могу. Что за фигня-то, даже attiny справляется ведь, и без какой-либо возни с моей стороны. Где я обосрался?

В листинге ( https://pastebin.com/NZN1tRnW ) всякие __divsi3 сгенерились, что-то там он должен бытать сделать, но, похоже, не может:

>(gdb) s


>46 int y = x / 10;


>(gdb) si


>0x0800034446 int y = x / 10;


>(gdb) si


>0x0800034646 int y = x / 10;


>(gdb) si


>0x0800034846 int y = x / 10;


>(gdb) si


>0x080001ec in __divsi3 ()


>(gdb) si


>0x080001ee in __divsi3 ()


>(gdb) si


>0x08000894 in ?? ()


>(gdb) si


>WWDG_IRQHandler () at device/src/startup_stm32f030.s:148


>148 b Infinite_Loop



При этом в __divsi3 нет никакого 1ee:

>080001ec <__divsi3>:


> 80001ec: e3510000 cmp r1, #0


> 80001f0: 0a000043 beq 8000304 <.divsi3_skip_div0_test+0x110>



Так и какого хрена он туда прыгает? Или почему не идёт дальше по по адресам, пока до 1f0 не дойдёт, чё за хуйня?
503 366484
Не пойму, что происходит, почему я не могу поделить обычные целые числа?

STM32F030F4P6 + CMSIS + стандартные system/startup файлы.

>int main() {


> int x = 20;


> int y = x / 10;


>}



Вызывает у контроллера бугурт:
Breakpoint 1, main () at src/main.c:48
48 int x = 20;
(gdb) s
49 int y = x / 10;
(gdb) s
^C
Program received signal SIGINT, Interrupt.
WWDG_IRQHandler () at device/src/startup_stm32f030.s:148
148 b Infinite_Loop
(gdb) bt
#0 WWDG_IRQHandler () at device/src/startup_stm32f030.s:148
#1 <signal handler called>
#2 0x08000894 in ?? ()
#3 0x08000574 in main () at src/main.c:49

на 2-4-8 и прочие степени двойки делить могу. Что за фигня-то, даже attiny справляется ведь, и без какой-либо возни с моей стороны. Где я обосрался?

В листинге ( https://pastebin.com/NZN1tRnW ) всякие __divsi3 сгенерились, что-то там он должен бытать сделать, но, похоже, не может:

>(gdb) s


>46 int y = x / 10;


>(gdb) si


>0x0800034446 int y = x / 10;


>(gdb) si


>0x0800034646 int y = x / 10;


>(gdb) si


>0x0800034846 int y = x / 10;


>(gdb) si


>0x080001ec in __divsi3 ()


>(gdb) si


>0x080001ee in __divsi3 ()


>(gdb) si


>0x08000894 in ?? ()


>(gdb) si


>WWDG_IRQHandler () at device/src/startup_stm32f030.s:148


>148 b Infinite_Loop



При этом в __divsi3 нет никакого 1ee:

>080001ec <__divsi3>:


> 80001ec: e3510000 cmp r1, #0


> 80001f0: 0a000043 beq 8000304 <.divsi3_skip_div0_test+0x110>



Так и какого хрена он туда прыгает? Или почему не идёт дальше по по адресам, пока до 1f0 не дойдёт, чё за хуйня?
504 366507
>>366484
Очевидно, конпиляктор нагенерил какую-то хуйню, видимо не тот опкод. Судя по твоим листингам и ошибкам, компилятор хотел сгенерить 32-битную инструкцию, но процессор воспринимает её как короткую 16-битную, поэтому инкрементирует pc на 2 байта и неверно читает следующую инструкцию, что вызывает исключение.
Ты каким-нибудь gcc наверное пользуешься?

> на 2-4-8 и прочие степени двойки делить могу.


Там компулнятор простой сдвиг подсовывает

> всякие __divsi3 сгенерились


Встроенная функция деления для процессоров без аппаратной инструкции деления
Ты стандартную библиотеку откуда берёшь? Возможно, она не от той архитектуры, проверь флаги компилятора
505 366511
>>366507

>Ты каким-нибудь gcc наверное пользуешься?


Да.

>Ты стандартную библиотеку откуда берёшь?


О, спасибо. Я запутался с ними и в итоге просто пару путей добавил в мейкфайл и забыл, в надежде, что оно само магически нужное берёт, ведь типа работало. Поменял на thumb/v6-m/libgcc.a и всё заработало.
15485402162570.png221 Кб, 648x526
506 366584
Объясните, плез, как с помощью таймера:
а) сгенерировать положительный импульс шириной 10 микросекунд?
б) измерить ширину импульса?
Не на примере, а по хардварной части: что и как считается.
Ну там частота таймера, прескейлер, CCV счётчик - как всё это связано.
507 366594
>>366584

>а) сгенерировать положительный импульс шириной 10 микросекунд?


OneShotMode режим таймера.

>б) измерить ширину импульса?


Точно не помню, но вроде через захват значений таймера, который тупо считает и по разнице значений узнаешь ширину.
508 366597
>>366594
Не то.
509 366711
>>339005 (OP)
Собираюсь прикупить со зряплаты STM32F746G-DISCO Порадуйтесь за меня штоле.
510 366714
>>366711
Подумывал, но как-то на кусок говна похоже.
Как минимум используется только половина штатной sdram, немного в ебенях разъем пердуины и... СУКА НЕТ GPIO. ВОТ ПРЯМ ПРАКТИЧЕСКИ НИХУЯ. Вещь в себе. Нет огромного простора для подключения всякого барахла. С натягов 429-disco тоже не очень. Хоть и все выводы выведены, но и при этом почти все заняты какой-либо периферией, что накладывает довольно жесткие ограничения.
511 366715
>>366711
придёт бракованная
или посылка потеряется
512 366717
>>366715

>придёт бракованная


>или посылка потеряется



Я же не долбоёб на Али заказывать. В Электронщике 6к это удовольствие.
513 366719
>>366714

>Нет огромного простора для подключения всякого барахла


Огромный простор у меня есть на 429-диско. Eval-борда со всякими GPIO стоит ебаных сотен нефти. А тут вроде куча периферии и вся уже распаяна, только код меняй. Таки попробую.
514 366722
>>366719

>Огромный простор у меня есть на 429-диско.


Можешь показать как например ВСЕ uart-ы использовать?
Как-то пробовал - со скрипом только 3 пары rx-tx нашел.
Или например все SPI разом использовать?
515 366724
>>366711
Ну не знаю, я бы всё таки смотрел в сторону STM32H7, если уж нужен мощный микроконтроллер
516 366726
>>366722

>как например ВСЕ uart-ы использовать?


В Кубе переназначь выводы используемые под дисплей и почую периферию и используй все юарты
517 366728
>>366724

>STM32H7


Нету у Электронщика. Даже на самом ST нет в свободной продаже.
518 366730
>>366726

>переназначь выводы используемые под дисплей и прочую периферию


А ты мне прибежишь и перепаяешь при этом дисплей? Это не пердуино тред же.

Знаю что тебе впадлу искать, давай про юарт на 429-disco:
uart4 PA0+PA1 - PA0=кнопка, PA1=int1
usart2 pa2+pa3 - pa2=int2, pa3=lcd db3
usart1 pa9+pa10 - чистые
usart1 pb6+pb7 - pb6(TX)=sdne1, pb7-чист
usart3 pb10+pb11 - lcd db8+db9 (условно чистые)
usart6 pc6+pc7 - lcd hsync+db10 (условно чистые)
usart3 pc10+pc11 - lcd db12 + чист (условно чистые)
uart4 pc10+pc11 - lcd db12 + чист (условно чистые)
uart5 pc12+pd2 - чистые
usart2 pd5+pd6 - чист+lcd db0 (условно чистые)
usart3 pd8+pd9 - lcd d13+d14 (условно чистые)
uart8 pe0+pe1 - nbl0+nbl1 (условно чистые)
uart7 pe7+pe8 - sdram d4+d5
uart7 pf6+pf7 - чист + dxc(spi)
usart6 pg9+pg14 - чист + red led (условно чистые)
По итогу - всего 3 чистых юарта. Нужно больше? Проебите экран сэр! Проебите SDRAM память, сэр!
519 366732
>>366730
Слушай, это демоплата для работы с fmc и lcd контроллером, этож не usart плата, кому вообще придет в голову на демоплате использовать больше 2х портов? Ты еще бы пожаловался, что ты не можешь использовать ВСЮ переферию одновременно. Если тебе нужны порты, то это уже целевая плата - делай ее сам. Ей богу, как долбоебы обезумевшие.
520 366739
>>366730

>и перепаяешь при этом дисплей?


Если тебе нужны все UART-ы, то смирись и забудь про дисплей. Странный ты какой-то.
521 366754
>>366728
Я только вариант Nucleo видел из недорогих. Discovery вроде даже на него нет. Зато этот проц на 40-нм техпроцессе сделан вместо 90, как у F7, что позволило частоту аж 400 МГц поднять.
522 366761
>>366754

>400 МГц


Данунах. Мне столько не надь. Для таких частот у меня есть пара плат от промкомпов на х86 процах.
523 366763
>>366754

>Discovery вроде даже на него нет.


На сайте ST есть. Состояние Active, цена 84 бакса, но нет в продаже и только ссылка на спросить u sales office
https://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/mcu-mpu-eval-tools/stm32-mcu-mpu-eval-tools/stm32-discovery-kits/stm32h750b-dk.html
524 366764
>>366763

>84 бакса


87. Извиняюсь за фейк-ньюс
525 366768
>>366754
И это, там ST жи заебенило йоба-контроллер двухядерный и платку на нем STM32MP157A-DK1 , но как по мне, это уже перебор для домашнего усачества.
526 366845
У меня тупой вопрос по USART'у. Если я делаю что-то типа консольного управления МК, мне нужно каждую отправленную букву назад высылать, чтобы не печатать в пустоту? Или на клиенте local echo должно быть включено?

А то, например, в screen'е локал эхо даже нет. В tio оно странновато работало (иногда по букве, а иногде только сразу после всей строки появлялось). Из примеров реализаций низкоуровненых имеется только esp8266 рядом, и там как раз каждый символ мне назад и высылается, поэтому с local echo будет дублироваться (диод мигает, без rx линии я будто ничего не печатаю, но если перед \n подключу, то нормально всё отвечает).

Пытался загуглить но что-то ничего полезного не нашёл, будто я один дурак такой. Но в примерах кода я никакого такого побуквенного эхо не видел. У всех в клиенте всё нормально печатается без лишних движений (например, тут https://visualgdb.com/tutorials/arm/stm32/uart/ ).
527 366872
>>366845

> мне нужно каждую отправленную букву назад высылать, чтобы не печатать в пустоту?


Да, везде так. Даже ssh на Линукс через сеть точно так же работает, каждый символ эхом обратно отправляет
528 366888
>>366872
А как тогда правильно структурно организовать передачу данных, если по прерываниям из буферов отправляется и приходит символ во время передачи данных? Не из прерывания же отправлять эхо это. Отключать прерывание по приходу данных на время передачи, чтобы другая сторона остановилась? Или просто докладывать пришедшие данные в буфер на передачу, чтобы он их после всего предыдущего сообщения отправил? Вроде бы что-то похожее на второй вариант я обычно вижу, если скопирую-вставляю, например, много комманд сразу. Или вообще иметь два буфера: обычный и для "эхо"?
529 366892
>>366888
Наверное платиновый вопрос - есть ввод ПАРОЛЕЙ и прочей конфиденциальной инфы? Исходи из этого.
Если нет - рискнул бы один большой входной буфер и конченный автомат, посимвольно разгребающий эту кучу говна.
Как отличить границы команд? Магический перевод строки.
Со стрелками курсора интересно будет - они выглядят примерно так "^[[A".."^[[C", бекспейс и делете немного иначе выглядит.
В свою бытность быдлокодил меню и.. местами сосал хуй, правда терминалы не помню. Показывалась только одна строка в самом низу или цвет строки(выделение) не восстанавливалось ESCAPE последовательностью (погугли - ими можешь и цвет менять, и курсор в любое место экрана запихнуть с этого места печатать. Если твой терминал не умеет в escape последовательности - увидишь в явном виде бред в стиле ^[[C" т подобный)
530 366898
>>366892
Да не, какие пароли, пока ничего такого.

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


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

>peredat'_sto_bait() {


> memcpy(outbuf, sto_simvolov, 100);


> enable_txe_interrupt();


>}


Данные пошли передаваться, и на 50-ом символе нетерпеливый пользователь берёт и кнопку тыкает, на мк срабатывает RXNE прерывание. Что тут нужно делать? Записать пришеший байт в коне outbuf'а, записав предварительно записав куда-нибудь текущее количество байт в нём, и жить спокойно? Или вообще не обрабатывать приём, когда идёт передача, а потом уже гарантировано иметь себе пустой выходной регистр?

Почитал Mastering STM32, так там в примере с использованием HAL'а вообще нельзя одновременно и передавать, и принимать (ну, внутри HAL'а самого), и прерывания отключаются, и проверки при входе в фукнции есть. Да и код у него немного странный, намешаны Receive/Transmit и Receive_IT/Transmit_IT. Так и надо, что ли? При этом readUserInput() стоит проверка флага, который выставляется в 'data transfer complete' хендлере, который вызывает по окончанию приёма который может начаться лишь после вызова HAL_UART_Receive_IT, который вызывается лишь когда этот флаг выставлен. Нигде инициализации его я не видел, может пропустил, конечно, бегло посмотрел. Ну и он там просто берёт и отправляет назад только что полученный символ без всяких прерываний наплевав на всё. То есть, я зря выдумаваю себе лишние проблемы, что ли? Проверка на состояние TXE флага ведь выполнится в "обычном" коде лишь тогда, когда прерывания по нему прекратятся и отключатся, верно?

Просто опять у него какое-то получается "описание возможностей", которое и в reference manual'е найти можно, а мне бы "реальный пример" хотелось бы, а не вроде бы работающую штуку, но делают ли так в жизни не сказано. Ну знаешь, как бывает, вот мы нахуярили тут что-то, а в следующей главе "но это всё не очень правильно и приведёт к ошибкам".

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

Всякие анси и прочие эскейп коды это я знаю.
530 366898
>>366892
Да не, какие пароли, пока ничего такого.

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


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

>peredat'_sto_bait() {


> memcpy(outbuf, sto_simvolov, 100);


> enable_txe_interrupt();


>}


Данные пошли передаваться, и на 50-ом символе нетерпеливый пользователь берёт и кнопку тыкает, на мк срабатывает RXNE прерывание. Что тут нужно делать? Записать пришеший байт в коне outbuf'а, записав предварительно записав куда-нибудь текущее количество байт в нём, и жить спокойно? Или вообще не обрабатывать приём, когда идёт передача, а потом уже гарантировано иметь себе пустой выходной регистр?

Почитал Mastering STM32, так там в примере с использованием HAL'а вообще нельзя одновременно и передавать, и принимать (ну, внутри HAL'а самого), и прерывания отключаются, и проверки при входе в фукнции есть. Да и код у него немного странный, намешаны Receive/Transmit и Receive_IT/Transmit_IT. Так и надо, что ли? При этом readUserInput() стоит проверка флага, который выставляется в 'data transfer complete' хендлере, который вызывает по окончанию приёма который может начаться лишь после вызова HAL_UART_Receive_IT, который вызывается лишь когда этот флаг выставлен. Нигде инициализации его я не видел, может пропустил, конечно, бегло посмотрел. Ну и он там просто берёт и отправляет назад только что полученный символ без всяких прерываний наплевав на всё. То есть, я зря выдумаваю себе лишние проблемы, что ли? Проверка на состояние TXE флага ведь выполнится в "обычном" коде лишь тогда, когда прерывания по нему прекратятся и отключатся, верно?

Просто опять у него какое-то получается "описание возможностей", которое и в reference manual'е найти можно, а мне бы "реальный пример" хотелось бы, а не вроде бы работающую штуку, но делают ли так в жизни не сказано. Ну знаешь, как бывает, вот мы нахуярили тут что-то, а в следующей главе "но это всё не очень правильно и приведёт к ошибкам".

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

Всякие анси и прочие эскейп коды это я знаю.
531 366899
>>366888

> Не из прерывания же отправлять эхо это.


Чому нет? Отправка байта по уарту - это обычно всего лишь одна инструкция записи в регистр передачи. То есть, в прерывании читаешь байт из регистра приёма, сохраняешь его в свой буфер, либо делаешь обработку какую тебе там надо, и тут же записываешь в регистр передачи уарта. Ну получится у тебя в обработчике прерывания на одну инструкцию больше - говно вопрос. Можно примерно так почувствовать, что при обработчике прерывания в 16 инструкций при тактовой частоте 16МГц прерывание будет выполняться за 1 микросекунду. При этом время передачи одного бита через уарт на скорости 115200 примерно в 8.6 раз дольше, чем выполняется прерываение, а если взять передачу одного байта, то ещё умножь на 10

> Отключать прерывание по приходу данных на время передачи, чтобы другая сторона остановилась?


Нет, зачем, уарт же дуплексный.

> Или просто докладывать пришедшие данные в буфер на передачу, чтобы он их после всего предыдущего сообщения отправил?


Глупости какие. Ты слишком заморачиваешься. Ты пойми, никакой, даже самый заядлый прогромист, не сможет набирать на клавиатуре тысячи символов в секунду, где у тебя бы встала проблема с быстродействием и нужно было бы принимать специальные меры. В расчёте выше показано, что даже если полностью загрузить уарт на скорости 115200 и делать всё на прерываниях, то нагрузка на процессор всё равно будет мизерной. Чтобы почувствовать какие-то проблемы с быстродействием, тебе нужно умудриться написать обработчик прерывания больше, чем на тысячу тактов, чего, конечно же, делать не стоит
532 366903
>>366899

> при тактовой частоте 16МГц


Бля, я думал, я в ардуино-треде, лол. Ну можешь пересчитать на соответствующую частоту
533 366904
>>366899

>Чому нет?


Тогда туда ведь надо ставить и while (txe != set)? Ведь туда только что могло txe прерывание записать данные, которые я отправляю. Вот меня это ожидание немножко волнует, ведь это как раз и ждать передачу целого байта, что долго. Или тоже фигня?

Я не то чтобы о быстродействии забочусь, а скорее об, эм, стойкости, что ли, ну что б внезапно вдруг не сломалось что-то.
534 366905
>>366904
Это нужно, если ты только, вот прям только что, записывал какое-то значение в регистр передачи, и передача этого байта ещё не успела закончиться. Но, так как скорость приёма и передачи у тебя одинаковая, и ты записываешь значение для передачи только по прерыванию приёма, ты физически не сможешь записать что-то в регистр передачи, когда передача предыдущего байта ещё не завершилась. Ты можешь оставить эту проверку на всякий случай, она всё равно будет сразу же выходить

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


Не понял, что за прерываение? Ты сам записываешь в TDR внутри прерывания по приёму. Прерывания на передачу не нужны
535 366913
>>366898

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


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


Еще раз - один огромный кольцевой буфер, куда валится все входящее говно.
(утрированно) "команда1 параметры1"0x0d"команда2"0x0a"команда3 параметры1 параметры2"0x0d0x0a"команда4"
Идешь посимвольно с самого начала буфера и анализируешь
что пришло. Здесь основная магия именно в кольцевом буфере и побайтовом разборе.

>>366898

>на 50-ом символе нетерпеливый пользователь берёт и кнопку тыкает


На некоторых свичах (кажется DES-3200-28 и подобных от D-link) - используется первый вариант. Можно дать далеко не одну команду настройки, а с 10-20-30, и пока он их поочередно выполняет - ему глубоко похуй что там пользователь тычет и нет возможности прервать выполнение команды вида "config vlan default delete ports 1-28" при локальной настройке через консоль не актуально, а вот по сети.. кому надо - поймут какая это боль в этой команде.
После выполнения всех команд отображаются вводимые пользователем символы.

У тебя кажется просто шиза на realtime исполнение. Не ядерным реактором же управляешь. Просто дописал в мануале - пока не выполнится текущая команда, данные новой команды не отображаются, пока не закончится выполнение программы. Спишь спокойно. При одиночном вводе символов, а не копипасты пачки команд эти строчки не актуальны и будет "эхо" в реальном времени.
536 366918
>>366845
Я бы как-нибудь все это разделил.
1) Для начала сделать функции чтения/записи по одному символу в кольцевой буфер (FIFO). Желательно сделать так, чтобы эти функции принимали указатель на сам кольцевой буфер, чтобы можно было сделать произвольное количество буферов без копипаста функций.
2) Сделать два кольцевых буфера с помощью функций из пункта 1, сделать прием данных в один кольцевой буфер и отправку из другого. И не столь важно по прерываниям это будет, через ПДП или просто через ожидание в цикле.
3) Написать функции копирования строк в буфер на передачу. Можно с использованием sprintf.
4) Сделать массив структур с описанием имеющихся команд. В структурах должна быть строка с именем команды, указатель на функцию соответствующей команды, что-то указывающее на тип аргумента и прочее что требуется.
5) Написать функцию разбора команд. Для большей универсальности, особенно если каждая в отдельности команда короткая, эта функция может принимать просто по одному символу в какой-то свой небольшой буфер. Эта функция должна отделять команду от аргументов (если они есть), и искать соответствующую структуру в массиве из пункта 4, а потом вызывать соответствующую функцию по указателю из найденной структуры.
6) Все соединяешь и готово. Эхо вставляешь куда угодно, при таком разделении это не потребует много кода.

В результате получишь более-менее универсальный код, который сможет работать на любых микроконтроллерах с минимальными изменениями. Какая-то зависимость от аппаратной части будет только в пунктах 2 и 6. Пункты 3-5 совсем никак не зависят от аппаратной части и от того куда ты вставил эхо.
537 366925
>>339005 (OP)
СВЕРШИЛОСЬ! ST заебенило STM32CubeIDE! Кочаю и буду устанавливать на все компьютеры.
https://my.st.com/content/my_st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-ides/stm32cubeide.html
538 366927
>>366925
Сильно отличается от обычного эклипса с плагинами?
539 366939
>>366927
Бес понятия. У меня Кейл.
540 366944
Нужен SDK вроде Keil под Windows XP, для работы с STM32F103
541 366947
>>366944

>под Windows XP


А чо не под Win 3.1?
542 366954
>>366944
SDK это что такое? Компилятор вместе с CMSIS/SPL/HAL и прочим в одной коробке? Так просто возьми gcc и пиши мейкфайлы руками.
А что тебе мешает взять кейл? Новые версии под XP не работают? Так возьми старую версию.
543 366978
>>366947
ну есть ноут с Win 10, но я боюсь его сжечь по неопытности.
>>366954
>Так возьми старую версию.
Смотрел Keil 4, там нет серии Fxxx вообще, только какие-то uPSD
544 366980
>>366978

>боюсь его сжечь по неопытности.


Чем? Компиляцией своего говнокода?
545 366981
>>366980
запуском говнокода.
А еще при пайке EEPROM кажется перегрел ее, может быть она уже сдохла. Хз как проверить
546 366986
>>366978

>только какие-то uPSD


У этих архитектура 8032. Значит ты скачал кейл для 8051, а не для ARM.
И пофигу вообще на все эти списки микроконтроллеров в кейле. Это всего лишь предустановки линкера и флагов компилятора. Может лучше с ардуины начнешь, если такого не понимаешь?

>>366981
Не понял. Бред какой-то. Говнокод - это что? Кейл? Или твой код, запускаемый в кейловском симуляторе?
547 366989
>>366986

>Может лучше с ардуины начнешь, если такого не понимаешь?


нет, это по учебе. Да и зачем ардуино, понимания от этого не прибавится же, это просто поиграться.

>Говнокод - это что?


>твой код?


да
548 366995
>>366989

>Да и зачем ардуино, понимания от этого не прибавится же


Пердуина это плата с программируемым микроконтроллером, только несколько помедленней чем STM32 и с более слабой периферией. Так что если ардуина не даст никакого понимания, то STM32 тем более.

>да


Это сильно. Для этого, для начала тебе придется взломать симулятор, потом... Просто бред. Да и вообще не обязательно запускать код в симуляторе. Или твой код неким чудодейственным способом сломает компьютер при загрузке в микроконтроллер?
Ладно бы ты еще боялся пожечь порты, это еще как-то возможно, но это просто невероятный бред.

Кстати, 5-ых кейлов много разных версий. Там даже компилятор практически сменили в одной из версий - был на основе gcc, стал на основе llvm. Какие-то версии кейла 5 наверняка должны работать под XP.
549 367006
>>366995

>Так что если ардуина не даст никакого понимания, то STM32 тем более


Какого понимания? Что конкретно? Ты тут писал >>366986

>У этих архитектура 8032. Значит ты скачал кейл для 8051, а не для ARM.


>И пофигу вообще на все эти списки микроконтроллеров в кейле. >Это всего лишь предустановки линкера и флагов компилятора. >Может лучше с ардуины начнешь, если такого не понимаешь?


При чем тут ардуино вообще?

>Это сильно. Для этого, для начала тебе придется взломать симулятор, потом... Просто бред


Ладно, я наверное ошибся. Дело не в моем коде, а скорее в правильно спаянной схеме, и исправности компонентов. Может быть что-то где-то замкнет, и...
550 367011
>>367006

>Какого понимания?


Вот и я про то же. Про какое понимание ты писал? Про понимание общих принципов работы микроконтроллеров? Так для этого ардуина вполне подходит, и не сожгешь ничего.
И зачем ты процитировал фразы, касающиеся архитектуры? Еще раз повторяю: ты взял 4-ый кейл не для ARM. Кейл бывает для архитектур ARM Cortex-M, 8051, C166 и 80251. Все это разные компиляторы и IDE.
Потом, даже если в списках кейла нет твоего микроконтроллера - это не помешает компилировать в кейле код для твоего микроконтроллера. Для этого нужно выбрать архитектуру, задать параметры для линкера и некоторые флаги компилятора. Необходимо только чтобы в этом кейле был компилятор для нужной архитектуры (ARM Cortex-M).

>Может быть что-то где-то замкнет, и...


И нихуя, если только не подашь на вход 220 В или что-то в том же роде. Но даже если так боишься, то грузи программу в STM32 через UART с гальванической изоляцией, тогда даже если киловольт подашь, все равно компьютеру ничего не сделается.
Теперь понял?
551 367014
>>367011
Теперь понял, спасибо анончик
552 367020
>>366905

>Прерывания на передачу не нужны


Как не нужны, не блокируя ж высылать данные. А в главном while'е постоянно проверять не хочется, всё намешано в одну кучу в итоге будет.

>на realtime исполнение. Просто дописал в мануале - пока не выполнится текущая команда, данные новой команды не отображаются, пока не закончится выполнение программы.


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

Ты почему-то всё на обработку входа упор делал, но у меня вопрос-то был лишь о синхронизации передачи из двух мест (ответ на команду и эхо).

>ты физически не сможешь записать что-то в регистр передачи


Это если я только эхо имею, не? Но ведь я могу и, скажем, ответ на предыдущую команду в этот момент передавать.
Вот, например, такой код — https://pastebin.com/aNMj0gvi. Скорость 300 выставил, разумеется, чтобы наблюдать за всем. При нажатии кнопок (в любой момент) диод мигает, счётчик циклов инкрементируется, соответствующее количество сообщений отправляется, то есть всё куда и когда надо приходит. Но вот никакого эхо нажатых во время получения сообщения кнопок нет, потому что регистр перезаписывается отправкой сообщения, о чём я и говорил. (Не очень понимаю, правда, почему он проверку на TXE проходит.) Раскомментировав строку 22 всё выходит нормально — и сообщение приходит, и эхо (смешивающееся с сообщением, да). Ну или проверку отправки сообщения тоже можно на if ((USART1->ISR & USART_ISR_TC) == USART_ISR_TC) заменить, но почему-то везде TXE используют.

В общем, спасибо, буду пытаться делать через кольцевые буферы. И >>366918 тебе тоже.
553 367025
>>367020
Без понятия на счет всех этих регистров, т.к. c STM32 очень давно ничего не делал. Но у тебя получается примерно такой алгоритм:
1) Если что-то пришло, то отправить на выход.
2) Если буфер передатчика пуст, то вывести очередной символ из usart_out_buff.
3) Перейти к пункту 1.
Ну и что ты хотел? Выводишь в пункте 2 символ и не дожидаешься окончания передачи, в результате сразу можешь перейти к пункту 1, когда буфер передачи еще не пуст. Это как-то нелогично.

Почему бы не выводить только из одного единственного FIFO?
1) Сделать два FIFO, один на передачу, другой на прием.
2) По прерыванию записываешь принятый байт в приемный FIFO.
3) Где-нибудь выдаешь байты из FIFO на передачу в регистр TDR. Это можно сделать как угодно - по прерыванию или задействовать ПДП.
4) В основном цикле переписываешь байты из приемного FIFO в FIFO на передачу и делаешь разбор команд и выполнение команд. Там же дописываешь в FIFO на передачу свои сообщения.
В результате ничего не путается и все хорошо. Конечно, в этом случае эхо будет ждать пока не выполнятся команды, но разве это плохо? Наоборот, вывод команды не будет путаться с эхом. Даже циклы вида while ((USART1->ISR & USART_ISR_TC) != USART_ISR_TC) {} при таком подходе не требуются.
554 367039
Какого хуя, у меня ломается ШИМ на таймере, если в совершенно другом месте добавляю заполнение структуры данных? Грешу на то, что у меня максимальная оптимизация в кейле, но это прям хуй знает что за магия. Памяти в коде вроде занято всего 130кб из 256, так что это не должно влиять. В довесок вопрос, а можно ли включать оптимизацию отдельных кусков кода, а не всего целиком?
555 367043
>>367039
У тебя в структуре где-то наползание данных на другие, на переменные твоего шима. Смотри адреса пепеменных и ближайшие массивы, вполне возможно что вылез за пределы чего-то если пользуешься указателями, 90% что твой проеб
556 367044
>>367020

> Это если я только эхо имею, не?


Да, я что-то не подумал, что тебе нужно ещё кроме эха отправлять, лол
557 367069
>>367025

>Ну и что ты хотел?


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

>но разве это плохо?


Это даже хорошо и я именно так всё и сделаю, да.
WP20190517065354Pro.jpg1,3 Мб, 3264x1840
558 367293
>>339005 (OP)
Почаны, пришла тут моя стм32ф746, вся красивая такая. Ну я заебенил "Хэлоу Ворлд" и решил залить взад демку. Откомпилировал, залил, а тут такая хуйня. Картинки не картинки, а одни полосы. Это плата наебнутая или что-то с Кейлом?
559 367297
>>367293
картинки побились
560 367415
>>367297

>картинки побились


Всё оказалось намного хуже. Там бинариник весит 18 мегов и прошивается только с внешним загрузчиком. Я пока еще до конца не отдуплился.
561 367417
Bimp
562 367447
>>367417

>Bimp


Нахуя?
563 368683
Не знаю, забросили ли уже этот тред, но у меня снова вопросы.

Есть SPI и DMA и флеш память.

Во-первых, нормально ли смешивать и DMA, и обычный блокирующий способы вместе? Например, если нужно отправить 1-2 байта. Например, делать вот так:

>send_instruction(instruction) { SPI->DR = instruction}


>send_address() { SPI->DR=addr[23:16]; wait_for_busy_clear(); [16:8]..., [7:0]... ; }


>send_data() { dma->cndtr = size; dma->maddr=out_buf; enable_dma_tx_ch(); }



При только отправке можно было бы и в буфер запихнуть команду с адресом и разом выслать, а вот при приёме-то как быть? Если запихнуть команду и адрес в буфер, то первые 4 байта приёмного буфера будут мусором.
Может есть ли какой-то красивый способ это обойти? Мне в голову приходит только использование с с n-ого байта (что как-то глупо), либо двойное включение tx dma за одну "транзакцию". (tx, затем tx и rx.).

И вообще, правильно ли я понимаю, что в SPI для работы rx dma нужно делать вот так:

>rx_dma->cndtr = size;


>rx_dma->mar = inbuf;


>tx_dma->cndtr = size;


>tx_dma->mar = outbuf; // musor


>rx_dma_enable();


>tx_dma_enable();


? Ведь без отправки данных ничего получено не будет. Вроде тот же HAL именно это внутри и делает.

Может есть где хорошие гайдланы по работе со всеми этими интерфейсами не в стиле "вот есть spi, там sck, miso mosi, такты биты пишутся,", а затем сразу хуяк и hal_receive() используйте. А как именно это всё в коде организовано на низком уровне нигде не описано, только код библиотек читать если.

И ещё, можно ли писать в в выходной буфер DMA во время передачи данных? Хотел для дисплея сделать dma в circular режиме, который бесконечно высылает данные и обновляет экран как можно быстрее. А когда у меня кадр изменяется, я просто пишу в этот буфер и не волнуюсь ни о какой необходимости запускать передачу данных. Но что-то не работало и чип крешился. Вполне вероятно, что я криворук и проблема совсем в доругом была.
564 368924
Буду теперь заебывать всех тут со своими бегущими строкамми.
Задача состоит в том, чтобы найти по для этих штук.
>>368901 (OP)

При подключении к комплюктеру определяется как Prolific USB-to-Serial Comm Port.

На SD карте небыло ничего, на одной вообще нет разъема под карту.
565 368926
>>368924

>На SD карте небыло ничего


Ну закинь туда тхт-файл попробуй. Ты с чего решил, что если там стоит стм-камень, то в этом треде все обмазываются бегущими строками? Там с таким же успехом мог стоять камень от NXP, TI, Microchip, etc.
567 368930
>>368926
Ну не знаю. Из отдельного треда меня выгнали и отправили сюда.
568 368931
>>368929
А что конкретно из этого должно помочь?
Предполагается методом подбора подтыкнуть софтину?
>>368926
Нет, тхт файл не катит. Должен быть специальный софт, которого овер дохуя, потому что, как я понял, все эти строки собираются кустарным способом и софт может писаться под конкретный модуль конкретным сборщиком. Кстати, как залить тхт файл на устройство без СД слота, при условии, что винда не видит его как диск?

Если бы можно было определить модель и скачать под нее софт, я б не дергал тут всех тупыми вопросами.
569 368932
>>368931

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


Ты дольше тут ебешь мозга, чем поустанавливал бы десяток софтин и попробовал бы поуправлять своим бегущим говном.
570 368933
>>368932
Я ебу мозга и попутно как раз этим и занимаюсь. Но пока шо то нихуя не выходит. На самом деле, я надеялся, что местные сталкивались с этими моделями и гомоебли с подбором софта будет намного меньше. Похоже не фартануло, поэтому возвращаемся к плану А - подбор софта наугад.
571 368935
>>368933
На третий день этих мероприятий я понял, что легче поменять ебучую управляющую плату.
572 368948
>>368935

>легче поменять ебучую управляющую плату


Напиши свою прошивку. Там железо все готовое.
573 368956
>>368948
Если б я умел, то однозначно бы занялся. Но чудесный мир программирования для меня пока ни разу не понятен.
574 368967
>>368924

>определяется как Prolific USB-to-Serial Comm Port


А в терминале ничего не высирает?
575 368968
>>368956
Какие еще надписи на платах есть? Хуле ты сфоткал какие-то уголки.
576 369062
Как, в общих словах, можно вывести 1KHz на gpio ножку? Вот таймер, настроил пределитель - дальше?
577 369078
>>369062

>дальше?


Раньше. Инициализируешь ногу как выход таймера
578 369079
>>369078
строчку кода можно?
579 369081
>>369079
А не, я тебе спиздел. Нихуя не инициализируется.
580 369082
>>369079
А что у тебя не получается? Клок включил на таймер? Таймер инициализировал? Таймер запустил?
581 369084
>>369062
Пердуинщики не палятся? Допилить по вкусу.
https://www.youtube.com/watch?v=B-5XUHK2oX0
582 369094
А stm32 умеет в crc-7 для sd-карты через SPI?

В SPI1->TXCRCR лажа какая-то, какой бы полином ни выбирал. При этом их описание работы crc калькулятора из application notes'ов именно это и выдаёт (если я руками реализую их алгоритм). Приходится руками софтварно считать другим способом ( https://www.pololu.com/docs/0J1?section=5.f ).
583 369117
>>368968
Так лучше видно?
Вот эта ёбань, но толку от видео ноль
https://www.youtube.com/watch?v=5DOhCgzGMZc&t=97
584 369126
>>369117

>Вот эта ёбань, но толку от видео ноль


У него программа там "MiniLED Display V2.49.exe" ее и ищи.
Вот у него мануал на его залупу https://vk.com/doc-90535217_377165870?dl=fb6c7d18e08b744680
585 369134
>>339005 (OP)
На сайте ST есть какая-нибудь загогулина, чтобы не выкидывало из авторизации через пять минут? Нахой они такую хуйню сделали? Чай не банк-онлайн.
586 369198
>>369126
Огромное спасибо! А как ты прогу опознал?
587 369211
>>369134
Они починили авторизацию? Не прошло и ста лет
588 369229
>>369211

>Они починили авторизацию?


А когда она ломалась? Меня просто заебало выкидывание из авторизации минут через двадцать. Будто йоба-секретный сайт какой-то.
589 369439
>>369126
Слушай, с той софтиной всё заработало, огромное тебе спасибо! Может ты и для такой модели софт знаешь?
https://ledcl.ru/produkciya/beguschaya_stroka_mini.html
Модель называется P5. Я действительно пытался гуглить и подцепить её к такому же софту, как и предыдущую.
590 369501
>>369439

>огромное тебе спасибо! Может ты и для...



Не в тему, но как обычно "ой спасибо, а может ты это еще сделаешь, а может потом это?" Естественно за спасибо, возможно даже большое. Я не тот чел, который тратил на тебя время и искал твое говно, но блять, имейте совесть, ты собирался платить кому-то деньги за это, ну кинь на кефир тому анону хотя бы 20% от того что ты собрался заплатить.
Именно из-за такой хуйни перестал кому-либо в чем-либо помогать, хотя иногда даже хочется и все на то имеется, но идите нахуй, вот что я думаю.
591 369502
>>369501
Ну так какие ж проблемы!? Я не жадный, куда и сколько кидать?
592 369600
>>339005 (OP)
Сап, оч нужна помощь с курсачом. Есть даташит STM32, https://www.st.com/resource/en/datasheet/cd00210843.pdf
Предположим я беру микросхему пикрил 1.
Вопросы:
1) Пик 2 - что из этого обвязка, а что нужно выкинуть? Выдрал это из другой схемы, без понятия что для чего.
2) В какие конкретно пины втыкать Пик3 ? оптопара (1 выход), терморезистор (1 выход), реле (2 выхода).
3) Есть дисплей Пик 4, как его через I2C прихуячить?

Я не особо надеюсь на помощь тк постинг тут крайне не высокий, но вдруг.
593 369606
>>369600

>помощь с курсачом


Судя по вопросам тебе скоро нужна будет помощь в наматывании портянок и подметании плаца ломом. Как ты собрался писать курсач абсолютли нихуя не понимая? Из обвязки тебе понадобится только питание, кнопка сброса. Тактирование врубишь от внутренних генераторов. Подключаешь на какой тебе порт нравится. Терморезистор надо на вход ADС. Как дисплей твой по I2C подключить, никто тебе не расскажет по твоей картинке. Давай название и нормальную распиновку.
594 369707
>>369606
Походу всё, пошел клиент защищать сапоги.
595 369741
>>369740

>чудить разную хуйню


Бери https://robotdyn.com/mega-wifi-r3-atmega2560-esp8266-flash-32mb-usb-ttl-ch340g-micro-usb.html на Али продается (будешь сидеть сразу на 2х стульях с пиками и хуями). Как минимум не будешь ебать мозги - ой у меня выводов нехватает.

>Мозги не нужны.


Твои перспективы тут >>369606 >>369707
596 369742
>>369741
Бля. Не туда закопипастилось.
597 369792
>>339005 (OP)
стм32-боги, есть у кого-нибудь https://leanpub.com/mastering-stm32 release 0.26? Нашёл 0.21 только.
598 369793
>>369792
Реквест отменяется. Всем хорошего дня.
599 369794
>>369792
А мне вот непонятно почему именно STM32, разве на STM32 те же кортексы заканчиваются? Это как-то подозрительно.
600 369795
>>369794

>почему именно STM32


Цена, комьюнити, дешевизна китайских программаторов...
601 369797
Как сконфигурировать usb fs в stm32f103c8t6, чтобы срабатывало прерывание по приходу usb-данных?
602 369799
>>369794
Перекатываюсь с АВР. С чего то нужно начинать.
603 369800
>>369795

>Цена


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

>комьюнити


Зачем? Хватает вменяемой документации.

>дешевизна китайских программаторов


Программатор для этих микроконтроллеров - это переходник USB-UART. А отладчики тоже не намного дороже, например клоны J-Link.

>>369799
Я немного про другое. Почему эта книга только по STM32?
604 369804
>>369793
Ну выкладывай сюда, пусть тут лежит
605 369806
>>369800

>Почему эта книга только по STM32?


У автора спроси, нравится вот ему стм.

Потому что он там объясняет всё на примерах STM'овских библиотек. Да, есть и "общая" часть, и краткие описания всяких протоколов, но это больше прикладная книга, а не теоретическая я всю не прочитал ещё, могу и ошибаться, поэтому и написать её обобщённо для всех кортексов, чтобы хоббиисту васе, которому просто диодом плавно помигать через pwm хочется, было понятно, как это реализовать именно на его мк, вряд ли было бы возможно.
Ну, наверное и можно было, но тогда всё через CMSIS и вилкой делать, всех распугаешь и на ардуину уйдут.
606 369807
>>369804

>Ну выкладывай сюда, пусть тут лежит


Я не он, но захуярил на libgen.io
607 369809
>>369807
На 193 странице корявая таблица типов прерываний
Mastering STM32 2018(0.jpg101 Кб, 902x704
608 369810
>>369809
У меня чота она вообще не отображается, а изображение сохраняет нормально. Попробую сейчас поправить в Акробате.
609 369811
>>369810
Исправилось вроде. Куда бы закинуть спешл фор /ра/?
chart.png200x200
610 369813
611 369817
>>369813
Заебись, спасибо.
612 369818
>>369817
Да не за что. Надеюсь Carmine Noviello не обидится, что несколько анонимасов бесплатно почитают его труд.
Screenshot20190612-191430.png178 Кб, 1080x2280
613 369820
А я вот книгу легально купил, не поскупился.
614 369821
Что сейчас перспективнее изучать - hal или spl? Или что-то другое?
615 369822
>>369820
Аноний, я сам люблю покупать твердые копии, но 30 бачинских в данный момент для меня задохуя.
616 369823
>>369821

>или spl?


Её сейчас только в древнейших архивах найдешь. Давно уже HAL&LL
617 369824
>>369821
Перспективнее изучать сишечку. После сишечки стоит изучить документацию на микроконтроллер, а только потом библиотеки.
618 369826
>>369824

>изучить документацию на микроконтроллер


Толку? Например, на usb ядро в stm32 документация завязана на hal. Чистого описания этого ядра я не нашел.
юсб.PNG87 Кб, 1337x611
619 369827
>>369826

>Чистого описания этого ядра я не нашел.

620 369960
На али есть девборды
на stm32f103 за 1.5$
на stm32f407 за 12$

Есть что-нибудь в промежутке этих цен?
621 369966
>>369960

>stm32f103


Забудь этот кал. Бери любой, кроме серии F1.
622 369968
>>369960

>На али


Есть что-то на 401 камне, но нахуя?
623 369969
>>369966

>Бери любой, кроме серии F1.


Какой же из ультрадешевых?
624 369970
>>369969

>Какой же из ультрадешевых?


Шизоид, почитай мнение другого анона >>357418. Если любишь ловить глюки и простреливать себе копыта через AFIO - удачи, бери F1 и не выебывайся потом что глючное дерьмо купил.
625 369973
>>369970

>Анон, почитай мнение шизоида

626 369990
>>357418
Мм, шизик не освоил атомарные операции, а виновата микросхема.
627 369991
>>369973
Я тот анон, что писал >>357418
В чем шизоидность? Я пробовал все эти процессоры, без SPL/HAL/LL/Интернета, руководствуясь только документацией и говорю как есть на мой взгляд. Возможно тот кто пользуется обертками, и не сильно заметит разницу, но конкретно в железе они отличаются не в пользу F1.

>>369969

>Какой же из ультрадешевых?


Что в твоем понимании ультрадешево? Ты возьми любое изделие и посчитай его цену, доля микроконтроллера едва ли 10% наберет от всей стоимости. Скорее нужно спрашивать не "что самое дешевое?", а что наиболее подходящее для твоих задач
Если что-то рутинное, простое, подобное изделиям на ардуино, примочки, управление дисплеями, датчиками и всяким таким - смело покупай F0
Применения для F2 при их цене я не нашел, производитель видимо тоже, их ассортимент ограничен несколькими моделями без какого либо изюма. Хорошее количество ОЗУ, но отсутствие FPU ограничивает его применение для обработки сигналов, где ОЗУ нужно. Разве что для применений с большим экраном, изображениями или перепаковками каких-то тяжелых пакетов, не знаю, правда.
F3 -хорош также как F0, более могучий DMA, аналоговая периферия и особенности типа субнаносекундных таймеров и медленных но 16 битных АЦП, осторожно, мало ОЗУ, хороши когда хочешь повысить точность своих поделок на F0 и применять числа во float. Для обработки сигналов подходят слабо ввиду малого ОЗУ, нет такой приятной вещи как в F0 сигнал DE для RS485.
Ну и F4 - щедрый процессор, хорошо подходит для обработки спектра, фильтрации, и прочих обработок сигналов. Хорош всем, кроме одного, и это не цена, это значительно большее количество регистров и новичок просто охуеет и даже не сможет настроить RCC чтоб включить его (про генераторы кода типа Куба не упоминаю) и скорее всего выкинет на полку.

Если ты не знаешь что тебе нужно - бери F0. Жопа не пригорит, 48МГц считает все довольно резво. На F071 даже на 1024 точечный БПФ ОЗУ хватит. Купи макеток с 030F4P6 по $1 и делай свои махарайки, а там сам поймешь что тебе надо.
627 369991
>>369973
Я тот анон, что писал >>357418
В чем шизоидность? Я пробовал все эти процессоры, без SPL/HAL/LL/Интернета, руководствуясь только документацией и говорю как есть на мой взгляд. Возможно тот кто пользуется обертками, и не сильно заметит разницу, но конкретно в железе они отличаются не в пользу F1.

>>369969

>Какой же из ультрадешевых?


Что в твоем понимании ультрадешево? Ты возьми любое изделие и посчитай его цену, доля микроконтроллера едва ли 10% наберет от всей стоимости. Скорее нужно спрашивать не "что самое дешевое?", а что наиболее подходящее для твоих задач
Если что-то рутинное, простое, подобное изделиям на ардуино, примочки, управление дисплеями, датчиками и всяким таким - смело покупай F0
Применения для F2 при их цене я не нашел, производитель видимо тоже, их ассортимент ограничен несколькими моделями без какого либо изюма. Хорошее количество ОЗУ, но отсутствие FPU ограничивает его применение для обработки сигналов, где ОЗУ нужно. Разве что для применений с большим экраном, изображениями или перепаковками каких-то тяжелых пакетов, не знаю, правда.
F3 -хорош также как F0, более могучий DMA, аналоговая периферия и особенности типа субнаносекундных таймеров и медленных но 16 битных АЦП, осторожно, мало ОЗУ, хороши когда хочешь повысить точность своих поделок на F0 и применять числа во float. Для обработки сигналов подходят слабо ввиду малого ОЗУ, нет такой приятной вещи как в F0 сигнал DE для RS485.
Ну и F4 - щедрый процессор, хорошо подходит для обработки спектра, фильтрации, и прочих обработок сигналов. Хорош всем, кроме одного, и это не цена, это значительно большее количество регистров и новичок просто охуеет и даже не сможет настроить RCC чтоб включить его (про генераторы кода типа Куба не упоминаю) и скорее всего выкинет на полку.

Если ты не знаешь что тебе нужно - бери F0. Жопа не пригорит, 48МГц считает все довольно резво. На F071 даже на 1024 точечный БПФ ОЗУ хватит. Купи макеток с 030F4P6 по $1 и делай свои махарайки, а там сам поймешь что тебе надо.
628 370004
>>369991

> 030F4P6


Там нет usb ядра
629 370006
>>369991

> Я пробовал все эти процессоры, без SPL/HAL/LL/Интернета, руководствуясь только документацией


Было бы хорошо услышать конкретику, возможно, даже baremetal-код, на котором глючит f103. Все-таки инженеры, а не в церкви богу молимся.
1.jpg12 Кб, 216x234
630 370008
>>369991

>доля микроконтроллера едва ли 10% наберет от всей стоимости.


Вот на картинке почти универсальное устройство. Только вместо монитора приделать светодиод. Еще можно оставить только одну кнопку, нуль/единицу определять длительностью нажатия.
sage 631 370014
>>370006
Лично у меня на F103zc - стандартный глюк с iic и при включении FSMC - не отключался сигнал NADV или какой-то такой в районе PB9-PB14 - из-за него нельзя было использовать IIC на этом выводе.
632 370016
>>370014
в blue pill 103c8t6, там fsmc нет.
633 370522
А st-link'и с Али также как и usb-isp'ы сразу два заказывать нужно?
634 370525
>>370522
Одного должно хватить.
635 370526
>>370525
Обновлять сразу после покупки не надо? А то с аспами китаёзы до сих пор старую прошивку льют последняя версия вышла в 2011, сука, году, а они ещё более холодный труп ебут.
636 370527
>>370526
Обновляю регулярно и работает.
637 370533
>>370522
Бери лучше J-Link.
638 370544
>>370533
Он почти в 7 раз дороже, а кроме stm'ок я в ближайшее время ничего брать не планирую.
Screenshot2019-06-15-11-41-31-215com.alibaba.aliexpresshd.png785 Кб, 1080x2248
639 370549
>>370544
Бери пару stlink'ов, в один можно вшить blackmagic probe и использовать как swd отладчик для почти любых армов.

Для bmp лучше подойдет стлинк как на пике (у него для swo отдельный вывод и uart tx rx отдельные), подробнее тут https://wiki.cuvoodoo.info/doku.php?id=jtag

С клонами jlink'а та еще лотерея - мой v9 в 17 году после покупки только один раз нормально обновился, потом приходилось разбирать и шить внешним отладчиком, тут стена плача https://electronix.ru/forum/index.php?app=forums&module=forums&controller=topic&id=59841&page=52
640 370560
>>370549

>вшить blackmagic probe и использовать как swd отладчик


Не советуй глупости.

>С клонами jlink'а та еще лотерея


Ну прошил и готово, подумаешь проблема. У кого-то и так нормально работает. Либо можно взять оригинальный недорогой J-Link EDU.
641 370596
>>370560

>Не советуй глупости.


Поясни плз, чому глупости?
Ещё удобно и то, что у bmp на виртуальном com-порту gdb-server и не надо ебаться с openocd

>Ну прошил и готово, подумаешь проблема.


Каждый раз прошивать внешним отладчиком при выходе обновления? У меня от этого уже пара защелок на корпусе отломалась - часто разбирал. А если не прошивать - алерты об устаревшем firmware.

> У кого-то и так нормально работает.


Лотерея же.

> Либо можно взять оригинальный недорогой J-Link EDU.


5-6к руб против 200руб, да ещё и алерты об educational purposes.

Хотя сейчас поставил бутлоадер из "стены плача" и обновился до 6.46g, но виндовый файрвол успел блокировать попытку сходить jlink-config'а в инет - сейчас бы и мой serial id в blacklist попал.
642 370599
>>370596

>ебаться с openocd


Вот это труд, вот это работа
643 370717
Не понимаю, в чем смысл подключения таймеров к dma-каналам?
644 370718
>>370717
Как вариант - видел реализацию синуса или еще чего ШИМом.
Таймер сам выгребает нужные значения по прерываниям, а не заходишь и выходишь из прерывания каждый раз при переполнении или совпадении.
645 370720
>>370718

>видел реализацию синуса или еще чего ШИМом.


Можешь вспомнить где?
646 370721
>>370718

>Таймер сам выгребает нужные значения по прерываниям


По каким прерырваниям? dma?

>а не заходишь и выходишь из прерывания каждый раз при переполнении или совпадении.


что dma прерывания обрабатываешь, что tim - не вижу разницы.

И как таймер может что-то выгребать?

Кароч, я мало что понял. Хочу код, плз.
648 370724
>>370722
Ахуенный пример - спасибо
649 370725
>>369813
На 16 странице еще одна корявая таблица типов прерываний.
650 370770
>>370725

>еще одна


Я там еще десяток битых картинок поисправлял. Заебало. Не буду же я за Кармина всю книгу переверстывать.
651 370807
>>370770
Перевыложи, плз
652 370808
>>370807
Вечером еще до конца досмотрю, может еще попадутся поломанные. Исправлю и выложу.
653 370854
>>370808
http://rgho.st/8VZR7tvPY
Онанимасы, просмотрите еще толпой на предмет похеренных пикч
654 370865
>>370770
Вот же - а еще деньги за это берет
655 370867
>>370865
Мне кажется это просто говнообменники файл покоцали. Я не думаю, что ориджинал книга за 30 денег будет с такими заебами.
656 370870
>>370854
Просмотрел
657 370876
>>370854
А есть вариант перевести на русский как-нибудь?
658 370886
>>370876

>А есть вариант


Есть. Выучить ангельский и сидеть самому переводить.
У меня была мысля, поэтапно изучать книженцию и переводить яндекс-транслейтом. Но потом чота перехотелось.
image.png634 Кб, 600x400
659 370904
Котаны, загляните в мой тредик >>370903 (OP) про модификацию прошивки STM32. Не стал тут писать т.к. тема отдельная.
660 370913
>>370904
Сюда пиши.
661 370914
>>370904

>про модификацию прошивки


Исходники есть? То-то! Это не модификация, а написание новой прошивки уже.
662 370915
>>370914
Нету исходников и я не собираюсь писать новую. Я хочу дампнуть текущую прошивку, дизассемблировать ее (опыт ковыряния бинарников для ARM есть) и пропатчить где надо.
663 370919
>>370915
В продолжение.

Я уже прочитал что на чипе можно установить защиту от чтения путем установки байт опций RDP. Хз установлена она или нет в устройстве которое ко мне едет, но проверять буду.

В общем, я вроде разобрался что мне нужен программатор ST-Link. Один из. Там разные версии и от разных вендоров. Какой посоветуете?

И как подключиться программатором к микрухе чтобы хотябы проверить стоит ли там защита на чтения или нет? К каким пинам и в каком режиме?
664 370920
>>370919

>Я уже прочитал


Молодец, вот так бы сразу.

>я вроде разобрался что мне нужен программатор ST-Link


Или можно через bootloader слить прошивку.

Присоединюсь к мнению анона выше, похоже что модератора-мудака.
Есть несколько вариантов:
1) Есть схема. Тогда ты пишешь прошивку самостоятельно. Не знаю что ты там собрался контролировать, но вряд ли это сложное устройство.
2) Схемы нет, но есть бинарник. Ну, тогда можно подредактировать строки и что-то еще по мелочи, не особо вникая в алгоритм работы. Но для этого нужно этот бинарник получить, что при включенной защите от чтения и отладки (которая там есть) будет затруднительно и вообще не целесообразно.
3) Рисуешь схему по печатной плате самостоятельно и далее как в п.1.
В любом случае, занимаешься ты ерундой.
665 370938
>>370920
Ты просто не читал что я в треде своем написал >>370903 (OP) (OP)
Там все черным по серому написано нахуя мне это нужно и с чем мне предстоит работать.

И еще раз - мне нужна помощь по выбору именно инструментария. Че там уже дальше с устройствои и прошивкой делать - я сам разберусь.

>ST-Link. Один из. Там разные версии и от разных вендоров. Какой посоветуете?


>И как подключиться программатором к микрухе чтобы хотябы проверить стоит ли там защита на чтения или нет? К каким пинам и в каком режиме?



Если есть ссылки где подобное все достпно описано, можно их кинуть.
image.png155 Кб, 1200x899
666 370940
>>370920
БТВ, может я что-то не понимаю, но судя по документу в F1 нету защиты от чтения (RDP)?

http://www.emcu.it/SILICA-STDay-2016/X/Presentazioni/2_STM32&SecureElements.pdf

Собственно сабжевый контроллер, прошивку которого я хочу реверснуть, как раз STM32F1.
667 370948
>>370940
Так все, разобрался. Преза говно, даташиты рулят.

В общем там есть RDP, но двухуровневый - без всякой перманентной защиты и отключения JTAG/SWD.

>>370920

>Или можно через bootloader слить прошивку



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

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

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

По поводу выбора ST-Link вопрос все еще акутальный.
668 370949
>>370948

>Нельзя.


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

>По поводу выбора ST-Link вопрос все еще акутальный.


Бери любой. Сам можешь убедиться, что в этом треде многие пользуются чем попало с алиэкспресса. Гальваническая изоляция тебе же не нужна?
669 370955
>>370949

>Гальваническая изоляция тебе же не нужна?


А зачем она программатору?
58pic3.jpg57 Кб, 731x407
670 370957
>>370955
Не для программатора, а для отладчика. Очевидно что для случаев, когда земли у компа и отлаживаемого устройства разные, с разными потенциалами, и соединять их нельзя.
Например, когда устройство запитывается от сети через блок питания без гальванической изоляции.
671 370959
>>370949
Чот я читнул, что 2 уровень защиты rdp если поставили, то уже снять невозможно - никакие стирания не помогут.
672 370960
>>370959
Ну и что? Перепаять микроконтроллер дело на десять минут.
673 370965
>>370949

>Поэтому переходник USB-UART может пригодиться.


Уже имеется.

>А если защита стоит, то проще написать все заново.


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

>Гальваническая изоляция тебе же не нужна?


А какая цена вопроса? Подобные плюшки лишними не бывают.

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

Кстати, в таком случае, когда комп и отлаживаемое устройство от разных БП запитаны, пусть и в обоих есть гальваническая изоляция, можно объединять земли? Что-то я не задумывался над таким вопросом.
674 370981
>>370965

> Кстати, в таком случае, когда комп и отлаживаемое устройство от разных БП запитаны, пусть и в обоих есть гальваническая изоляция, можно объединять земли?


Ну если у тебя интерфейс дифференциальный между компом и железкой, можешь и не объединять, а если обычный - как оно у тебя работать-то без земли будет?
675 370984
>>370981
То есть can земля не нужна?
676 370985
>>370984
Ни разу не щупал. Нужна?
677 370987
>>370984
>>370985
Не скажу что явно тестил, но осторожно скажу что нет, не нужна земля. Одна железка питалась от обычного БП с 2 выводами в розетку и псевдозаземленный комп. Работало только через 1 пару, без земли.
678 371010
>>370981

>если у тебя интерфейс дифференциальный между компом и железкой, можешь и не объединять


Бред. Особенно если USB или LVDS, например. Или взять к примеру простейший дифференциальный усилитель на двух транзисторах.
Бывают разные дифференциальные интерфейсы, некоторым нужна земля, а некоторым нет.
679 371011
>>371010
У usb выбор ls/fs происходит по потенциалу между диф и землей.
680 371012
>>371011
Это верно, но ничто не мешало бы поставить резистор у хоста и не тянуть землю, разумеется если не требуется переключать ls/fs.
681 371024
Без земли может только трансформатор, например, в Ethernet, или оптопара. У всего остального есть лимит на common mode voltage, и если земли с разных сторон имеют разный потенциал, то может не работать, работать плохо, сгореть и проч.
682 371032
>>371024

> сгореть и проч.


Можешь spice-иллюстрацию показать?
683 371034
>>371032
Это ты так хитро выебнулся? Ну можешь взять как пример обыкновенный компаратор.

>>371024

>common mode voltage


По-русски это называется синфазным напряжением. Только для трансформаторов и оптопар тоже будет ограничение, пусть и значительно выше.
684 371035
>>371034

>Это ты так хитро выебнулся?


Нет, хочу увидеть при каких условиях может сгореть и как пойдет ток.
685 371036
>>371035
Наверное тот анон имел в виду такие крайние случаи вроде >>370957
Ну а так то действительно, обыкновенным компараторам для работы требуется определенный диапазон синфазного напряжения, который не всегда будет обеспечиваться, если земли не соединены.
686 371068
>>371034

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


Можешь нарисовать путь тока пробоя межобмоточной изоляции при гальванической развязке трансформатором?
687 371069
>>371068
К чему этот вопрос? Ты сам что-ли не можешь? Какие-то SPICE-модели еще захотел... Ты или траллишь или просто идиот.
Вон выше была картинка со схемой блока питания без гальванической развязки. Допустим соединили выход этого блока питания с землей (например через корпус компьютера), что будет в результате? Если соединить не напрямую, а через пробитый трансформатор или оптопару, то что-то существенно изменится?
688 371071
>>371069
Что за гуманитарный бла-бла? Не можешь ответить - проходи мимо, шизотроль.
689 371072
>>371071
Но гуманитарий и просто идиот тут только ты.
Хорошо, я упрощу. Что будет, если фазу соединиить с землей?
690 371073
>>371072
Цепь нарисуй, пиздобол.
691 371074
>>371032
О каких spice моделях можно тут говорить, если большинство, включая тебя, тут даже ТОЭ не могут осилить?
692 371075
>>371073
Ты вообще о чем? Тебе рассказать чем ноль от фазы отличается? Обойдешься, за этим - в гугл и учебники.
Шизиком и гуманитарием тут только ты себя показываешь.
693 371076
>>371075

>ноль-фаза


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

Может у тебя и батареечные устройства пробивает, довен?
694 371077
>>371074
Пиздеть легко, типа "f1 ето говно", а подкреплять пиздежь техническими фактами трудно. Ты не смог.
695 371078
>>371076
Какого конкретного случая? Который ты только что выдумал? Ну давай тогда схему рисуй.
696 371079
>>371078
Так это ты выдумал, ты и рисуй.
697 371080
>>371079
Зачем мне это делать? Твою безграмотность ликвидировать? Тебе уже ничего не поможет.
Что ты вообще пытаешься доказать? Что гальваническая развязка - это глупости и она никогда не нужна?
698 371081
>>371080

>Что ты вообще пытаешься доказать?


Что ты пиздобол.
699 371082
>>371080

>Что гальваническая развязка - это глупости и она никогда не нужна?


Пошло бинарное мышление, как психическая защита.
1.png47 Кб, 607x342
700 371084
701 371085
>>371084

>допустим тут пробило


Блядь, даун, я спрашивал про это? Где в эзернет трансформатор соединен с нейтралью? Хули вы кукарекаете про синфазное, если такая схема пробоя не работает с устройствами на батарейках? Может дело не в синфазном, пиздоболы-дебилы без высшего образования?
702 371086
>>371085
Одним концом одна обмотка эзернетовского трансформатора соединена с корпусом компа, пусть не напрямую, а через какой-нибудь маломощный транзистор или еще что-то полупроводниковое. Корпус компа соединен с землей, а земля соединяется с нулем где-то там.
703 371087
>>371086

>одна обмотка эзернетовского трансформатора соединена с корпусом компа, пусть не напрямую, а через какой-нибудь маломощный транзистор


Во бред

>Корпус компа соединен с землей, а земля соединяется с нулем где-то там.


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

>где-то там


Мм, сам точно не знает, а гонору как у первокура.
704 371088
>>371086

>Во бред


Бред у тебя в голове. Эзернетовский трансформатор ни с чем не соединяется? Или минус компьютерного блока питания не соединяется с землей?
705 371089
>>371088

>землей


Какой землей? сигнальной, защитной, силовой? Научись четко выражать свои мысли, самоучка.
706 371090
>>371089

>Какой землей?


Очевидно с той, которая в розетке.

>сигнальной, защитной, силовой?


И что, у этих земель настолько сильно разные потенциалы и сопротивления, чтобы это было существенно в данном случае?
untitled1.png26 Кб, 800x600
707 371098
>>371090
Расскажи про синфазное напряжение, маня.
708 371101
>>371098
Ты соединил два выхода? Ну ладно.

https://ru.wikipedia.org/wiki/Синфазный_сигнал

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


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

И что дальше? Если между твоими GND1 и GND2 включить источник напряжения на много киловольт, то трансформаторы пробьет. Если не включать, а оставить болтаться в воздухе, то естественно ничего не будет, кто тут с этим спорил?
709 371239
>>371098
Помимо того что у тебя на схеме соединяются два выхода, еще и соединяются Vcc диодных мостов. И полярность питания зачем-то отрицательная.
Так значит все-таки нет никаких ограничений по величине синфазного напряжения для гальванической развязки с трансформаторами или оптопарами?
710 371240
>>371239
Подзаебал твой гуманитарный треп. В техническом универе ты тоже так бредил?
711 371241
>>371240
На википедии определение неправильное?

>В техническом универе ты тоже так бредил?


Я же самоучка, ты что? В такой параше как ты, не имел удовольствия обучаться.
712 371243
>>371240
Так или иначе, синфазному напряжению будет равно напряжение между какими-то двумя точками в устройстве. Или ты с этим тоже поспоришь? При каком-то определенном напряжении между двумя проводниками, возникнет пробой. С этим тоже будешь спорить? Соответственно при определенном уровне синфазного напряжения возникнет пробой и для любого устройства будут определенные ограничения по синфазному напряжению.
Тоже мне, дипломированный специалист нашелся. Не удивительно что у нас электроника в такой жопе, если выпускают таких специалистов.
713 371244
>>371240
Каков же все-таки пиздец. Отрицать то, что при определенном напряжении между чем бы то ни было, не будет возникать пробой.
Напомню, что придрался ты к высказыванию о том, что ограничения по синфазному напряжению будут и при трансформаторной развязке.
714 371248
>>371244

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


Переврал
715 371249
>>371244

>ограничения по синфазному напряжению будут и при трансформаторной развязке.


>даже при батаречном питании


>хотя при чем тут синфазное? не знаю, я дебил.

716 371250
>>371068
Ну даже не знаю, а это что такое? >>371068 Заметь, там не было утверждений что без общего провода дифференциальные интерфейсы с трансформаторной развязкой вроде эзернета не будут работать.
В ответ на утверждение о том, что для трансформаторной развязки будет ограничение по синфазному напряжению, ты стал придираться, причем весьма невнятно.
Внятных высказываний с твоей стороны не было, вообще трудно было понять к чему конкретно ты придирался. Может у тебя с русским языком плоховато? Или просто читал жопой? Или ты хотел сказать, что любые дифференциальные интерфейсы без гальванической развязки способны работать без земли?
717 371252
>>371250

> ты стал придираться, причем весьма невнятно.


Что? Просто попросил показать путь тока, или дать spice-иллюстрацию. По-моему, невнятен ты, абсолютизируя синфазность.
718 371253
>>371249
Где я писал про питание от батареек? У тебя глюки пошли.
И да, ограничение будет вне зависимости от источника питания. Потому что где ты в этих >>371243 рассуждениях увидел конкретный источник питания?
719 371254
>>371252
Путь тока при пробое трансформатора от повышенного напряжения между обмотками? Заметь, речь не о том откуда взялось синфазное напряжение.
720 371255
>>371253

>И да, ограничение будет вне зависимости от источника питания.


Тогда чего ты агришься на батарейки?
721 371256
>>371254

>не о том откуда взялось синфазное напряжение.


Если ты нарисуешь путь тока, то в цепи я уж как-нибудь найду источник напряжения.
722 371264
>>371255
Ты случайно не жопой тред читаешь? Последовательность событий была такова:
1) Кто-то написал, что дифференциальные интерфейсы будут работать, если не соединять земли.
2) Я уточнил, что не все. Например LVDS так может работать фигово. Кстати, это может относится не только к передаче цифровых сигналов, но и к передаче аналоговых сигналов.
3) Какой-то анон написал про токи, которые будут от этого течь. Я такой ситуации представить не смог, для случая когда между землями приемника и передатчика не стоит источника напряжения, если что.
4) Ты потребовал от него spice-иллюстрацию. Если честно, то я знаю что такое spice-модели, но без понятия что такое spice-иллюстрация.
5) Он в ответ тебе написал что для всяких дифференциальных входов без гальванической изоляции требуется определенный диапазон common mode voltage, который может не обеспечиваться, если не соединять земли.
6) Я, в ответ на это написал, что определенный диапазон синфазного напряжения требуется и для других устройств. Да хоть для проводов на изоляторах. Также я удивился зачем тебе понадобилось spice-моделирование, когда можно было обойтись моделью из нескольких резисторов и источников тока или напряжения.
7) И тут ты начал выебыватся на меня.

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

>батарейки


Потому что это абсолютно ни при чем. Ты бы еще написал что в данном случае будет какая-то разница в зависимости от топлива, на котором работает электростанция.
723 371267
>>371264

>Потому что это абсолютно ни при чем.


Ну, конечно. Нарисуй путь тока пробоя трансформаторов при батареечном питании.
724 371268
>>371267
Вместо генератора на электростанции ставишь хорошую такую батарейку, что от этого изменится?
Само по себе максимально допустимое синфазное напряжение не зависит от способа питания какого-то абстрактного устройства, потому что это характеристика этого устройства самого по себе. Ты теперь будешь спорить с тем, что максимально допустимое синфазное напряжение будет отсутствовать даже просто для проводов, висящих на изоляторах?

Так что тред ты читаешь жопой, в результате чего несешь бред.
725 371269
>>371268
Нарисуй путь тока и сразу поймешь свою ошибку.
726 371270
>>371268

>синфазное напряжение будет отсутствовать даже просто для проводов, висящих на изоляторах?


facepalm
727 371272
>>371270
Будешь спорить с определением из википедии? Синфазное напряжение может быть определено для любого многополюсника, хоть просто для проводов.
728 371273
>>371269
Ну да, ты поленился прочитать определение синфазного напряжения.
729 371274
>>371273

>Синфазное напряжение пробивает


лол
730 371275
>>371269
А если ты про то что синфазное напряжение может быть определено относительно земли (в горшке с цветком), то при определенном напряжении все равно случится пробой. Между корпусом устройства и этим горшком, например.
731 371276
>>371274
Иди википедию прочитай уже.
732 371277
>>371275
Или рисуй цепь
Или spice
Или еще какой-нибудь строгий формализм

Твои слова не однозначны технически.
733 371278
>>371276

>равный потенциал на выводах многополюсника пробивает


кек
.png8 Кб, 781x388
734 371279
>>371277
>>371278
Где ты там равные напряжения увидел?
Еще раз из википедии:

>синфазный сигнал определяется обычно как полусумма напряжений


Вот я нарисовал картинку. Ты будешь спорить с этим? Допустим Е1 и Е2 равны, чему будет равно синфазное напряжение?
.png7 Кб, 741x388
735 371280
>>371279
Вот так чуть лучше будет.
736 371282
>>371279

>обычно


между какими полюсами ты измерил свой Uсинф?
sage 737 371301
>>371282
Я уже писал, что эти напряжения относительно общего провода или корпуса. Или еще какой угодно точки, находящийся внутри устройства.
И тогда у тебя не нашлось возражений на это утверждение. А сейчас ты просто пытаешься извернуться. Может ты напишешь, что для компаратора синфазное напряжение нужно определять не относительно общего провода компаратора, а относительно чего-то еще?
738 371323
>>371301
Напряжения обозначают Uij, где i, j узлы/полюса.
739 371324
>>371301

>А сейчас ты просто пытаешься извернуться


Нет, я лишь пытаюсь понять, что ты хочешь сказать. Ок, давай страницу из книги с математизированным определением. Статья в википедии уровня пту.
740 371435
ололо, анон, ты не учишь матчасть и пытаешься спрятать свое невежество за узлами, полюсами и spice моделями.

для LVDS стандарт TIA/EIA-644 указывает, что синфазное напряжение на входе должно быть в пределах от 0 до 2.4 вольт. для трансформатора Ethernet типичное напряжение пробоя изоляции 1,5 киловольта, для оптопары от 2,5 киловольт и выше. за этими пределами поведение твоего приемника, трансформаторе, оптопары не определено. то есть может быть что угодно - и бывает.

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

к примеру, летит самолет, в хвосте стоит датчик чего-то с передатчиком LVDS, в кабине сидишь ты с приемником. земли приемника и передатчика не соединены, потому что все на батарейках. в самолет попадает молния, и приемник выпускает тонкую струйку дыма. или, к примеру, ты сдвинул модную фетровую шляпу на свой эбонитовый затылок и звдумчиво тронул твою конструкции пальчиком, и приемник тихо отправляется в мир иной. или просто твой передатчик лежит на бабушкином финском холодильнике Розенлев, и каждый раз, когда он включается, LVDS перестает работать. ты не можешь гарантировать, что оно будет работать, и поэтому что-то обязательно случится, может быть, не сразу.
741 371441
>>371435
Лучше точно знать, что не знаешь, чем знать на уровне пту, но питать иллюзии, что ты спец.
742 371448
...
743 371509
Дайте линки на работу нескольких stm32 с синхронизацией между собой.. С исходниками.

Типа кластеров.
744 371783
Пиздец вы тут насрали.

Обьясните на пальцах и конкретном примере, почему во втором случае, как вот с такой херней >>370957 когда в БП нет гальванической развязки с розеткой, объединять земли нельзя и лучше USB через гальваническую развязку подключать? Что может произойти?
745 371785
>>371783
Измерь потенциал между "землями" и получишь ответ.
746 371801
>>371785
Наводящий вопрос, а если оба БП будут без гальванической развязки, то потенциала между их землями не будет и их можно объединять?
747 371814
>>371801
От схемотехники зависит.
1.png242 Кб, 847x478
748 373723
Как запустить на F429 SPI NSS pulse mode? Есть один и тот же код для SPI, взятый с L051, где он работал нормально. На F429 он никак не хочет дёргать CS. Пляски с OTYPER и PUPDR ни на что не влияют. TI mode работает нормально, но он мне не нужен.
749 373946
Здарова бандиты!
Короче пришли ко мне из китая аж три голубые таблетки.
Ноги припаяны, CMSIS скачан, st-flash скомпилен, non-eabi-gcc скросскомпилен. Но вот стал я рыться в гайдах и заметил одн интересный совет. Ннада кровь из носа включить SWD https://eax.me/stm32-on-breadboard/
Если чип прошить без поднятого сериала то перепрошить его будет геморно?
750 374049
>>339869

>Чет вообще вголос с этого, ведь есть AtmelStudio


Так, стоп, в божественной атмел студии можно программировать под стм32? А то я ставил плагин под вижл студию для этих целей.
751 374070
>>374049
Атмел студио нужен для программирования 8ми битных контроллеров AVR от компании Atmel
Можно и их армы 32битные прогать, но мне не понравилось
tscubeide.jpg75 Кб, 600x245
752 374301
Что вы тут какие то велосипеды изобретате? У ST есть офф связочка для проганья. Визуальная настраивалка портов и студия на основе Eclips
753 374334
>>374301
Cube хочет жабу на ПеКа и HAL в прошивку. Оно не нужно.
754 374364
>>374334
С чего бы это? Наверняка просто не нужно и всё.
755 374387
>>374364

>С чего бы это?


Потому-што Куб написан на жабе и без ХАЛ-а не генерит код.
756 374514
>>374387
Что плохого в жабе и хал?
757 374519
>>374301
>>374334
Даже не в этом дело, оно генерит столько говна вокруг себя, что просто охуеть.
Вся стилистика когда личная рушится.

Ради бога, инициализация периферии это довольно малая и единоразовая часть работы.
Нахуя это отдавать программе, говно за которой ты будешь еще дольше вычищать?
758 374520
>>374519

>когда


кода
759 374532
>>374519
Не вычищай за программой.
760 374534
>>374519

>говно за которой ты будешь еще дольше вычищать?


Примеры говна в тред, пожалуйста? Куб довольно аккуратно генерит, ты его может со FrontPage-м времен 00-х спутал?
761 374536
>>374532
Хз уебищно. Я люблю писать наглядно и максимально понятно, что бы как книга читалась. Куб срет своими комментами и очень кривым интерфейсом функций.

>>374534
Пик, понятно, что высрать прототип на нем в 100 раз быстрее, но блядь, дрочить строки как на 2ом пике в главном цикле - уебанство дикое.

Я тоже пользуюсь, плюясь, т.к. для GPIO западло свою либу писать, а готовых что-то не находил. Но стараюсь заворачивать глубоко-глубоко и получается чисто, наглядно и аккуратно
Так же согласен с использованием HAL для тяжелой периферии типо USB, так как там низкий уровень чрезвычайно сложен, а пары месяцев на поверхностное вкуривание нет.

Но вот инициализировать АЦП, где надо 3-4 бита вписать вот этими строками, хуй знает, пиздец какой то.
И хер бы с ним, но куб не дает это дело нормально завернуть в человеко-читаемые оболочки, т.к. требует определенную структуру проекта и это ебет мозги.
762 374537
>>374536
Ебанул под себя турбострую, засунув свой код в пик 2. Орунл. Умер.
763 374653
Посоны, обесните! Скачал либы к стмке. Ну всё понятно вроде, HAL и прочее выкинул пока. Оставил CMSYS, но там в комплекте ещё были файлы core m3, они в хедерах ни к селу ни к городу, ни одного упоминания. Их куда совать та? Или они там нужны для всяких RTOS? Я не понимат.
764 374661
А ещё тама ассемблерные фалики есть. В папке startup, они то нахуй нужны? Я так посмотрел там всякие кучи да стеки обозначены, с какого адреса должны начинаться. С ними то чта делать. В кубах они конпелируются и цепляются к остальным бинарникам. А если без кубов? Как указывать адреса стеков и кучи если я ковыряю на голом компиляторе без сред.
765 374662
>>374661

>А если без кубов?


Канпилятору его надоть указывать, а не Кубу.
766 374663
>>374661
В этих файлах ещё статические конструкторы сидят которые ещё до maina вызываются
767 374675
>>374661
man ld
768 374744
>>374675
>>374663
Ох блядь! Сколько ещё попердолится то надо. Как же всё просто на аврке то было, фьюз биты задал и прошиваешь.
И
769 374745
Имеет ли смысл что то менять в выхлопе от Куба?
Поо
770 374746
Блядская клавиатура. Пост дописать не могу.
Т
771 374747
Как я понял, суть такова -
компилим strart.s, и собираем по скрипту линковщика вместе со всеми остальными объектными файлами.
Посоны, а шо такое Handler? Я как то не понел.
А асм файле указатели на прерывалния? И чо, мне штобы делать прерывания изменению уровня по ноге надо будет в асм лезть что ли?
Ткните носом где это расписано, на русском языке. Курить целиком Reference Manual я пока не готов, слишком дохуя всего и сразу.Листаю Варрен Гея, но он тоже на буржуйском. А вкуривать новые абстракции на чужом языке сложно.
15477957289760.png72 Кб, 306x306
772 374749
>>374747

>на русском языке


Нет пути.
773 374751
>>374747

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


Ты бредишь?
774 374752
>>374747
Возьми baremetal примеры и изучай.
775 374757
>>374744
Не делай через куб блядь! По первому. Там реально все в 100 раз проще, ИМХО даже удобнее чем с АВР с ее фузами.

Подрочи байты первые пару проектов, потом сам поймешь когда и для чего нужен куб.
776 374760
>>374757 так я и пытаюсь на голом GCC усё сделать. Просто я полностью самоучка и у меня охуительные пробелы в знаниях. Про скрипты линковщика вобще впервые узнал.
Чего я понял за пару часов беганья в инетрнетах. В .ld скрипте мы указываем компилятору сколько у нас памяти откуда растёт стэк и например что он не должен быть больше чем чего то там. Вся эта информация на прошивку не влияет, а только позволяет бить линейкой по рукам при компиляции и орать что памяти не хватит.
Ассемблерский файл start.s это что то вроде таблицы с адресами прерываний. В кубовском ещё в нём же реализован resetHandler, который просто обнуляет SRAM. Нахошёл проектик на гитхабе, где заместо асма был сишный файл с описанией всей этой хуйни.
Я всё правильно понел?
777 374763
>>374661

> А ещё тама ассемблерные фалики есть. В папке startup, они то нахуй нужны?


Затем и нужны: таблица векторов прерываний, плюс чистка памяти (и копирование значений переменных из ПЗУ в ОЗУ) перед запуском main(). Именно ассемблер там, кстати, необязателен (остался в качестве реликта времён ARM7 и ARM9), можно на чистом C всё сделать: https://www.eevblog.com/forum/microcontrollers/cortex-m-startup-files-without-assembler/

> А если без кубов?


https://github.com/STM32-base/STM32-base/
778 374767
Снова избитый вопрос, посоветуйте плату, подходящую для вокального процессора, хочу поиграть со звуком. я почейтал, советуют с dsp, пока смотрю на stm32f4 discovery
Буду благодарен за актуальные ссылочки с али.

это пример чего я ожидаю, только без ебанутых жестов
https://www.youtube.com/watch?v=ZfMOEaH0Sko
жидхаб этого чувака гласит шо он делал stm32f4 discovery
https://github.com/Blast545/Effects_Manager/blob/master/Voice effects manager - HW.pdf

а это пример к чему стремиться
https://www.youtube.com/watch?v=H6TWbdenxO0
300-00.jpg148 Кб, 1200x900
779 375183
Ух ебать! Эта хуйня замигала!!!! бинарник размеров в 777 байтов.
Итого использовано: либа ST, выдрал оттуда буквально только то что относится к CMSIS, стартовый асм файл. Из кубатуры спиздил ld скрипт и ключи компиляции.

Но вот мне решительно непонятно, а откуда я должен в идеале знать и применять эти стопитсот ебенячьих ключей конпеляции GCC. Как же херово без норм образования...
А ещё эти ебаные расширения GCC которые не входят в стандарт, всякие __atribute__ _IO Как вобще копать в эту сторону? И насколько необходимо это знать.
Установочная цель устроится байтоёбом за жрат. Что бы хоть как то вкотиться в ойти ололо.
780 375184
>>375183

>Как же херово без норм образования...


Лол, чет мне вспомнился директор одной из ИТ контор, дядька за 55, который пытался набирать с образованием людей, в итоге у него проект полугодовой, пилили года 3.
Мне очень интересно, где тебя поучат внутрянке GCC или еще каких компиляторов.

>Но вот мне решительно непонятно, а откуда я должен в идеале знать и применять эти стопитсот ебенячьих ключей конпеляции GCC.


Берешь и пользуешься человеческими инструментами и не знаешь.

>Установочная цель устроится байтоёбом за жрат


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

Тебе надо брать сейчас FreeRTOS, Modbus, Ethernet, wi-fi , CAN, bluetooth, TFT дисплей, тач, RFID, пяток промышленно популярных серий МК, желательно на разных ядрах.
Вот все это задействовать и научится пользоваться. Потом взять книг и АЦП\ЦАП, запиздячить чего прецизионное и хуй знает, в принципе можешь идти искать работу, даже с половиной этого списка оторвут с руками.

А вот твой дроч компиляторов никому не нужен, этим владеют конечно крутые ребята, но не по причинам первой необходимости.
781 375198
>>374767
Всё так. От себя добавлю modbus не нужен, лучше изучить протокол Owen, как наиболее распространенный в РФ. Ну и обратить внимание на оборудование этой фирмы.
782 375201
>>375198

>modbus не нужен, лучше изучить протокол Owen


Который есть практически тот же модбас.
783 375210
>>375183
Чегото геморно всё это я посмотрю по сравнению с "обычными" АВРками. Чем больше читаю,тем больше охуеваю. Лежат несколько СТМок. Правда мне тут порикомендовали IAR . Как народ оценивает данный продукт ?
784 375231
>>375210
Всмысле? Это некоторое время назад, по мненеию некого круга независимых экспертов, лучший компилятор для микроконтроллеров.

Как IDE - ну она говно, как и все остальные, Keil чуточку потехнологичнее.

Вообще, если ты такой разпиздатый ебатель компиляторов - бери Embedded GDB и MVS и захуяривай там. Вот это действительно хороший вариант.
Потом, еще можешь туда компилятор IARовский прикрутить.

А если еще гайд напишешь, так вообще охуенно будет.
sage 785 375255
>>375184 Какой то ты неправильный. Надо было крикнуть RTFM, а не бубнить про крутых ребят.
В результате метаний меня посетила светлая мысль что reference manual бывает не только у МК. Скачал таковой для GCC, и о чудо, там есть описание всей той хуйни что меня интересовала.
Если кому интересно, в кубах есть три интересных ключа компиляции: -ffunction-sections, -fdata-sections, -fstac-usage
Суть в краце, каждый объект\функция комплилируется в отдельный загон, чтобы оптимизующий линкер смог безболезненно их ёбнуть, если выяснится что в рантайме они не будут использованы.
786 375263
>>375255

> Надо было крикнуть RTFM


Это очевидно.

>есть три интересных ключа компиляции


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



Всю жизнь так живем. Что у тебя за мания дрочится в кишках инструмента? Что мешает настраивать опции компилятора через гуй?
787 375383
788 375407
Тред не читал.

>>339689

> STM32CubeMX + Keil + STMStudio


Под линь вменяемая связочка есть, или опять в дуалбут вкатываться?
789 375417
>>375407
Куб+CLion например. В 2019.2 завезли memory view и register view (нужно только svd от своего камня подсунуть).
790 375536
Да сукаёбтвоюмать! Какого хуя это говно мне дефолтный хендлер за место норм прерывания пихает в готовый файл?
791 375617
>>374760

> Вся эта информация на прошивку не влияет


Неправильно.

В ld-скрипте можно разбивать память на секции под различные задачи, которые будет выполнять программа, например, часть под стек ОС, часть под буферы памяти какого-нибудь быстрого интерфейса или графики, часть под хранение переменных данных в eeprom. В частности, на некоторых контроллерах DMA имеет доступ только к некоторым областям памяти, и приходится для работы с ним объявлять функции и буферы в этих областях. Можно конечно прибить их гвоздями к конкретному адресу типа 0x20001000, но это некошерно, лучше объявлять секции в ld и потом указывать в атрибутах мнемоническое обозначение секции, а уж линковщик пусть сам размещает. Аналогичным образом приходится действовать, если у тебя применяется внешняя память.
792 375667
Сап, радач
Заказал на али BluePill, платки на чипе stm32f103.
Описание и отзывы читал жопой, приехали платки с контроллером cks32f103. Чтобы прошить st-linkом приходится нажимать ресет кнопку, отладчик в keil не запускается, говорить cant reset core или internal command error. Но прошивки заливаются и исправно моргают светодиодами. Пробовал различные комбинации reseta, connect under reset и прочее, все без толку. Кто-нибудь сталкивался? Есть вариант их подружить с отладкой?
793 375670
>>375667
Вывод ресета подключал к STLINK или только SWDIO+SWCLK c текстом и так сойдет? Без него "различные комбинации" не имеют никакого смысла.
Что за говнокод льешь? Может быть он отключает режим отладки по JTAG/SW. В кубе надо явно разрешать отладку, иначе соснешь хуйцов при попытке отладиться.
794 375685
>>375667
Выкинь, это говно
795 375697
>>375617 чего курить то? Танненбаума почитвыаю но там такой жосткой конкретики нет. Листаю рефман на LD и GCC.
796 375710
>>375697
Рефман это правильно, мне вот терпения не хватает его изучать. А так гугл в помощь, по крайней мере самые ходовые вещи вроде примеров работы с линкером обычно хорошо описаны на всяких буржуйских сайтах типа stack-overflow или mcuoneclipse. Встречаются информативные примеры также на форумах производителей микроконтроллеров. Ну и проекты для демоплат изучать, само собой. По большей части там говнокод из разряда "лишь бы заработало", но встречаются и полезные вещи.
797 375783
В каких магазах берёте stm-ки? Кроме алиэкспресса
798 375784
>>375783 тот же самый ЧИПиДИП, Но голубой пилюли там нет, есть дискавери по цене игры на мыловарне3.
Алсо, в моей мухосрани Ижевск ещё есть два магазина Радио, которые чуть ли не со времён совка существуют, ну с 90х точно и ещё какой то магазинчик в одном ТЦ, не помню названия.
799 375812
>>375784

>совка


Откуда ты взял это слово и зачем ты его используешь, задумайся. Сейчас совок с говном. И эту говнину заливают в головы.
800 375822
NUCLEO-F401RE
images.jpe13 Кб, 330x153
801 375824
Посоны, я тут копнул чуть глубже и пришёл к выводу, что для мелких задач охуенно подходят регистровые команды. Но если надо пилить что то действительно суръёзное то без RTOS ну нахуй никак. А этих ртосов дохуя и больше.
Как красноглазый адепт пожирателя мозолей я конечно первым делом наткнулся FreeRTOS. Но есть же ещё всякие амазоны
Чем отличаются, напичканы ли дрова говном как HAL и тысяча вопросов, которых я пока не знаю, о которых честно говоря надо бы отдельный трэд делать.
802 375825
>>375824
Насколько я понимаю, микроконтроллерные RTOS отвечают только за ядро и задачи. Всю периферию ты реализуешь сам, как тебе надо и любыми драйверами.
803 375829
Warren Gay - Beginning STM32. Developing with FreeRTOS, libopencm3 and GCC (2018, Apress)
Понравилась книжка
804 375833
>>375824
Так Амазон вроде как купил права на freertos или типо того. Так что по сути они не должны отличаться, разве что функционал допиливают
805 375843
>>375833

>купил права на freertos


Там же вроде как лицензия MIT. Т.е. берёшь и делаешь с исходникакми абсолютно что хочешь.
806 375848
>>375843
Ну может ты прав, не секу в этом вопросе. Есть у меня смутные воспоминания, что раньше какая-то муть была с подробной документацией на freertos, то ли за нее платить надо было, то ли ещё что-то. А сейчас вроде вообще все доступно
datasheet-89.png10 Кб, 350x350
русек 807 375852
808 375941
>>375848
Amazon сделала свой форк freertos (я так и не понял нахуя). Сама базовая FreeRTOS абсолютно свободна, есть доступная документация на офсайте, там же есть pdf-книжка.
809 375945
>>375941

> (я так и не понял нахуя)


Амазон начал люто двигать вперёд интернет вещей, и чтобы сократить расходы на НИОКР тупо дали бабла разрабам фриртос на интеграцию своих библиотек безопасности и прочей хуйни связаной с интернет подключением.
810 376017
>>375667
Во первых как тебе уже тут сказали надо обязательно включать в cube mx режим swd отладка, а во вторых надо включать режим software reset mode в настройках swd самого keil. В этой плате (blue pill) аппаратный резет банально не подключен и работает только программный
811 376026
>>375670
>>376017
Всем спасибо, действительно в кубе не заметил, что отладка по SWD выключена
812 376032
>>339005 (OP)
Народ, че там нынче в моде за недорого из отладочных плат?
813 376034
>>339005 (OP)
Поднимаю вопрос. Некоторое время назад, вооружившись всеми гайдами СРУнета (по той причине, что из-за сраной политики ютуба, все завалили однотипным говно без смысла и полезной инфы и за рубежом 1в1 как у нас инфа).
И всетаки осилил CustomHID + Ответный софт на ПК.
Более менее разобрался с написанием дескриптора и точках выхода инфы из драйвера.
На ПК - аналогично, научился считывать\отправлять инфу в драйвер.

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

Че делать? Самое ебанутое, что в референс мануале стм, о усб пара страниц.
Кто осилил USB в комплексе? Подскажете куда посмотреть?
814 376083
>>376034
пошукай в сети исходники для pic16 или stm8
815 376091
>>376083
А что там?
816 376099
>>376083
Исходники Linux
817 376169
>>376034
https://www.usb.org/document-library/usb-20-specification

Там говорят самоубиться можно.
818 376174
>>376169
Ну и нехуй туда ходить по хорошему, там куча нефильтрованной инфы.
Должно быть где-то более упрощенное\укороченное.
819 376176
>>376174
Тогда копай сорцы V-USB под AVR, там софтварная реализация USB 1.1 под Си, возможно немного ассемблера.
820 376177
821 376179
>>376034
Пацаны на реддите рекомендуют книгу "usb complete".
Я глянул - там уже несколько переизданий у нее.
822 376194
>>376179
Не могу в инглишь
823 376195
>>376194
Паяй на 155ЛА3
A14.jpg363 Кб, 1800x1013
824 376210
>>376195
Зачем предлагаешь сразу easy-way?
Можно начать с пикрила - MOS6502 на рассыпухе https://monster6502.com/. А то сразу - на тебе готовые логические элементы. Пусть сам собирает из транзисторов.
825 376214
>>376210
Когда-то я хотел спаять это, но оттолкнул сингл-борд дизайн. Лучше и красивее был бы вариант более компактной мат. платы, со слотами под отдельные функциональные модули.
826 376308
>>376032
Вощем, я смотрю тут у многих 407 камень, в него наверно и буду вкатываться. Как вам вот этот девайс https://ru.aliexpress.com/item/32878592679.html
827 376330
>>376308
А есть такие только с дополнительной sram?
Тоже хочу вкатиться.
828 376331
>>376330
Вроде как именно с Sram и 407 https://aliexpress.com/item/32890500011.html

Может сразу ебанешь подобное? Нравятся Боинги, но как-то больше нравится 747 чем массовый 767. https://aliexpress.com/item/32881207693.html
829 376334
>>376330
Тебе лучше малину брать сразу.
Эти процы гораздо ближе к SoC, нежели к МК.
Один хуй на них без RTOS нехуй делать.
images.png8 Кб, 281x180
830 376335
>>376334
>>376331
>>376330
>>376308
Зафига вам для миганий диодом и автоматизации унитаза брать такие процы? В чем прикол, купить ардуино, залить готовый скетч и подключить к унитазу, не легче ли купить готовый унитаз, дешевле выйдет.
831 376336
>>376334
>>376335
Отчасти соглашусь. Одна из причин, почему иногда рядом с процессорами ставят мелкие микроконтроллеры - это жесткий realtime. Редко, но бывают случаи где крайне важны задержки.
На больших процессорах - хуй посчитаешь задержки и джиттер, на contex - уже чуть проще, даже используя RTOS, на avr/pic - уже по тактам можно посчитать гарантированное время.
Из побочных эффектов - энергопотребление. Поставь свою малину на счетчики воды в сортире. Сколько она на батарейке проживет? Сколько проживет какой-то STM32 в режиме глубокого сна? На ESP или MSP430?
Сколько секунд стартует малинка? Ебать колотить, ты программируешь bare metal? Почему раньше не сказал? Сколько стартует код на STM32 или подобных МК без ОС?
832 376337
>>376336

>Сколько секунд стартует малинка? Ебать колотить, ты программируешь bare metal? Почему раньше не сказал? Сколько стартует код на STM32 или подобных МК без ОС?


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

На самом деле я просто имел ввиду, что создание всяких говноподелий это сорт селфчеленджа.
А взять 240МГц проц, залить туда ОС и запустить готовый экзешник - так себе челендж.
В добавок он будет абсолютно не эргономичным и дорогущим.
Вот да, несколько миллиардов транзисторов сливают за тобой говно.

>Одна из причин, почему иногда рядом с процессорами ставят мелкие микроконтроллеры - это жесткий realtime.


На самом деле нет или не совсем. Новомодные контроллеры имеют сорт спинного мозга (DMA + Сигнальную систему, позволяющую триггерить одну периферию другой, без вмешательства ядра).
А RTOS, работающие на десятках МГц, вполне себе позволяют гарантировано реагировать на события, гораздо быстрее 8биток, просто из-за огромнейшей частоты.
Ясен хуй, такие монстры в этих ситуациях не спят, но вот в хальте вполне себе могут стоять.

Все это относится к устройствам с постоянным питанием. С батарейными конечно так не получится, но F4 и мобильные устройства - очень специфичное сочетание, если тебе так нужно потребление, хули ты EFM8 не возьмешь какой?
833 376339
>>376337
Джва чая. Поэтому я, осваивая STM32 и ARM, не забуду Attiny13 и Atmega328.
834 376347
>>376339
С чего начать осваивать Малинку? Накатил линукс, написал на питоне программку мигания светодиодом. Что далее?
835 376371
>>376347
Вот нахуя ты занимаешь электроникой? Что ты мечтал сделать, когда вкатывался?
836 376395
>>376335

>В чем прикол,


Ну лично мне улыбнуло аппаратное деление и фпу, на первых порах. А насчет дешевле, так под себя ходить еще дешевле.
837 376437
>>376347
От мигания светодиодом до задания цвета точки на TFT экране через SPI всего неделя. Берешь экран и пишешь код, можно взять готовый код и под свои нужды подстроить. Можно взять готовый рабочий код (если найдёшь, лол) и сразу рисовать красивости. Можно взять потом датчики, пачку датчиков, массу проводов и датчиков и сделать очередную нужную только тебе погодную станцию со свистелками и перделками. А можно сделать смыватель унитаза с веб камерой, чтобы знать кто не смыл. Если подключить ещё микрофон и динамик через усилитель, то можно и поругать его за то, что не смыл.
Главное - идея, а не тип процессора/микроконтроллера/системы_на_чипе.
838 376439
>>376437
Это всё есть на пистоне и схх с библиотеками. Мне хотелось бы bare metal иминимальную ОСь запилить, например.
839 376440
>>376439
Пили. FreeRTOS на то и FREE.
840 376468
>>376439
Если тебе хочется пилить ось, ты берешь и пилишь ось. Ну светодиодом поморгаешь разве.

Все. Тебе не нужны крутые процы или еще что то, самый обоссаный контроллер пойдет.

>>376437

>От мигания светодиодом до задания цвета точки на TFT


Увы нет. По гайду можно сделать и за вечер. Многих в ступор не алгоритмы и сам процесс вводит.
А среды и инструменты. И все затыки самые жесткие именно там.
841 376590
Посоны, там это ST устраивает ВОРКШОП в России
STM32MP1 microprocessor hands-on workshop for developers
https://www.st.com/content/st_com/en/about/events/events.html/stm32mp1x-hands-on-workshop-emea-2019.html
842 376596
Посоветуйте как организовать меню, с возможностью изменения параметров через дисплей с помощью кнопок. Основная проблема что я не понимаю как делать, если на одной строке есть несколько переменых которые можно начать изменять
843 376720
>>376596
Через табуляции ентер плюс минус. Сам использую две кнопки для меню на прерываниях.
844 376743
>>376596
Не понял вопроса. Более подробно опиши.
845 376745
Где бесконечность? Покажи мне бесконечность? Ты сказал. Доказал? Кнопки меню четыре три параметра в строке менять. stm32 покажи мне
846 376793
>>376745
Просто берешь, без задней мысли, подходишь и меняешь. Строка это массив же.
847 376805
>>376793
Строка массив, а если скажу тебе, что три участка в строке надо менять и как выбрать , например, второй участок и изменить его? При этом первый и третий участок должны быть неизменными. Как?
896beade2bfe8861cb41f645bb189ab5.jpg15 Кб, 329x254
848 376806
849 376820
>>376596
Дай больше инфы, сколько у тебя кнопок в наличие и на каком камне ведёшь разработку.
sage 850 376827
>>376596
Что за дисплей, няша? Символьный?
Я недавно такую штуку писал на работе. Правда исходником вряд ли смогу поделиться.

In general, не важно, что за камень и какой тип экрана, последовательность работы мне видится такая:

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

void display_string(char string_for_display[17]);

uint8_t pipa = 0;
uint8_t popa = 1;
char str_buf[17] ="lolkastring";

void SysTick_Handler()
{
sprintf(str_buf, "pipa=2%d popa=3%d", pipa, popa);
display_string(str_buf);
}


Дальше, в меню (в той части, которая работает с кнопками), изменяешь те значения, которые тебе надо изменить.

typedef enum{
ITEM_PIPA = 0,
ITEM_POPA = 1,
NUM_OF_MENU_ITEMS;
}MENU_ITEM;

MENU_ITEM current_menu_item;
uint8_t p_item = 0;

void menu (void){
while (1)
{
switch(button_pressed)
{
case влево:
p_item = p_item - 1;
break;
case вправо:
p_item = *p_item + 1;
break;
case кнопка_перехода:
increaseCurrentMenuItem;
break;
default:
break;
}
}
}

void increaseCurrentMenuItem(void)
{
current_menu_item++;
if (current_menu_item >= NUM_OF_MENU_ITEMS)
{ current_menu_item = 0; }
}



Тут конечно дохуя чего нет, например, считывания кнопок, или самой процедуры вывода на экран, или "подсветки" изменяемого элемента. Да и писать/форматировать в окошке двача не оч удобно. Но касательно меню ты меня понял в общих чертах, я думаю.
Это, если что, для 2х - 3х кнопочного устройства.
sage 850 376827
>>376596
Что за дисплей, няша? Символьный?
Я недавно такую штуку писал на работе. Правда исходником вряд ли смогу поделиться.

In general, не важно, что за камень и какой тип экрана, последовательность работы мне видится такая:

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

void display_string(char string_for_display[17]);

uint8_t pipa = 0;
uint8_t popa = 1;
char str_buf[17] ="lolkastring";

void SysTick_Handler()
{
sprintf(str_buf, "pipa=2%d popa=3%d", pipa, popa);
display_string(str_buf);
}


Дальше, в меню (в той части, которая работает с кнопками), изменяешь те значения, которые тебе надо изменить.

typedef enum{
ITEM_PIPA = 0,
ITEM_POPA = 1,
NUM_OF_MENU_ITEMS;
}MENU_ITEM;

MENU_ITEM current_menu_item;
uint8_t p_item = 0;

void menu (void){
while (1)
{
switch(button_pressed)
{
case влево:
p_item = p_item - 1;
break;
case вправо:
p_item = *p_item + 1;
break;
case кнопка_перехода:
increaseCurrentMenuItem;
break;
default:
break;
}
}
}

void increaseCurrentMenuItem(void)
{
current_menu_item++;
if (current_menu_item >= NUM_OF_MENU_ITEMS)
{ current_menu_item = 0; }
}



Тут конечно дохуя чего нет, например, считывания кнопок, или самой процедуры вывода на экран, или "подсветки" изменяемого элемента. Да и писать/форматировать в окошке двача не оч удобно. Но касательно меню ты меня понял в общих чертах, я думаю.
Это, если что, для 2х - 3х кнопочного устройства.
851 376843
>>376827
Всегда делал меню:
Список с контентом меню
Номера списка закинуты в массив, повторяющий структуру меню.
Переменная с текущим отображаемым номером списка. В которую функцией навигации помещается номер позиции списка и откуда он считывается функцией дисплея.
852 376847
>>376843
Ну в принципе у меня так же запилено. Только в моей рабочей реализации, котнент меню был в массиве, и сразу оттуда вызывались по текущему номеру.
Просто он спросил как менять разные параметры в одной строке если я правильно понял, вот я и родил это нечто.
853 376849
>>376847

>котнент меню был в массиве


Жирновато же, да и на пюр-си получается переусложненно.
+ больше операций, если отображается динамический контент (приходится паковать в массив, потом его оттуда брать).
+ не получится "легкого" оверфлоу пунктов меню (если хранить номера, а не контент, можно зарезервировать на пустой\ошибочный\переводящий и пр).
854 376862
>>376849

>не получится "легкого" оверфлоу пунктов меню


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

>Жирновато же, да и на пюр-си получается переусложненно.


Ну хз, возможно, у меня так было сделать вполне целесообразно.
Готовых вариантов я не нашёл нихуя почему-то, а то что получилось выглядело вполне лаконично.
У меня просто в самом меню хуева гора подменю и привязанных действий, и экран может одновременно отображать только один пункт меню.
Двухстрочный, 1602, я не придумал чем было бы полезно отображать за раз больше одного пункта меню, и в итоге просто заполняю весь экран согласно текущему пункту. Получилось ок.
Получившийся в итоге код содержит один универсальный обработчик для всех меню/подменю, с возможностью настройки/выбора действий по кнопкам в текущем уровне меню.

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

>больше операций, если отображается динамический контент


Не совсем понял о чем ты, у меня "динамический" контент был, и в примере он тоже "динамический" - просто триггеришь по изменению значения (или по таймеру) изменение строки и всё, а по изменению строки триггеришь вывод оной на экран.
855 376866
>>376793
если представить строку как массив, то надо в этой строке найти число и представить его еще как число а не как строку. Еще и иметь в виду, что число там может быть не единственное.
>>376827
дисплей графический 128 на 64
>>376820
Камень stm32F407

У меня есть в наличии клавиатура с кнопками вверх/вниз/влево/вправо и кнопки enter и esc. Сами кнопки как мне кажется роли не играют, пусть даже у меня будет энкодер вместо кнопок.
У меня нет особых проблем если мне надо реализовать в меню чисто визуальную информацию или если в одной строке у меня находится только одно число, которое я могу начать изменять нажатием кнопки enter(например). Но если в строке находится несколько параметров которые можно изменять независимо друг от друга, тут уже проблема.
Как банальный пример настройка даты. В одной строке находится три числа (день, месяц и год). И я как бы должен иметь возможность менять каждое число отдельно. При этом еще было бы хорошо изменять по разрядам, иначе дрочить кнопку 30 раз чтобы изменить дату с 1го на 30ое такое себе удовольствие.

Я делал на другом проекте меню с помощью структур и указателей на соседние меню. Но там было мое ограничение на одно число в строке, и то не смотря на это было куча костылей потому что некоторые строки при нажатии должны были выполнять разные действия.
856 376867
>>376866
и при всем этом сама структура меню не должна по идее быть монолитной, т.е добавление новых пунктов меню в произвольных местах не должно сопровождать анальной болью
857 376868
>>376866
Бля, ну я чот совсем тупею, не могу такие простые вещи на словах объяснить, прости анон. Если я тебе описываю не то что тебе надо, поясни что именно ты хочешь услышать: структуру, реализацию в сях или ещё что. Просто так я буду долго распыляться, но ничем полезным не помогу.

>добавление новых пунктов меню в произвольных местах не должно сопровождать анальной болью


Тут я тебя не понял, какое тогда меню ты считаешь монолитным? СвитчКейс для каждого пункта меню?

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


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

Алсо:
Думаю, как моргать курсором ты придумаешь сам, правда? Ты уже разобрался как с символьным экраном работать?
Алсо2:
Может пригодиться. https://en.wikipedia.org/wiki/Binary-coded_decimal
858 376879
Спасибо! Самый профессиональный тред!
859 376881
>>376868
Монолитное меню в моем понимании это когда тебе например надо добавить где нибудь в середине новую строку с вложенным меню, но чтобы это добавить и заставить нормально работать необходимо пройтись по всему коду навигации или отрисовки и в куче мест(или даже в нескольких местах) сделать небольшие изменения
860 376883
>>376881
Ну да, это был бы непотребный пиздец.

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

Я, честно говоря, не знаю как объяснить тебе что делать. Начни с малого, напиши что-то простое (сам, чтобы понимать как жто работает), а потом скрести ужа с ежом.
Посмотрю ещё сегодня код с того проекта, может пришлю что-то. Но не факт.
861 376909
>>376883
Объективно да
862 377036
>>376596
Делал такое кучей методов, но нашёл-таки идеальный: массив из структур, каждая из которых описывает пункт меню. Для каждого пункта описан его тип и union, в котором для этого типа описаны параметры, например, ссылка на подменю.
863 377039
>>377036
А как решается несколько параметров в одной строке? Тоже делал через структуры, но как и описывал проблему выше, когда несколько параметров в строке и которые можно изменять все превращается в Франкенштейна
864 377042
>>377039
Рассматриваешь каждый параметр как подпункт меню с особыми свойствами, переключаешься между ними влево-вправо по аналогии, как ты ходишь по меню вверх-вниз.
865 377068
>>377042
В горизонтальных пунктах есть вертикальные субменю и это всё превращается в Ад!
866 377072
>>377042
А куском кода не поделишься для понимания что как?
867 377101
>>339005 (OP)
У меня тут вопросик с претензией на платину. А существуют ли симуляторы для этих ваших стм32? Или под 32 битный камень писать симулятор это уже за гранью?
Блять удобно же, чем по 1000 раз свой говнокод туда сюда перепрошивать изнашивая контроллер.
15597388654130.png95 Кб, 271x251
869 377104
>>377103
Респект и уважуха, бразер!
870 377173
>>377042
Поделись куском кода с горизонтальным меню
871 377180
>>377173
>>377072
Сорян, я такого не писал, лишь вбросил идею, как подобное реализовывал бы я сам при необходимости. 10 лет эмбедед-макакинга в энтерпрайзе.
872 377185
>>339005 (OP)
Лежала у меня stm32f4discovery, я поробовал на ней реализовать простенький проект, с 4 светодиодами, которые должны мигать с разной частотой и шимом регулировать яркость, и что-то охуел мальца. За последние несколько лет сделали либы, чтобы писать код просто как на ардуине, или stm32 все еще для илитных господ, которые могут 1000 страниц мануала прочитать и закончили профильный университет?
873 377186
>>377185
Если тебе нужна ардуина, почем не используешь ее?
874 377192
>>377185
Это разрабы так облегчают переход на их контроллеры, лол, сам в ахуе с этих дегенераторов.
Хотя асм у них во многом похож на атмеловский всякие мовсы хуевсы, но с углубленным познанием иховской архитектуры.
875 377196
>>377186
Ног мало, цап и ацп всратые, мощи недостаточно для чего-то связанного с хоть какими-то вычислениями на контроллере, а стоит ненамного дешевле.
876 377210
>>377185
У стм вроде есть линейка камней на которых можно прогать как на Ардуино
877 377212
>>377192
Но ведь дегенератор ето тi. Подумай на этим.
computers-are-racist.jpg34 Кб, 600x267
878 377214
>>377192

>Это разрабы так облегчают переход на их контроллеры, лол, сам в ахуе с этих дегенераторов.


Мне почему-то вспомнился пикрелейтед.
879 377216
>>377103
>>377101
>>377104
А чем симуляторы кейла какого не симуляторы?
880 377219
>>377214
Нигра прав, именно для этого придумываются всякие жавы и сисярпы.
881 377223
>>377219
Может и высшее образование не нужно?
882 377224
>>377223
Это интересный вопрос, но он ортогонален обсуждаемой теме.
883 377229
>>377223
Нужно чтобы в армию не ходить
884 377230
>>377072
Сегодня постараюсь свой закинуть, правда это не совсем то, что ты хочешь.
>>376883-кун
885 377494
>>339005 (OP)
Так раноны я делегирю этот курс леций на платину по вкатывания в серьёзные мк
https://www.youtube.com/watch?v=qiSjLxeyNv4
886 377500
>>377494
Подписался на видео от настоящего профи.
887 377512
>>377494
>>377500
Не, ну выбирая между ним и долбаебами заполонившими рунет которые показывают как набивать на клавиатуре функции и дефайны из стандартных библиотек, я конечно лучше его позырю.
888 377522
>>377494
Да он же долбоеб, и не умеет нихуя.
Курс от дихальта пизже в тысячу раз, он хотя бы не дауном для даунов сделан.
889 377559
>>377522
дихальт великий дядька! А где его курс?
Стикер575 Кб, 380x271
890 377601
891 377615
>>377559
>>377601
Курс дихальта в том, что уделив буквально 5 уроков ассемблеру и хорошему, компетентному разбору AVR — он позволяет самому легко изучать нужные ядра.
892 378217
Я так понял cubeMx используют в основном для удобства работы с частотами, типа чтоб голову не ебать прописывая, натыкал мышкой и пиздец, или я не прав?
893 378222
>>378217

>cubeMx используют для удобства работы


Вот это.
894 378224
>>378217
Он столько говна побочного генерит, что лучше уж самому.
Хз куб использую для тяжелой периферии, т.к. там заебешься сам писать.

По поводу всяких АЦП\Таймеров и прочей хуйни - хуй знает их по хорошему один хуй приходится по РМ изучать, после которого уже можешь сам растолкать биты, чем переписывать эти тонны дефайнов.

Spl бывает удобно для периферии подгрузить, но хуй знает не более, нахуя?
895 378236
>>376590
Посоны, из ДС2 туда идёт кто-нибудь?
896 378238
>>378236
Я нет, а ты?
897 378240
>>378238
А я да - давно эти хуйни интересуют.
898 380821
>>339005 (OP)
Рожал ЭТО целый вечер. Я тут походу самый успешный
Настройка тактирования через CMSIS

https://ideone.com/QJ72Rw
899 380824
>>380821

>ЭТО


С HALа спиздил?
900 380826
>>380821
А теперь напиши то же самое на ассемблере.
901 380830
>>380824
Чтение RM0008 Reference manua
902 380831
>>380826
Говно вопрос
https://ideone.com/G6LUi1
903 380839
>>380831
Хорошо написал. У тебя там вообще абсолютные адреса в инструкциях переходов. Хоть бы через gcc -S сделал.
image.png19 Кб, 435x250
904 380844
Кто-нибудь делал задержку на DWT? Почему она запускается только при хард резете(кнопкой на плате)? И если сделать софт резет снова ложится. Что я упускаю?
905 380863
>>380844

>while


Не надо так с процессором. Лучше считать разницу между текущим и заданным.
906 380869
>>380863

>>while


> Не надо так с процессором.


Хороший способ его нагреть.

> Лучше считать разницу между текущим и заданным.


И? Использовать прерывание по таймеру?
907 380891
>>380863

>Не надо так


Пару сотен микросекунд может и потерпеть. Все равно большинство времени он бездействует в ожидании прерываний от систика.
908 380948
Есть что-нибудь легче чем Stm32f407g-disc1 для вокального процессора?
909 380959
>>380869
Да, тем более таймеров в STM32 достаточно. Просто считай каждую миллисекунду и складывай. А потом сравнивай, прошло ли время.

>>380891
А потом жаловаться будешь, почему синхронизации добиться не удается.
910 380996
>>380948
Ты хочешь прямо в микрофон на плате петь?
911 381006
>>380996
выпаять, не? тред отпаялся засмеялся всегда ждет
912 381009
>>381006
Да ну, зачем плату портить. Куда ты его потом припаяешь? У него корпус с выводами под пузом
913 381021
>>381009
Ну поэтому спрашиваю, что подойдет для такой задачи, попроще чем stm32f4, шобы свой микро, да и без наворотов менять голос риал тайм, пару эффектов, тон эхо.. все дела
хотя куда я замахнулс, сначала на ардуино сделаю фпесду
914 381052
>>381021

> менять голос риал тайм, пару эффектов, тон эхо


> на ардуино сделаю


Ты уверен, что ты вообще понимаешь, на что ты замахнулся?
915 381077
>>381052

>на ардуино сделаю


Конечно он не понимает, на дуине максимум перделку он получит, с 16МГц.
916 381081
>>381052
>>381077
смисол спрашивать у вас если вам пох на вопрос, анон хуле ты тупишь.
Даже если перделку, получу опыт, прежде чем заказывать стмку
Да, понимаю, что ардуины не хватит
https://www.youtube.com/watch?v=3tEHxL_1UYw
917 381086
>>380948
Бери эту плату и вперёд изучать цос. Тебе хватит ее более чем. Если решишься, то могу потом более подробно рассказать куда копать.
918 381087
>>381081

> смисол спрашивать у вас если вам пох на вопрос


Смысл тебе отвечать, если ты не слушаешь никакие ответы, кроме тех, которые подтверждают твою маняточку зрения?
Это называется confirmation bias, если что
919 381088
>>381081
Сделай все для начала на компьютере, тогда будут яснее требования к микроконтроллеру. А потом просто перенесешь код с компа на микроконтроллер. И покупать для изучения цос какие-то платы не нужно. Ну просто совсем не нужно.
Но, как пишет анон выше, ты явно не последуешь совету.
920 381093
>>381088
>>381087
Совет приму, начну с матчасти dsp
А когнитивное искажение которое мне приписали, нет

>> Смысл тебе отвечать, если ты не слушаешь никакие ответы


Обратная связь тухлая, вот и сделал выводы, но начну с курения dsp
921 381095
>>381093

> 2 ответа на следующий день


> уточняющие вопросы


> дельные советы


> НЕТ У МИНЯ КАГНЕТИВНЫХ ИСКОЖЕНИЙ!!!! ЭТА АБРАТНАЯ СВЯСЬ ТУХЛОЯ!!!


Понятно, нахуй иди даун
922 381096
>>381095
бом бом
15637319458670.jpg39 Кб, 480x412
923 381105
Как вы относитесь к заимствованию чужого кода?
Например понадобилось работать с картами памяти по SPI. Вместо того чтоб разбираться, как её там инициализировать я тупо спиздил код с гитхаба. Кубом сгенерировал проект тыкнув с поддержкой FatFs. Малость допилил и оно даже работает.
Но чувство своей никчемности остается.
60724848p0.png327 Кб, 1050x1050
924 381107
>>381105
Сначала делаю лишь бы работало, из КУБовской зелёнки и библиотек с гитхаба или видеоуроков. Потом уже раскуриваю и переписываю все самостоятельно.
925 381117
>>381105
Не имеет смысл как ты относишься.
Имеет смысл как ты ДОЛЖЕН относится.

А должен полностью положительно. Тут блядь уже больше полувека ебутся над модульностью и если что то встало со свистом и удовлетворяет требованиям - не трож!
Не потому, что сломаешь или еще что-то, просто потрать время на что то более полезное.

О твоем опыте будут судить по реальным устройствам, а не количеству велосипедов внутри.
926 381118
>>381117
>>381105
В догонку, ширина опыта в подавляющем большинстве случаев гораздо более важна.
Если тебе нужно будет завелосипедить FAT - поверь ты завелосипедишь, поебешься может, но результат будет 100%.
Это тривиальная обыкновенная задача. То, что кто то всрал месяцы и ее решил - молодец, но нахуй тебе это повторять, ради чего?
Реально полезных новых знаний ты получишь крохи.

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

Так, что не еби мозги себе, поебаться в глубь ты еще не раз успеешь.
927 381119
>>381107
Тратя хренову тонну времени?
928 381131
>>381118

>ты можешь очень хорошо планировать структуру и архитектуру >решения.


Это под час несколько даже важнее велосипедов.
Ибо убив тучу времени на "ковыряние" , и прокачав скилл. На выходе может получиться монстр.
929 381145
>>381119

>переписываю все самостоятельно


Ну или просто забиваю и оставляю как есть. Но хотя-бы поверхностно знать как оно работает не повредит.
930 381146
где купить комплектующие?
931 381164
>>381146
В магазине.
932 381171
>>378240
Ну что, как сходил, рассказывай?
933 381182
>>381171
Малаца, хорошо зделали. Сам камень позиционируется, как переходная форма от МК к процессорам, когда у тебя задача с реалтаймом, но ещё хотелось бы иметь и линукс. По софту - заебись, всё, как обычно, опенсорсное, но при этом, в отличие от других вендоров, специфические патчи по-максимуму пушатся в апстрим, так что ты всегда сможешь пользоваться свежими версиями ядра/либ/инструментов и свободно конфигурировать всё, как тебе надо. Из всей полезной информации половина - сам семинар, половина - комментарии из зала. Собственно, на подобные мероприятия ходить и стоит хотя бы ради того, чтобы послушать кулсторей от опытных специалистов.
934 381190
>>381118
А теперь представь что есть области разработки встраиваемых систем,и их достаточно много(думаю ты догадаешься какие), где нельзя иметь ошибки в коде, а ты заимствуешь чужой код и не смотришь под капот. Какие варианты событий могут быть, как думаешь?
Количество проектов не показатель, так как работая с железом ты всегда уходишь в долгосрочную поддержку своих решений.
935 381192
>>380891
Если только для попробовать или демо проекта, а так таймер и только.
936 381194
>>381182
Если ты хочешь работать с мк не на полную нагрузку, то бери РТОС, если тебе прям вообще пиздец реал тайм надо, чтоб подстройка по фазе на высокоскоростной шине была, обработка пакетов на самом низком уровне, всякие CRC, коррекция ошибок и т.д, то только напрямую через регистры надо.
937 381195
>>377214
Высокий порог входа делает профессию более закрытой, и перспективной на длинной дистанции.
А нигра порадовал, очень недалекий поц)
938 381205
>>381190
Эти сферы во первых оплачиваются, а значит вся ебля велосипедов - тоже оплачена, во вторых, разрабатываются группой людей, знающих что они делают.
939 381208
>>381205
Правильный ответ
940 381214
>>381190

>заимствуешь чужой код и не смотришь под капот


Так этого никто и не пропагандирует, особенно в указанных областях. Если уж лезть в высокие материи, то там положено иметь полноценный процесс разработки, который начинается с проектирования и включает в себя тестирование и верификацию, так что там уже не важно твой код или нет. Тем более, что какой-нибудь FatFS прошёл гораздо большую проверку временем и лучше отлажен, чем свой велосипед.
>>381194
Да так и делаю, анон. А конкретно с MP1 в том и прикол, что там в одном корпусе кортекс-м и кортекс-а. На первом крутится всё как ты сказал, а на втором - линукс с вебом, гуями, питонами, машинным зрением, нейронками и прочим. При всём при этом, реалтаймовая часть и линуксовая друг другу не мешают и имеют возможность быстро обмениваться данными через разделяемую память.
>>381195
Я это скорее к потому, что, как мне кажется, куб с халом и так уже достаточно простыми сделаны. Да, надо напрягаться и изучать, потому что ещё проще уже некуда - стм32 в принципе сложнее авр. Если дальше упрощать - то получится совсем примитив, негодный для реального применеия.
941 381218
>>381214
Все так. Тут по ходу сидят либо те, кто все и так понимают с полуслова и им ничего не надо доказывать, либо те, кто понимает очень мало и сами не понимают что говорят. А между ними молчуны, которые осваивают и им некогда болтать)
942 381227
>>381218
Так-то да но не критично
943 381286
>>381182
А на русском было? Ништяки давали какие?
944 381297
>>381286
Маркетинговая часть и теория на русском, практика на английском. Ничего не дали, но дико извинялись.
945 381316
>>381182

> так что ты всегда сможешь пользоваться свежими версиями ядра/либ/


угу, новыми суперабстрагированными от старых свежими версиями.
17736d.jpg60 Кб, 604x436
946 381317
947 381322
>>381317
То, что иногда на тормоз полезно нажимать, все хорошо в меру.
image.png112 Кб, 429x247
948 381359
>>381218
А хули говорить, на вопросы, что знаю - отвечаю, на те что нет - не отвечаю.

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

Никто не рассказывает тут про свои проекты или кулстори, не обсуждает идеи.
Для сложных вопросов форума лучше.
949 384938
>>339005 (OP)
Итак! В будуещем потребуется создать сеть из микродатчиков по всей избе и участку. Смотреть в сторону стм8 не собираюсь ввиду копеечных ценников на младшие стм32. На чем посоветуете планировать сеть? САN? Modbus?
950 384950
>>384938
Посмотри в сторону zigbee
951 384956
>>384938
Если нужна НАДЕЖНОСТЬ и отсутствие влияния фаз луны, соседей со сварочниками, пердежа от телефонов и прочих радостей радио - то только кабель. Если поиграться и не управляешь ядерным реактором - можешь послушать >>384950
Если надо будет за раз передавать больше 8 байт - то готовься к пердолингу используя MODBUS (over RS485). Если сильно ленив - то CAN твой лучший друг. Аппаратные фильтры 11(29) битного адреса (в modbus их сам делаешь и максимум около 240 устройств), авторазрешение коллизий - твое дерьмо будет ГАРАНТИРОВАННО доставлено единым куском. В самом же STM - у тебя будет прерывание, уйдя в которое читаешь присланное число байт из mailbox и туда же пишешь данные на отправку. Красота. Никакого пердолинга с таймаутами, фильтрами, CRC..
952 385021
>>384938

>На чем посоветуете планировать сеть


Очевидно через AC.
Потому, что нахуй провода!

>>384956

>Если сильно ленив - то CAN твой лучший друг


С модбасом так то поменьше ебли, не? Он банально более любительски освоен.
Стикер575 Кб, 306x420
953 385040
>>384938

>сеть из микродатчиков по всей избе и участку


>копеечных



Платы Blue Pill
NRF24L01
Ардуино и библиотека MySensors
954 385041
>>385021

>С модбасом так то поменьше ебли, не? Он банально более любительски освоен.


Нет. Самый минимум ебли - это CAN, который умеет передавать за раз до 8 байт. Можно даже 0 байт передавать.
С модбасом или DCON будет намного больше ебли и он не умеет в push режим - у тебя один(два.. как их арбитраж собрался делать?) мастера, которые опрашивают слейвов, а слейвы сами при поступлении какого-то события сами не могут ничего отправить мастеру(ам).
Надо сказать что CAN - это все лишь физический уровень передачи данных, как и RS485. Но отличия очень большие - в RS485 идет побайтовая передача без разрешения коллизий, а в CAN - передача фреймами, внутри которых уже есть и адрес получателя (адреса отправителя нет) и он же приоритет, контрольная сумма фрейма, до 8 байт данных и даже бит получения другими устройствами (в RS485 - срешь в пустоту и не поймешь - принял кто или не принял или есть ли вообще кто-то на шине, в CAN - есть спецбит, который устанавливают все другие устройства, говоря что на шине кто-то есть и этот(эти) распознали и подтверждают прием фрейма с шины. Просто прием, а не то что программой обработан)
955 385042
>>385041
Годно! Посмотрел, драйверы копейки стоят, двухпроводная линия, камни с поддержкой CAN от 70р. Пожалуй самый оптимус.
956 385046
>>385042
Для дебага не поленись собери типа такой хуйни https://full-chip.net/shemy-na-mikrokontrollerah/108-usb-can-interfeys-ili-prosto-can-haker-svoimi-rukami.html . Яростно не гонял, как минимум соединив 2 между собой - получалось отправлять спам с одного на другой. Может зайдет такого плана https://habr.com/ru/post/256493/ (не проверял на практике).
Если внимательно читал прошлый пост - в пустую шину (где ты один) не отправишь данные, кто-то еще должен быть живым и настроенным на шине. Хоть тот же сниффер не в режиме только прослушки, да и тестовые фреймики сможешь покидать-посмотреть при первичной настройке и настройке фильтров адресов.
957 385147
>>385041

>RS485 - срешь в пустоту и не поймешь - принял кто или не принял или есть ли вообще кто-то на шине


На каждый запрос от хозяина раб выдаёт ответ-подтверждение.
958 385172
>>385046
Драверы - не драйверы, это просто PHY, а вот MAC тебе уже потребуется либо софтом реализовывать и я честно его не находил - тыкните, если есть.
Либо покупать МК с ним. В то же время для модбаса нужен уарт который есть везде, а PHY RS-485 стоят то-же копье.

Это не отменяет то, что писал анон выше, но иметь ввиду стоит.

>>385041
Я еще предлагал PLC, что думаешь? Мне кажется очень интересное и прикольное решение.
959 385182
>>385172

>Либо покупать МК с ним


32f072 от 101р у нас. Заказал у китайцы пяток 32f103cbu за 650р, т.е. по 130р/шт У них памяти жирно, по 128кб, периферии дохуя. Даже как-то жалко использовать для таких прозаических целей. Хотя нету смысла изголяться с более дешевыми ибо 100-130р это таки совсем копейки для десятка датчиков.
960 385183
>>385182
Опять вы жопосчетцы.

Покупать обвязку, ебатся с коммутированием 5 и 3.3, разводить и травить заебные схемы?
В плане иногда легче купить не STM32 за 100р, а PIC16 за 200 и иметь удобный корпус,маленькую плату и без ебли с периферией.
961 385223
>>385147

>На каждый запрос от хозяина раб выдаёт ответ-подтверждение.


Если он есть на шине и с правильным адресом.
Про таймаут на время ответа не забыл? Будешь бесконечно ждать ответа слейва? Изначально же архитектура модбаса - запрос-ответ. Просто так в произвольный момент времени ответ мастеру не вышлешь - у него же нет адреса и принимает ответы только когда был запрос с его стороны.
В CANе даже если не совпадает фильтр маски - это устройство отвечает и подтверждает прием фрейма. Да, это не ответ устройства и не показатель что нужное устройство живое, но оно хотя бы говорит о том что на шине мы не одни.
962 385235
>>385183

>ебатся с коммутированием 5 и 3.3


Зачем?

>Покупать обвязку


Конденсатор штоле?

>PIC16 за 200 и иметь удобный корпус,маленькую плату и без ебли с периферией


Т.е. в него прямо датчики с периферией встроены? Только Крону к двум ногам остается подкинуть?
963 385247
>>385223

>Если он есть на шине и с правильным адресом.


Согласен.

>Про таймаут на время ответа не забыл? Будешь бесконечно ждать ответа слейва?


Время на обработку запроса задаётся на стадии проектировки. Прописали, скажем, что время между запросом и ответом 10 мс - тогда ждем 11 мс.

>Изначально же архитектура модбаса - запрос-ответ. Просто так в произвольный момент времени ответ мастеру не вышлешь - у него же нет адреса и принимает ответы только когда был запрос с его стороны.


Мастер постоянно опрашивает все слейвы, и если один слейв пропал(не отвечает) это выяснится - какой именно раб пропал.
964 385251
>>384938
ESP8266
S
P
8
2
6
6
965 385260
>>385251
Сразу нахуй. Я не смогу обеспечить стабильное питание дворовых датчиков. Там думаю применять L-серию с микропотреблением и йоба-способностями ко сну, и прочем гибернациям.
966 385262
>>385260

> Там думаю применять L-серию с микропотреблением и йоба-способностями ко сну, и прочем гибернациям.


И как это тебе поможет при нестабильном питании? И почему ты считаешь, что нестабильное питание для esp это проблема, а для stm32l серии нет? С чего ты взял?
967 385266
>>385262

>С чего ты взял?


C того, что L-серия допускает работу в режиме Range3 при 1.2В, а твоя ЕСП сдохнет при падении ниже 3В
image.png164 Кб, 728x416
968 385267
>>385235

>Зачем?


Потому что многие датчики с алиэкспресса работают от 5В, многая периферия работает от 5В.

>Конденсатор штоле?


>Т.е. в него прямо датчики с периферией встроены? Только Крону к двум ногам остается подкинуть?


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

>>385251
Пик
969 385268
>>385266
А что, твоё нестабильное питание падает ниже 3В, но гарантированно не падает ниже 1.2В?
970 385269
>>385267

> Пик


Неплохая самоирония
971 385270
>>385269

>сам такой



Как там в 6м классе?
15703556485680.jpg64 Кб, 768x480
972 385274
>>385267

>с алиэкспресса

05.PNG35 Кб, 836x537
973 385276
>>385267

>0.2 платы


Почему 0.2, когда 0.5?
image.png12 Кб, 302x188
974 385281
975 385284
>>385270

> Как там в 6м классе?


Нормально, уже научились общаться словами, а не картинками
976 385285
>>385281
Хуяришь дороги 0.15 и между ними получается 0.3. Вот если бы 0.1 по осям было, тогда беда.
977 385286
>>385285

>Хуяришь дороги 0.15


Лол ну хуярь.
Я хуярил 0.2, раза с 3го получалось, с небольшими исправлениями.

Чем ты 0.15 дороги сделаешь? ЛУТом - сразу на хуй идешь, фоторезистом - при проявки такие тонкие постоянно отрываются.

Есть смысл как раз хуяить дороги 0.3 - 0.4, т.к. в силу свойств домашнего засвета фоторезиста они будут 0.3 или 0.25.

А там где слипниться разрезать.

Но это все равно ебля, на каких DIP\SO таких проблем нет.
WP20180213124735Pro.jpg530 Кб, 1436x1459
978 385288
>>385286

> ЛУТом - сразу на хуй идешь


БЛЯЯЯЯААААА!!
Вот такой же QFN28
979 385334
Привет, форумчане! Хочу вкатиться в эти ваши стм32... Подскажите, плиз, какая библиотека на сегодняшний день я является самой актуальной и популярной? HAL, CMSIS или STDPeriph?
980 385343
>>385334
Вкатись для начала, что бы понять, что ты хуйню спрашиваешь.
981 385352
почитал тред малеха, увидел что тут диспут по поводу стака утил и решил поделиться своим
долго искал классное иде, но в конечном итоге бросил это гиблое дело и пишу все в текстовом редакторе, компилирую(arm none eabi gcc) все и заливаю(https://github.com/texane/stlink) через терминал
из куба достаю мэйкфайл, правлю его немного, дописываю пути, иногда флаги, убираю баги(куб глупенький и иногда оставляет ненужные символы в мейкфайле)
все делаю под линой, на дебиане и убунту все фурычит
из железа использую ща диско борд, но китайский stm32f103 тоже отлично работает
пысы в цмсисе и по сей день баги(хотя могут быть и в железе), время от времени сталкиваюсь с проблемой, что некоторые юарт\спай\i2c могут читать, но не писать или наоборот, тогда перекидываю все на другой порт и там все работает. Было еще пару космических багов, когда например глобальная переменная, которая была проинициализирована нулем(сейчас то я знаю что это было необязательно) не меняла своего значения(а вторая, которая была рядом меняла) в рантайме, хз в чем была проблема, это я к тому что если что-то не фурычит - эт не всегда ты долбоеб, но это не точно
982 385353
у меня такой вопрос, кто-нибудь пытался обновить прошивку на atwinc1500 модуле без приблуд атмеля, а то не хочется брать стак бордов, который мне нахуй не сдался только для того что бы обновить прошивку
983 385382
>>385352

>Я долго искал тян мечты, но в конечном бросил это дело и стал пидором.



Не понимаю я людей использующих линь его наиболее слабыми сторонами или ради идеи.
Можно блин просто настроить MVS и не ебать мозги.
984 385386
>>339005 (OP)
Какие операционные системы можно накатить на STM32?
С него можно смотреть аниме подключив к монитору или слушать музыку?
stm32f769idiscovery-opencv.jpg147 Кб, 1280x960
985 385420
>>385386
На пикрил можно накатить МС-ДОС 6.22 РУ и поверх Виндовс 98, соответственно все программы будут работать.
986 385422
>>385420
Как?

Ты хочешь сказать что W98 имеет компиленные исходники на ARM Mx?
Пахнет пиздежом.
987 385442
>>385422
Конечно эмуль х86 изначально накатить
988 385450
>>385442
Оно же загрузится к твоим поминкам лол.
989 385775
>>385450
В студенческую пору запускал виртуалку вин98 на древнем андроиде с одноядерным ARM6 800 мгц и 512 мб памяти. Считай, что практически виртуалка в виртуалке. Да, тормозило сильно, но в остальном работало без проблем. Грузилось в пределах пары минут, как помнится. На самой виртуалке запускал и гонял самописные СУБД на делфи, лолблядь. Все работало. Препод даже пожал руку, для него были открытием такие возможности у смартфона. Так что производительности современной демоплаты с жирным ARMом должно хватить с лихвой.
мимо
990 386442
>>385334
>>385343
Он прав, но CMSIS, остальные это абстракции вокруг CMSIS
991 386703
>>385334

>HAL, CMSIS или STDPeriph



Зачем всё это нужно, когда есть LL?
e00j90.jpg80 Кб, 500x375
992 386745
>>386703
Я, к примеру, ебал эти регистры запоминать. Написано HAL_UART_Transmit значит передать по юарту, еба. Пили себе сам цикл с регистроебством.
993 386752
>>386745
Лол
Это тот самый в котором ты из переменный перекладываешь в регистр и уходишь?
Охуеть регистроебство.

При этом, что бы настроить через сраный хал, тебе надо знать все тоже кол-во дефайнов и прочей хуйни.
Вас напугали голой жопой и вы хуйней страдаете.
994 386758
>>386752

>Это тот самый


Это цикл, в котором байты из массива перекладываются в DR. Само собой, в этом же цикле имеется ожидание бита TXE в регистре статуса или что-то подобное.
Даже до простых прерываний наш любитель HAL-а похоже не дорос.
995 386760
>>386745
При отладке копаться в коде этого порождения индусов под названием HAL как-то не оче. А при LL или CMSIS сразу видно в ожидании установки какого регистра всё встало колом. Ну и в ЛЛ код не такой мозговыносящий получается, никаких там
УОБА->ДВОЩ &= ~ПРАВАЯ_ПЯТКА_ЛЕВОЙ_НОГИ_66_ИНДУСА
996 386769
>>386758

>имеется ожидание бита TXE в регистре статуса или что-то подобное.


Че бля?
Ты че не в прерывании их закидываешь чтоли?
997 386807
>>386769
Всего лишь описал содержимое функции HAL_UART_Transmit. Для передачи по прерываниям там есть HAL_UART_Transmit_IT, судя по всему. Если ты про использование HAL_UART_Transmit в прерываниях, то это уже просто бред.
И я ничего не закидываю, потому что использую STM32 очень редко.
998 386968
>>339005 (OP)
Cube MX и HAL - это как Arduino IDE для STM32?
Тех, кто ими пользуются, презирают так же, как ардуинщиков?
999 386971
>>386968
нет
И ардуинщиков тоже никто не презирает, пока они выебщиками не становятся и\или в про сферу не лезут
1000 386974
>>386968
Совсем нет, но последствия иногда бывают аналогичные. Вон чуть выше пример с функцией HAL_UART_Transmit, которая тупо в цикле тратит время на ожидание флага. Конечно и такие функции иногда нужны, но также весьма часто такое не подходит. А любитель HAL, судя по отсутствию аргументов, выучил одну эту функцию, как аналог ардуиновской, и даже не подозревает о других возможностях, которые тоже есть в HAL.
1001 387149
>>386971

>И ардуинщиков тоже никто не презирает, пока они выебщиками не становятся и\или в про сферу не лезут


Сталкивался с дизайнером по профессии, у которого было ардуино головного мозга. Он всерьёз настойчиво советовал юзать вместо STM32 в TQFP-корпусе в серийных изделиях ардуинки-модули, которые вставлялись бы в PLS-разъёмы на платах.
ECerV3WwAAHdf6.jpg350 Кб, 2048x1366
1002 387156
>>387149

>дизайнером

1003 387190
>>386974
Ожидание флага в цикле, один из смертельных грехов.
1004 387197
>>387190
Не стоит утверждать так категорично. Вполне можно найти случаи, когда это будет ничем не хуже других вариантов. Например, что может быть плохого в том, чтобы таким образом сразу после включения питания выдать в UART номер версии прошивки?
При желании можно даже найти случаи, когда иначе вообще никак. Например, в Cortex-M0/M1 нельзя изменить положение таблицы прерываний через регистр VTOR. А значит, в бутлоадере придется не использовать прерывания. В некоторых микроконтроллерах (кажется всех STM32) это можно обойти, но не везде.
Так что нет ничего плохого в том, что такая функция имеется в HAL.
1005 387205
>>387197
Ты слишком взрослый для этого итт треда
1006 387259
>>367293
який програматор ??? схему будьласка.
1007 387299
>>387259

>який програматор ???


Встроенный. Разобрался уже. В ст-линк надо было экстернал лоадер подключить, тому що малюнки льются в нанд-флеш распаянный на плате
maxresdefault.jpg148 Кб, 1280x720
1008 387460
Третьего дня нашёл на ютубе супер-канал
1009 387488
>>387460
Зачетный дядька. Поддвачиваю. Иногда посматриваю, как и Jack0v.
1010 387509
>>367293
У тебя что-то с форматом картинок не так. Если бы была проблема в железе, то тогда бы и надписи поехали
1011 387561
>>387460
Дядька иногда несёт ересь, но в большинстве своём - годный материал :-)
1012 387562
>>387190
Пардоньте, а что тут плохого?
Как кошегно делать?
1013 387564
>>387562
Всего есть три основных способа. Ожидание флага в цикле, передача по прерываниям и ПДП. В зависимости от решаемых задач, целесообразно использовать один из этих способов.
HAL_UART_Transmit и подобные - это блокирующие функции. Все останавливается, за исключением прерываний. Это не плохо, только часто целесообразнее использовать не блокирующие способы.
1014 387609
>>387564

> Ожидание флага в цикле, передача по прерываниям и ПДП.


Ну я в прерывании поднимаю флаг и отрабатываю его в цикле.
Это неправильно?
1015 387643
Сразу говорю - я даун и не шарю. Есть одна плата с алика на STM32F103C8T6. Брал для баловства, не осилил и забросил. Сейчас надо организовать автополив раз в 3 дня, а ардуинки нет под рукой и не скоро придёт из Китая. Подумал - чего добру пропадать и решил сделать автополив на stm32. Написал код в несколько строчек через задержку:

LL_GPIO_SetOutputPin(GPIOC, LL_GPIO_PIN_1);
LL_mDelay(0xF73 0xFFFF);
LL_GPIO_ResetOutputPin(GPIOC, LL_GPIO_PIN_1);
LL_mDelay(20000);


72 часа стоит, 20 секунд включен, и так по циклу. Будет это работать? Именно значение 0xF73
0xFFFF не упрется в максимум в 65535 миллисекунд?
1016 387644
>>387643

> LL_mDelay(0xF73 * 0xFFFF);


фикс
1017 387672
>>387644
Не упрётся, задержка uint32_t
1018 387678
>>387672
То есть максимально 2147483647? А если надо больше? Можно две строчки задержек делать?
1019 387706
>>387678

>А если надо больше?


Там RTC есть, болезный! Хоть годовые задержки делай, только Vbat подключи
1020 387710
>>387678
Нет, максимальное значение 232-1=4294967295.

>больше


4294967295 миллисекунд это 49 дней. Однако, если микроконтроллер должен делать что-то еще кроме мигания светодиодом с таким периодом, то эту функцию нет смысла использовать.
1021 387743
народ, кто-нибудь пробовал подключать стм32 компьютеру через microUSB и передавать данные с МК на комп?? Сложно ли такую фигню реализовать?? Просто искал в интернете и нигде ничего не нашел
1022 387745
>>387743
Нет, никто это не делал. Ты будешь первым. Как получится - напиши, как это делать.
1023 387746
>>387706

> только Vbat подключи


Тупа батарейку или аккум на 3.3В подключить к выводам Vbat и GND?
>>387710

> если микроконтроллер должен делать что-то еще кроме мигания светодиодом с таким периодом, то эту функцию нет смысла использовать


Это я уже понял. Пока что только полив. Если удастся разобраться, то повешу на него и реле светодиодов досветки растений. Пока что я даже чужой код позаимствовать не могу, потому что ничего не понимаю. Но я уже сейчас понял, что даже с обычной задержкой на 72 часа обосрался, потому как запитал контроллер от обычного блока питания. Если вырубят свет, контроллер перезагрузится и начнёт считать заново.
1024 387759
>>387743
я делал, без вникания в происходящее - не особо сложно. Не таймер на ордуине запустить конечно.

А вот копать глубже - там уже жарко.
1025 387763
>>387743
Компьютер не может быть usb slave девайсом, он всегда хост
1026 387765
>>387743
usb-uart и usb-mass storage device есть примеры в stdperiph, не знаю насчет цмсиса.
и прочитай для начала это: http://microsin.ru/content/view/1107/44/
1027 387772
>>387643
Почитай про RTC в референс мануале.
Безымянный.png6 Кб, 599x284
1028 387787
image.png167 Кб, 726x443
1029 387790
>>387787
Никогда не заебусь постить эту пикчу.
1030 387792
>>387763
Как это относится к теме вопроса?
maxresdefault.jpg82 Кб, 1280x720
1031 387798
Хуй знает, спрошу тут.

Хочу шимить 12В вентиляторы на частоте 25 кГц (high frequency pwm). Вентиляторы 4 пиновые: +, -, тахо и шим-вход.

Правильно ил я понимаю, что понадобится: три таймера с CC0, счётчик импульсов PCNT и мультиплексор (для переключения канала тахо с трёх вентилей на вход счётчика импульсов).

Помимо управления вентилями мк сможет выполнять другую работу? Вроде обмена данными по SPI \ ногодрыга.
1032 387801
>>387798
Сделай на 1м таймере блядь, будь мужиком.
Если автоматический счетчик хочешь то 2.

Но можно управляющий не в режиме ШИМ, а системного таймера сделать и тогда будет 1 на тахометр + 1 системный мультизадачный.
1033 387914
>>387643

>STM32F103C8T6


Там глубоко внутри есть часы с будильником.
1034 387915
>>387746

>я даже чужой код позаимствовать не могу


Иди раскуривай уроки дедули с narodstream. Он там как-раз по Си уроки пилить начал.
image.png149 Кб, 1387x823
1035 387921
>>387743

>подключать стм32 компьютеру через microUSB и передавать данные с МК на комп


Берешь КУБ, включаешь там USB. Затем надо добавить в проект вот это(в соответствующие места)

/ USER CODE BEGIN Includes /
#include "usbd_cdc_if.h"
/ USER CODE END Includes /

/ USER CODE BEGIN 4 /
void SendToUSB(const char text)
{
CDC_Transmit_FS((uint8_t
)text, strlen(text));
}
/ USER CODE END 4 /

И можно в бесконечном цикле отправлять что-нибудь.
SendToUSB("Sup ra\r\n");
си.jpg95 Кб, 1280x720
1036 387929
>>387915
Благо дарю. Давно не смотрел дядю. А СИ подучить надо.
1037 387930
>>387921
Лолблядь!! Неужели так просто свой COM порт на STM32 запустить? Охуенно!! Спасибо, не знал.
1038 387937
>>387930
Когда еще не было куба, было не намного сложнее. Достаточно было взять пример и поменять настройку портов под имеющуюся плату.
1039 388044
>>387937
У narodsteam все уроки в кубике
1040 388077
>>388044
В последних по СТМ он там под CMSIS все перепиливал.
1041 388188
>>388077
Надо будет пересмотреть.
1042 388198
Интересует мнение про интернет вещей. Что это такое в целом, из чего состоит?
Чисто с моего дивана мне это представляется как некая работа с теми же микроконтроллерами, но с достаточной примесью высокоуровневых языков и связанной работой между этими двумя компонентами.
1043 388201
>>388198
Интернет вещей это когда ты спроектировал 3D-дилдак новой оптимальной конструкции и не выходя из дома запилил пробную партию из 100 штук на заводике в Китае.
1044 388204
>>388198
>>388201
Ебанутые?
Ебанутые.

Это построение взаимодействия между устройствами, сервисами и потребителем. Конкретная реализация в этом контексте не важна.

Это могут быть пакеты молока с автозаказом по опустошении.
Может быть ардуиноунитаз с подсветкой и голосовым управлением и автоматическим нагревом душа по вылезанию какашечки.
Камеры на дорогах - суть тоже IOT.
Защиты всяких коммуникаций с вызовом ликвидаторов и тд и тп.

Короче это дохуя широкое понятие, но ОБЫЧНО его употребляют именно в первых двух вариантах. Т.к. в 3 и 4 работают серьезные дядьки и им не до хипстерского сленга.
А вот в 1 и 2 очень много разводил, выебщиков и мутных фирм, там процветает всякие модный сленг и прочее.
1045 388791
Привет, аноны.
Кто сталкивался с POE?
Попросили сделать устройство с доступом по сети, и POE-питанием. Искал готовые решения, нашёл пока только https://robotdyn.com/poe-module-9v.html.
Во всех POE-схемах из гугла, Data-каналы идут через фильтр (Magnetic Interface Circuit).

Вопрос: 1. Как в моём случае должна выглядеть нормальная схема подключения MCU к RJ-45 коннектору (с POE и PHY)?
2. Существуют нормальные, не дорогие решения PHY+POE? (Т.е. либо одна микросхема, совмещающая PHY, POE и устанавливающаяся на плату, либо готовый модуль, желательно с RJ45-разъемом, и выводом питания.)

Спасибо.
1046 388792
Алсо, не нашёл готовой отладки STM32 с поддержкой Ethernet и POE. Если есть что-то подобное, было бы замечательно.
sage 1047 388802
>>388791

>Кто сталкивался с POE?


Не сталкивался, но тем не менее находится такое нетрудно.
https://www.digikey.com/products/en/integrated-circuits-ics/pmic-power-over-ethernet-poe-controllers/779
И выбираешь там тип "Controller (PD), DC/DC".
1048 388891
1049 389008
Запускал вчера SPI на STM32F103, а он не запускается. То амплитуда сигнала 0,2В, то несинхронно с SCK MOSI работает. Пару раз пересобирал в STM32Cube, на разные частоты ставил, в результате запустилось. Вопрос, что ещё не работает нормально в серии F103, кроме I2C и SPI?
1050 389009
>>389008
Ты еррату вообще читал?
1051 389022
>>389008
Криво нажал кнопки в кривом кубе, однозначно в этом виноваты баги микроконтроллера, а не баги куба или нежелание читать документацию.
1052 389035
>>381131
Если чисто для себя то можно, но не более.
1053 389040
Почитал этот тренд и хочу сказать следующее:

Считаю что одна из проблем stm32 это отсутствие аппаратного буфера хотя бы под UART, spi.

Я все сказал
1054 389050
>>389040
Он есть, этот буффер.
1055 389056
>>389022

>Разносит куб и сам камень, как будто это не единый, комплексный продукт


Ты ещё скажи, что я должен под каждый микроконтроллер либы вручную писать.
мимокрок
1056 389111
1057 389112
>>389040
А где он есть? Обычно просто программно берёшь из UDR считываешь по флагу и записываешь в кольцевой буффер.
1058 389113
>>389112
Бывает такое. Например в LPC есть аппаратный FIFO.
буффер.PNG53 Кб, 786x518
1059 389114
1060 389123
>>389114
Основная проблема этого буфера то, что он имеет фиксированный размер.та если придет чуть меньше или чуть больше, есть большой риск что потеряются необходимые данные
1061 389302
>>389123
Дебс, этот буффер можно кольцевать, с прерываниями по заполниению всего/половины буффера.
1062 389304
>>389302
Ну и что? Чисто гипотетически представим что ц тебя буфер на 10 символов, а прислали 12. Аппаратно у тебя не никакое прерывание про эти 2 байта не сообщат. Только если ты сам будешь вручную чекать регистры или на крайний случай включить аппаратный захват конца сообщения для modbus rtu(там мк сам отсчитывает время молчания в 3.5 символа и включает прерывания или типо того, не помню точнее)
1063 389305
>>389304
1. Иметь буффер на 10 байт когда у тебя можно быть всего пару буфферов — дизилизм, а при буфферах большего размера вероятность таких ситуаций резко падает.
2. Как только буффер заполнится наполовину/полностью, ты получишь прерывание, в котором ты, скорее всего, тупо скопируешь буффер в большой буффер, если данных в текущем недостаточно, при этом вторая половина буффера продолжит писаться, пока ты выполняешь свой код прерывания (или копируешь пол буффера в свой больший буффер, в т.ч. используя mem2mem)
1064 389330
>>389305
Мне кажется что ты что-то путаешь. В некоторых микроконтроллерах одновременно есть и ПДП и аппаратный FIFO. Для примера LPC1768.
В чем разница? Зачем так сделали?
1065 389591
>>389330
ПДП копирукт данные без участия процессора, а ФИФО позволяет хранить ждущие для чтения или для передачи байты локально. Это уменьшает количество прерываний и/или активации ПДП во время работы периферии.
1066 389610
Подскажите с STM32F103C8T6 я смогу побаловаться со звуком? 16 ацп на нём.
1067 389621
>>389610

>STM32F103C8T6


Но нахуя? Есть жы 4 серия с I2S
1068 389623
>>389621
разница 2к со 100 рублями значительна, учитывая шо мне для ознакомления, знаю шо f4 и f7 имеют dsp, но хотелось бы бюджетнее
1069 389626
>>389610
Зачем для этого микроконтроллер? Почему на компьютере нельзя сделать то же самое?

>16 ацп на нём.


АЦП там все же один, с мультиплексором.
f4.PNG39 Кб, 821x701
1070 389627
>>389623

>разница 2к

1071 389628
>>389626
>>389627
Спасибо, всё понел
1072 389631
>>389628
Если ты делаешь какую-то обработку звука, то советую для начала отладить на компьютере. Вот серьезно, чем код для компа будет отличаться от кода для микроконтроллера? Если нормально напишешь, то будет отличаться только ввод/вывод.
1073 389640
Сап STMаны, нужно выбрать малопотреблящий камень, обязательные требования 1 ЦАП, 2 SPI на 4 Мбит/с (прием от внешних АЦП), UART должен выдавать не менее 4 Мбит/с. Первый взгляд был на STM32L451, но потом оказалось, что там много ненужного фарша, сейчас смотрю на STM32L412. Может есть еще что попроще да подешевле? Бывают у STM датчики температуры?
1074 389641
>>389640

> Бывают у STM датчики температуры?


Встроенные в смысле
1075 389643
>>389641
У ацп на одном канале встроенный висит
1076 389647
>>389643
Только им не рекомендуется мерить температуру внешней среды или типо того.
1077 389710
А бывают STM32 с возможностью подключения внешней SRAM? Чтобы не портовый обмен, а чисто вывести системную шину наружу?
1078 389712
>>389710
Да почти все в больших корпусах. И СДРАМ, и НАНД, и СРАМ, и т.п.
1079 389714
>>389712
Я насколько понял это у них называется FSMC?
1080 389717
>>389714

>это у них называется FSMC?


Da
1081 390186
>>387921
Анон, возникла проблема...
Когда я первый раз подключаю мк к компу, то всё происходит прекрасно, данные передаются правильно. Но затем, когда я отключаю USB и подключаюсь снова, то комп выдает ошибку код 43 (сбой запроса дескриптора устройства). Если же отключить питание микроконтроллера и потом подключить снова, то первый раз все пройдет успешно, а после вытаскивания юсб и подключения будет опять возникать эта ошибка... в чем может быть проблема? Пробовал обновлять драйвера, ничего не помогло
1082 390226
>>390186
Чини код в контроллере, там где-то баг(и).
1083 390389
>>390186
Если плата Blue Pill то придется возится с выпаиванием подтягивающего резистора на USB. Я бы забил и оставил как есть.
1084 390403
>>390389
Да нет... F407 discovery
1085 390415
>>390403
Тогда придется раскуривать работу USB, чтобы он умел определять что был отключен и перезапускался.
1086 390443
>>390415
У меня ф4 дисковери с 407 контроллером, которая без дисплея и с аудио-выходом. ЮСБ работает норм. В примерах были баги, например в примере с ЮСБ звуковой карточкой кривые настройки ПЛЛ были и что-то ещё. Давно игрался.
Screenshot2019-11-16-19-59-29-868com.alibaba.aliexpresshd.png483 Кб, 1080x2248
1087 390596
>>389623
Смари шо я нашол
1088 390614
>>390596
Да я уже заказал, только stm32f411ceu6, помощнее чем ccu6, но спасибо шо ответил.
stm32 hid.jpg24 Кб, 726x269
1089 390616
Здесь какой-то не очевидный момент или да?

В библиотеке от st такую строку (или отсылок к ней) не нахожу. Соответственно и изменить не могу, а хочется.

Есть подсказки?
1090 390623
>>390616
Насколько я помню, она в файле с дескрипторами в классе hid в библиотеке hal
1091 390810
Чот говно какое-то. Анончики, поясните пожалуйста.
Нужно быстро сделать устройство, которое будет иметь Web интерфейс с 2 страницами (1 - периодически изменяющиеся результаты измерений, 2 - настройки устройства).
Есть отладка STM3210C, но нашёл на неё только слегка запутанный пример, где не до конца понятно, как формируются вэб-страницы.
Думал взять что-нибудь из примеров в кубе, какой-нибудь WebServer на FreeRTOS, но на мою плату ничего нет.
Есть пример который предоставляет сама FreeRTOS, но под IDE Rowley CrossWorks, которая у меня отказывается работать.
Есть какой-нибудь совет, анонче?
1092 390827
>>390810

> Думал взять что-нибудь из примеров в кубе, какой-нибудь WebServer на FreeRTOS, но на мою плату ничего нет.


Если на твою плату есть LwIP, то веб-сервер уже не зависит от модели платы, и любой сервер, работающий поверх LwIP будет работать
На твою плату встаёт LwIP?
1093 390871
Кто нибудь прикручивал fatfs с помощью sdio на stm? Поделитесь кодом, пожалуйста
1094 390872
>>390871
Желательно конечно без куба и hal драйверов
1095 390874
>>390827
Есть LwIP пример с сайта STM, но я чот не понял, как в нём работает сервер.
1096 390933
>>390874
попробуй сгенерировать проект из КубМХ по мотивам этой статьи
Screenshot30.png46 Кб, 941x659
1098 391058
Помогите разобраться какие ноги нужно вывести для прошивки и дебага через st link с дискавери платы. Таких как на пике хватит?
1099 391069
>>391058
Имеет смысл добавить еще VTref (VDD Target). В принципе по минимуму хватит SWCLK, SWDIO и GND.
Если не нужно экономить место на плате, то ставь 20-контактный разъем, как на нормальном ST-Link, а не китайском поделии. Тогда можно будет втыкать в плату простой шлейф от отладчика, а не возиться с отдельными проводками.
1100 391080
>>391058

>дебага через st link


>дискавери платы


В дискавери встроенный ST-Link, зачем что-то еще? И как соотносится дискавери с тем что у тебя на картинке?
А еще у тебя к выводам OSC32 подключен кварц на 25 МГц. Выводы, которые называются подобным образом, обычно предназначается для низкочастотных кварцев под RTC. Там обычно ограничение по частоте.
1101 391082
>>391080
Я хочу ст линком с платы дискавери запрограммировать отдельную плату, вроде так можно.
За кварц спасибо, не доглядел
1102 391114
>>391058
А чё у тебя цепь сброса из одного кондёра без резистора?
1103 391143
>>391114
Ааааа, у них же там внутри подтяжка к питанию стоит
1104 391151
>>391143
конденсатор тоже не особо нужен, там встроенная задержка
1105 391173
>>391082
St-Link легко делается из Blue pill.
1106 391174
>>391173
а смысл?
hJSqA1l63GA.jpg572 Кб, 2064x1161
1107 391268
>>391173
Когда и меня вела дорога приключений, а потом китайцы стали продавать готовые в металлическом корпусе за доллар
радиотехника deeck 1108 391807
амиигос ,
кто нибудь использовал DWT таймер?
32l152
в дебуге считает а сам-нет
не пойму,как пнуть
где найти инфу как разлочить в realase,
1109 391821
1110 391829
>>391268
Джва чая, беру готовые и ДОВОЛЕН КАК КОТ.
1111 391830
>>390872
Лол, обычный код на SD карту бери тогда и всё. Серьёзно, в сети fatfs как минимум джве библиотеки.
1112 391922
>>390933
Спс, но у меня на плате не заработало. Почему - разбираться не стал.
>>390827
А вот это заработало. Взял LwIP, накатил на него httpd как в примере, идущем с STM32F4xxG.

Только не могу понять одну вещь, как мне в LwIP в рантайме сменить IP и MAC адреса?
Чтобы не костыльно (костыльно и так могу).
1113 391965
>>391922

> как мне в LwIP в рантайме сменить IP и MAC адреса?


Мак-адреса с айпишниками никто на лету не меняет, или ты хакер кокойто?
Мак адрес по-хорошему должен быть уникальным и привязанным к конкретному устройству.
IP адрес можно получить динамически по DHCP от роутера при включении в сеть, dhcp_start() в lwip
1114 391992
>>391965
Не, нужно статический Мак и Айпи, без дхцп.
Я уже передумал на лету менять, придумал что просто настройка мака и айпишника будет в отдельном режиме, всех устроит я думаю. Мне лично так нравится даже больше.
1115 392215
Ааа
1116 392768
>>339689

>А по среде разработки советую связку STM32CubeMX + Keil + STMStudio. Сгенерил проект в кубе и пишешь себе код в лучшей IDE для ARM


>в лучшей IDE для ARM


А при чём здесь Eclipse?
1117 392774
>>339847

>1) Без книг по Си по любому не обойтись.


Справочника Шилдта хватит с головой. А через год уже полностью выучиваешь язык и книга становится не нужна.
1118 392775
>>391965

> Мак адрес по-хорошему должен быть уникальным и привязанным к конкретному устройству.


Мак-адрес может быть почти любым, даже ты на своей сетевухе скорее всего можешь поменять его в любой момент в настройках драйвера. А еще можно поменять два младших битика в старшем октете и получить locally administered address. В этом случае главное - отследить уникальность адреса в пределах твоей сети, и все.
>>391992

> придумал что просто настройка мака и айпишника будет в отдельном режиме


Двачаю, тоже так сделал, зависимости нет, брат жив.
1119 392776
>>392775

> два


Т.е. один
1120 392862
>>392774
Ну в зависимости на сколько ты ебанутый. Некоторые считают хорошим тоном идеально знать приоритеты операторов и всякие понты типо запятых в условиях.
Но что бы писать хороший, код это вообще противопоказано.
Нет ничего хуже долбоеба понтующегося знанием приоритета операторов, просто хуже червя пидора.

Железо + указатели + знакомство с высокоуровневым языком, пару месяцев плотных упражнений и ок.
1121 392877
>>392862
Еще в хорошем коде нужно по возможности избегать UB. А чтобы это делать...
1122 392905
>>392877
... нужно дохуя практики, ок?

Никакие книги и выдрочка теории не спасет.
1123 392914
>>392905
Ага, сменив компилятор и/или процессор, внезапно узнавать на практике, что у тебя UB. И даже не понимать после этого, что словил UB.
1124 392937
>>392775

> Мак-адрес может быть почти любым, даже ты на своей сетевухе скорее всего можешь поменять его в любой момент в настройках драйвера


Я не говорил, что его невозможно поменять. Мой пост был не про то, как можно, а про то, как надо. Да, на сетевухе его возможно поменять, но зачем? Она точно так же перезапустит DHCP и получит айпишник от роутера, привязанный к новому мак-адресу. Меняют его, например, когда человек поменял сетевуху на новую, а в роутере жестко прописан мак адрес от старой, и нужно, чтобы новая тоже заработала со старым мак-адресом. Но это довольно специфическая ситуация, и таким в 2019 редко кто занимается
1125 392999
>>392914
Пример подавай.
1126 393038
>>392999
Да хоть так https://ideone.com/EHu5Ez
По твоему это абсолютно очевидный результат?
1127 393045
>>392937
Про то, как надо, говорит 1 разряд старшего октета Мак-адреса, а он говорит о том, что если твоя железка не предназначена для выхода в глобальную сеть, ты вправе ставить ей любой адрес и не платить деньги дядям из IEEE за диапазон абсолютно уникальных адресов.
1128 393046
>>393038

>example1


Если мы говорим о какой то переносимости - какой нафиг int?
Неявное приведение туда же.
Тернарник в аргументе - туда же.

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

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

Тебе жалко строк текста? Мне жалко например времени, даже сраных 500мс, которые я буду вчитываться в ебучий тернарник в аргументе.
В примере, он очевидный, но ты сам знаешь (должен) во что это превращается в прикладной программе. Я вообще это дерьмо использую только что бы явно обозначить, что я куда-либо BOOL загружаю, а не 159 или 0.

https://ideone.com/R8ejI7
ЖИРНО, зато ребенок после 3х статей с гугла прочитает и сам будешь просто пробегать глазами и понимать.
За исключением доп функционала компилируется в тоже самое. Вопрос тогда нахуя все эти выебоны?
1129 393050
>>393046
>>393038
Что бы совсем ебанутся можно еще iso646 использовать, но то совсем для поехавших уже. Хотя я вот все задумываюсь, но как раз не начинаю с оглядкой на то, что следующий человек обплюется с непривычки.
1130 393051
>>393046
Так вот и я о том же.

>Железо + указатели + знакомство с высокоуровневым языком


К этому нужно добавить хотя бы осознание о существовании неявного приведения типов. А откуда оно возьмется без чтения хоть чего-то? А потом добавить еще кучу всего, только чтобы не стрелять себе в ногу.
1131 393052
>>393051
Оно же как раз возьмется от знания железа и машинного представления данных.

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

И к слову, при сравнение знакового с безнаковым, оно разве не должно ворнинг выписывать?
1132 393056
>>393052

>Оно же как раз возьмется от знания железа и машинного представления данных.


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

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


Свои фантазии постарайся держать при себе. Я не то что на ассемблере хелловорлды писал, но и самодельный процессор на ПЛИС делал.
1133 393059
>>393056

>Что мешало неявно привести к типу большего размера


То, что через месяц будешь сидеть и думать, нахуя я тут к болшему типу привел.
Си не самый читаемый язык и все очень хотят его на кой то хуй усложнить и добавить побольше труднопредсказуемой хуйни.
1134 393062
>>393059

>добавить побольше труднопредсказуемой хуйни.


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

>И к слову, при сравнение знакового с безнаковым, оно разве не должно ворнинг выписывать?


В gcc эти предупреждения включаются через -Wsign-compare -Wconversion, но -Wall -Wextra это не делают.
1135 393127
>>393045
Что ты мне пытаешься доказать, поехавший? Мой изначальный пост не противоречит твоему утверждению
1136 393274
И снова я в треде.
Может анон пояснить, как выглядит GET-запрос JSON, и как мне на него отвечать при помощи httpd-сервера встроенного в LwIP?

Я думал это обычная текстовая страница, в JSON-формате, но оказывается думал неправильно.
>>391922-кун
1137 393304
>>393274

>как выглядит GET-запрос


>Я думал это обычная текстовая страница


Запрос это явно не страница, по любому.
В заголовок HTTP нужно "Content-Type: application/json". Где это в LwIP я без понятия.
1138 393320
>>393274
Поставь wireshark, открой любую страницу и увидишь
1139 393321
>>393320

>Поставь wireshark, открой любую страницу и увидишь


Раньше канало, сейчас во времена httpS - хуй. Надо искать незащищенный сайт или через отладчик в браузере смотреть запросы и ответы.
1140 393327
>>393321
Например, в хроме F12 -> Network
Там все запросы можно увидеть
1141 393331
>>393304

> Где это в LwIP я без понятия


А там и не будет, это же слой TCP/IP
1142 393359
>>393331
Ничего утверждать не берусь, потому что lwIP не касался, но что тогда это такое в репозитории lwIP?
http://git.savannah.nongnu.org/cgit/lwip.git/tree/src/apps
1143 393371
>>393359
Это apps, приложения, работающие поверх tcp/ip
Ну окей, под lwip я имел в виду сам стек
изображение.png23 Кб, 1028x257
1144 393374
>>393304
Ок, я понял.

>В заголовок HTTP нужно "Content-Type: application/json". Где это в LwIP я без понятия.


Если правильно понимаю, можно подставить это в файлах в fsdata
А возможно я понимаю неправильно. Хуй знает.
>>393331
Ну и в пакете с самим LwIP идёт овер дохуя всего. Например тот httpd (в котором есть службы cgi и ssi).
>>393327
Ок, открыл пикрил в лисе. А запостить этот запрос как?
1145 393377

>А запостить этот запрос как?


В смысле вручную отправить то, что мне надо. Не очень понимаю механику процесса.
1146 393378
>>393374

> А запостить этот запрос как?


Ну вставь в строку браузера просто и нажми enter. Он отправит GET запрос
1147 393379
>>393377
Эмм если я не ошибаюсь GET\POST это текстовые запросы по TCP (в частности)
Т.е. так текстом и шлешь. Ну может заголовок отличается и какой двоичный. И за кодировку не скажу.
1148 393383
>>393378
>>393379
Ну сейчас у меня получается, так и происходит. Или нет?
Я просто по GET запросу возвращаю текст в json-формате (ну это который { x: nn}), без <html> в заголовке и каких-то ещё тегов.
1149 393384
>>393383
Да, всё так.
Можешь для примера посмотреть макакин json
2ch.hk/makaba/mobile.fcgi?task=get_boards
1150 393901
Цирк с конями продолжается.

Решил накатить http-netconn. В примерах для F4xG есть LwIP+FreeRTOS+NetConn.
Ну прикрутил я к своему проекту FreeRTOS, вчера полдня ебся чтобы запустить на нём LwIP и NetConn.
Закончилось тем, что я пососал писос:
- LwIP инициализируется, всё нормально, винда STMку видит если вбиваешь arp -a.
- Тред с netconn создаётся. Микроконтроллер регулярно приходит в это тред.
- В процессе исполнения netconn приходит в "sys_timeouts_mbox_fetch" и остаётся там навсегда..

LwIP не передаёт какие-то сообщения операционке?
Не пойму, что за херня и куда смотреть.

>>393374-кун
1151 393905
>>393882
Сразу через интернет заливать данные не?
1152 393912
>>393901

> В примерах для F4xG


Где ты вообще их берёшь?
1153 393913
>>393912
В Кубе. В папке куба есть разные примеры и аппликейшоны для твоей платформы.
1155 393915
>>393914
Да, только на каталог глубже - /LwIP_HTTP_Server_Netconn_RTOS/
1156 394060
>>393901
У меня вообще нет такой функции. В комментах предлагается ее реализовать самому при LWIP_TIMERS_CUSTOM==1
1157 394063
>>394060
LWIP_TIMERS_CUSTOM=1
самофикс
2019-12-07.png489 Кб, 3840x2160
1158 394073
>>394060

>У меня вообще

1159 394126
>>394073
Ну у тебя F7, может у тебя версия LwIP посвежее.
В F1 и в F4 она есть.
1160 394130
>>394126
Как-то странно ты пишешь. lwIP кроссплатформенный. Код, непосредственно взаимодействующий с периферией микроконтроллера не входит в состав lwIP. Так что ничего не должно мешать использовать любую версию.
1161 394134
>>394130
Ты не понял о чем я. Я пишу, что у меня в примерах может быть версия самого LwIP иная, чем у тебя (или не у тебя, а у более раннего анона, если вы не одно лицо).
Потому у тебя и отличается реализация "sys_timeouts_mbox_fetch".
1162 394157
>>394073
Походу ты используешь ветку STABLE-2_0_0, а у меня STABLE-2_1_0 , поэтому у меня такой функции нет. Кто ее вызывает?
1163 394162
Попробуй проверить приоритеты задач tcpip_thread и software_timer из freertos, и еще какие там у тебя есть. Может из-за неверных приоритетов нужная задача блокируется этим таймером.
2019-12-08.png479 Кб, 3840x2160
1164 394240
>>394126

>Ну у тебя F7

изображение.png116 Кб, 1600x860
1165 394253
>>394240
И? См пикрил
>>394157
У меня 2.0.3, если правильно понимаю. В ридми от ST это последний упомянутый апдейт.
изображение.png154 Кб, 1600x860
1166 394285
Я кончил
Как оказалось - я просто провафлил несколько важных моментов -
1. Я оставил NetIF config от "RAW" версии. В ней не был установлен указатель на неправильную функцию (ethernet_input вместо tcpip_input, но это я заметил и поправил раньше), и в конце я каким-то образом не заметил, что в FreeRTOS версии создаётся симафор и тред с "ethernetif_set_link".
2. Когда пофиксил это, Keil ругнулся ворнингом на макрос инициализирующий тред. Оказалось, что функции в ethernetif должны учитывать, что они работают с осью. Функции из RAW примера, ясен хуй, не подошли. Скопипастил в проект функции из примера F4, подправил под свой мк, и оно заработало.
Не совсем понял, почему не работает режим RX_POLLING, только RX_INTERRUPT.
3. Забыл, что надо добавить обработчик прерываний на Ethernet, и не мог понять, хули МК зависает. В отладку даже не заходил, потому что я хуй пойми, как отлаживаться с FreeRTOS'ом.
А ещё, как оказалось, MII_INT выход PHY не имеет никакого отношения к ETH_RX_INTERRUPT, да.


Теперь осталось сообразить, как перейти в режим RMII. В тупую поменять ETH_MEDIA_INTERFACE_MII в "low_level_init" не прокатывает.

>>393901-кун
1167 394319
>>394285

>Активация выньдовс


Лул. Радиогубитель не может найти автокмс?
1168 394324
>>394319
Я винду буду переустанавливать через какое-то время или комп поменяю.
И зачем он мне? Просто чтобы снять табличку "Активация шиндошс"? Лично мне не мешает, а больше и некому.
1169 394408
Анон, поясни за АЦП-шку в f10x серии.
Мне нужно ~16к раз в секунду снять и записать значение с 2 микрофонов. Что стоит использовать, 2 АЦП или 2 канала одной АЦП? Какие настройки должны быть у АЦПшки?
Снимать собираюсь по таймеру.
1170 394512
>>394408

>~16к раз в секунду снять и записать значение с 2 микрофонов


Я хуй его знаю. Купил дискавери-746, на ней 2 микрофона присутствует. Примеры использования должны быть в кубе
1171 394516
>>394512
Ты про MP34DT01? Так это ж MEMSы, для них АЦП не нужен, за то нужен кодек.
А кодеков, да и самих МЕМсов - в рашке в наличии я не нашёл.
1172 394539
>>394285

> я хуй пойми, как отлаживаться с FreeRTOS'ом


Навешать себе rtos и lwip и пытаться починить это все без отладчика - так себе идея. Да хоть бы просто в отладчик зашел, просто при этом ты не увидишь, в каком потоке находишься. Да хоть бы и сделать отладочный вывод через UART/ITM_Trace, включив в freertos и lwip опции отладки и трассировки, и выводя в отладочную консоль Кейла. Да хоть бы и поставить TrueStudio, в котором все готовое из коробки бесплатно без мокрых писечек и смс, еще и редактор кода в 100 раз пизже, потому что eclipse.
1173 394540
>>394516

>MP34DT01


Как ни странно, но есть в электронщике.
Для речи вполне хватит встроенного АЦП. Даже 8 бит хватило бы. Если тебя это устраивает, то какие проблемы? Усиливаешь, к примеру, на операционнике и на микроконтроллер.
1174 394546
>>339005 (OP)
Собрался рисовать UI на 746-дискавери, вдохновившись Экспансией и Прометеем, и ожидаемо соснул. Для подобных интерфейсов необходимы разрешения минимум 3840х2160. Со посоветуете почитать про UI на мелких дисплеях, типа 480х272?
1175 394551
>>394546
Мне вот непонятно зачем брать для такого не одноплатник с линуксом, а микроконтроллер?
1176 394582
>>394551

>одноплатник с линуксом


Это банальное красноглазие. Удовольствия не доставит.
1177 394623
>>394539

>Да хоть бы просто в отладчик зашел


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

>Да хоть бы и поставить TrueStudio, в котором все готовое из коробки бесплатно без мокрых писечек и смс,


Да, я его первым накатил. Только почему-то начал работать в кейле, хз почему. Может потому что надо было начать с готового примера, а под TrueStudio он не заработал. И ещё потому что у меня отладчик - древний jLink V6, и мне было лень его настраивать.

>редактор кода в 100 раз пизже


Чот мало, я бы сказал что разница в редакторах как между кейлом и ардуино - небо и земля просто.
>>394540

>Как ни странно, но есть в электронщике.


Мне нужен MP34DT05 (у него нужные мне характеристики). И для него, как и для MP34DT01, нужен кодек. Их я найти не смог. Если пояснишь, как искать такое - буду признателен.
Мне нужно, чтобы было в наличии в рашке.

>Для речи вполне хватит встроенного АЦП.


Вопроса в том что встроенный АЦП подойдёт - у меня не возникает. У меня возникает вопрос, какие настройки нужно выставлять ему для моей задачи (включить измерение в непрерывном режиме или по запросу, какое время сэмплирования, частота тактирования, постоянный использовать 2 отдельных АЦП на каждый микро, или просто можно использовать 2 канала одного ацп).
Ну и ещё вопрос, в том можно ли охватить диапазон 30-130дб одним микро и этим 12-битным АЦП.
1178 394624
>>394546

>вдохновившись Экспансией и Прометеем


Что за интерфейсы такие? Чем лучше стандартных UI от STM'а?
1179 394634
>>394624

>Что за интерфейсы такие?


Да, блядь, киношно-космические. С кучей интерактивных графиков от которых контроллер жидко пернет и сдохнет.
1180 394636
>>339005 (OP)
На работе в конторе сказали, что avr и pic это старое говно и теперь переходим на stm32, вот уже с месяц его изучаю.
Я правильно понял: в AVR хардварные настройки(частота тактирования, сторожевая собака, напряжение питания и т.д.) задаются прошивкой фьюзов, а в stm32 их прописывают в начале программы?
1181 394643
>>392862

>приоритета операторов


В каждом компиляторе может быть разный.
Тот же MISRA C указывает задавать приоритет скобками, чтобы не было двусмысленности трактования приоритета.
1182 394647
>>393056

>но и самодельный процессор на ПЛИС делал.


Нашёл чем хвастаться, это делает чуть ли не каждый, кто вкатывается в ПЛИС.
1183 394681
>>394636
Относительно частоты и срабатывания сторожевого пса все делается программно. По счёт питания сказать не могу
1184 394682
>>394636

>фьюзов


Там обычный епром а не фьюзы, емнип.
Но в остальном да, тут вся хуйня выставляется в начале проги. Даже небо, даже Аллах. Как происходит работа с DSP в моделях где он встроен - не знаю, вероятно тоже так же.
В начале, у тебя МК заводится на встроенном генераторе, дальше ты идёшь его конфигурировать, потом работаешь как тебе надо.
Сакральный смысл в том, что ты можешь менять частоту в процессе работы, и снижать потребление устройства.
1185 394683
Про питание не заметил - тут тоже не подскажу, но кажется на STM32 оно не выставляется, в отличие от AVR'ок.
1186 394738
>>394623

>30-130дб


Как-то все странно. Что это означает? дБ - это просто логарифм отношения одного числа к другому. Может ты имел в виду дБа?
Но даже если так, то 100 дБ это изменение по мощности в миллиард раз, а по напряжению в 100 тысяч раз. А у тебя АЦП 12 разрядов.
Может тебе нужно использовать АРУ?
изображение.png16 Кб, 682x261
1187 394748
>>394738

>АРУ


Нет, мне нужно без АРУ, мне всегда нужно знать точный уровень.

>по напряжению в 100 тысяч раз


Это тоже правда, что посоветуешь?

Читаю мануал, там есть такая табличка (пикрил).
Но не могу понять 2 вещи:
1. Почему Vdda сделан отдельным выводом, если он должен быть равен Vdd обычному? Точно так же с Vssa и Vss.
2. Примерно то же самое с Vref- почему от должен быть равен Vssa?
1188 394751
>>394738

>в миллиард раз


10^10 - это 10 миллиардов, тут я написал не правильно, а про 100 тысяч тем не менее правильно.

>>394748

>Это тоже правда, что посоветуешь?


Знать бы еще что тебе нужно. Может ты из ардуиновского треда с дурацким шумомером?

>Но не могу понять 2 вещи:


Электромагнитная совместимость, разделение земель и все такое. У ST наверняка есть что-то с названием вроде "EMC design techniques", где написано про все такое применительно к их микроконтроллерам.
1189 394762
>>394748

> Нет, мне нужно без АРУ, мне всегда нужно знать точный уровень.


100 дБ это слишком дохуя для 12 разрядов без АРУ. Тут уже скорее 24 надо, и то еще не хватит, т.к. эффективная разрядность меньше окажется.
1190 394765
>>394751
Про 100к раз я тоже посчитал, иначе бы подправил

>Может ты из ардуиновского треда с дурацким шумомером?


Йап
Есть предложения? Можно, конечно, сделать как у Gravity, с их Decibel Level Meter'ом (один микрофон, несколько операционников, аналоглвый мультиплексор и мк, мне так же, только без мультиплексора), но если можно на двух каналах - то лучше на двух каналах.
1191 394767
>>394765
Почему без мультиплексора?
1192 394768
>>394765
Зачем тогда тебе микроконтроллер? Не проще ли обойтись одним логарифмическим усилителем?

>аналоглвый мультиплексор


>на двух каналах


По твоему, что такое каналы АЦП в микроконтроллере? Это аналоговый мультиплексор и есть.
1193 394789
>>394767
Потому что у меня есть овердохуя каналов АЦП в МК.
>>394768

>Зачем тогда тебе микроконтроллер? Не проще ли обойтись одним логарифмическим усилителем?


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

>По твоему, что такое каналы АЦП в микроконтроллере? Это аналоговый мультиплексор и есть.


Ну тоже правда, но это не снимает моего вопроса о настройках АЦП и необходимости использовать два АЦП вместо двух каналов.
Так понимаю, нужно поставить режим непрерывного измерения, выбрать нужные каналы, по таймеру ~16к раз в секунду снять данные с 2 (или больше) каналов?

Не мог прикрепить к прошлому сообщению
https://blog.yavilevich.com/2016/08/arduino-sound-level-meter-and-spectrum-analyzer/
Вот такую няшу надо, только с нужным мне диапазоном.

А пикрил - то что упомянул в прошлом посте, Gravity Decibel Level Meter. Если правильно понимаю, сигнал подаётся с микрофона на 4? операционника с разным КУ, через мультиплексор, на микроконтроллер C8051F330, дальше преобразует это в какую-то линейную шкалу и выводит на ЦАП, судя по всему. Только мне не до конца понятно, как работает параллельное подключение к 4 ОУ одновременно (как избавляются от негативных эффектов) и для чего 2 сборки по 4 усилителя.
Если я хуйню где-то несу, я прошу чтобы анон меня поправил, если что.
1194 394826
>>394789

>в какую-то линейную шкалу


Не понимаю такого. Микрофоны и так более-менее линейные. Может ты имел в виду логарифмическую шкалу?

>Потому что мне нужно получить данные о уровне звука в микроконтроллер


Как раз для этого можешь взять логарифмический усилитель, например AD8310.
1195 394835
>>394789

> 4? операционника с разным КУ


Ты понимаешь, что требуешь решение без АРУ, приводя в пример схему с АРУ?
1196 394855
>>394835

>Ты понимаешь, что требуешь решение без АРУ, приводя в пример схему с АРУ?


Ну, во-первых, я ничего не требую, лол. Я тут вроде как не в позиции, чтобы что-то требовать. Я спрашиваю совет.
Во-вторых пример - это просто датчик уровня звука, который измеряет шум в помещении, и в зависимости от КОЛИЧЕСТВА ДЕЦИБЕЛ устанавливает напряжение на выходе.
"АРУ" там выполняется микроконтроллером. Пример тут от того, что мне нужно получить данные в микроконтроллер, примерно так же, как получает он. Дальше как с ними работать, и как исполнить собственную "АРУ" - я вроде как знаю.
>>394826

>Может ты имел в виду логарифмическую шкалу?


Simple Conversion: linear analog output, 0.6~2.6V linear correspondence 30~130dBA, no complex algorithm is required

>Как раз для этого можешь взять логарифмический усилитель, например AD8310.


Вот всё в нем заебись, даже в чипдипе есть, только не могу найти готовую плату с ним в наличии.
1197 395004
>>394789

> Так понимаю, нужно поставить режим непрерывного измерения, выбрать нужные каналы, по таймеру ~16к раз в секунду снять данные с 2 (или больше) каналов?


Ну видимо да, раз так стоит задача. А зачем два АЦП или два канала? Если для двух разных диапазонов, то видимо придется делать автоматическое переключение диапазонов, т.е. переключение между каналами.
1198 395006
>>394855

>correspondence 30~130dBA


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

>только не могу найти готовую плату с ним в наличии.


Какая нафиг плата? Это SOIC-8, ты еще отладочную плату для простого резистора запроси.

>>395004

>А зачем два АЦП или два канала?


Из-за того что он хочет обеспечить 100 дБ перекрытие.
1199 395123
>>395006

>Из-за того что он хочет обеспечить 100 дБ перекрытие.


this.
К стати, есть какие-то советы/мысли на этот счет?

>Какая нафиг плата? Это SOIC-8.


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

>>395004

>Если для двух разных диапазонов, то видимо придется делать автоматическое переключение диапазонов, т.е. переключение между каналами.


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

>Ну видимо да, раз так стоит задача.


Вопрос в выборе именно настроек АЦП. Я не очень понимаю, что мне даст выбор континьюс мода, и что мне даст выбор определенной продолжительности семплирования (например 13.5 циклов АЦП, или 71.5 цикл АЦП, или вообще 1.5 цикла).
И ещё, как континьюс мод будет работать с аналоговым мультиплексором - не внесёт ли это доп помеху.
1201 395843
>>339005 (OP)

>Хочу вкатится в разработку на stm32.


Зачем? Лучше в веб вкатываться и делать сайтики, стабильный спрос хоть в офисе, хоть на фрилансе и нормальный доход.
На микроконтроллерах и плисах работы кот наплакал и платят за неё копейки - ненужное говно.
1202 395967
>>395843
Для сайтиков нужен один комп, а для электроники кучу инструментов, приспособлений, приборов и девборд. Материализм, сука.
1203 395974
>>395843
где пруф, что ты уже вкатился в сайтики и получаешь нормальный доход?
изображение.png512 Кб, 1446x837
1204 395993
Привет анон.
Я ранее (месяц назад) спрашивал про POE-модули.
Подумав, поковырявшись и поняв что времени ждать посылку с алика нет, я решил собрать POE самостоятельно. Кто-нибудь из местных анонов, собирал POE-модуль самостоятельно?
В процессе гугления понял, что понадобится: RJ45 разъем (простой 8-контактный, без встроенного трансформатора), сигнальный трансформатор (вроде H2019), диодный мост, POE интерфейс, DC-DC преобразователь.
Вопросы такие:
1. Напомните, где искать? Нужно из наличия. И желательно, чтобы было овер дохуя. Смотрел на ЧипДипе, там нет нихуя - ни разъемов нормальных с трудом подбирается SMT разъем без трансформатора, но и без светодиодов, к сожалению, ни H2019 в наличии, ни ху я.
2. Какой RJ45 посоветует анон? Если со встроенной индикацией - то вообще заебись было бы.
3. Нужен DC-DC преобразователь с 48 на примерно 7.5V (можно чуть больше, можно чуть меньше). Мощность хотелось бы соответствующее возможностям схемы на пикрил. Что посоветуешь, анонче?
1205 396001
>>395993
Купить сетевуху за 100ри спаять все нужное с нее, запитать от 12в бп
1206 396035
>>396001
Не, бро, мне нужно POE запилить. Иначе питал бы просто от БП и не выёбывался.
1207 396111
>>396035
Тебе инжектить надо питание или принимать
1208 396170
>>396111
Принимать, у меня на пикче PoE PD.
1209 396178
>>395974
Открой hh и посмотри количество вакансий и зарплату и будешь плакать.
1210 396200
>>396178
Это понятно, а ты почему еще не вебмакака?
LcDaAEl1rE.jpg130 Кб, 776x584
1211 396454
Привет анон, это снова шумомер-кун.
Подскажи, пожалуйста, что улучшить.

У меня источник питания - стабилизированные 5.0В(IN_5V), они же пойдут через делитель 1/2 на AVCC микроконтроллера.
Оттуда же, планирую взять питание для стабилизатора 3.3, с которого питается микроконтроллер.

Насколько правильно использовать такую конструкцию? Сделал как в микрофоне Adafruit'а (AVCC, AGND через феррит), но не знаю, насколько это годно.
1212 396458
>>396200
Так я успешная веб-макака 4к$, фрилансю на берегу Тайваня и зашёл сюда попроигрывать с вас.
1213 396478
>>396458
У тебя шаблон вордпресса поехал, иди переверстывай
1214 396479
Объясните на пальцах что такое полуслово, слово, двойное слово? Я так понимаю это некий объем данных (байт, два байта, 4 байта), но его размер зависит от разрядности ядра? Одинаково ли слово в 8 битных AVR и 32 битных STM? Какой размер слова, полуслова будет для обоих платформ?
1215 396480
1216 396485
>>396479
Из Википедии:
Машинное слово — машинно-зависимая и платформозависимая величина, измеряемая в битах или байтах (тритах или трайтах), равная разрядности регистров процессора и/или разрядности шины данных (обычно некоторая степень двойки).
1217 396710
В чём сакральный смысл существования и использования R огрызков везде и всюду >>396588, если есть V с FSMC + 30 ног с ценой вопроса на половину доллара?
1219 396721
>>396715
С существованием прояснилось, а с использованием - не особо. Если это отладка типа Nucleo или какой-то open source multi-tool, а не стиральная машина или паяльник, то от MVP-экономиста и его огрызка будет страдать юзер девайса. Хотя, если ты не лох юзер, а индиец из ST, то можно и 767 выпустить в трёхногом корпусе, справедливо откусив у него всю периферию. Всё равно за нормальным чипом чуть позже придут и ещё шекели принесут.
1220 396754
>>396721

>можно и 767 выпустить


А мне нравится фирма Боинг и ее старичек старушка Королева Небес 747. Подгонишь пару-тройку пассажирских Боингов 747-400?
56356235.jpg83 Кб, 550x540
1221 396763
>>396754
Молодой человек, это не для вас Боинг. Для вас автобус по маршруту 030
1222 396779
>>396485
Добавлю, что если нет привязки к архитектуре или ранее не объявлено обратное, скорее всего имеется ввиду 16бит
1223 396829
>>396779

>Добавлю, что если нет привязки к архитектуре или ранее не объявлено обратное, скорее всего имеется ввиду 16бит


Только на интелах и на винде, короче на всём, что имело корни в те времена. АРМы, МИПС, Альфы и прочее - слово 32 бита.
1224 396831
>>396829
Я анон полный долбоеб, я почему то ответил в контексте - полуслово.
1225 396844
>>396829

>Альфы


64, нет?
1226 396856
почему в ебучем эклипсе открыт файл одного проекта а билдится другой проект? я уже не человек, я зверь нахуй.
1227 396863
>>396844
Внезапно там слово это 16бит. https://en.wikipedia.org/wiki/DEC_Alpha Удивительно
1228 396871
>>396856
Эклипс не для тебя, возьми clion
net ti poslushai.jpg20 Кб, 472x403
1229 396914
>>396871
нет ты объясни!
1230 396996
>>396914
Потому что проект, который будет компилиться, выбирается слева в Project Explorer.
1231 396998
>>396996
ебать ты няша! спасибо. а вообще эклипс хорошо знаешь?
1232 397000
>>396998
Нет, не очень, недавно вот первый проект в нем сделал.
1233 397027
>>396856
>>396914
>>396998
рукожопый хуй репортинг ин. у меня тут куча глюков внезапно возникла с эклипсом, переустановка не помогала. Он даже перестал компилировать свежесгенеренный кубом проект и срал дикими ашибками. Оказалось, у меня тут ембитц был установлен. снес его, переустановил эклипс и всё снова работает.
1234 397036
>>397027
Может тогда имеет смысл освоить make и, возможно, CMake?
1235 397039
>>397036
Че их там осваивать? Куб же сам под мейк генерит проекты. Алсо, эклипс можно использовать чисто как текстовый редактор
1236 397041
>>397027
Возможно это переменные среды. На сайте плагина GNU MCU Eclipse есть статейка, как сделать все без них.
1237 397069
>>397036
а мне пох что осваивать, проблема в том что я в этом обезьяна. не хватает знаний пока.
1238 397094
ребзя, у меня какая-то херня, захотел сделать элементаруню штуку сделать 103 стмка + экранчик, и вот иничу массив для пикселей на ~1000 байт(uint16_t). Перед этим в кубе выделил норм размер кучи/стека. И вот почему-то в определенных участках(примерно от 300 элемента до 500 байтов) какая-та хуйня, мусором забито(в других участках все по нулям), и пытаясь взаимодействовать с этими элементами появляется HardFault.
Ну изначально там(в скачанной либе) юзался мемсет на весь массив, после которого сразу hardfault уходило. Потом уже тупо циклом я попытался пройтись, где на каком-то элементе такая же херня происходит. Хз, что делать, помогите
1239 397132
здесь все мои друзья, поэтому спрошу.
в этой строке
(unsigned long)(0x40023830) |= 0x8;
нахера нужны вторые скобки? и без них компилируется. Нахера нужна вторая звездочка?
1240 397133
х(unsigned longх)(0x40023830) |= 0x8;
ебаная макака. сожрала звездочки. я х туда поставил
1241 397139
>>397133
Ты приводишь к типу указателя на лонг, потом производишь логическое или с данными по адресу
1242 397140
>>397139
З.ы. (unsigned longх)скорее всего нинужен
1243 397141
>>397139
короче надо просто принять это
>>397140
нужон, без него не компилируется
1244 397142
>>397141

>нужон


Ну да, это же число, конпелятор хз какой ты там тип имел ввиду вот и кастуй.
1245 397143
>>397141

>короче надо просто принять это


х((unsigned long х)0x40023830) |= 0x8;
Воттаквот скорее будет привильней записать
1246 397146
>>397143
так тоже компилируется
1247 397271
Clang с сабжем кто-то использовал?
1248 397342
Хочу поковырять ентот ваш стм32. Можно ли брать f103c8t6 самое популярное предложение на алике сейчас +st-link для ознакомления, или лучше не жмотиться, и взять чего по-дороже? Задач, кроме посмотреть из любопытства, никаких нет.
1249 397358
>>397342

>Можно ли брать f103c8t6 самое популярное предложение на алике сейчас +st-link


Можно
1250 397783
двощ, как прошить вообще голый новый проц стм32? каков порядок действий?
1251 397785
>>397783
В смысле не припаянный вообще ни к чему? По ряду причин такое обычно не целесообразно.
Программируется либо через JTAG или SWD, либо через бутлоадер. Для первого варианта потребуется ST-Link или какой-нибудь другой -Link. Для второго варианта в зависимости от микроконтроллера, более старые и те что попроще можно через переходник USB-UART, а в тех что поновее есть DFU бутлоадер, с которым достаточно воткнуть микроконтроллер напрямую в USB.
15742200468190.png2,4 Мб, 946x1080
1252 397786
>>397785
добра, няша
register.jpg198 Кб, 834x689
1253 398476
двощ, почему у трех регистров самых верхних в таблице одинаковый оффсет? как считать их адреса?
1254 398479
>>398476
Референс мануал не открывал
Тут нет ошибки. У регистра хххх_MODER адрес(смещение) 0х00.
Тут показывают что порты А и В особенные из-за JTAG-а и у них отличающиеся начальные значения в регистрах MODER.
Конкретно адреса начала блоков регистров под конкретный банк регистров ищи выше в размеле memory map.
15787737910800.jpg128 Кб, 1080x1350
1255 398492
>>398479
вот тебя няша
1256 398764
двощ, почему, чисто теоретически, может не работать кусок кода, заключенный в цикл for? там вывод в порт через odr. без цикла фор высирается в порт, с ним - нет.
1257 398765
>>398764
Проебаная точка с запятой или присвоение вместо сравнения
1258 398768
while(1){ for(j=256; j==32768; j=j2){
((unsigned long)0x40021814)=0xffff;
вот этот кусок. в таком виде он в порт единицы не пишет. а в таком

while(1){ /
for(j=256; j==32768; j=j2)/{
((unsigned long)0x40021814)=0xffff;
пишет. чо хуйня, двощ?
1259 398769
блядь я в ахуе. сраная макака.
1260 398771
while(1){for(j=256; j==32768; j=j2){((unsigned long*)0x40021814)=0xffff;}}
1261 398772
с закоменченым циклом выводит 1 в порт, иначе - нет
1262 398778
>>398768
Да сходу не вникая в бред - это твой косяк в "j=j2".
Условие изменения задай нормальные, хотя бы j++ и посмотри что будет.
1263 398858
>>398778
нене, хуйня. с "нормальными" типа j=0; j>8; j++ тоже не работает. а в приведенном выше говнокоде макака сожрала знак умножения между j и 2. я там хочу последовательно ноги перебирать.
1264 398859
>>398858
с while тоже не работает, кста
1265 398860
>>398858
Может перестанешь упарываться?

>типа j=0; j>8; j++


Что у тебя на первом шаге? j=0. "0>8" ? Нет, цикл окончен, пошел нахуй.
1266 398862
>>398860
ой блять. тупанул. пойду проверять. спасибо мил человек!
govnokod.jpg70 Кб, 722x378
1267 398868
не, двощ, ты не прав
пикрелейтед не работает, на всех ногах единицы тупо. предельное значение переменных менял до миллионов - тупо 1 на всех ногах (все диоды горят)
1268 398869
>>398868
с двумя плюсами тож не работает
1269 398870
>>398868
Блятьпиздос. Где ты был, когда весь класс циклы учил? Хуи сосал?
На, вот, просвещайся, https://prog-cpp.ru/c-cycles/
1270 398872
>>398870
вот хуле ты такой грубый? тут пустые циклы гоняются ради задержек между подачей 0 и 1 на ноги порта. в чем косяк?
1271 398876
>>398872
Стрелку разверни. ">" замени на "<" и перестань задавать тупые вопросы.
govnokod.jpg79 Кб, 687x378
1272 398878
>>398876
оно и со стрелками во всех направлениях и бес стрелок с == не работает. хотя у меня есть подозрение что частота слишком высокая. потому что при заливке прошивки индикаторы горят ярче чем при работе программы. думал что компилятор оптимизирует пустые циклы и пробовал их нагружать - нихуя. если закомментить выделенный кусок говногода - индикаторы горят ярче.
1273 398879
это законно вообще?
1274 398881
если никто ничего не подскажет - придется осциллограф распаковать
1275 398882
>>398878
>>398878
Вообще ебануться. Цикл в цикле, где у верхнего цикла переполнение переменной при сравнении будет...
Похуй на переполнение, сам прочти что за хуйню написал:
Для каждого i от нуля ебашить (содержие цикла), до .. сука, счетчик переполнилняется и никогда не достигнет нужного значения.
Содержимое цикла - бесконечное увеличение а, которое как и i будет каждые 4м проходов переполняться.
Верни старый вариант >>398868, стрелки "<" и допиши volatile перед объявлением i j.
govnokod.jpg75 Кб, 689x380
1276 398885
крч заработало. но именно с <=. не стрелка и не == а именно <=.
переполнение - фигня, с малым конечным значением переменных тоже не работало. volatile уже давно пробовал - тоже не помогло.
1277 398886
с пустыми циклами тоже работает, без а и б
1278 398887
Это законно вообще?
1279 398888
а не будет переполняться, ведь оно к нулю приравнивается периодически, не?
1280 398889
понял в чем косяк. при сравнении цикл не работает, надо стрелки.
1281 398890
Двощ образовательный и здесь все мои друзья :3
1282 398891
c < тоже работает. чёт трава забористая была
1283 398892
>>398885

>но именно с <=. не стрелка и не == а именно <=.


Хорош пиздеть. Разницу увидишь? А если глазки протереть и получше?
#include "stdio.h"
int main (void) {
int i;
for (i = 0; i<5; i++)
printf ("%d ",i);
printf ("\n");
for (i = 0; i<=5; i++)
printf ("%d ",i);
printf ("\n"); }

gcc48 test.c -o test
./test
0 1 2 3 4
0 1 2 3 4 5
1284 398894
>>398885
Что за говнокод? У тебя IDE при попытке написать
GPIOG->ODR |= 0x000055AA; вываливается в ошибку? Что за ебаная магия с адресами?
1285 398917
>>398894
а в чем принципиальное отличие? магия с адресами имхо понятнее
1286 398918
>>398917
да и вроде всякие хедеры подключать надо
1287 399086
кто-нибудь обрабатывал кнопки по короткому и по длительному нажатию? Можете в двух словах объяснить алгоритм?
у меня кнопки могут выполнять разные действия по разному нажатию, хз как организовать это граммотно
1288 399683
Посоны, подскажите, пожалуйста как проги называются, в которых подобные схемы рисуют? В шараге учили компас и сплан, но там выглядит совсем по колхозному, хочу чертить как на пикриле
1289 399687
1290 399700
>>399683
Первая на Altium похожа, он платный и только под вину, но, вроде как навороченный.
Вторая - KiCad, бесплатный, открытый и кроссплатформенный. Говорят, что в последние годы прогресс у него идёт семимильными шагами и на него очень много народу переходит, особенно в среде открытого железа.
Думаю в будущем на него перейти, а сейчас использую DipTrace, у него есть бесплатная версия на 1000 пинов и 4 слоя для СНГ. А ещё в DipTrace есть некоторые фичи, сочетания которых больше нет нигде, и которые сильно облегчают реверс-инжиниринг железа.
1291 399702
>>399700

> А ещё в DipTrace есть некоторые фичи, сочетания которых больше нет нигде, и которые сильно облегчают реверс-инжиниринг железа.


Например?
1292 399733
>>399700
>>399687
Благодарю
1293 399748
>>399702
Ну, может, насчёт "нигде" и неправда, но в опровобанных мной не было либо возможности подложить картинку и подогнать её в нужный размер без ебли, либо нетлист не модифицируется при проведении дорожек, либо нельзя однной командой убрать все дорожки, оставив соединения в нетлисте, чтобы компоненты были соединены только ретлайнами.
1294 399761
>>387460
А что у него с сайтом? Писал комментарий и чот всем наплевать. Там на втором уроке сразу какая-то дичь с регистром.
http://narodstream.ru/stm-urok-2-begushhie-ogni/
Он записывает число 0x55000000 включая пины 12,13,14,15, а на картинке отмечены пины 4, 5, 6, 7. Я полчаса тупил почему у меня число 0х5500 получилось.
1295 399774
Дратути. Нюфаня в треде. Подскажите, насколько полезный профит можно извелчь от просмотраданной серии видеофайлов, чтобы вкатиться чуть дальше, чем помигать светодиодом и копировать готовые прошивки?

О себе: бородат, могу в айти, с МК на "Вы". Спасибо.

https://www.youtube.com/watch?v=finP05FFTv8

и

https://www.youtube.com/watch?v=qiSjLxeyNv4
1296 399936
двощ, как работать с прерываниями без использования cmsis? вот есть вектор прерывания (адрес). как связать его с обработчиком прерывания?
1297 399938
>>399936
вангую что надо использовать указатель на функцию но как?
1298 399946
>>399938
Что то вроде:
segment byte at 8080 'rom'
isr_no:
...
iret
1299 399949
>>399946
>>399938

Нужно открыть стартам файл на асме, там будут weak символы для ай-эс-ар. Вот их определяешь и радуешься
1300 399978
>>399936
При чем тут вообще cmsis? Стартап ты взял из cmsis или как? Стартап, с таблицей векторов прерываний в любом случае должен быть. Странный у тебя вопрос. Программа вообще начинает выполняться практически с такого же прерывания, как и все остальные. Т.е. в функцию main оно попадает из ресет хандлера, адрес которого должен лежать в таблице в начале флешки вместе с другими векторами прерываний.
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0552a/BABIFJFG.html
1301 400157
Аноны, стоит у меня задача резво запилить на stm32f401c-disco управление ПЗС линейкой TCD1304. В теме не рублю совсем. Просмотрел на ютьюбе дядю в красной кепке, сделал по его инструкциям управление двухстрочным дисплеем. Понял что к изначальной цели приблизился слабо. Что читать/смотреть что бы быстрее реализовать проект? алсо нашел подобное на нуклео https://hackaday.io/project/9829-linear-ccd-module но я на столько в этом тупой что даже готовый их нуклео-код понять не в силах
1302 400169
>>400157

>понять не в силах


Ничего, весной у тебя целый год для понимания возникнет. Кекус.
1303 400170
>>400169
Почему возникнет?
1304 400171
>>400170

>Почему возникнет?


Сессию завалишь и дяди из военкомата тебе объяснят.
1305 400172
>>400171
бро, все еще хуже. Я препод и мне надо это студентам показать готовое, не спрашивай почему.
1307 400224
>>400197
спасибо, анон!
1308 400424
>>399774

>с МК на "Вы"


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

- Цель
- Нахождение путей реализации
- Изучение пути
- Реализация

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

Короче, просто бери и делай, то, что тебе хочется.
1309 400776
>>400424

> Короче, просто бери и делай, то, что тебе хочется.


Тупо без задней мысли?
1310 400976
Зацените господа, как этот немного волнующийся битард, годно поясняет за самые-самые основы STM32. Хочу отметить исключительную подробность разжевывания поясняемых тем.
https://www.youtube.com/playlist?list=PLhtMaaf_npBzsEQ94eGn5RnuE-VdGVObR
sage 1311 400996
>>400976
Репорт. Пиарь свой канал в другом месте.
1312 401013
>>400976
Эдгар жирнюйщий лайк!
sage 1313 401037
>>400976
>>401013
Семен на самоподдуве.
1314 401038
>>400996
>>401037
Уймись, шизик
sage 1315 401046
>>401038
Обтекай, маня.
1316 401053
>>401046
Обтек тебе за щеку, проверяй
s.jpg219 Кб, 900x900
1317 401226
Недавно получил с али странную плату "blue pill". Вот такая была фотография товара у продавца, собственно с такой же маркировкой и получил. Читается IDCODE 0x2BA01477, при том что должно быть 0x1BA01477 вроде как.
Что за ерунда? Китайцы скопировали STM32F103C8T6 со всей периферией?
1318 401232
>>401226

>Китайцы скопировали


Давно уже
1319 401323
>>401226
CS32F103C8T6
1320 401332
>>401323
Уже нашел по коду, весьма похоже на это. Теперь вопрос только в том что с этим делать, они ведь похоже не содрали топологию, а сделали какой-то аналог. Наверное в мусорку.
1321 401337
>>401323

>CS32F103C8T6


Ещё GD32 может быть.
>>401332
Насколько я знаю, GD очень даже годный, у него флеш вроде как в два раза быстрее оригинала, фирма, которая их делает, самостоятельно разработала технологию быстрой флеш-памяти и их основная продукция - это чипы памяти.
Насчёт CS не знаю.
1322 401340
>>401337

>Ещё GD32 может быть.


Не похоже. В GD32F10x User Manual написано, что

>The BSD JTAG IDCODE is 0x790007A3.



>Насколько я знаю, GD очень даже годный


Все равно нет смысла их использовать.
1323 401348
>>401340

>Все равно нет смысла их использовать.


В продакшене - понятно. А в махарайках - чому нет?
1324 401865
>>339005 (OP)
Хочу писать на ассемблере под PIC и 8051 КАК ДИДЫ!! А все конторки и фирмы предлагают только писать на С/С++ под модные зумерские STM и AVR. Что делать?
1325 401868
>>401865
Открой свою конторку и пиши под 8051
1326 401885
>>339005 (OP)
Анон, у меня бида-бида.
На nucleo-f446re в stlink был зашит jlink, я захотел его откатить обратно на stlink.
Запустил сеггеровский stm32reflash, выбрал restore stlink, и в процессе прошивки комп ребутнулся.
Теперь в диспетчере устройств виден stlink, но не st utility, ни stm32reflash к нему подключиться не могут, чтоб накатить целую прошивку. Суля по работающему usb, бутлоадер жив же?
Как ему восстановить прошивку? Подпаиваться к swdck/swdio и шить дамп?
Есть какие-нибудь другие способы?
that-feel-when-smugness-overflow.jpg38 Кб, 644x730
1327 401891
>>401865

>8051 КАК ДИДЫ!!


Ох уж эти интеломаньки с маленьким концом.
13409320.jpg58 Кб, 600x600
1328 401892
>>401891
Это жертвы маркетинга с органическим поражением головного мозга.
До 6502 и 68hcxx c пиздатым BDM им как до луны раком
1329 401893
>>401865
Пиши на ассемблере под зумерские STM, что тебе мешает?
1330 401894
>>401893

>под зумерские STM


Какие конкретно? Их много разных. Есть 8-ми, 16-ти, 32-ти битные.
1331 401899
>>401894
Да под любые. Или ты просто попиздеть зашёл и не собираешься ассемблерить?
1332 401903
>>401891
I8051 уже как пару десятилетий не производится.
Я имел ввиду архитектуру 8051 (MCS-51), микроконтроллеры на основе которой до сих пор тысячами выпускают всякие Silicon Lab, Atmel, NXP, Texas Instuments и т.д.
1333 401905
>>401893
Система команд. В RISC процессорах она искаропки заточена под Си, а на CISC удобно писать на ассемблере.
1334 401906
>>401868

>Открой свою конторку


На это нужно много бабок.
1335 401908
>>401892

>6502


Он уже не производится.
К тому же, это микропроцессор, а не микроконтроллер.
1336 401911
>>401899
Это другой анон за меня ответил.
Собираюсь. Последний раз ассемблерил 8051 и AVR на лабах в вузе, и долго не мог бросить, пока препод не заставил перейти на Си. Сейчас на работе мне хватает Си, я довольно быстро справляюсь с заданиями. Но вот коллеги-диды пишут на асме и говорят, что (познать кунг-фу) познать устройство микроконтроллеров и использовать их на все 100 можно только на асме, вот и мне захотелось этому научиться.
1337 401953
>>401903
Да я просто прикалываюсь, пародируя манеру общения в /hw. Если уже не можем писАть как диды, то хоть посрёмся, как диды.
>>401911

>познать устройство микроконтроллеров


А оно тебе так надо?

>использовать их на все 100 можно только на асме


Да нет, на сишечке то же самое всё. Она, по сути, и есть ассемблер, только машинонезависимый и без необходимости изобретать свою инфраструктуру для различных низкоуровневых идиом, типа функций или циклов. Если ты имеешь в виду, что на асме можно писать программы так, чтобы они с точностью до такта что-то делали, то да, это вполне применение для асма, но такое редко требуется.
1338 401986
>>401885
Победил.
Снял джамперы на cn2, и оно определилось обновлялкой.
1339 402017
>>401986
Держи нас в курсе
1340 402048
>>401953

>А оно тебе так надо?


Это необходимо, если хочешь стать настоящим специалистом(я хочу). А зачем? Чтобы получать чуть больше бабок, чем в каком-нибудь нии на окладе. Если погуглить требования на хедхантере на эту профессию - там пишут "знание архитектур MISP, AVR, STM, 8051". Что под этим подразумевается? Очевидно же, знание устройства микроконтроллера и особенности ассемблера. К тому же мне нужно будет и в плис вкатываться и там это пригодится.
1341 402113
Может и глупый вопрос, но почему никто не производит плат с STM32WB?
А то если хочешь подключить Wi-Fi к своему поделию, то приходится брать ESP.
1342 402125
>>402113

>почему никто не производит плат с STM32WB


https://www.promelec.ru/product/146434/
1343 402126
>>402125
Угу, ещё есть официальная NUCLEO.
Но хотелось бы чего-нибудь такого же бюджетного от китайцев, как esp32.
1344 402161
>>402126

>бюджетного от китайцев, как esp32


Ты цену голого чипа видел? Как оно может быть ценой как есп?
1345 402218
>>402161
STM32WB55CCU6 стоит 3.3 евро при заказе от 500+ штук
1346 402220
>>402218

>3.3 евро


>250р чип + печатка, обвес, экран, работа за рис, небо и Аллах.


Да даже у китайцы себестоимость будет 500р+. Нихуя не потягается с копеечной есп-шкой.
1347 402221
>>402220
Ну а если без экрана?
Как blue pill: только чип, два кварца. два светодиода и раъем microusb
1348 402245
>>402218

>STM32WB55CCU6


Нихуя не WiFi!! Это в основном BLE-чип с элементами эротики ZigBee.
1349 402273
>>402245
А ведь действительно, почему-то казалось, что у них есть WiFi.
Получается, что у ST совсем нет никаких аналогов ESP? Чтобы и с Bluetooth, и с WiFi было.
1350 402293
>>398868
На хуй ты макроопределениями не пользуешься?
1351 402318
>>402273
Нету. Есть либо одно, либо второе. Вайфай вообще одним только модулем представлен https://www.st.com/en/wireless-transceivers-mcus-and-modules/spwf01sc.html
820473a3531466d2101f38d65ac2f6bd.jpg15 Кб, 300x300
1352 402324
>>402293

>магия с адресами имхо понятнее


>>398917
image.png309 Кб, 376x309
1353 402334
1354 402336
>>398917

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

Если твою простейшую функцию из 5 строк, не возможно понять без комментариев - говно этот способ.
4253542055754752442.png1,1 Мб, 895x1500
1355 402716
Есть один мк на Кортексе М4 и древняя отладка с J-Link на борту.
Какого-то хера не могу подключиться к камню: жи-линк пишет Couldn't connect to device.

Как вытащить с жи-линка более развёрнутый лог, чтобы понять что именно ему не нравится?

Или куда копать, чтобы нарыть причину отказа в коннекте?

Схему перепроверил. Камень припаян хорошо.
1356 402839
>>402336
Кста, а есть вообще большие проекты целиком на асме?
image.png573 Кб, 661x298
1357 402850
>>402839
Roller Coaster Tycoon
1358 402851
>>402839
И да, исходники на асме гораздо понятнее того высера выше. Там макро во всю используются.
1359 402873
>>402839

>а есть вообще большие проекты целиком на асме?


Какая-то операционка, насколько помню, на АСМе писана.
ПС. Даже джве: KolibriOS und BareMetal x64(!), весом 16 кБ
1360 402905
>>401905
Может и заточена, но писать на ассемблере система команд кортексов не мешает. Только не нужно на ассемблере ничего такого писать, только потому что так хочется.
1361 402935
Сап радач. Имею желание вкатиться в STM. Насколько я понимаю лучше всего для начала подойдет отладочная плата, на которой уже имеется программатор и переходник USB-UART. Вроде как подойдет плата NUCLEO. Собственно вопрос: Какую из этих плат лучше выбрать, чтобы иметь минимум проблем в будущем? Или хотя бы на что обращать внимание при покупке? Плата нужна пока для обучения, буду пробовать работать с различной периферией, подключать дисплеи и тд. Стоимость не критична. Заранее спасибо
1362 402938
>>402935

>на которой уже имеется программатор


Это без разницы. Хотя отдельный удобнее, проще с разными микроконтроллерами (разных производителей) использовать один и тот же.

>переходник USB-UART


Ну такое себе требование. Ничего не мешает подключить отдельно, если потребуется.

Так что blue pill вполне достаточно, но можно и самостоятельно припаять микроконтроллер к макетке.

>буду пробовать работать с различной периферией, подключать дисплеи и тд.


Либо выбирай плату по наличию этих дисплеев и всего такого, а не программаторов-отладчиков и USB-UART.
1363 402939
>>402938
Понятно, а с какого тогда контроллера лучше начинать? (blue pill посмотрел, там STM32F103C8T6, он подходит?)
Просто хотелось взять контроллер, с которого проще всего было бы перейти на другой STM, уже под конкретные задачи в будущем
1364 402943
>>402935

>работать с различной периферией, подключать дисплеи и тд.


Я себе взял STM32F429I-DISCO. Гора периферии: гиро, память, USB, EEPROM и хуевенький дисплей с тачскрином. Правда я пока дальше ШИМа и чтения сырых данных с гироскопа, нихуя с ней не делал. Раз 500 уже порывался жестко засесть и все никак вот.
1365 402949
>>402939

>с какого тогда контроллера лучше начинать?


Если возникает такой вопрос, то с того, у которого более простая периферия.

>STM32F103C8T6, он подходит?


Вполне подходит, в нем есть проблемы с I2C и вообще errata длинная, но не всем же нужен I2C, тем более для того чтобы только вкатиться.
1366 403031
Как прочитать IDCODE, у меня в 0xE0042000 какая-то финя, а не 0x1BA01477. В качестве программатора использую BMP.
изображение.png37 Кб, 1074x174
1367 403045
>>403031
Отбой. Поправил исходники BMP, лол. Интересно, почему они не сделали вывод этой инфы.
что такое PIDR?
1368 403053
>>403045

>что такое PIDR?


Это когда мужчина с мужчиной сексом трахаются
изображение.png11 Кб, 1025x129
1369 403097
>>403053
Я про этих ребят.
1370 403116
>>403053
Это Port Input Data Register, RTFM.
pidr.png15 Кб, 1047x128
1371 403124
>>403097
не тот скрин
1372 403253
>>339005 (OP)

>Какую среду разработки лучше использовать?



Пиши в любом редакторе кода, компилируй Meson

Всё остальное это костыли красиво замаскированные
1541573472-a09d5e7e408df039a2f44223e74e7412.jpeg91 Кб, 700x933
1373 403254
Подскажите ОПЕНСОРСНУЮ гуёвую библиотеку чтобы рисовать окошки и кнопки на маленьком тачскрине?
1374 403277
>>403254

>ОПЕНСОРСНУЮ


Сам и напиши. Чем StemWin und TouchGFX не угодил?
1375 403421
>>403253

>Meson


Для асма можно заюзать?
timers1.png60 Кб, 960x560
1376 403502
15822334489520.jpg45 Кб, 1280x720
1377 403505
>>403502
Чё? Таймер? Дженерик стафф же. Рид зэ f мануал
1378 403506
>>403505

>Рид зэ f мануал


Да я вот рид-рид унд крыша потекла
15779968148510.webm202 Кб, webm,
1920x1080, 0:01
1379 403513
>>403506
Переходи к другим компонентам, потом вернёшься. Или найди другую мурзилку с описанием таймеров
1380 403574
>>403502
Ты не пытайся сразу вникнуть в весь функционал. Делай по немного.
1) настроил таймер. щелкает? Заебись
2) настроил прерывание по переполнению. Прерывается? Заебись
3) сделал самодельную шимку. Переключается? Заебись
4) настроил аппаратную шимку. Ну ты понял короче.
Сразу все функции понять тяжело.
1381 403595
>>403505
Не он прав. У ST (не только STM32) таймеры в край ебанутые, они сами по себе тянуть на даташит как к отдельной микре.
Annotation 2020-03-01 144808.png105 Кб, 1920x1037
1382 404529
Гайсы, не исполняется ебаный код. В отладке t1 всегда стоит на нуле, код не исполняется до той строчки куда я поставил курсор.
Использую Keil uVision5, чип STM32F042F6P6, через STM32 ST-LINK Utility чип читается нормально. Пробовал 3 разных платы на этом чипе, один хуй не работает (платы хуярил сам через easyEDA, до этого на stm32f103 хуярил платы, они работали)
Копать в сторону софта или разводки платы?
1383 404536
>>404529
Проверь волатильность и оптимизацию компилятора.
1384 404547
>>404536
с этим все ок, оптимизация установлена на 0
1385 404548
>>404547
ну и кстати, практически такой же код, с таким же компилятором, с такими же настройками компилятора, выполняется и работает на stm32f103cbt6
1386 404549
>>404529

>код не исполняется до той строчки куда я поставил курсор.


А что должно исполниться между main() и HAL_Init()?
11.png4 Кб, 254x76
1387 404550
>>404549
ну должен же выполнится HAL_Init() ?
по крайней мере на другой плате так и происходит
1388 404557
>>404550
А ты там хидеры ХАЛовские не забыл подключить?
1389 404563
>>404557
та нет, проект собирал через stm32cubeMX, он же сам все собирает.
Создал тестовый проект, токо с включенными пинами для внешнего тактирования (хотя по clock configuration тактирование я сделал через внутренний кварц) и с пинами для стлинка, ну и для светодиода, в итоге все равно нихуя не пашет.
Может ли быть такое шо чипы левые? Или разводка платы кривая? заказывал чипы с алика, попробовал уже 3 штуки, нихуя не пашет.
042.PNG25 Кб, 902x303
1390 404567
>>404563

>Или разводка платы кривая?


Хуй его знает. Попробуй залить код с ХАЛовских примеров для этого чипа.
<--Например
Annotation 2020-03-01 185626.png140 Кб, 1920x1061
1391 404579
>>404567
не, все равно та же хуйня, походу я где-то проебался с разводкой платы. Или же чипы поддельная хуета
1392 404591
>>404579

>я где-то проебался с разводкой платы


Но прошивка заливается? Посмотрел схему Nucleo с 042К камнем, там и ошибиться негде. Я раз ебся c STM8S003, там есть вывод с конденсатором и по даташиту кондер должен быть что-то вроде от 1 до 4мкф. Я въебенил первый попавшийся на 1мкф и предсказуемо соснул. Заработала ента хуета только когда прилудил 2.2мкф. Но у твоего камня такой хуйни нет.
1393 404592
>>404579

>чипы поддельная хуета


Нахуя их то покупать на Али? Они и у нас стоят копейки. И шанс нарваться на подъебку меньше на порядок
1394 404603
>>404591

>Но прошивка заливается? Посмотрел схему Nucleo с 042К камнем, там и ошибиться негде


Так вот реально, хуй его знает. Прошивка заливается, через ST-Link utility чип опрашивается, все ок, но нихуя при этом не работает.
>>404592

>Нахуя их то покупать на Али? Они и у нас стоят копейки. И шанс нарваться на подъебку меньше на порядок


Ну хуй знает, я всегда брал чипы на Али, все было ок, главное шоб у продавана были норм отзывы. А тут такая хуйня.
1395 404608
>>404603
Короче хуй его знает че произошло, но в итоге все платы начали работать и мигают светодиодом. Но отладка один хуй не работает, хоть код и исполняется (светодиод мигает) но в отладке t1 стоит на нуле, run to cursor line тоже не работает, ебаные приколы какие-то.
1396 404609
>>404608

>Но отладка один хуй не работает


Может у тебя Keil кривой? Или погромматор?
1397 404611
>>404609
та вроде нет, из чипов под рукой есть токо stm32f103cbt6, и stm32f407vet6, у них все ок с отладкой, и переменные читаются, и память.
15407441830440.png1,7 Мб, 1500x600
1398 405127
>>339005 (OP)
Байтоёбы здесь?
1399 405130
>>405127
Хули надо?
Annotation 2020-03-08 174204.png22 Кб, 646x278
1400 405457
Аноны, в чем может быть подвох, FreeRTOS выполняет задачу (DefaultTask, дефолтная хуйня настроенная через куб) всего один раз, и дальше нихуя, просто крутит while.
Ебусь с этой блядской дрысней весь день, то в hardfault выпадала из-за либы на дисплей, то между задачами не переключалась.
1401 405462
>>405457
Или хуйню несешь или проверяй настройки lwip. Сам напарывался и лечилось уменьшением размера кеша или еще чего связанного с занимаемой памятью во вкладке lwip.
1402 405463
>>405462
Ебать, анон, спасибо. Действительно дело было в lwip, оффнул ее нахуй и задачи нормально выполняются, придется с памятью разбираться.
1403 406113
Привет Анон.

STM32F107, распаял на плату (свою), пытаюсь запустить, но не выходит.
Подключаю к JLINK по SWD, подаю питание на плату. Вне зависимости от напрежения на NRST, потребление регулярно скачет от 0 до 0.02А, а JLINK немного думает и ничего не находит. Если плата без питания, жлинк сразу видит что ничего нет. По осциллографу вижу, что JLINK что-то отправляет (периодические короткие импульсы на TMS и TCK).
Boot0 и TCK подтянуты к земле через 10К, TDO и TMS подтянуты к 3.3V так же через 10K.

Референс, при аналогичном подключении, видится.

Подскажите в чем может быть проблема и куда копать?
1404 406118
>>406113
Это твоя схема? Больше инфы, включая фото пациента, герберы, как и от чего питаешь. У тебя точно JLink? Что он говорит в строке VCC Target, которое питает его буферы?
1405 406122
>>406118
Моя. Сейчас гуглил, написано что нужно добавить тантал на 10мкФ - добавил, не помогло.
Герберы итд неудобно же будет с картинки читать. Или как ты его выложить предлагаешь?
VCC Target это в J-Link Utility, или где?
Питаю от стабилизатора 3.3, к нему же подключается VRef Жлинка. У меня древний J-Linkn из IAR-кита, пользуюсь тем что нашёл, но в общем то на таком же МК в EVAL-плате работает.
изображение.png36 Кб, 581x684
1406 406124
>>406118
Цепь стабилизации 3.3, если имеет значение.
На приложеных скринах, по сути всё, что сейчас распаяно на плату.
1407 406125
>>406122
Визуально ничего стремного не нашел как и явных отклонений. Не сразу нашел где переходное питания на широкую петляющую дорогу. Могу только попросить проверить напряжение на каждом конденсаторе (на самом) а потом относительно одной точки (входной разъем питания) и на каждом выводе конденсатора. Может где разрыв земли или питания?

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

В папке куда устанавливался софт от segger есть файл jlink.exe , который в консольном окошке пишет (часть вывода убрана):
Firmware: J-Link Ultra Rev.1 compiled Dec 3 2013 14:27:53
VTarget = 4.821V <- что тут у тебя пишется?
Info: TotalIRLen = ?, IRPrint = 0x..000000000000000000000000
Info: TotalIRLen = ?, IRPrint = 0x..000000000000000000000000
No devices found on JTAG chain. Trying to find device on SWD.
Info: Found SWD-DP with ID 0x0BB11477
Info: Found Cortex-M0 r0p0, Little endian.
1408 406126
>>406122
Еще попробуй 77 ногу (JTAG_TDI) через резистор на землю посадить.
1409 406127
>>406126
Жопой читаю. К питанию (+3.3), а не к земле.
1410 406129
>>406122
Лол. А чего ты и монтаж сразу не заказал. Макетирование для слюнтяев?
изображение.png37 Кб, 914x703
1411 406136
>>406125
Промерял напряжения по твоему совету, везде симметрично. Земли звонятся, ни единого разрыва.
Контроллер новый.
Подключил Reset, подтянул TDI к 3.3 - результат один (аттачед).
>>406129
Ты, конечно, можешь иронизировать, но это и есть, сорт оф, макет. Или прототип, если так угодно. Я пытался сделать более "универсальный" макет, где у каждой ноги есть своё VIA (чтобы удобно было паяться), но понял, что получается хуита, которая, к тому же, не заработает (и это будет не поправить в рамках макета). Так как мне всё равно пришлось бы заказывать изготовление, я решил не ебать мозг, и сделать "один раз, но хорошо" Утрирую, конечно. Понимал что будут косяки и придётся переделывать, но пока ничего непоправимого не вижу.
А так да, макетирование охуенно.
1412 406144
>>406136
На последок покажи детально кабель которым подключаешься.
Питание как организовано? С внешнего БП подаешь 5В?
Странно все. По питанию говоришь косяков нет, по схеме косяков не видно. Если сумел подпаяться к 77 выводу - значит уже можешь добавить 1 проводок и подключиться по JTAG-у вместо SWD. Если и это не катит - попробуй на PB2(BOOT1) подать 0, на BOOT0 - 1 и через утилитку Flash Loader Demonstrator попробовать достучаться через UART до загрузчика через выводы A9 и A10 через. Если и это не поможет - тогда не знаю, наверное замена кристалла на точно рабочий/из проверенных источников.
1413 406179
>>406144
Питание от ЛБП, провод медный многожильный, относительно толстый.
Знакомый так же посоветовал попробовать подтянуть Boot0 к питанию.
Обрати внимание, пожалуйста, на то как установлен чип >>406122
Правильно или я не угадал, где у микросхемы ключ?
Ещё грешу на флюс. С ним у меня уже возникали проблемы.
1414 406182
>>406179

>где у микросхемы ключ?


Возле ST
1415 406183
>>406179

>Правильно или я не угадал, где у микросхемы ключ?


Это была вторая мысль, но заглянув в даташит и соотнеся маркировку и положение ключа - верно поставлен.
страница 84 https://www.st.com/resource/en/datasheet/stm32f107vc.pdf
1416 406246
парни я вот это
хочу тоже вкотиться в stm32
блю пиллсы мне пришли а программатор
потерялся по дороге я дешевый брал
ст линк китайский. деньги отдали конечно
я вот думаю а не замахнуться ли мне сразу
на программатор v2 как мыльница который?
им вроде и стм 8 можно шить
или нахуй? пока простой свисток пойдет?
или сразу v3 но там цена...
1417 406257
>>406246
Разницу между мыльницей v2 и свистком v2 ты не заметишь.
V3mini есть за 1.5к, но зачем? Ты ведь не собираешься двухядерные h7 отлаживать?
Если синих таблеток у тебя две и есть usb-uart, можешь одну из них прошить в st-link или blackmagic probe.
1418 406269
>>406257
бро я пробовал так через ардуину
ее reset замкнул с массой
не захотела моя пилюля так щиться
хотя некстион дисплей щьется
то есть сам юсб-ттл рабочий
rx и tx менять местами пробовал конечно
1419 406287
>>406269
Джамперы boot0 и boot1 выставлял как положено?
Ну и можт 5вольт ардуины не понравились трехвольтовой пилюле.
023BFA2E-36B2-4DFB-9CD8-AE932A6ACFEE.jpeg212 Кб, 1224x736
1420 406307
>>406287
Джамперы остались стоять как я и пробовал прошивать (фото). Rx и Tx были ардуиновские, сегодня по новой попробую, поставлю резисторы 390 Ом (подсмотрел номинал на ESP8266 schematic). Питание брал с пина 3.3 На ардуинке, сегодня запитаю от отдельной платки китайской которая умеет 5 и 3.3 вольт.
1421 406320
>>406307
Не получается((. Полдня сегодня бился с прошанием Blue Pill (перешивка ее в ST Link программатор). Пробовал и в Linux, там тоже печально. На Blue Pill постоянно мигает светодиод PC13. Гаснет только при нажатой кнопке Reset. Положения джамперов boot0, boot1 на него никак не влияют. Ответа от платы нет при прошивке. В среде Ардуино тоже нет ответа. Куда копать не знаю. Сама Ардуинка, которая используется как USB-TTL шьется штатно, проверил еще раз. Буду заказывать ST link и USB-ТTL до кучи.
1422 406825
>>402048

>Очевидно же, знание устройства микроконтроллера и особенности ассемблера.


Это скорее про особенности пайплайнов, стэков и особенностей архитектуры. Ассемблер для этого конечно неплохо знать, но не обязательно на нем кодить.
Да и под ПЛИСы сейчас код тоже на высокоуровневых языках пишется - тот же VHDL и даже C и C++
image.png2,8 Мб, 1600x998
1423 406826
>>339005 (OP)
Сап, аноны, хочу заебенить себе W-mouse, но на STM а не пердуине (ну а хуле и нет, да и дешевле так). Из вариантов мозгов рассматривал STM32F730R8 - типа ебать он мощный дохуя, но вот с другой стороны, а нужна ли мне такая йоба?
Ну или взять попроще какой-нибудь STM32F103C8T6.

Но в электронике я мало что понимаю, я так понимаю если я возьму один только чип - то мне придется делать к нему отдельно обвязку (разве что знаю что нужно будет ставить регулятор напряжения чтобы понижать с 5 до 3.3 вольт). А всякие кристаллы-осцилляторы, какие-то дополнительные конденсаторы и резисторы мне нужно будет ставить на плату? А то так некоторые готовые платы посмотришь, и там дохуя всего стоит, вот как здесь >>339689

И еще, из программатора у меня есть только C232HM, мне нужно будет какой-то другой покупать, или можно будет и им прошить?
1424 406832
>>406826
Не смотри туда, сюда смотри
https://a.aliexpress.ru/_eKeTyR
Но где ты возьмёшь прошивку под стм?
1425 406836
>>406832
Я не хочу брать с готовой обвязкой, потому что я хочу запиливать плату специально под мышь. Для того чтобы просто поиграться у меня и так уже есть готовая ESP32. Но мне нужно знать какая обвязка мне нужна будет на плате.

>Но где ты возьмёшь прошивку под стм?


Если ты про W-mouse, то просто перепилю регистры с ардуиновских на стмовские, может ещё чего поправлю и перекомпилирую. Или там ещё какие-то прошивки есть на СТМ, которые загружать нужно? Вот как сам СТМ изначально прошивать по одному только 232 я не знаю.
1426 406845
>>406836
У стм принципиально иная архитектура, так не прокатит
1427 406849
>>406832

>Но где ты возьмёшь прошивку под стм?


Найду в интернете. Удивительно, бумер?
1428 406851
>>406849
А с тобой никто не разговаривает, ты всех достал уже
1429 406865
>>406845

>У стм принципиально иная архитектура, так не прокатит



Что не прокатит? Алгоритмы которые написаны на С от другой архитектуры не поменяются, а поменять всякие инициализации и считывания пинов - это вопрос изучения мана.
изображение.png3 Мб, 2500x1407
1430 406866
>>406849

>Удивительно, бумер?


Дневную дозу тайд-пода захавал? Не забудь, это важно
1431 406887
>>406826

>W-mouse


Что за зверь?
1432 406895
>>406887
Загугли. Мышь на сенсоре PMW3360 и пердуине, но я хочу сделать на STM.
https://overclockers.ru/lab/show/34703/Myshi_W-Mouse
1433 407317
>>339689

>> STM32CubeMX + Keil + STMStudio


Сейчас stm32cubeIDE заменяет cubeMX и кейл? Что актуально счас?
изображение.png7 Кб, 253x285
1434 407410
Сап анон.
Для чего нужен режим GPIO_Analog в кубе?
Я думал, что это АЦП, но он идёт отдельным режимом, и есть не на всех пинах. А этот режим есть на всех пинах.
Что это, и как с этим работать?
image.png54 Кб, 839x379
1435 407413
1436 407414
>>407410

>режим GPIO_Analog в кубе?


DAC ты как выводить собрался? ШИМом?
1437 407415
>>407414
Я искал, но ясного ответа о том, только для DAC'а нужен этот режим или нет - не нагуглил.
>>407413
Тоже не добавляет ясности.
МК серии stm32f10x, если что.
1438 407433
>>407415
это режим работы ноги, когда от нее отключены все выходные буферы
изображение.png25 Кб, 664x391
1439 407436
>>407433
Отлично. А куда она дальше идёт?
1440 407439
>>407436
на ацп например
изображение.png16 Кб, 416x210
1441 407445
>>407439
А если нет на пине АЦП?
Для PB0 и PB1, например, доступен АЦП, и доступен выбор "GPIO_Analog". У PB2 доступен только "GPIO_Analog". Какую функцию у него, например, реализует "GPIO_Analog", учитывая что альтернативные функции для него не доступны?
1442 407455
>>407445
просто висящий в воздухе пин. Если я правильно помню, это дефолтное состояние для не-jtag-овых пинов
1443 407458
>>407455
А на кой тогда он доступен для всех пинов? В том числе в кубе.
Просто ради совместимости кода?
Алсо, я проверил, на жтаг пианх он тоже доступен.
1444 407509
>>407458
Думаю, чтобы можно было тупо отключить неиспользуемую ногу от всего и не париться.
Если висящую в воздухе ногу сделать входом - она ловит пердёж и помехи, входной буфер быстро переключается и жрет ток, выходом - может замкнуть, если подключена к выходу/питанию, входом с подтяжкой - в предыдущем случае будет небольшой дополнительный ток.

Кстати, кто работал с пикрелейтед дисплеями (1602, 5110) - подскажите, какую библиотеку лучше всего использовать для текста настраиваемого размера с кириллицей?
1445 407511
1446 407587
1585131975612.jpg7 Кб, 236x236
1447 407589
Пиздец посолены, объясните мне, покажите хоть одну либу с поддержкой ебучего OTM8009A.
Настроил дисплей через FSMC, могу пиксели рисовать, а ебаться с отрисовкой не хочу. Хочу библиотеку GUI чтобы красиво было. Поставил Segger EmWin — говно не работает, какой только драйвер не выбери. Не знаю где ошибка, всё инициализируется нормально.
Может есть другие либы хорошие, где не надо руками пиксели трахать?
Смотрю сейчас всякие uGUI, littlegv, понять не могу. С какими либами вы работаете? Йоба TouchGFX не предлагайте, в моём проекте только Stm32F205 есть, заказчик менять компоненты не собирается, плата уже готовая и не факт, что просто замена дисплея поможет.
1448 407608
>>407589
здесь тебе не фронтэнд, чтобы на каждый чих была готовая либа. Адаптируй, пиши сам
1449 407609
>>407458
вот эти восемь состояний >>407413 доступны для всех пинов, ибо никто не будет подгонять выходы под наличие конкретной периферии.
На джтагах он доступен, но сразу после перезагрузки там по-моему инпут с подтяжкой вверх, когда на других аналог инпут
1450 407610
>>407608
Теперь понятно почему весь тред байтоёбов, плюющихся на куб.
1451 407615
>>407589

>Segger EmWin — говно не работает, какой только драйвер не выбери


Свой пиши или с параллельным интерфейсом ставь
1452 407619
>>407615
Накатил LittlevGL и все работает. Писать ничего не нужно практически, считай как qt можно интерфейсы писать. Жаль только билдера нету.
1453 407843
И снова здравствуйте, аноны.
Пытаюсь настроить встроенный АЦП в интересующем режиме, но почему-то результат выходит не рабочий.
Камушек STM32F107.
Следуя гайдам из интернетов, выбрал параметры в кьюбе, и там где у людей всё работает, у меня - залупа.
Прикрепленные скрины - настройки ADC и DMA в кьюбе.

Запускаю АЦП командой, HAL_ADC_Start_DMA(&hadc1, (uint32_t*)adc_buf, ADC_BUF_LEN) больше ничего не дописываю.
В обработчик DMA прихожу всего 2 раза, и всего 1 раз прихожу в коллбэк HAL_ADC_ConvCpltCallback().
Первый байт указанного буфера, единожды устанавливается в какую-то рандомную величину, остальной буфер - нули.
Пробовал настроить без континьюс мода, по таймеру (TIM3_Out, так в итоге и собираюсь использовать), но там вообще, какая-то хуита - буфер всегда пустой, прерывания на DMA никогда не приходят.

При всём описанном - в режиме "ручного опроса" АЦП работает на последнем скрине видно, что DR не пустой, занчение в DR меняется. Алсо само значение DR какое-то рандомное, пока не подключу его к земле или питанию вручную - тогда показывает 0 или 0xFFFFF соответственно.
1454 408022
>>407843
Чекни настройки NVIC (векторов прерываний), может ты прерывание по АЦП не включил.
Еще посмотри как это всё работает на других контроллерах, из других серий. Все примеры по АЦП можешь найти в репозиториях куба. Наиболее богатая примерами линейка — f400, топай от дискавери.
1455 408024
>>407843

>Камушек STM32F107


Ты таки запустил свою макетку?
1456 408033
>>403421

>Для асма можно заюзать?


Теоретически

Там слишком много трансляторов чтобы на данный момент они могли их добавить, как я понимаю. Хотя если в gcc встроен твой асм то взлетит скорее всего.
1457 408152
>>408024
Да няш, запустил. 2 недели по эту пятницу с ней игрался, радовался, а потом, похоже, случайно сжег. В целом не смертельно, есть второй комплект на всё что мог сжечь, но сейчас карантин, так что пока не починю/проверю. Буду пока писать на отладке.
>>408022
Ну в мануалах не пишут что нужно врубать прерывание по АЦП. В STM-воском мануале к HAL-у написана рекомендация, поставить в прерывание DMA обработчик для АЦП, я пробовал - не помогает.
По поводу других серий - в F4 отличаются АЦП немного, в F1 для моего юзкейса примера нет.
Странно, что я делаю всё как в гайдах для F103, по описанию - АЦП у нас одинаковые, но всё равно, получаю какую-то херню.
Очень странная фигня.
1458 408311
>>408152
Пили прохладную - что было? Как запустил?
1459 408348
>>408311
Да хуй его знает, что это было. Валю на флюс.
Искал кого-нибудь знакомого с УЗ-ванной, но все меня послали нахуй, предложив использовать дегризер. Дегризера у меня не было, но был очиститель карбюратора. После него всё заработало.
15803357551910.png523 Кб, 936x936
1460 408695
Приветик, анчоусы~
По необходимости в скором времени придется перекатиться с STM32 на STM8 и вот возник вопрос. Если кто-то работал с этим, может подскажите хороший компилятор и следовательно IDE? Уже попробовал IAR Embedded workbench и слегка поел говна. Компилятор ужасный. Си преобразует в ASM ужасно. А при включенных оптимизациях часть кода вообще не работает/работает не так как надо. В общем, помойка говна.

Что-нибудь посоветуете, няши? С меня кусь~
1461 408763
>>408695
родной компилятор ужасный, а из сторонних только sdcc, сыровато допиленный под stm8. Это бич всей линейки, ничего не поделать
1462 408769
>>408763

>родной компилятор ужасный


Я с ентими вашими компиляторами на ВЫ, просто помалу типа погроммирую и кампилирую. Вроде работает все. Поясни в чем ужасность родного с космиком в качестве компилятора?
IMG20191115090904271.jpg84 Кб, 972x1280
1463 408885
>>408763
Ну вот я тоже сразу приглядывался к SDCC Попробую а результат отпишу
>>408769
Грубо говоря, у тебя компилятор преобразует твой исходный код в исполняемый файл. Который ты можешь посмотреть через дебаггер. Так вот. По сравнению с ассемблер ом, код на си более абстрактен и может быть преобразован разными способами. С учётом оптимизацией, опять же. Компилятор - это программа. И некоторые компиляторы преобразуют исходники в исполняемый лучше, а некоторые хуже. Иаровский компилятор делает это убого. Когда обращение к регистру может быть выполнено 1 инструкцией на ассемблере, он это обращение представляет как 4 команды с call-ом внутри. То есть, штампует больше кода чем нужно. От этого код на си работает медленнее и занимает больше памяти
1464 408886
>>408885
А компилятор от Cosmic чем плох?
1465 408893
>>408886
Не знаю, не пробовал. Просто слышал что SDCC лучше
1466 408901
>>408886
версия языка там древновата
1467 409288
>>408901

>древновата


Так и 8-битки тоже нихуя не новшество. Сдается мне, что их скоро и выпускать перестанут.
1468 409433
>>408152
Смотри мои настройки для измерения АЦП по ДМА. Весит на этой штуке 8 датчиков.
Все что мне нужно, чтобы запустить бесконечный цикл измерения по всем каналам сразу это HAL_ADC_Start_DMA(&hadc1, (uint32_t*)adc_sensors, 8);
Больше никаких настроек не нужно. Работает искоропки как часы. Прерывания по АЦП и ДМА каналу включены.
14305060457620.jpg30 Кб, 456x469
1469 409655
Делюсь своими впечатлениями от использования БЕШПЛАТНО-ШВОБОДНОГО sdcc. Все началось с того, что я не нашел нормальной IDE. Их просто нет. Напомню, что eclipse нормальной IDE считаться не может.

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

Но на этом я не остановился. Скачав сам по себе компилятор и написав make-файл я попытался скомпилировать код. Как можете понять, ничего не вышло.

Поддержки божественных макросов вроде #pragma vector для прерываний, __interrupt, #pragma location наряду с __no_init для простого доступа к EEPROM-у и многого-многого другого. Этот компилятор в принципе не предназначен для STM8. Мне даже не удалось найти нормальный готовый хидер-файл для проекта. В сети есть лишь недописанный кусок хидера с ошибками от какого-то васька. В общем-то, охуенные впечатления остались. Боже благослави ШВОБОДНОЕ по
1470 409687
>>409655

>Боже благослави ШВОБОДНОЕ по


Меня больше прикалывает когда в тред населенный нубами на 146% врывается тип ПОЗНАВШИЙ ЖИЗНЬ и начинает затирать про линух на его машине, сборку окружения из сорцев, написание make-файлов... Хочется просто харкнуть в еблище.
image.png615 Кб, 710x400
1471 409802
>>409655

>Этот компилятор в принципе не предназначен для STM8.


А зачем ты его взял, если можно было погуглить и почитать, что он умеет и решить, пойдёт ли он для твоих задач или нет?
1472 409808
>>339005 (OP)

>отладочной платы.


Отладочные платы - это путь ардуино-детей.
Нормальные люди сами разводят себе платы под нужные цели.
1473 409809
>>406825

>ПЛИСы


>C и C++


Каво?
1474 409820
>>409808

>Нормальные люди сами разводят себе платы под нужные цели.


Вот же ебанат. Я развожу когда код и аппаратную часть отлажу на ОТЛАДОЧНОЙ ПЛАТЕ. Если ты готов лутить/ждать от китайцы месяцами плату после каждого косяка, а они у тебя будут с вероятностью 101%, то флаг тебе в руки.
1475 409824
>>409808
За сколько наносекунд разведешь тян на сиськи и спаяешь на коленке платку расширения под PCI-e слот с парой трансиверов 40G Ethernet, легкая FPGA на полмиллиона LE, пару ЦАП-АЦП на пару гигасемплов, аналоговую часть под них, массив NAND и DDR3 памяти и незабыв про SSRAM мегабита на 72 и например рядом несколько работающих по себе i.mx8 у которых так же своя DDR3, NAND и NOR память? Ой, совсем забыл еще Ethernet свич дописать.
По частям это есть, одним куском - нету. Не выебывайся, а ответь конкретно - за сколько наносекунд соберешь себе такую макетку в единичном экземпляре? Разведешь все это с первого раза включая DDR3 и SERDES на десяток гигабит по каждой паре? А то мне завтра курсовик сдавать надо, а еще нихуя нет.
Дай угадаю - твой уровень - мигалка светодиодом или мигалка на мультивибраторе? Похвально. А теперь пиздуй обратно в свой загон-пердуино тред.
stm32f103c8t6 1476 410003
1,333 МГц хули так мало получается?
1477 410004
>>410003
Ты бы вообще одну строчку кода прикрепил, чтобы понятнее было.
1478 410005
>>410003
Дохуя умный? Думаешь этот высер HAL-а дает одну команду?
Хуй там. Если основательно ебанешься - пиши на ассемблере команды записи в регистр BSSR (bit ser reset register) и глядишь в 4 команду уложиться - установить, nop, сбросить, переход в начало.
Используй выход таймера
1479 410006
А что там показывать? Пустой проект сгенерированный кубом. Там только настройка тактирования и двух пинов порта C и B на выход ну и дерганья пином в цикле.
1480 410008
1481 410010
>>410005
Всеравно мало
1482 410012
>>410006

>проект сгенерированный кубом


Как ты постоянно пробираешься из ардуино-треда, сука?
1483 410013
>>410012
А чем тебе куб не угодил? Или ты из ЭТИХ?
1484 410014
>>410012
Ты любитель вот так дрочить на адреса >>398885
1485 410015
>>410010

>мало


Ёбу дал? Правильно сделал что хал в помойку и перешел на CMSIS. В 6 раз поднял скорость!
Сказал же - используй таймер если надо быстро надрачивать или рассказывай нахуя тебе такая (нужную не назвал)скорость.
Почитай https://habr.com/ru/post/161617/ . Некоторые то же думают что ох сейчас раскочегарим.. и сосут хуй в итоге.
1486 410105
>>410015

>В 6 раз поднял скорость!


Внатуре в 6 раз повышается
1487 410152
>>410105
И что это?
1488 410155
>>410152
Попробовал, как писал Анон выше, разницу в ногодрыге между HAL_GPIO_Toggle и прямой записью в регистр. Тоже частота увеличилась в 6 раз
NewFile2.png5 Кб, 320x234
1489 410158
>>410155
Прикинь я тоже так могу.

Кому ты пиздишь мальчик? Включил master clock output и радуется.
1490 410159
>>410155
Давай код до и после
1491 410163
>>410158

>master clock output и радуется


Дурашка, у меня просто 429zit с 90МГц на шине
1492 410165
>>410159

>Давай


Да так же как и у анона выше: HAL_Toggle до и GPIOE->BSRR после
1493 410167
>>410163
Давай фото 36 МГц с амплитудой сигнала.
429zit это STM32F429?
IMG20200409184811349.jpg1,3 Мб, 3277x1844
1494 410168
>>410167

>это STM32F429?


Да
1495 410170
>>410168
100% MCO
Маленькая амплитуда
1496 410171
>>410170
Ты заебал. МСО на пине РА8 если чо.
1497 410174
>>410171
А херли тогда у меня так мало?
1498 410175
>>410174

>так мало?


Max out speed - very hight поставил?
1499 410176
>>410175
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
?
1500 410178
>>410176

GPIO_InitStruct.Pin = GPIO_PIN_12;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
1501 410179
>>410178
Попробуй VERY_HIGH
image.png64 Кб, 1521x475
1502 410180
1503 410181
>>410179
Ну, тады не знаю чего у тебя так медленно.
1504 410232
>>410181
Покурил даташиты. У 103 серии
I/Os on APB2 with up to 18 MHz toggling speed.
У 429
Fast I/O handling allowing maximum I/O toggling up to 90 MHz
То есть теоретически и у тебя и у меня есть еще куда расти
1505 410645
>>409808
Двачую, нужна была небольшая плата для прототипа на stm32f4, за три дня нарисовал, развел, вытравил и припаял.
>>409824
Именно в таких случаях отладки сильно выручают.
Если разработка не для курсача, потом несколько месяцев делать свою плату со всем этим добром.
Речь о том, что Дискавери в шапке очень проста, и во многих случаях проще и дешевле сразу сделать плату для прототипа с нужной обвязкой, чем специально покупать оверпрайснутые платы расширения или делать колхоз на макетке. Конечно, есть и исключения, когда обвязки мало/нет, совсем нет времени и есть всё готовое, или для обучения.
>>409809
Nios
>>410232
Возьмите лучше таймер
1506 412963
Всем ку. Есть одна bluepill. Я пытаюсь подключить к ней по I2c плату с mpu6050. Пытаюсь сделать через прерывания, но получается какая-то залупа. Вот код обработчика прерывания Эвента:

void I2C2_EV_IRQHandler(void)
{
/ USER CODE BEGIN I2C2_EV_IRQn 0 /
uint32_t sr1=I2C2->SR1;
uint32_t sr2=I2C2->SR2;
if (sr1 & I2C_SR1_SB)
{
I2C2->DR = ((0x68<<1)|rw);
}
if (sr1 & I2C_SR1_ADDR)
{
if (!rw)
{
I2C2->DR = i2cTx;
}
}
if (sr1 & I2C_SR1_TXE & (!rw))
{
I2C2->CR1 |= I2C_CR1_START;
rw=1;
}
if (sr1 & I2C_SR1_RXNE & rw)
{
rw=0;
buff[0]=I2C2->DR;
I2C2->CR1 |= I2C_CR1_STOP;
uartTransmit(buff, 1);
}
}

Смысол в том, что мне надо передать последовательность, описанную вторым скриншотом.

На пикреле отладка осциллографом. Вопросы такие:

1) Почему первый ACK такой всратый? Я имею в виду непонятную иголку, которой теоретически быть не должно.
2) Что за затык в 1 пустой такт после первого ACK?
3) Почему после второго ACK контроллер затыкается, тактирование останавливается и он тупо прижимает SCL к нулю пока я не ребутну контроллер? (Прижимает именно stm32, а не mpu6050).
1506 412963
Всем ку. Есть одна bluepill. Я пытаюсь подключить к ней по I2c плату с mpu6050. Пытаюсь сделать через прерывания, но получается какая-то залупа. Вот код обработчика прерывания Эвента:

void I2C2_EV_IRQHandler(void)
{
/ USER CODE BEGIN I2C2_EV_IRQn 0 /
uint32_t sr1=I2C2->SR1;
uint32_t sr2=I2C2->SR2;
if (sr1 & I2C_SR1_SB)
{
I2C2->DR = ((0x68<<1)|rw);
}
if (sr1 & I2C_SR1_ADDR)
{
if (!rw)
{
I2C2->DR = i2cTx;
}
}
if (sr1 & I2C_SR1_TXE & (!rw))
{
I2C2->CR1 |= I2C_CR1_START;
rw=1;
}
if (sr1 & I2C_SR1_RXNE & rw)
{
rw=0;
buff[0]=I2C2->DR;
I2C2->CR1 |= I2C_CR1_STOP;
uartTransmit(buff, 1);
}
}

Смысол в том, что мне надо передать последовательность, описанную вторым скриншотом.

На пикреле отладка осциллографом. Вопросы такие:

1) Почему первый ACK такой всратый? Я имею в виду непонятную иголку, которой теоретически быть не должно.
2) Что за затык в 1 пустой такт после первого ACK?
3) Почему после второго ACK контроллер затыкается, тактирование останавливается и он тупо прижимает SCL к нулю пока я не ребутну контроллер? (Прижимает именно stm32, а не mpu6050).
1507 412966
>>412963
Есть подозрение, что МК ожидает байт для передачи и поэтому останавливает тактирование, пока я не дам ему байт. Но я не хочу давать байт, как ему объяснить что все, не надо больше передавать?
1508 412971
>>412966
>>412963
Б Л Я Д Ь !
Как же всё просто то оказывается. Всё, теперь я разобрался сам.
1509 412983
>>412971

>Всё, теперь я разобрался сам.


Так расскажи другим.
1510 412984
>>412971
Не совсем понятно про rw - это глобальная переменная? Инициализируешь явно или надежда на cumпилятор и еге инициализацию переменной 0?

sr1 & I2C_SR1_TXE & (!rw) - мутно.
То что пишешь - верно, но это для случая когда с буферизацией пишешь. Тебе же надо выслать один байт и ловить его окончание передачи через флаг BTF! После установки флага BTF (когда байт уже реально передался) тогда давай команду на повторный старт.

Читаешь 1 байт? Тебе картинка 277 на странице 764:
EV6_3: ADDR = 1, program ACK = 0, clear ADDR by reading SR1 register followed by reading SR2 register, program
STOP =1 just after ADDR is cleared

sr1 & I2C_SR1_ADDR - этот участок надо переписать. Тебе при чтении надо сразу подготовиться к тому что ты НЕ будешь подтверждать прочитанный байт(EV6_3) со слейва, говоря что больше не будешь читать.

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

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


Тебе не похуй? Данные читаются по восходящему фронту, то что между фронтами - поебать. Сам включи логику - мастер высрал 8 бит адреса и освобождает шину, от чего SDA уходит в 1 и дальше уже слейв если уснал себя - прижмет к 0, если нет - то на свободной шине так и останется 1. Никакой магии и глюков тут нет, разве что слейс не особо быстрый. Не совсем. Можно напороться на состояния СТАРТ и СТОП

>Что за затык в 1 пустой такт после первого ACK?


Затыка нет, неправильно фронты считаешь.

>тактирование останавливается и он тупо прижимает SCL к нулю


Он сделал что надо и ждет от тебя данных, но у тебя флаг BTF не проверяется и в теории "виснет" на строке (sr1 & I2C_SR1_TXE & (!rw)) которая уже никогда не выполнится и у тебя бесконечный заход в прерывание, так как контроллер не в состоянии выдать сигнал (повторный)старт во время передачи байта.
1512 412998
>>412983
Весь прикол в том, что старт или стоп команду нужно передавать ДО того, как передался или принялся последний байт, а не после. Тогда все корректно выполнится.
1513 412999
>>412985

>Затыка нет, неправильно фронты считаешь.


Есть, приглядись внимательно. Там SDA = 0 на возрастающем фронте SCL, хотя должно быть 1. Впрочем похуй, на работу оно не влияет.
1514 413103
объясните, что за чудище этот ваш errata и где его искать? везде пишут "читай errata, читай errata", а где его найти хуй кто напишет
1516 413538
Короче ебал я, так и не смог по-нормальному запустить аппаратный i2c, забил хуй на это говно и за пол дня написал функции чтения и записи на ногодрыге. Вроде работает без проблем, хоть и всрато по сути своей и тайминги не точные.
1517 413581
>>413538
Еррату выше читал? Меня больше всего заебывал BUSY на пустом месте. Остальные баги описаны и обходные решения.
1518 413588
>>413581
Читал, но не очень понял.
У меня флаг txe выскакивает без причин
1519 413594
>>413588
Напиши говнокод - может кто-то проверит или я на днях на bluepill прогоню например на термодатчике LM75.
TxE: Data register empty (transmitters)
- Set when DR is empty in transmission. TxE is not set during address phase
- Cleared by software writing to the DR register or by hardware after a start or a stop condition or when PE=0.
Пишут что очищается стартом или стопом, во время отсылки адреса неактивен (0). Как вариант все что связано с TXE - делай после проверки бита MSL в I2C_SR2 - когда мастер, тогда и спамишь
1520 413597
>>413594
Да в пизду. Мне уже не охота в этих дебрях копаться. Пусть работает программно.
1521 413599
>>413594
Кстати, написано После старт или стоп кондишна. А он занимает некоторое время. Вот за это время флаг может выскочить сотню раз
1522 413601
>>413599
Напиши "логгер" - не пожлобись например на килобайт ОЗУ куда будешь писать SR1+SR2 на каждом входе в прерывание и поставь брякпоит например на 450 записей или сколько хочешь и смотри как флаги седут себя. Отладка - это же творческий процесс. Когда-то так дебажил и глюков с TXE на 32F103ZC не наблюдал. Только BUSY на каждом шагу.
15881223448720.png55 Кб, 3444x1125
1523 413994
>>413987 →
Сейчас у меня нет компа, поэтому только словами могу описать
Для начала возьмём пример с одним таймером, у которого есть 4 канала. То есть будет 4 выхода. Пусть это будет general purpose таймер. Ну общие регистры, типа делителя счетчика, периода таймера, one pulse mode настраиваешь как обычно.

Теперь настраиваем каналы. В TIMx_DIER включаешь все биты CCxDE, чтобы разрешить запросы к дма контроллеру от СС-каналов. В TIMx_EGR врубаешь биты CCxG, чтобы включить эвенты о каналов (чтобы они генерировали запросы дма). Затем в регистрах CCMRx нас интересуют поля OCxM, нам нужен режим, когда выход при наступлении события переключается, записываешь туда 011: Toggle - OC1REF toggles when TIMx_CNT=TIMx_CCR1. Дальше в CCER включаешь все выходы каналов установкой бита CCxE.

Теперь DMA. Я просто скопипащу
In this example the timer DMA burst feature is used to update the contents of the CCRx registers (x = 1, 2, 3, 4) with the DMA transferring half words into the CCRx registers. This is done in the following steps:
1. Configure the corresponding DMA channel as follows: –DMA channel peripheral address is the DMAR register address –DMA channel memory address is the address of the buffer in the RAM containing the data to be transferred by DMA into CCRx registers. –Number of data to transfer = 4 (See note below). –Circular mode disabled.
2. Configure the DCR register by configuring the DBA and DBL bit fields as follows: DBL = 4 transfers, DBA = 0xD.

Теперь время импульсов. В каждый CCRx записываешь время фронта имульса соответствующего канала. В тиках таймера, разумеется. Далее настраиваешь буфер DMA. Тут вот какое дело: на каждый передний/задний фронт импульса из любого канала формируется DMA запрос, который прогружает все четыре CCRx регистра. Мы так настроили, потому что каналов таймера у нас 4, а канал дма всего 1. Поэтому настраивай времена соответственно так, чтобы во все каналы попадало правильное значение. Например, первые четыре значения буфера ДМА
tf1 tr2 tr3 tr4, вторые: 0 tr2 tr3 tr4, третья четверка: 0 tf2 tr3 tr4, четвертая: 0 0 tr3 tr4, и так далее, где tr, tf - время переднего и заднего фронта соответственно.

Теперь включаешь таймер. Поначалу все выходы у него по нулям, до тех пор, пока счётчик не добежит до значения в регистре CCR 1 канала, который мы загрузили заранее. Когда CNT == CCR, наступает событие первого канала. Он переключает свой выход из 0 в 1 ( мы настроили toggle) и генерирует запрос к дма. Дма прогружает все четыре регистра, но у первого таймера теперь загружено время заднего фронта импульса. Далее точно так же, счётчик досчитывает до значения CCR1, первый канал делает toggle своего выхода обратно из 1 в 0, запрашивает дма. Но теперь в его регистр загружается значение 0, а значит, CNT таймера уже никогда с ним не сравняется и первый канал больше не сработает, если стоит one pulse mode. Дальше всё повторяется, только для следующих каналов.
Как-то так
15881223448720.png55 Кб, 3444x1125
1523 413994
>>413987 →
Сейчас у меня нет компа, поэтому только словами могу описать
Для начала возьмём пример с одним таймером, у которого есть 4 канала. То есть будет 4 выхода. Пусть это будет general purpose таймер. Ну общие регистры, типа делителя счетчика, периода таймера, one pulse mode настраиваешь как обычно.

Теперь настраиваем каналы. В TIMx_DIER включаешь все биты CCxDE, чтобы разрешить запросы к дма контроллеру от СС-каналов. В TIMx_EGR врубаешь биты CCxG, чтобы включить эвенты о каналов (чтобы они генерировали запросы дма). Затем в регистрах CCMRx нас интересуют поля OCxM, нам нужен режим, когда выход при наступлении события переключается, записываешь туда 011: Toggle - OC1REF toggles when TIMx_CNT=TIMx_CCR1. Дальше в CCER включаешь все выходы каналов установкой бита CCxE.

Теперь DMA. Я просто скопипащу
In this example the timer DMA burst feature is used to update the contents of the CCRx registers (x = 1, 2, 3, 4) with the DMA transferring half words into the CCRx registers. This is done in the following steps:
1. Configure the corresponding DMA channel as follows: –DMA channel peripheral address is the DMAR register address –DMA channel memory address is the address of the buffer in the RAM containing the data to be transferred by DMA into CCRx registers. –Number of data to transfer = 4 (See note below). –Circular mode disabled.
2. Configure the DCR register by configuring the DBA and DBL bit fields as follows: DBL = 4 transfers, DBA = 0xD.

Теперь время импульсов. В каждый CCRx записываешь время фронта имульса соответствующего канала. В тиках таймера, разумеется. Далее настраиваешь буфер DMA. Тут вот какое дело: на каждый передний/задний фронт импульса из любого канала формируется DMA запрос, который прогружает все четыре CCRx регистра. Мы так настроили, потому что каналов таймера у нас 4, а канал дма всего 1. Поэтому настраивай времена соответственно так, чтобы во все каналы попадало правильное значение. Например, первые четыре значения буфера ДМА
tf1 tr2 tr3 tr4, вторые: 0 tr2 tr3 tr4, третья четверка: 0 tf2 tr3 tr4, четвертая: 0 0 tr3 tr4, и так далее, где tr, tf - время переднего и заднего фронта соответственно.

Теперь включаешь таймер. Поначалу все выходы у него по нулям, до тех пор, пока счётчик не добежит до значения в регистре CCR 1 канала, который мы загрузили заранее. Когда CNT == CCR, наступает событие первого канала. Он переключает свой выход из 0 в 1 ( мы настроили toggle) и генерирует запрос к дма. Дма прогружает все четыре регистра, но у первого таймера теперь загружено время заднего фронта импульса. Далее точно так же, счётчик досчитывает до значения CCR1, первый канал делает toggle своего выхода обратно из 1 в 0, запрашивает дма. Но теперь в его регистр загружается значение 0, а значит, CNT таймера уже никогда с ним не сравняется и первый канал больше не сработает, если стоит one pulse mode. Дальше всё повторяется, только для следующих каналов.
Как-то так
1524 413998
>>413994
Это можно реализовать на самых младших stm32, типа блупила?
1525 413999
>>413998
Я не он, но -да, можно.
1526 414003
>>413998
Ага, там только частота поменьше, чем в старших камнях, соответственно и разрешение таймера
1527 414302
>>409820

>Если ты готов лутить/ждать от китайцы месяцами плату после каждого косяка, а они у тебя будут с вероятностью 101%, то флаг тебе в руки.


Лол, всё необходимое для пленочного фоторезиста можно найти за копейки.
1528 414309
>>414302
А чем фоторезист на коленке лучше того же лута?
1529 414314
>>375183

>Установочная цель устроится байтоёбом за жрат. Что бы хоть как то вкотиться в ойти ололо.


Не советую, микроконтроллеры, плис, электроника и прочее говно очень плохая идея, работы почти нет, платят копейки. Как хобби это интересно, но как способ заработка и социальный лифт - нет (хватит только на хуйцы с гречкой).
Лучше сразу вкатывайся в айти, работы полно, платят много, а также есть возможность последующей удалёнки, фриланса или трактора, на выбор.
1530 414316
>>414309
обычно позволяет делать более тонкие дорожки (0.2 вместо 0.4), но это все дико зависит от принтера и кривизны рук
1588451150367.jpg40 Кб, 1080x313
1531 414318
>>414314
Лол. Это под какие-такие МК на 1C пишут?
камни.JPG87 Кб, 850x496
1532 414332
>>414318

>Это под какие-такие МК

1533 414333
>>414316

> вместо 0.4


Я и ЛУТом нихуёво 0.2 делаю. Если прямо вдумчиво и небольшая плата, то и 0.15 получаются
1534 414394
>>414318
Технически, С это 1 С. А С++ это минимум 2 С
1535 414398
>>414394
А с# это 4С
1536 414458
>>414394
Технически, С98, С99, С++11, С++14, С++17
1537 414461
>>414458


>С++


Смешались в кучу, кони, люди...
1538 414486
>>414461
Главное progmem не взбалтывать. А не то kernel panic.
1540 416153
>>398492
О, Наташенька
1541 416193
SUP котики. Сейчас будет история одного долбоеба и реквест помощи.
Сразу скажу. К программированию, IT, электронике и прочему я не имею никакого отношения. Начинал возится с ардуинкой в качестве хобби. И ни на что большее не претендую. Сам максимально гуманитарий, гордый оператор офисного стула и дипломированный перекладыватель бумажек.
Так вот. Пару лет назад от скуки и безысходности купил себе стартовый набор ардуинки с кучей датчиков и стал в нее тыкать. И постепенно втянулся. Начал делать разную хуйню из головы для удовлетворения своих больных фантазий. В какой то момент меня перестало устраивать распаивание поеботы на всяких нано и я решил сделать свою плату с блекджеком и шлюхами. Нагуглил EasyEDA и нарисовал нужную мне поеботу. И когда получил ее она даже заработала хотя наебался я знатно. Постепенно амбиции привели меня к STM32. Взял разных Дискавери плат и начал говнокодить на MBED поверх PlatfomIO. То что я пишу я не покажу никому потому что даже я сам понимаю насколько это убого. Плюс по прежнему рисую свои платы и заказываю у китайцев. Вроде все норм. На уровне самоделок долбоеба даже успешно. Оно по крайней мере почти всегда работает. Такая вот история.
А теперь реквест помощи. Я устал от ощущения что делаю говно. Как исправится? Задачи у меня простейшие и не требуют высокой надежности оборудования или безотказности когда. Но все таки хочется что бы за них не было стыдно хотя бы самому. По этому.
Первое. Как научится нормально разводить платы? Ролики на ютубе меня чему то научили, но эти обрывочные знания крайне убоги. Я знаю что этому учат. Может есть какой то учебник или курс для даунов лол. За два года я самостоятельно кое как научился понимать схемы и через абзац даташиты к электронным компонентам. Но в большинстве случаев это какой то непонятный для меня пиздец. То же касается разводки плат. То что я сейчас делаю наверняка работает лишь чудом. Потому что очень слабо понимаю что я вообще делаю. Опять же. Подскажите среду в которой стоит работать. Мне не нравится то что тот же EasyEDA привязан к конкретному производителю плат. Может есть что то настолько же доступное и простое но более универсальное.
Второе. Хочу уйти от MBED во что то более вменяемое. Пока что склоняюсь к CUBEIDE потому что она вроде как от самой STM и использовать соответственно HAL. Но опять же. Ту инфу что я могу нагуглить я практически не способен понять. Если проект под MBED у меня в базовой форме соедржит две строчки с main и while то куб генерит ебаное огромное (для меня) полотно не читаемого (опять же для меня) кода в котором я не способен разобраться. Лучшее мое достижение это меганием диода на плате нуклео по гайду от digikey. Может есть какое то постепенное вхождение в программирование под HAL для полных даунов?
И для понимания круга моих задач. Лучшее мое творение это автоматический бар лол. Я с ним ебусь уже около года постоянно совершенствуя. В текущей форме он может выбрать из трех напитков и нахуярить заданный обьем в стакан. В первоначальной форме напитки нужно было выбирать нажиманием одной из трех кнопок. Сейчас вкорячиваю вместо этого 2.8 дисплей с тачем. Когда закончу с этим хочу подключить все к интернету и написать простейшее приложение под смартфон что бы можно было делать это с него. Понятно что практического смысла в этом нет. Просто ебля ради ебли. Но анон, я хочу сделать это настолько хорошо, насколько это позволит мой гуманитарный мозг. Помоги советами мудрыми.
1541 416193
SUP котики. Сейчас будет история одного долбоеба и реквест помощи.
Сразу скажу. К программированию, IT, электронике и прочему я не имею никакого отношения. Начинал возится с ардуинкой в качестве хобби. И ни на что большее не претендую. Сам максимально гуманитарий, гордый оператор офисного стула и дипломированный перекладыватель бумажек.
Так вот. Пару лет назад от скуки и безысходности купил себе стартовый набор ардуинки с кучей датчиков и стал в нее тыкать. И постепенно втянулся. Начал делать разную хуйню из головы для удовлетворения своих больных фантазий. В какой то момент меня перестало устраивать распаивание поеботы на всяких нано и я решил сделать свою плату с блекджеком и шлюхами. Нагуглил EasyEDA и нарисовал нужную мне поеботу. И когда получил ее она даже заработала хотя наебался я знатно. Постепенно амбиции привели меня к STM32. Взял разных Дискавери плат и начал говнокодить на MBED поверх PlatfomIO. То что я пишу я не покажу никому потому что даже я сам понимаю насколько это убого. Плюс по прежнему рисую свои платы и заказываю у китайцев. Вроде все норм. На уровне самоделок долбоеба даже успешно. Оно по крайней мере почти всегда работает. Такая вот история.
А теперь реквест помощи. Я устал от ощущения что делаю говно. Как исправится? Задачи у меня простейшие и не требуют высокой надежности оборудования или безотказности когда. Но все таки хочется что бы за них не было стыдно хотя бы самому. По этому.
Первое. Как научится нормально разводить платы? Ролики на ютубе меня чему то научили, но эти обрывочные знания крайне убоги. Я знаю что этому учат. Может есть какой то учебник или курс для даунов лол. За два года я самостоятельно кое как научился понимать схемы и через абзац даташиты к электронным компонентам. Но в большинстве случаев это какой то непонятный для меня пиздец. То же касается разводки плат. То что я сейчас делаю наверняка работает лишь чудом. Потому что очень слабо понимаю что я вообще делаю. Опять же. Подскажите среду в которой стоит работать. Мне не нравится то что тот же EasyEDA привязан к конкретному производителю плат. Может есть что то настолько же доступное и простое но более универсальное.
Второе. Хочу уйти от MBED во что то более вменяемое. Пока что склоняюсь к CUBEIDE потому что она вроде как от самой STM и использовать соответственно HAL. Но опять же. Ту инфу что я могу нагуглить я практически не способен понять. Если проект под MBED у меня в базовой форме соедржит две строчки с main и while то куб генерит ебаное огромное (для меня) полотно не читаемого (опять же для меня) кода в котором я не способен разобраться. Лучшее мое достижение это меганием диода на плате нуклео по гайду от digikey. Может есть какое то постепенное вхождение в программирование под HAL для полных даунов?
И для понимания круга моих задач. Лучшее мое творение это автоматический бар лол. Я с ним ебусь уже около года постоянно совершенствуя. В текущей форме он может выбрать из трех напитков и нахуярить заданный обьем в стакан. В первоначальной форме напитки нужно было выбирать нажиманием одной из трех кнопок. Сейчас вкорячиваю вместо этого 2.8 дисплей с тачем. Когда закончу с этим хочу подключить все к интернету и написать простейшее приложение под смартфон что бы можно было делать это с него. Понятно что практического смысла в этом нет. Просто ебля ради ебли. Но анон, я хочу сделать это настолько хорошо, насколько это позволит мой гуманитарный мозг. Помоги советами мудрыми.
1542 416207
>>416193

>Как научится нормально разводить платы?


Почитай начальный и высшый курс черной магии.
Проектирование высокоскоростных цифровых устройств в авторстве Грэхэм Мартин, Джонсон Говард.
Сейчас оно подустарело, частоты выше, но физика процессов не поменялась. Читать очень осторожно, а то реально в шизоидный бред скатишься при разводке и будешь шарахаться от лишнего изгиба дорожки до светодиода.
1543 416249
>>416207
Спасибо пойду гуглить. А то я заебался делать хуйню. На моей первой плате вообще не было медного слоя и всю землю я разводил дорожками лол. Наверняка я до сих пор делаю невероятную дичь просто не зная об этом.
1544 416327
>>416207

>Проектирование высокоскоростных цифровых устройств в авторстве Грэхэм Мартин, Джонсон Говард.


>Лучшее мое творение это автоматический бар лол


Заебись совет, конечно. Бар, работающий на мегагерцовой частоте.
>>416193

>Хочу уйти от MBED во что то более вменяемое.


По-твоему HAL более вменяемый что ли? HAL - это очень плохо.
Если хочешь доклопаться до основ, начни с блокнотика, консоли и cmsis.
1545 416339
>>416327

>HAL - это очень плохо


Да у нас тут HALоненависник нарисовался. Прямо как СНиПодаун в домаче.
1546 416380
>>416339
Нарисовался тут только какой-то дебильчик, любящий навешивать ярлыки.
1547 416393
>>416380
Не, ты не останавливайся, советуй сразу ассемблер или чисто на оп-кодах ебашить. Надо сразу чувака отвадить от этого занятия.
1548 416401
>>416393
Отвадят скорее подобные тебе, у которых хал не кусок говна. Ведь человек чувствует, что это хуйня какая-то, а ему пишут мол, не заебись, это для начинающих, то ли низкий уровень, там все еще страшнее. Хотя на самом деле все наоборот. В хале наворотили дохуя сложности там, где ее изначально не было. То есть человек думает, что он тупой и чего-то не понимает, а это у стм хуевые программисты это не секрет. Что тут может отвадить, не понятно.
1549 416409
>>416193
1. Сначала надо на поверхностном уровне разобраться со схемотехникой,
http://easyelectronics.ru/category/nachinayushhim, самые азы http://easyelectronics.ru/osnovy-na-palcax-chast-1.html. Более полно -
Хоровиц Хилл Искусство схемотехники, Угрюмов цифровая схемотехника.
По разводке есть хорошие статьи на elart.narod.ru, например, перевод статьи из AD http://elart.narod.ru/articles/article11/article11.htm.
По САПРам загляни в софтотред, главное в спринте не рисуй.
2. >>416327 двачую, для чего-то простого и первоначальной генерации в кубе он годится, но там хуевая документация, кое-чего нет и он очень медленный.
1550 416424
>>416401

>Отвадят


Отвадили изначально меня "знатоки" типа тебя. Куда ни полезешь за примерами, - один на регистрах шпарит, второй на StdPeriph_Lib, третий со вставками ассма, четверты хуй пойми чем занимается и тупо переименовывает названия переменных HALа под свои инициалы и выдает халовские либы за свои. Когда СТ таки допилило HAL до нормального уровня и вычистила эти несовместимые хуйни, я наконец снова занялся самообучением этим контроллерам и, о чудо, всё, блядь стало получаться. И уже тогда я полез в дебри смотреть как в HAL всё устроенно.
Так что идите нахуй, подобные советчики. Может вы и начинали программировать расписывая в тетрадке программки для калькулятора Б3-34 и потом за него и выполняя их, но нонче начинать со столь низкого уровня, смерти подобно
1551 416516
>>416393
Как раз таки те, кто начинал с низов(с логических элементов, триггеров и ассемблера), чаще всего и остаются в этом занятии серьезно.
А ардуинщик навсегда останется ардуинщиком, никогда не начинайте с ардуино(Кубик и HAL это аналог ардуино для стм32 по сути).
1552 416517
>>416424

>третий со вставками ассма


Профессионалы всегда используют вставки ассма в местах, где нужно максимальное быстродействие.
Ассм и архитектуру проца и команд знают не все, поэтому топовые конторые всегда держут у себя специалиста по ассемблерным вставкам.
1553 416524
>>416424

> Когда СТ таки допилило HAL до нормального уровня и вычистила эти несовместимые хуйни, я наконец снова занялся самообучением этим контроллерам и, о чудо, всё, блядь стало получаться.


То есть дело не в том, что ты потратил больше времени и у тебя в какой-то момент стало получаться, а в чем-то другом. Ну-ну. Если бы ты сразу начал с cmsis и даташита, у тебя бы начало получаться еще быстрее.
Дело не в том, что HAL это не высокоуровневый код. Mbed - высокоуровневый и они сделали хорошо, потому что в ARM программисты намного лучше, чем в ST. А HAL - это низкоуровневая библиотека с очень странными на момент 2020 года подходами к программированию. Свою задачу (абстрагирование от конкретного МК) она худо-бедно выполняет и пользоваться ей можно. Но не более.
А для общего развития намного полезнее почитать хедеры CMSIS для своего МК. Там в одном файле будет все просто и понятно, а если что-то не понятно, то йоба-макросы HAL будут еще менее понятными.
1554 416654
>>416517

> топовые конторые всегда держут у себя специалиста по ассемблерным вставкам.


Что ещё спизданешь охуительного?
Топовые конторы стараются как раз уйти от ассемблерных вставок везде, где только возможно, чтобы получить легко поддерживаемый, переносимый и читаемый код. Тебя скорее отпиздит менеджер, если увидит, что ты решил писать на асме там, где можно написать на Си. Оптимизировать на уровне инструкций должен компилятор, который к тому же имеет разные флаги оптимизации, а не программист. Я бы посмотрел на тебя, если бы твои ассемблерные вставки нужно было бы пернести с одного ядра на другое, ещё и оптимизировать по размеру кода, а не по скорости, лол. Для топовой конторы это гарантированный влёт на бабки, поэтому она скорее выпиздит такого "специалиста" по ассемблерным вставкам, чем будет продолжать с ним иметь дело.
1555 416736
>>416524

>странными на момент 2020 года подходами к программированию


Какими, например? Какие вместо них следовало бы использовать, по твоему мнению?
1556 416749
>>339843
>>340287
Ну это ещё не самый плохой результат, кстати. Я купил нуклео, китайские платки с f104, несколько stm8, два программатора st-link, программатор pickit3, кучу пиков, и ещё кучу всего, что забыл перечислить, в суме больше десятки потратил и они уже больше года лежат на полке. Я не то что диодом не поморгал, а даже иде не устанавливал, потому что нет времени и занят всякой парашей(в т.ч. и работой, но с другими камнями), а игрушки лежат до лучших времен, когда будет время ими заниматься...
1557 416845
>>416736
Макросы вместо функций, как будто на дворе 1989 и компиляторы не умеют инлайнить, неумение в битовые поля (они не так популярны, как прямая ебля с >> и << потому что это platform specific, но что может быть более специфично для платформы, чем код для STM? Типа когда-нибудь они перейдут на процессор с другим порядком байт?), соответственно вместо непосредственных присваиваний вида register.channel=5 будет что-то типа register = (5 >> 10) & 0xFFFF, сама по себе структура кодогенерации в виде комментариев типа INSERT YOUR CODE HERE, при этом если ты проебешь такой комментарий, все сломается.

То есть вместо поебени

int main(void)
{
/ USER CODE BEGIN 1 /

/ USER CODE END 1 /

/ MCU Configuration--------------------------------------------------------/

/ Reset of all peripherals, Initializes the Flash interface and the Systick. /
HAL_Init();

/ USER CODE BEGIN Init /

/ USER CODE END Init /

должно быть

//generated file, don't touch
#include "user_code.c"

int main(void) {
before_configuration();
HAL_Init();
after_configuration();
}

а в user_code.c содержимое типа:

void before_configuration() {
}

void after_configuration() {
}

Система типов должна защищать от выстрелов в ногу даже в том формате, который предлагает язык си.
Почему GPIO speed это uint32_t? При этом в комментах пишут "This parameter can be a value of @ref GPIO_speed_define". Алло, ребят, для этих целей придуман enum.
Почему у GPIO аут, ин, альтернейт и аналог пины - это один и тот же тип данных? С грозной угрозой пальчиком типа "если у вас аут - вот это ставьте вот так, а если ин - вот так, смотрите не перепутайте". Килобайты в хедере пожалели? Да нет, просто в этой высокоуровневой библиотеке нихуя не высокоуровневое укуренное отображение регистров.
Пин - это пин, если пин это какой-нибудь USART, он не может уже работать как ADC. В кубе это отлично видно - на высоком уровне у тебя есть пин, у него есть состояние, которое взаимно исключает другие состояния. Ты не можешь установить одновременно. А в HAL'е - можешь. Потому что MX_USART2_UART_Init это одно, а MX_GPIO_Init это совсем другое. Хотя логически и то и то работает с пинами. То есть никаким высоким уровнем тут не пахнет. Все та же ебля с даташитом, чтобы ни в коем случае не установить регистры (которых якобы нет) в противоречивое состояние.
1557 416845
>>416736
Макросы вместо функций, как будто на дворе 1989 и компиляторы не умеют инлайнить, неумение в битовые поля (они не так популярны, как прямая ебля с >> и << потому что это platform specific, но что может быть более специфично для платформы, чем код для STM? Типа когда-нибудь они перейдут на процессор с другим порядком байт?), соответственно вместо непосредственных присваиваний вида register.channel=5 будет что-то типа register = (5 >> 10) & 0xFFFF, сама по себе структура кодогенерации в виде комментариев типа INSERT YOUR CODE HERE, при этом если ты проебешь такой комментарий, все сломается.

То есть вместо поебени

int main(void)
{
/ USER CODE BEGIN 1 /

/ USER CODE END 1 /

/ MCU Configuration--------------------------------------------------------/

/ Reset of all peripherals, Initializes the Flash interface and the Systick. /
HAL_Init();

/ USER CODE BEGIN Init /

/ USER CODE END Init /

должно быть

//generated file, don't touch
#include "user_code.c"

int main(void) {
before_configuration();
HAL_Init();
after_configuration();
}

а в user_code.c содержимое типа:

void before_configuration() {
}

void after_configuration() {
}

Система типов должна защищать от выстрелов в ногу даже в том формате, который предлагает язык си.
Почему GPIO speed это uint32_t? При этом в комментах пишут "This parameter can be a value of @ref GPIO_speed_define". Алло, ребят, для этих целей придуман enum.
Почему у GPIO аут, ин, альтернейт и аналог пины - это один и тот же тип данных? С грозной угрозой пальчиком типа "если у вас аут - вот это ставьте вот так, а если ин - вот так, смотрите не перепутайте". Килобайты в хедере пожалели? Да нет, просто в этой высокоуровневой библиотеке нихуя не высокоуровневое укуренное отображение регистров.
Пин - это пин, если пин это какой-нибудь USART, он не может уже работать как ADC. В кубе это отлично видно - на высоком уровне у тебя есть пин, у него есть состояние, которое взаимно исключает другие состояния. Ты не можешь установить одновременно. А в HAL'е - можешь. Потому что MX_USART2_UART_Init это одно, а MX_GPIO_Init это совсем другое. Хотя логически и то и то работает с пинами. То есть никаким высоким уровнем тут не пахнет. Все та же ебля с даташитом, чтобы ни в коем случае не установить регистры (которых якобы нет) в противоречивое состояние.
1558 416867
>>416845

>если ты проебешь такой комментарий, все сломается


ШТА?
1559 416869
>>416867
Это он про генератор кубовский. Там при перегенерации такое было, когда я в крайний раз на него смотрел.
1560 416870
>>416869
И что? При удалении этого комментария все крашилось?
1561 416872
>>416870
Куб всего лишь не мог определить где пользовательский код, а где генерированный и соответствено не мог корректно перегенерировать файл. Очевидно же. При чем тут HAL - без понятия, по моему не при чем, если ты об этом.
2.jpg86 Кб, 470x400
1562 416913
>>416654

>Что ещё спизданешь охуительного?


Много чего.

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


Читаемый код на ассемблере ничем не отличается от читаемого кода на Си, достаточно соблюдать "code style": комментить, нормально называть переменные, делать отступы, не говнокодить.
>Тебя скорее отпиздит менеджер, если увидит, что ты решил писать на асме там, где можно написать на Си.
Каждое применение ассемблера должно быть обосновано и задокументировано. В ряде случаев, когда нужно обеспечить максимальное быстродействие в критически важных участках программы и даже с десяток лишних клоков контроллера могут запороть работу, ассемблер необходим.
>Оптимизировать на уровне инструкций должен компилятор, который к тому же имеет разные флаги оптимизации, а не программист.
Даже лучший в плане оптимизации компилятор IAR за тысячи бабок будет оптимизировать на порядок хуже, чем человек.
>Я бы посмотрел на тебя, если бы твои ассемблерные вставки нужно было бы пернести с одного ядра на другое,
При переносе кода с одного ядра на другое всё равно придётся дорабатывать напильником, хоть со вставками, хоть без: как минимум архитектура и набор команд разные, работа с периферией тоже. Да и ни кто не говорит, чтобы в 2к2к писать на асме всю программу, речь идёт о вставках, коих может быть чуть менее одного процента от всей проги.

> ещё и оптимизировать по размеру кода, а не по скорости, лол.


Ассемблер и по размеру кода и по скорости лучший, если уж на то пошло.

>Для топовой конторы это гарантированный влёт на бабки,


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

>поэтому она скорее выпиздит такого "специалиста" по ассемблерным вставкам, чем будет продолжать с ним иметь дело.


Как раз таки наоборот. Михалычи, у которых десятелетний опыт работы на асме напрямую с регистрами контроллера и знающие все даташиты наизусть на вес золота и им платят нормально, а современным зумеркам, которые заливают на гитхаб крафтовые проекты на ардуино и кубике, которые они делали по урокам с ютуба, проводят шершавым на собеседовании и берут разве что за еду(при условии, что они тоже будут писать напрямую через регистры и со временем смогут в асм).
Буквально это рассказал один анон, мол пришел на собес, и когда узнали, что он пишет через кубик и HAL буквально обоссали и обосрали всей фирмой так, что он там больше не появлялся. Да и достаточно почитать вакансии на хх, во всех вакансиях с зарплатой от 30к знание ассемблера и архитектуры будет обязательным.
2.jpg86 Кб, 470x400
1562 416913
>>416654

>Что ещё спизданешь охуительного?


Много чего.

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


Читаемый код на ассемблере ничем не отличается от читаемого кода на Си, достаточно соблюдать "code style": комментить, нормально называть переменные, делать отступы, не говнокодить.
>Тебя скорее отпиздит менеджер, если увидит, что ты решил писать на асме там, где можно написать на Си.
Каждое применение ассемблера должно быть обосновано и задокументировано. В ряде случаев, когда нужно обеспечить максимальное быстродействие в критически важных участках программы и даже с десяток лишних клоков контроллера могут запороть работу, ассемблер необходим.
>Оптимизировать на уровне инструкций должен компилятор, который к тому же имеет разные флаги оптимизации, а не программист.
Даже лучший в плане оптимизации компилятор IAR за тысячи бабок будет оптимизировать на порядок хуже, чем человек.
>Я бы посмотрел на тебя, если бы твои ассемблерные вставки нужно было бы пернести с одного ядра на другое,
При переносе кода с одного ядра на другое всё равно придётся дорабатывать напильником, хоть со вставками, хоть без: как минимум архитектура и набор команд разные, работа с периферией тоже. Да и ни кто не говорит, чтобы в 2к2к писать на асме всю программу, речь идёт о вставках, коих может быть чуть менее одного процента от всей проги.

> ещё и оптимизировать по размеру кода, а не по скорости, лол.


Ассемблер и по размеру кода и по скорости лучший, если уж на то пошло.

>Для топовой конторы это гарантированный влёт на бабки,


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

>поэтому она скорее выпиздит такого "специалиста" по ассемблерным вставкам, чем будет продолжать с ним иметь дело.


Как раз таки наоборот. Михалычи, у которых десятелетний опыт работы на асме напрямую с регистрами контроллера и знающие все даташиты наизусть на вес золота и им платят нормально, а современным зумеркам, которые заливают на гитхаб крафтовые проекты на ардуино и кубике, которые они делали по урокам с ютуба, проводят шершавым на собеседовании и берут разве что за еду(при условии, что они тоже будут писать напрямую через регистры и со временем смогут в асм).
Буквально это рассказал один анон, мол пришел на собес, и когда узнали, что он пишет через кубик и HAL буквально обоссали и обосрали всей фирмой так, что он там больше не появлялся. Да и достаточно почитать вакансии на хх, во всех вакансиях с зарплатой от 30к знание ассемблера и архитектуры будет обязательным.
1563 416926
>>416913

>Читаемый код на ассемблере ничем не отличается от читаемого кода на Си, достаточно соблюдать "code style": комментить, нормально называть переменные, делать отступы, не говнокодить.


Основное и практически единственное отличие асма от си, это способность непосредственной работы с регистрами. Которая, во-первых, убивает напрочь любую читаемость, поэтому фактически нужно дублировать каждую строчку комментарием с сиподобным кодом, а, во-вторых, у человека получается хуже, просто потому что RISC сделана для компиляторов, а не для людей. Распихивание переменных по регистрам - это задача типа шахмат, в 80-е, может, человек и был лучше, сейчас нет, компьютер тупо брутфорсом побеждает.
В сухом остатке остается только неумение писать эффективный С код. Профессионал сейчас отличается не тем, что на асме пишет, а тем, что, глядя на сишный код, знает, во что его превратит компилятор.

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


Ну так твоим михалычам важно, чтобы их не выпиздили, вот они и конкурируют, как могут, полоская уши своим работодателям по поводу их незаменимых скиллов. Такая хуйня во все времена была и будет. Или ты думаешь какие-нибудь кавалеристы времен революции не ныли по поводу танков? Нет, та же хуйня была. Люди с устаревшими знаниями не торопятся на кладбище, они сначала будут долго ныть по поводу важности своих знаний, а потом будут демпинговать так, чтобы им дали хоть какую-то работу. Нахуя покупать станок с ЧПУ, если михалыч за бутылку водки сделает все с нужным квалитетом? Вот и тормозит такой михалыч прогресс, обладая при этом невротъебенным ЧСВ. Работать идти к таким лучше не надо, а если нет выбора, то относиться к их ЧСВшным словам тоже стоит с долей иронии.
1564 416930
>>416926

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


Из твоих утверждений с этим наиболее сложно согласиться. Откуда компилятор узнает частоту использования переменных? Не, для такого в общем виде не существует решения вообще. Компилятор даже не учтет возможный диапазон входных данных, не то что статистические характеристики.
1565 416932
>>416930
На всякий случай добавлю, что я не тот анон, что писал тебе до этого, я просто мимо проходил. Ассемблер действительно нужен крайне редко. Но вот на DSP зачастую он незаменим, с этим глупо спорить.
1566 416945
>>416926

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


Так никто не говорит, что всю прогу нужно на асме писать, как в 80-е. Только в критически важных по быстродействию местах или там, где это необходимо, как здесь >>416932.

>Профессионал сейчас отличается не тем, что на асме пишет, а тем, что, глядя на сишный код, знает, во что его превратит компилятор.


Компилятор его превратит машинный код, листинг, то бишь тот же ассемблер. Много профессионал из него сможет понять, если не могёт в асм?

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


Хорошо значит они голову работодателям заполоскали, если в почти всех вакансиях на эмбеддеров знание асма обязательно.
1567 416955
>>409824

>За сколько наносекунд разведешь тян на сиськи и спаяешь на коленке платку расширения под PCI-e слот с парой трансиверов 40G Ethernet, легкая FPGA на полмиллиона LE, пару ЦАП-АЦП на пару гигасемплов, аналоговую часть под них, массив NAND и DDR3 памяти и незабыв про SSRAM мегабита на 72 и например рядом несколько работающих по себе i.mx8 у которых так же своя DDR3, NAND и NOR память? Ой, совсем забыл еще Ethernet свич дописать.


Ну за пару наносекунд не разведу, но за недельку-другую смогу развести, чай не rocket science.

>>По частям это есть, одним куском - нету.


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

>Дай угадаю - твой уровень - мигалка светодиодом или мигалка на мультивибраторе? Похвально. А теперь пиздуй обратно в свой загон-пердуино тред.


Нет, не угадал. Я уже проходил этот этап на РАБоте, был выбор, как отлаживать устройство - нагородить кучу макеток или собрать сразу одним блоком, поэтому и высказал свое мнение по этому поводу.
Кроме ad hominem есть ещё что-то сказать по делу?
Тормознутость Ардуино... Сравнение скорости (Arduino vs. AV[...].mp425,3 Мб, mp4,
1280x720, 6:50
1568 417072
>>416926

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


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


По-правде говоря, разные ардуино-подобные библиотеки вроде HAL, SPL мало того, что страдают от медленной работы из-за перегруженности условий и косяков, так ещё и написаны индусами через жопу.
Да, для домашних пет-проектов и "роботов" ты можешь делать так, как захочешь, писать хоть в кубике, хоть в ардуино иде, но если специалист будет делать так в интерпрайзе, то его выпнут пинком под сраку.
1569 417095
>>417072
Что-то странное пишешь. Для начала давно SPL выкинули, если речь про STM32, теперь вместо него LL, не сильно отличающийся от SPL.
Про HAL не буду спорить, не трогал. Но SPL, LL для STM и аналогичные для других микроконтроллеров не будут ничего замедлять, памяти конечно займут больше. Оно всего лишь для начальной настройки периферии. Там все отличие от прямой записи в регистры в том что вначале все пишется в структуру, а потом поля из структуры раскладываются по регистрам. То есть абстрагирования от регистров практически никакого нет.
1570 417112
>>416926
Ребят, вы вообще не то обсуждаете. Недавно Артамонов где-тов высирался про то, что у него работал чел, который для того чтобы подождать секунду, брал библиотеку мигания светодиодом и вызывал на пустом пине функцию мигания с длительностью 1. А вы обсуждете, как комментарии в ассемблерном коде писать. Это вообще не отражает текующую ситуацию в индустрии. Сейчас у нас интернет вещей во все поля, где надо на контроллере js запускать и пересылать все данные по незащищенному каналу. Байтоебство я вообще не знаю в каких сферах осталось до сих пор.
1571 417314
>>417072
>>417095

Вот вы серьезно сидите и думаете, что библиотеки под STM писали левые индусы, которых только с вордпресса сняли? Что они наговноделили не думая?
Что там сидят типы, которые дома светодиод подергали и на форуме посрались?

Конечно индусы пишущие код для СТМ - не инженеры гарварда с 15 летнем опытом. Но они прекрасно понимают что и зачем делают.

99% времени выполняется 1% кода (или как то так).

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

Большую часть логики и конечных автоматом можно сделать статичными (без перепроверки в цикле и обновления состояния). Урезав время затраченное на нее до совсем смешных значений.
1572 417315
>>417314
А с ними бесполезно общаться.

>Ааааааааааа, бля, HAL говноооооооо!!


>Индуса писала, не используйте в своих миргалках диолдов!!


>Только регистры спасут отца микроконтроллерного погроммирования!!


И так далее и в таком же духе. То что HAL на порядок упрощает вкатывание в контроллер в расчет не берут.
1573 417329
>>417314
Я наоборот написал что SPL, а скорее LL, не ограничивает быстродействие. Если до сих пор не понятно, то можно в качестве примера взять stm32f0xx_ll_usart. Так вот, после того как USART сконфигурирован, остается только брать и забирать данные через регистры DR (RDR, TDR), конечно если не задействован ПДП. А для этого там есть функции LL_USART_ReceiveData8 и LL_USART_TransmitData8, в которых нет абсолютно ничего кроме чтения/записи регистра. Хоть сразу в регистр пиши/читай, хоть через эти функции, на выходе будет одинаковый результат, конечно если инлайн не будет отключен флагами компилятора.

То что писали индусы - так почему по твоему они выкинули SPL и сделали на замену LL?

>>417315
HAL не избавит от чтения документации. А значит если на регистрах не можешь сделать из-за того что мануал прочитать лень, то и с помощью HAL вероятно сделаешь ерунду.
1574 417331
>>417329

> почему по твоему они выкинули SPL и сделали на замену LL


Поверь точно не из-за скорости. Скорее всего архитектурно коряво что то сделали, они всетаки первопроходцы в этой хуйне.

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

Вообще честно говоря хуй знает нахуя вообще эти либы на всякую простенькую периферию, т.к. быстрее и читабельнее ее обернуть в свою функцию.
Что лучше?
LL_GPIO_SetStateInvertedGpio(LL_GPIO_INVERTED_INVERT_PINS_NOT_INVERTED)
или
DeviceGPIO(OUTPUT_A, ENABLE);

LL_USART_TransmitData8(LL_USART_USARTNO_UARTA, data)
или
SerialSend(UART_1, data);
1575 417336
>>417331

>Поверь точно не из-за скорости.


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

>Я честно не тем, не тем не пользуюсь


А я STM32 не практически пользуюсь.

>Что лучше?


Без разницы, все равно оно будет вызываться в паре мест максимум.

>DeviceGPIO(OUTPUT_A, ENABLE);


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

>LL_USART_USARTNO_UARTA


С этим не угадал. Там передается просто USARTx.
1576 417339
>>417314

>Вот вы серьезно сидите и думаете, что библиотеки под STM писали левые индусы, которых только с вордпресса сняли? Что они наговноделили не думая?


Какие-нибудь сорокалетние себастьяновичи из Франции или Италии, которые 20 лет писали прошивки, а потом их бросили писать код чуть посложнее. Так как навыков управления сложностью нет, получилось вот это вот - и медленно, и запутанно, и один хер нужно читать даташит с регистрами.
1577 417343
>>417336

>было без инлайна


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

>либо там где-то внутри будет кучка условий.


Будет. Да и че? Зато охуительно удобно и наглядно.
В 99% мигания диодами, включения реле и даже сканирования клавиатур хватит с лихвой. И там не куча условий, а просто свичкейз, который твой локальный энумератор (OUTPUT_A\B\C\D) превращает уже в байтоебский RMW.
Сколько такую функцию писать? Минут 15 от силы.
По скорости? Ну накладные на вызов функции и смещение по свичкейзу смешные. Ну конечно будет в РАЗЫ медленее, но блин заинлайненый RMW это вообще самое быстрое что может быть, быстрее разме BitSet какой.
1578 417346
>>417343

>Я помоему в этом треде срался - современные компиляторы умеют в кроссобъектную компиляцию.


До некоторой степени умеют. Ты сам проверял как оно работает? Ты убедился, что твой любимый компилятор сам по себе такое оптимизирует? Наверняка нет. У тебя какие-то опасные иллюзии на счет того что делает компилятор.
А вот в LL, в отличие от SPL, решили сделать иначе, не рассчитывая на такое.

>Будет. Да и че? Зато охуительно удобно и наглядно.


Можно было еще наглядней сделать и без условий.
1579 417351
>>417346

>Ты сам проверял как оно работает? Ты убедился, что твой любимый компилятор сам по себе такое оптимизирует?


Да и да. Я единственное хз умеют ли это всякие ARMные компиляторы, но я не вижу причин почему.
1580 417352
>>417346

>Можно было еще наглядней сделать и без условий.


Как?
1581 417503
Спасибо всем за советы. Я >>416193 анон. Пока что взялся за схемотехнику. Сижу изучаю насоветованную литературу.
А вот с программированием я нихуя не понял. Браться что ли за CMSIS? Оно точно нужно для мигания светодиодами и управления парой релюшек? Я все таки не даньги зарабатывать этим хочу. И задача по сути в быстром и доступном написании не очень говнокода.
Если таки нужно начинать учить CMSIS то как это делать? Все что связано с регистрами для меня ебаная магия. Я даже не знаю с какой стороны к этому подойти. Есть по нему какие то гайды для даунов лол?
{7B5DFA46-A8C8-4CB2-B39F-01B56FF6E267}.png394 Кб, 794x1123
1582 417521
>>417503

>И задача по сути в быстром и доступном написании не очень говнокода.


"Мастеринг чего-то там с СТМ32", автор с каким-то смешным именем,типа Кармен Нуэлло. Только на нормальном русском языке нету
1583 417522
>>417521
Спасибо. Пошел гуглить. На русском конечно лучше, но и английский сойдет.
1584 417568
>>417351
Засомневался в этом и проверил. Действительно gcc такое делает при наличии флага -flto. Версия gcc 7.3.1 (arm-none-eabi). Все равно на такое рассчитывать глупо. Можно элементарно дописать к функции static inline и перенести ее в заголовочный файл и тогда точно все будет оптимизировано, вне зависимости от наличия флага -flto и компилятора. Мало ли что, может кто-то не будет использовать -flto для ускорения компиляции.
1585 417623
>>417568

>элементарно дописать к функции static inline


Ээээ браток, инлайн не пашет между объектными файлами, ты что охуел?
Как это по твоему должно работать?

>на такое рассчитывать глупо


Как насчет 10% при 70% (стало 60) в 128кб?
Могу пруфнуть, но лень.
1586 417626
>>417503
ИМХО не начинай изучать программирование МК с STM32, т.к. там очень много ARM-специфичной хуйни и вообще усложненной хуйни свойственной современным ядрам.

Начни с AVR с практической точки зрения, новичку похуй
1587 417628
>>417623
>>417568

>и перенести ее в заголовочный файл


Проебал, извиняй.

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

А если это асессор\мутатор? Прикинь сколько там пиздеца будет в заголовке? А если он требует доступа к локальным данным модуля?
1588 417633
>>417626

>Начни с AVR


Почему не с 8051 или PIC?
1589 417635
>>417112
Интернет любительских поделий ты хотел сказать? Понадеюсь что опечатка.
Я рад за побритых куков сделавших очередной контроллер смыва унитаза за 15к, но что бы оно хоть как то было конкурентноспособным, тебе придется его ужимать и ужимать по максимуму.
Что захуярить вебсервер с шифрованием в младший STM8 покажется очень интересной идеей.
1590 417640
>>417626

>изучать программирование МК с STM32


В такой шедевр надо вкатываться даже через силу. Я когда попытался под него писать не осилил, а потом выделил много времени только под STM32, заготовил много чая и кофе и начал наварачивать это дерьмо ставя на паузу каждые 30 сек, ходил по комнате туда сюда, просто чтоб расслабиться, потом продолжал читать reference manual и попутно писал в keil со слезами на глазах и поблёвывая. И в итоге вкатился, не жалею, теперь во всю могу оценить всю мощь этого микроконтроллера.
1591 417642
>>417633
Потому что в общем случае будешь с банками памяти и соответственно устаревшими приемами программирования знакомится (ага дин. выделения хуй).
Короче это устаревшие ядра, ведущие родословную с середины 80х и очень сильно отличающиеся от современных.
Конкретно, за 51 не скажу, не приходилось, пик - уебищный софт, уебищные библиотеки, уебищный компилятор, но божественные даташиты.

AVR - имеет годнейший софт (студию 7 которая на базе вижуал студии), огромнейшее сообщество, сносные даташиты, не плохие библиотеки.
Я бы посоветовал еще СТМ8, но он имеет те же проблемы что и 32 - он очень навороченный.

>>417640
Без разницы во что на начальном уровне вкатываться, все знания из AVR легко переносятся на STM32.
Просто референсы STM - уебищные и запутанные, ядро запутанное, это ад новичка, который не понимает что к чему и где. Про таймеры вообще даже хуй знает что сказать...
1592 417653
>>417635
Идея интересная, но этот сегмент рынка сейчас маленький и представлен в основном крупными компаниями, у которых есть ресурсы и время на планирование. В остальных местах царит хуяк хуяк и в продакшон, им надо быстро и дешево в разработке. То, что получается в результате хуйня - никто не спорит.
1593 417657
>>417653
Интересная идея тут - идея более выгодная, чем тоже самое в F4 каком, который ее на изиче потянет.

>хуяк хуяк и в продакшон, им надо быстро и дешево в разработке.


Это каксается только хипстерских стартапов, которые вымирают к слову сотнями по... ИХ УСТРОЙСТВА ИМЕЮТ СЛИШКОМ БОЛЬШУЮ СЕБЕСТОИМОСТЬ.
Бадум-тсс.

Встраиваемая электроника это всегда абсолюнто всегда байтоебство. Можно более менее разойтись в мелкосерийке и всякой узкоспециализированной хуйне, но в любых действительно массовых устройствах ты соснешь.
1594 417666
>>339005 (OP)
Это самое... Есть одна 746G-Discovery, и есть Куб на ноуте и на компе. Так вот, на ноуте есть возможность добавить StemWin, а на компе такого пункта нетути. Чего делать то?
1595 417667
>>417666
Ларчик просто открывался, начиная с версии 5.5, настойчиво продвигают TouchGFX и EmWin убрали к хуям. Только ручками теперь
20160803150431a1.jpg70 Кб, 700x535
1596 417677
>>417657

>это всегда абсолюнто всегда байтоебство


Сечас же навроде жирнючий камень типа F1C600 с несколькими ядрами, возможностью запуска линупса и прочими ништяками стоит пару баксов. Нахуя байтоёбить как не в себя?
1597 417689
>>417677
Потому что он не пару баксов стоит и обвязка к нему не пару баксов стоит.
Жрет он не то что бы что бы можно было поставить в батарейное устройство.

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

Тут недавно анон в каком то треде пытался выяснить, как ему STM8 прошивать другим контроллером, без бутлодера. Т.к. было жалко на более жирную версию денег, т.к. околомиллионые партии у устройства.
1598 417695
>>417689

>Потому что он не пару баксов стоит


$1.42
https://www.thirtythreeforty.net/posts/2019/12/my-business-card-runs-linux/
1599 417698
>>417695

>Китайский проц под который нихуя нету



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

Есть и всякая херь типо GD32, которую в домашнюю поделку я себе с радостью запихну, а в коммерческий проект в пизду пошлю, как бы там не уверяли, что оно полностью совместимо.
1600 417703
>>417698
>>417695
И еще, тебя не смущают большие буквы конфиденшинал на даташите? И отсутствие другого в свободном доступе.

Это процы производившиеся хуй знает для кого, остатки которых слили налево. (может быть, я не исключаю дешевых китайских арм по 2 бакса, но сильно смоневаюсь).
Вот и сделаешь ты под них хуйню, а они хуяк и пропадут из продаж. GGWP.
1601 417713
Где найти вменяемую документацию на HAL? По "hal stm32 documentstion" гуглится всякая хуйня. Пытаюсь тут запилить хеллоуворлд в виде передачи значения с АЦП по уарту на хале пытаюсь освоить что-то кроме байтоёбства и по описанию функции не могу въехать, что за "handle" такие и где они определяются.
1602 417719
>>417713
Гугли больше. Она есть. Она довольно уебищная. Но она есть и ее пиздец трудно найти.
1603 417721
>>417713

>вменяемую документацию на HAL


Нету ее. Есть в папке с кубом на твой контроллер ->Drivers ->STM32xxx_naHAL ->STM32Fxx_User_Manual.chm
И есть еще в пдф-е Description of STM32F4 HAL and LL drivers UM1725 или UM1905 для F7-серии. Идешь на ST.com ищешь свой контроллер -> ищешь пакет Куба на него -> переходишь и на вкладке "Resources" находишь пдф-ку с описанием.
Документации где вдумчиво раскуривается использование HAL помоему не существует
1604 417733
>>417721
>>417719
А это разве не просто доксигеновская отрыжка?
мимопроходил
1605 417739
>>417719
>>417721
Пиздец. Но всё равно спасибо.
хоуту.JPG30 Кб, 545x175
1606 417758
>>417733

>А это разве не просто доксигеновская отрыжка?


.chm - да, пдф-ка чуть получше, есть хоть какие-то HOWTO
1607 417767
>>417713
Берешь куб, генеришь код, читаешь его
1608 417836
>>417339

>Какие-нибудь сорокалетние себастьяновичи


хуяновичи
1609 418098
вопрос со звёздочкой:

QEMU ARM при старте без system_reset стартует в некоем неопределённом состоянии и сразу залетает в blocking_handler?

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

Вектор прерываний с лупой проверил - всё верно заполнено. Регистры тоже в норме, никаких аппаратных сбойных флагов не выставлено.

выручайте а то с ума сойду.
1610 418099
>>418098
Да, забил на все эти HAl-хуял. Использую расово-верный открытый libopencm3. Всё верно делаю?
1611 418101
>>418099
Нахуя он вообще тебе нужен? Тебе 4 флага в падлу записать в регистры?
1612 418113
>>418101

>Нахуя он вообще тебе нужен? Тебе 4 флага в падлу записать в регистры?



Думаю, унутре он именно это и делает
1613 418115
>>418113
Ну в плане тебе один хуй учить эти флаги, а потом учить еще библиотеку. Непонятно нахуя это?
Тебе один хер надо знать как работает эта периферия, что бы нормально ей управлять.
1614 418290
>>418115

>Ну в плане тебе один хуй учить эти флаги, а потом учить еще библиотеку.


Дядя, ты дурак? Зачем "учить" библиотеку? Зачем учить флаги, которые она от меня прячет?
1616 418361
>>418290
Лол если ты думаешь что тебя хал и лл уберегает от знания периферии и флагов, лишь показывает, что задачу серьезней бзднуть-моргнуть ты не решал.

Ввиду этого разговор не вижу смысла продолжать.
1617 418457
>>339005 (OP)
А если я собираюсь подключить LCD, кучу датчиков, ЖСМ-модуль, Ethernet, nrf2401, по CAN общаться еще с горстью датчиков, то как мне этим зоопарком управлять в бесконечном цикле? Я же охуею продумать все варианты прерываний и обработки событий. Как взрослые дяди с ентим справляются?
1618 418460
>>418310
"Паяльники" открыли для себя дырявые абстракции?
Теперь откройте как это связано с нежеланием "учить регистры"
1619 418461
>>418361

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



ПИШЕШЬ САЙТ
@
ДЕРГАЕШЬ РЕГИСТРЫ x86_64
@
ИНАЧЕ ГОВНО ЖЕ ПОЛУЧИТСЯ
1620 418462
>>418457

>Как взрослые дяди с ентим справляются?



Копать надо со стороны "а зачем ты это всё подключаешь?"
1621 418465
>>418461
С сайтами еще хуже чем с регистрами может оказаться, там может потребоваться учитывать отличия разных браузеров, под каждый писать свои части кода...
А тот анон не совсем правильно тебе написал. Нежелание хоть немного смотреть на регистры означает нежелание открывать документацию в принципе. Ну, успехов в разработке устройств без изучения документации на используемые микросхемы.
1622 418477
>>418462

>а зачем


Ну, допустим, хочу заебенить контроллер в котельную. Нет, не для управления котлом, так как он у меня твердотопливный, а для управления обвязкой. Вкл/выкл насосов котлового контура, контура отопления, контура ГВС, контура ТП, периодическое включение летом для защиты от клина, общение с UPS на предмет состояния аккумуляторов, выключение его если температура в контуре ниже +20 для экономии, общение с метеодатчиками по радиоканалу для подобия погодозависимости. Чтобы два раза не вставать, контроль влажности в подвале и на чердаке, вкл/выкл вентиляторов, контроль датчиков на рекуператоре, общение с "головами" на системе водоподготовки, подсчет израсходованной воды из скважины, контроль влажности и уровня воды в приямке кессона... Да просто ебаная уйма контролируемых параметров. Небольшие зайчатки интеллекта, типа набрать воды в душ ночью, чтобы с утра начала греться на солнышке, послать смс о проблемах с электропитанием/насосами/небом и Аллахом, периодически выгружать в домашний сервак bigdat-у с датчиков дабы я мог посматривать.
Короче, я так понял, что надо смотреть в сторону RTOS?
1623 418481
>>418477

>RTOS


Не требуется, можно обойтись простым конечным автоматом.
Однако тебе наверняка целесообразнее взять малинку и писать на питоне, например. У тебя нет задач, когда требуется определенная скорость реакции, которую обеспечивают микроконтроллеры, для такого сойдет одноплатник.
image.png2 Кб, 382x36
1624 418482
>>418461
Найс маневрируешь.

Давай еще мейнфреймы сравнив с ембедедом. В принципе я нихуя нового не скажу, уже все написал в предыдущем посте.
1625 418484
>>418481

>целесообразнее взять малинку и писать на питоне


Но у меня завалялась 746Г-дискавери, неохота еще и малину с дисплеем покупать
1626 418493
>>418481

>Не требуется, можно обойтись простым конечным автоматом.


RTOS проще и быстрее
1627 418494
>>418460
Нежелание связано с ленью и тупостью, не более того.
>>418461
Вот и разгадка. Капсболд, внутри которого идиотизм. Ты не понимаешь, что такое регистры МК и думаешь, что это как-то связанно с регистрами x86.
1628 418498
>>418477
Да, берешь RTOS, у RTOS есть потоки, которые в отличие от взрослых ОС работают в кооперативной многозадачности, то есть отработал и сам отдал управление в ОС, вызвав delay/sleep.
В итоге RTOS по таймеру вызывает нужные потоки, они отрабатывают и засыпают. Если процесс долгий, то засыпать можно прямо в процессе работы, давая отработать всему остальному, поэтому это удобнее конечного автомата, где тебе нужно самому париться о том, как сохранить состояние текущего процесса и разбить свои вложенные циклы на переходы в конечном автомате. Здесь у тебя будут отдельные независимые процессы, при чем, учитывая специфику, можно отрабатывать их раз в несколько секунд, а остальное время спать.
1629 418501
>>418498
А ещё разные части системы должны как-то друг с другом взаимодействовать.
RTOS предоставляет для этого всякие очереди и не только.
1630 418505
>>418494

>Нежелание связано с ленью и тупостью, не более того.


Не в этом дело. Возможно ли разрабатывать электронные устройства не читая документацию на используемые детали? Если врзможно, то на каком уровне?
1631 418506
>>418501
Не похоже, что у него что-то с чем-то взаимодействовать должно. Максимум GSM-модуль посмотрит на поднятый другим модулем флаг ошибки, отправит СМС и сбросит его.
1632 418508
>>418506
Т.е. не модуль, а процесс RTOS, работающий с GSM
1633 418565
>>418457
>>418477
Для такого нужен ПЛК или небольшой промышленный компьютер(в принципе малинка пойдет) и процессоры там на порядок мощнее, чем в микроконтроллере. На STM32 ты не сможешь это сделать.
1634 418575
>>418565

>На STM32 ты не сможешь это сделать.


Что мне помешает?
1635 418656
>>418575
Лень и отсутствие времени
1636 418663
>>418498
Делаю что то похожее на работе.

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

Главное - НЕ ДЕЛАЙ НА КОНЕЧНОМ АВТОМАТЕ, если хочешь это говнище поддерживать не подгорая пердаком каждый раз. Сейчас не 95 год и блядь как раз на хуйню рулящую всем и вечно подключенную к розетке можно уебать пару ядер и лишних баксов.
Я видал подобные параши на автоматах, в итоге все приходилось переписывать заново, если старый разраб съебывал или не занимался ими достаточно долго.

ИМХО - купи ЕСП32, там тебе сразу будет RTOS и куча производительности. На всякий реалтайм вьеби дешевый МК, АВР или чего подобное. Ну или там же на есп, если ног хватит.
1637 418828
>>418477 Зачем все это запихивать в один мк?
Возьми малинку, поставь homeassistant, подключи все датчики-реле через несколько esp8266, залей на них esphomelib (это своего рода микротиковский capsman для всевозможных датчиков), добавь туда минимальный аппаратный failsafe ну и напердоль логику на node red.
И не надо тут ряя зачем мне эти костыли и абстракции, хочу байтики дрочить. Для единичных изделий так многократно удобнее и не сильно то и дороже.
1638 418842
>>418828
Сколь жирно... я почти повелся и уже было расписал гневный пост, но вовремя одумался.
1639 418845
>>418828
С таким "хендмейдом" проще готовое купить.
Там же ничего твоего? Нахуй вообще пердолится тогда?.
1640 418859
>>418842 Да, ты можешь разродится длинным перечнем недостатков такого решения, и будешь во многом прав, но все упирается в экономику. А именно время.
>>418845 Готового решения по всем хотелкам из того поста нет. Дергать насосы-клапаны можно поставить Danfoss ECL, для вентиляции Corrigo Е, для красивенького интерфейса можно поставить Control4. И на этом все.

>Там же ничего твоего?


Тебе шашечки или ехать?
1641 418861
>>418859

>Готового решения по всем хотелкам из того поста нет.


Есть близкие и легче докостылить их. И вообще в таком случае действительно правильнее брать ПЛК и не ебать мозги. Они для этого и созданы.

>Тебе шашечки или ехать?


Я предполагаю что любителю таки нужны шашечки.
1642 418869
>>418861

>правильнее брать ПЛК и не ебать мозги


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

>любителю таки нужны шашечки


Шашечки тут ограничатся гордостью за то что вот я сам на сишечке все написаль. А то что все это будет крайне примитивно из-за нехватки времени, где хер разберешься в коде спустя полгода, без нормального интерфейса, средств отладки, мониторинга и как следствие вскоре будет просто отключено и заброшено.
Тем то и удобна эта мерзкая облачная фигня homeassistant, там всегда можно открыть редактор и за полчаса что-то поменять в логике, найти косяк полистав логи, добавить новый девайс.
1643 418877
>>418828

>Возьми малинку


Это ладно еще, я сам выше предлагал. Хотя это специфическая такая штука, сомнительной надежности.

>homeassistant


Ну про это я не знаю, не трогал и надеюсь не докачусь до такого.

>через несколько esp8266


А вот это уже финиш и дальше еще чуднее.

По моему так вообще не меньше половины этой автоматики можно заменить несколькими релюшками без всяких микроконтроллеров, а другая и не нужна вовсе.
1644 418879
>>418861

>правильнее брать ПЛК и не ебать мозги


Вы ценник на енти ПЛК видели? Даже сраный гОвен от 20к+. К нему еще модули АНАЛогового ввода-вывода, датчики 4-20мА с ебической стоимостью, HMI дисплей. Ну его нахуй, такие советы. Таким макаром я и сам, без автоматики, буду клацать насосами и включать вертиляторы
1645 418882
>>418877

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



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

>>418879
Ну поэтому бери ESP32 с RTOS, ну или делайн на малинах и хипстерских фреймворках.
Заклинаю тебя не пытаться это все на голою делать.
1646 418884
>>418877

>Ну про это я не знаю, не трогал и надеюсь не докачусь до такого.


Зря.
https://www.youtube.com/watch?v=9Yu57vjz7AY
https://www.youtube.com/watch?v=o-vNCObJ4dM
1647 418904
>>418869
А можно просто научиться программировать
1648 418977
>>418904
Не можно. Самому писать поддерживаемый код с годным UI и кучей функционала это долго, очень долго.
1649 418999
Пытаюсь сейчас управлять шаговиком через H-мост на STM8 используя комплиментарные PWM. Кто-нибудь может подсказать как правильно их отключать и/или переключать режим работы?

Сначала отключать таймер, переконфигурировать, потом включать, это нормально?
1650 419020
>>418999

>Пытаюсь сейчас управлять шаговиком через H-мост на STM8 используя комплиментарные PWM.


Я правильно понял, у тебя полношаговый или полушаговый режим без стабилизации тока в обмотках?
1651 419035
>>419020
Полно- и полушаг я могу делать чисто через GPIO.

Я пытаюсь делать микрошаг, регулируя ток на обмотках через ШИМ. Проблема в том, что 4 канала использовать нельзя. Так что я использую 1, 2 каналы первого таймера в комплиментарном режиме.

И для смены направления тока в обмотке мне надо переконфигурировать каналы.
1652 419666
>>419035
Бамп
1653 419669
>>419666

>STM8


>STM32 thread


А ты не очень умный, да?
1654 419673
>>419669
В какой тред ему нужно было? Прикрепленный? Или создавать отдельно по STM8?
Вообще-то в этом треде уже немало обсуждали STM8.

Мне непонятно почему не взять готовый драйвер. Для шаговых двигателей не просто ШИМ-ить нужно, а еще стабилизировать ток. Т.е. в мосту должны быть резисторы с небольшим сопротивлением для измерения тока, а к ним напрямую входы АЦП наверное еще не получится подключить, потребуется еще усилитель. И это при том что готовое устройство совсем дешевое.
1655 419725
>>419673

>Или создавать отдельно по STM8?


Зачем создавать то, что давно имеется на доске? >>298779 (OP)
1656 419726
>>419673

>И это при том что готовое устройство совсем дешевое.


Вот тут двачую. При том, что сама ST ебашит линейку драйверов STSPIN от маломощный, до йоб со встроенными мосфетами, микрошагами и своми проприетатными алгоритмами снижения шума и прочих вибраций.
1657 419754
>>419725
Последний пост 14.05, тут как-то поживее

>>419673

>Мне непонятно почему не взять готовый драйвер.


Я тоже не знаю, наверное у заказчика есть планы на расширение функционала. Резисторы с небольшим сопротивлением есть, АЦП вроде работает. Проблема в комплиментарных каналах.
1658 419794
>>419754
Всё, разобрался. Схема говна была
1659 419824
>>339005 (OP)
Листаю герберы на STM32f429i-Discovery и STM32F746G-Discovery. У первой оперативка подключена дорогами чрезвычайно разной длины, у второй меандры во все поля.
До 200Мгц нет смысла уравнивать длины штоле?
1660 419975
>>419824
Осторожно бздану - похуй. Запускал SDRAM на соплях на SAM9260 на 100 МГц и даже без явного слоя земли снизу. Как работает? Да хуй его знает. Толи из-за того что работает по одному фронту, а не обоим, а может еррата на камень где Атмел признался что очень мощные буферы сделал и просит ставить последовательные резисторы. Юбут и линукс работал непрерывно минимум неделю. Сбоев не было.
1661 420058
>>419824

>До 200Мгц нет смысла уравнивать длины штоле?


За одну двестимиллионную секунды у тебя свет проходит 299792458/200000000=1.5 метра. А какой длины там дороги, сантиметр есть хоть?
1662 420075
>>420058

>свет


Сигнал в проводнике 60-70% от с
31bb8691421da44a5e8b64efad7d2d28-imagejpeg.jpg512 Кб, 2560x1440
1663 420163
Совсем недавно писал в тред про ESP что не хочу малину, а хочу TouchGFX. Заказчику тоже такая штука нравилась. И в итоге, о как же я был не прав. Как же я все таки обосрался с ожиданиями относительно TouchGFX.
Посидел два дня — стало ясно что это говно не простой фреймфорк, где можно хуяк хуяк и в продакшон. Там все настолько сложно и запрятано в перди, что после просмотра трех вебинаров и уроков, каждый длиной в полтора часа, я до сих пор понял только следующее:
- Additional Software пресловутого TouchGFX, который можно добавить к любому проекту с использованием Stm32f4xx нихуя из коробки не работает. Это вам не встроить FreeRTOS.
- правильный путь создания проекта - это выбрать свою борду в TouchGFX Designer'е и плясать уже от него. При том нормально генерится только проект для CubeIDE, с кейлом фокус с прошивкой контроллера уже не прокатит. Ну и конечно же нужен CubeProgrammer просто чтобы прошить готовый проект.
- в результате генерации получается проект с ебовейшей структурой, который приходится пилить напильником, намешанная ебанина из плюсов и сишки.

Такого насилия над мозгом я не встречал уже давно. Это просто пиздец.
Черт знает как мне дальше быть. До вечера надо решить на чем будем делать проект, и, черт возьми, для меня это просто загадка из двух стульев — на одном TouchGFX дроченый, на другом малина точеная.
15873064366530.gif3,8 Мб, 430x440
1664 420166
>>420163
Вот и попался на удочку "у нас все работает из коробки", лол.
1665 420168
>>420166
Да, бля, как же это хуево. Вменяемо поставить TouchGFX можно только на очень узкий перечень дорогих плат. Свой проект на какой-то f407 уже не потянуть. При том в кубе все есть, поставил, зарезолвил этот TouchGFX и все равно хуй тебе а не искаропки. И туториалов нет вообще, даже разработчики не дают вменяемых ответов.
Боюсь теперь в малину катиться, вдруг там также будет. Ну хоть туториалов больше, наверняка.
1666 420170
>>420163
Бля, прочитав твой пост думал удариться в изучение ентого ТorchGFX. Хуле, думаю, пердолиться с древним СтэмВин, а оно вона как. Поставил дизигнер торчевский, прихуел со сгенерироанной структуры папок и вложений, хуй понял чего там к чему и закинул к хуям.
1667 420171
>>420163
Делай на HMI панели. Nextion какой. Он блевота, уебищное говно, кривая хуйня, высер ускоглазого уебища.
Стоит 1200р 3.5' базовая модель (не знаю насколько приемлемо вам)

Но у него есть IDE - насрал мышкой и в продакшен.
1668 420175
>>420170
Я ещё попердолился с TouchGFX десигнером. И вот что обнаружил.
- Название проекта менять не получится. Проебывается ioc файл из связей.
- Настройки генерации в кубе, в том самом сгенерированном файле, менять нельзя. Иначе пиздарики, проект с белым фоном не запускается. Так что придётся весь свой код в мейне держать, как диды.
- В принципе, можно менять и крутить периферию как хочешь на своей плате. Правда пока что для меня даже простая кнопка это недостижимый уровень мастерства. Ну, думаю, завтра запилю таки экранную кнопку со светодиодом.
1669 420176
>>420175
ты скрины хоть бы покидал того ужаса что он генерит.

С названием проекта - ну бля вообще это скорее норма.
1670 420181
>>420168
Малинка должна нормально работать с HDMI монитором, как и другие подобные одноплатники. А софт там обычный линуксовый, должен работать везде более-менее одинаково. На счет тача не знаю, наверное надо брать с USB и выбирать те которые точно работают под линуксом. По моему все это можно отладить на нормальном компе, а потом просто перекомпилировать под малинку.
1671 420185
>>394682

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


Ну в AVR это ещё очень давно появилось, в виде sleep mode, с понижением частоты, отключением переферии и,соотсветственно, снижением энергопотребления.
1672 420188
>>420185
В avr нельзя отключать периферию в том смысле в котором она отключается в stm и прочих новомодных контроллерах.
Там она просто считай в резете находится, в stm - обесточена.
1673 420201
>>420163
Обрати внимание, мелкомягкие выложили недавно свой azure rtos на github, куда входит guix
https://docs.microsoft.com/en-us/azure/rtos/guix/overview-guix
https://github.com/azure-rtos/guix
1674 422016
Аноны, что скажете за Rust?
Пока из недостатков вижу отстутсвие кодогенерации на нём в кубе.
Вроде есть взаимодействие с C и C++, так что дёргание HAL или LL проблем вызывать не должно.
1675 422033
Кто как при разработке проводит тестирование (как юнит, так и интеграционное)?
Я вижу 3 возможных способа:
1. Тесты запускаются на микроконтроллере.
Надостаток: на тесты может не хватить памяти
2. Тесты компилируются в arm, который эмулируется на ПК
Недостаток: не протестировать работу с железом
3 Тесты компилируются в x86 и запускаются на ПК
Недостаток: такие же, как (2). а ещё код может работать с x86. но не с arm (например, если наворотить какой-то UB), статические arm-only либы придётся отгораживать слоем абстракции.
1676 422049
>>422033
запускаем при старте как self-test
1677 422058
>>422033
Анон поясни за тесты, что такое и как писать, можно с каким либо простейшим примером для мк?
1678 422118
>>418477

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



Лол, а я тоже, только именно для котла, он у меня автомат, а контроллеры срынка - говно полное

я - это>>418477

>Короче, я так понял, что надо смотреть в сторону RTOS?


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

Т.е., эта проблема она не свойственна только контроллерам.

Напиши контакты, может вместе писать будем?
1679 422119
>>418828

>Зачем все это запихивать в один мк?


За тем что твоё предложение поставить малинку означает что получится неконтроллируемое неферифицируемое глюкавое говно
1680 422120
>>418482

>Найс маневрируешь.


Я тебе прямо скажу: ассемблер это для долбоёбов
1681 422121
>>418498

>которые в отличие от взрослых ОС работают в кооперативной многозадачности


FreeRTOS для эхотага рекомендует юзать вытесняющую многозадачность таки
1682 422122
>>418565

>Для такого нужен ПЛК или небольшой промышленный компьютер(в принципе малинка пойдет) и процессоры там на порядок мощнее, чем в микроконтроллере. На STM32 ты не сможешь это сделать.



Открой любой ПЛК и увидишь внутри обычный stm32
1683 422123
>>422016

>Аноны, что скажете за Rust?


Норм, хотя и хуже чем Dlang
1684 422124
>>422016

>Пока из недостатков вижу отстутсвие кодогенерации на нём в кубе.


Это достоинство, тащемта
1685 422134
>>422033

>код может работать с x86. но не с arm


Это говнокод
1686 422135
>>422134
Да понятно, что говнокод, поэтому и недостаток такого вида тестирования в том, что он такой говнокод не заметит.
1687 422355
>>422058

Абстрагировать логику от железных кишочков, в тестах мокаешь кишочки.
13876387742054210594.jpg242 Кб, 960x960
1688 424100
Подскажите нормальный китайский клон stlink/jlink, у пикрелейтед свистка за 100 руб уже второй раз МК накрывается пиздой с ошибкой 43. Устройства батарейные или включены через БП с развязкой, защитные диоды на USB и swd программатора впаять не забыли.
Или проще самому запилить с развязкой и более жирной защитой?
1689 424108
>>424100
Купи оригинал с гальваноразвязкой
1690 424110
>>424108
Нет в оригинале гальваноразвязки (вроде)
1692 424117
>>424112
Я думал то было адекватное предложение.
1693 424126
>>424117
ну чтобы пофиксить самому, надо понять причину. Не можешь понять причину - купи готовое решение.
1694 424130
>>424112
Спасибо за наводку!
Соберу на adum4160, dc-dc 0505, stm32f103 и txs0104, или куплю развязку USB на Али.
1695 424566
И снова здравствуйте. Анон >>416193 на связи. Потихоньку продолжаю ковырять STM читать то, что мне насоветовали и пилить свои говноплаты. Идет сложно и со скрипом. Так, что снова за советом. Есть одна плата собственно тот самый бар на мегагерцовой тяге лул и она работает через жопу.
https://easyeda.com/Ivenhor/stm32f303re-tft
Собственно сам проект. Насколько я понял любой тут может в него потыкать.
Понятно что все сделано криво. Но я стараюсь стать лучше.
Принципиальные проблемы две. Линия 5V Не работает. Там твориться какая то хуйня. То 7 то 10 вольт вместо задуманных 5. Где то я обосрался, но не могу понять где. Тыкните носом долбоеба.
Вторая проблема с экраном. Он нихуя не работает. Экран стандартная китайщина на ili9341 Задумывалось что он будет тупо впаиваться с плату. Но нихуя не работает. Подсветка горит изображение не выводиться. Есть плата нуклео, на которой тот же экран прекрасно работает. Те же самые ножки контроллера использую, один и тот же код. Но нет. Хуй знает в чем проблема.
В остальном плата вроде рабочая. Программируется и весь код кроме экрана работает как задумано насколько это возможно при моем уровне знаний. Но если я где то еще серьезно обосрался будет здорово если мне на это укажут.
1696 424579
>>424566
Разводку покажи.
1697 424583
>>424579
По ссылке не открывается?
Я прост не очень умный, как еще можно показать разводку?
1698 424606
Котаны, есть nucleo h7, как мне подключить физически клавиатуру к ней, чтоб обрабатывать нажатия непосредственно на камне? Через куб чет нихуя не завелось
1699 424609
>>424566

>Линия 5V Не работает. Там твориться какая то хуйня. То 7 то 10 вольт вместо задуманных 5.


Покажи где и как меряешь, чем и как питаешь, как дебажишь и какие напряжения питания во время отладки?
У тебя точно стабы на нужное напряжение, а не ADJ версии? На первый взгляд явных косяков нет по части питания.
1700 424642
>>339005 (OP)
Анон, хочу вкатится в стм32. Что по софту под линем? Хватит ли мне <мой любимый текстовый редактор> + компилятор? Или без всяких STMStudio, STM32CubeMX и прочего крутого стафа никак?
1701 424643
>>424642

>Хватит ли мне <мой любимый текстовый редактор> + компилятор?


Некоторым хватает. Там же обыкновенный gcc есть, а можно и armclang взять.

>Или без всяких STMStudio, STM32CubeMX и прочего крутого стафа никак?


Ну, это кому как. Многим никак.
1702 424644
>>424643
В общем, как я понял, надо пробовать. Ну тогда начну с текстового редактора + gcc, а там буду смотреть чего мне не хватает.
1703 424645
>>424642
Минимум мозгоёбства с сетапом в linux - platformio + vscode с плагином/clion с плагином для состоятельных господ. Само скачает и поставит тулчейн, само сгенерит минимал проект под твой камень и платформу ststm32/cmsis/mbed, одной командой собирает и заливает.

Cubemx можно как справочник использовать - настройку какого-нибудь хитрого тактирования посмотреть, или еще что.
1704 424646
>>424642

>Что по софту под линем?


Откудова вы лезете? Хакиры дохуя штоле? Покупаешь Mastering STM32 и читаешь, как тулчейны в твоем линупсе устанавливать.
1705 424649
>>424645
Попробую тогда vscode с плагином. clion я хоть и могу использовать (хорошо быть студентом), но мне просто не нравится в ней работать
1706 424651
>>424646

>Покупаешь Mastering STM32


>MINIMUM PRICE $26.99


Дороговато. Ну и я пришел узнать опыт людей, что они могут посоветовать, а не за гайдом по установке софта.
1707 424653
>>424646

>как тулчейны в твоем линупсе устанавливать.


Оно там устанавливается одной командой. И для этого не нужно читать и тем более покупать дурацкие книжечки.

>>424645
А еще меньше мозгоебства это одной командой установить пакет gcc-arm-none-eabi (убунту, дебьян) и все. Нечего всякую чушню советовать.
1708 424654
>>424653

>дурацкие книжечки


А вот тут не надо серить себе в штаны. Книжечка будующему кулхацкеру пригодится не раз.
1709 424655
>>424606
Какой интерфейс клавиатуры? Ps2 или usb?
1710 424656
>>424654

>А вот тут не надо серить себе в штаны.


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

>Книжечка будующему кулхацкеру пригодится не раз.


Ага, конечно же. Сразу после установки Kali Linux.
1711 424657
>>424653

>А еще меньше мозгоебства это одной командой установить пакет gcc-arm-none-eabi (убунту, дебьян) и все. Нечего всякую чушню советовать.


Ты к нам из 90х? Привет, дедуля! Мейкфайлы сам каждый раз пишешь, или с дискетки копируешь?
И стартап на асме небось, на пятидюймовых?
1712 424658
>>424657

>Мейкфайлы


Вот про это не надо тут. На них многое завязано. Даже если возьмешь CLion, все равно мейкфалы будут. А симейк там даже помозгоебнее в некоторых отношениях.
И если на то пошло, то для СТМ32 уже все написано https://github.com/ObKo/stm32-cmake Самому что-то писать потребуется только если нужно что-то нестандартное. И это намного гибче, чем код, генерируемый каким-то плагином.
1713 424661
>>424656

>ни одного упоминания системы сборки make


Может быть потому, что книжечка в основном про микроконтроллеры STM32, а не пособие красноглазиков?
1714 424665
>>424661
В таком случае там ничего про это не написано:

>Покупаешь Mastering STM32 и читаешь, как тулчейны в твоем линупсе устанавливать.


То есть ничем таким эта книга тому анону не поможет.
1715 424667
>>424665

>То есть ничем


Тулчейны-то, блядь, установит!!! Может еще доебешься, что там не описано как пропатчить KDE под FreeBSD? Твоя МАКЕ это уже специализированный инструмент. По нему свои книжки есть или маны, я хуй его знаю чем вы себе голову засираете.
1716 424671
>>424667

>доебешься


Еще бы не доебаться, если ты рекламируешь какую-то ерунду, да еще и покупать советуешь.

>Тулчейны-то, блядь, установит!!!


Ага, точно. Установит несколько пакетов одной командой, стоило ради этого покупать целую книгу. А потом в разных дистрибутивах могут быть разные пакетные менеджеры и даже пакет с gcc может называться по разному, поэтому еще не факт что установит, если выполнит указанные там команды.
Остальную часть твоего высказывания даже не буду комментировать, все совершенно не в тему заданного вопроса.
1717 424673
>>424671

>рекламируешь


Какой же ты душный мудак. Иди ядро пересобери штоле
1718 424679
>>424673
Я хоть не дезинформирую, в отличие от некоторых. И не агитирую тратить деньги на какие попало книжонки.

Для линуксов достаточно установить пакеты gcc-arm-none-eabi и cmake, далее взять https://github.com/ObKo/stm32-cmake и на этом все. Или можно взять не cmake, а другую, без разницы. Причем это не только для линуксов, так имеет смысл делать вне зависимости от ОС.
1719 424685
>>424679

> чото понаставить, если у тебя убунта дебиан, а если нет то бибу


> чото откудато склонировать


Ты забыл прописать пачку настроек в CMakeFile.txt

> и на этом всё



Вместо того чтобы просто

> pip install platformio


> pio project init --board disco_f303vc --project-option "framework=cmsis"


> pio run -t upload

1720 424689
Не могу прошить STM32F103C8T6 через USART PL-2303HX делаю всё по мануалу но пррораммер её не видит. Всегда мигает светодиод pc13 плата реагирует только на ресет.
1721 424690
>>406320
Такая же хрень бро с pl-2303
1722 424693
>>424689

>Всегда мигает светодиод pc13


Значит бут режим не переключается. Перемычки то правильно переставил? Если правильно, то следует проверить сопротивление резисторов на BOOTx-выводах, через которые джамперы перемыкают.
1723 424694
>>424689
Если не заведется, проверь саму pl, замкнув tx на rx, и написав пару букв в терминале. Ну и pl tx -> usart1 rx и наоборот, естественно.
1724 424695
>>424642

>Анон, хочу вкатится в стм32. Что по софту под линем? Хватит ли мне <мой любимый текстовый редактор> + компилятор?



Да. Использую строго опенсорс (потому что заебали 20гиговые редакторы от брендов).

clang + geany + libopencm3 + freertos
1725 424697
>>424695

>20гиговые редакторы от брендов


Когда красноглазый пиздит? Когда открывает рот. Вот те папка Кейла с пакетами на всю линейку STM, начиная F0 и заканчивая MP&WB (установил, сам не знаю нахуя)
кейл.PNG30 Кб, 595x409
1726 424698
>>424697
Пикчу забыл
1727 424699
>>424694
PL работает в терминале буквы на замкнутой rx tx набираются
1728 424700
>>424697
мне ещё не нравится закрытость сама по себе. не уверенно себя чувствую когда не могу поправить всё что хочу сам.
VID20200702135619.mp43,5 Мб, mp4,
1080x1920, 0:02
1729 424704
Вот такая залупа постоянно с любыми перемычками
1730 424707
>>424609
Меряю там где у меня выходят линии питания. Тестером лол. Тыкаю один щуп в землю другой в запитанный пин. Не знаю как это еще можно сделать. Я специально вывел все линии что бы можно было потыкать. Питаю я 12 вольтами. Соответственно у меня выходят 12, 5, 3.3.
Стабилизатор https://lcsc.com/product-detail/Low-Dropout-Regulators-LDO_Advanced-Monolithic-Systems-AMS1117-5-0_C6187.html
Вот этот вот.
Жаль что нет явных косяков. Тогда все было бы намного проще.
1731 424710
Как должна вести себя плата при прошивке ни одного видео
1732 424712
>>424710
Вибрировать и светиться неоном.
1733 424713
>>424712

>и светиться неоном


Сам контроллер? А где в нем светлодиод? В ямочке ключа?
1734 424718
>>424713
Бля ну тут совсем тупая школота сидит
1735 424743
>>424718
Во-во, неонка же без светодиодов работает
1736 424758
>>424566
Конденсаторы 22 мкФ на +5 В керамические?
Поменяй их на танталовые/электролитические, или подключи последовательно с керамическим 22 мкФ ~0.5-1 Ом резистор. Часть линейников нестабильно работает с керамикой, им нужен конденсатор с большим esr, в даташитах у таких пишут про tantalum output capacitor или про минимальный esr.
Ещё проверь входной кондёр, из-за его отсутствия тоже такое бывает.
1737 424773
>>424704
Замерил проводники до чипа на плате и резисторы
100 ком R3 R4 всё целое. Почему мигает PC13 в boot0=1
1738 424780
>>424758
Спасибо. Уточню эти моменты. Конденсаторы выбирал только по емкости и о таких тонкостях не знал.
1739 424787
>>424773
Там должно быть значительно меньше 100 ком. Там же подтягивающие резисторы того же попядка, а эти должны быть на попядок меньше. На китайских платах это довольно распространенная проблема.
1740 424788
>>424787
Почему у грязных индусов в ютьюбе эти же платы с алишки работают а у меня нет.
1741 424817
>>424788
Просто перепаяй эти резисторы. Твои индусы возможно так и сделали, а может им повезло с китайцем.
1742 424818
>>424817
Если резисторов нет, то можно заменить просто перемычкой.
Зачем вообще тебе бутлоадер? Оно нормально шьется и отлаживается через SWD.
1743 424839
>>424818
Stlink нет. Есть только PL-2303HX.
1744 424840
>>424818
Доберусь до паяльника попррбую подать +3.3 и землю напрямую на boot 0 boot1 чипа.
Lesson29.png10 Кб, 568x564
1745 424844
Зачем нужен этот 10k?
1746 424863
>>424844

>Зачем нужен этот 10k?


В душе не ебу, что у тебя изображено на картинке и нахуя там резистор на 10к. Ты можешь по человечески нарисовать, что и куда у тебя подключено к контроллеру?
1747 424867
>>424844

>Зачем


Подтяжка к земле.
1748 424951
>>424863
Собираю всё как накартинке без резистора 10к. Но ебанный демонстратор невидит плату. Постоянно мигает pc13 с любыми вариантами перемычек.
1749 424960
>>424951
Так перемкнул резисторы, которые по 100 кОм?

>Но ебанный демонстратор невидит плату.


>Постоянно мигает pc13 с любыми вариантами перемычек.


Как он в таком случае может видеть? Светодиодом мигает зашитая по дефолту программа.
Ты в курсе что такое бутлоадер? Похоже нет. В микроконтроллере есть масочное ПЗУ, из которого он начинает выполнять программу при включении питания. Эта программа проверяет лог. уровни на выводах BOOTx и в зависимости от результат либо переходит к выполнению кода с флешки, либо начинает ждать команды по UART для перепрошивки. Естественно кога программа из масочного ПЗУ ждет команды по UART, программа из флешки выполняться не может, ну никак не может, соответственно светодиод мигать не будет.
1750 425003
>>424951
Простой вопрос.. Reset или анус питание передергиваешь после изменения положения перемычек?
1751 425020
>>425003
Конечно, до перезагрузки ничего не будет.
IMG20200704133339.jpg2,7 Мб, 4000x3000
1752 425028
>>424960
Выдрал R3 R4 зашунтировал. Теперь при подачи на boot0 плюса плата после ресета перестает моргать pc13 и наверное уходит в загрузчик но связи через usart получить опять не могу.
1753 425031
>>425028
Ебаное китайское поделие залил от нехуй делать плату спиртом промыл и это говно прошилось и заработало.
1754 425805
Сап стмач. Кто-нибудь делал (или может читал где-то) проект, где в одном чипе две прошивки? Самый распространенный вариант это боевая прошивка + свой бутлоадер, интересует, как обычно такое делают - в виде двух разных проектов или как-то объединяют в один. В идеале потом получить единый hex (или bin).

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

Пока начал копать и пробовать, освоил только перемещение таблицы векторов.
1755 425823
>>425805

>боевая прошивка + свой бутлоадер


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


Возможны оба варианта. Если один проект, то бутлоадер это просто одна или несколько функций, которые принимают байтики и пишут на флешку. В зависимости от особенностей работы флешки, функции бутлоадера должны быть размещены в ПЗУ или определенных областях флешки.
Если два разных проекта и в твоем микроконтроллере можно переносить таблицу векторов прерываний (начиная с Cortex-M3), то делается аналогично штатному бутлоадеру. Свой собственный бутлоадер размещают в начале ПЗУ, а после бутлоадера основную программу. За размещение программы в определенных областях памяти отвечают настройки линкера. Как перейти к выполнению основной программы из бутлоадера? Для этого есть NVIC и там можно просто перенести таблицу прерываний.

>В идеале потом получить единый hex (или bin).


Если было два отдельных проекта, то если пользуешься gcc, можно использовать objcopy.

>И второй вопрос в развитие первого.


Нет, так в общем случае невозможно. Если не указать компилятору дополнительные опции, то он сгенерит код, в котором используются абсолютные адреса, поэтому так просто нельзя записать программу в произвольное место и перейти к ее выполнению. Однако можно заставить компилятор делать адресно-независимый код, для gcc это опция -fPIC, если я правильно помню.
1756 425824
>>425823

>функции бутлоадера должны быть размещены в ПЗУ


Опечатался. Должны быть размещены в ОЗУ.
1757 425829
>>425823
Спасибо за ответ. Cortex-M4, таблицу векторов прерываний переносить можно.

> можно заставить компилятор делать адресно-независимый код, для gcc это опция -fPIC, если я правильно помню


Спасибо, попробую исследовать этот вопрос.
1758 425833
>>425829
Не думаю что это так просто, ведь любой указатель это абсолютный адрес. Даже если компилятор сработает правильно во всем, то все равно без последствий это не обойдется.
Думаю что следует действовать иначе, хотя бы компилировать одновременно две версии для разных адресов.
1759 425837
>>425833
Тогда я не знаю, как определить, какую прошивку грузить.
1760 425847
>>425833
Можно выделить в ОЗУ буфер на размер прошивки, и пока производится контроль целостности, хранить весь образ там. Но что если прошивка со временем раздуется до размеров, не позволяющих целиком вместить ее в ОЗУ?

Вычитал, что люди делают такие вещи с дополнительными флагами -fPIC -mno-pic-data-is-text-relative -msingle-pic-base -mpic-register=r10, и то у половины че-то там не работает. При компиляции размер тестовой прошивки с мигалкой и отладочной печатью в ITM вырос, там типа какая-то глобальная таблица смещений дополнительно появляется, из которой программа будет узнавать адреса всех указателей. Т.е. компилятор добавляет код для разруливания этой изменившейся адресации.
1761 425848
>>425837
Я правильно тебя понял, что ты хочешь иметь одновременно две версии программы и иметь возможность переключаться между ними? Нужна ли тебе при этом возможность грузить новые версии не программатором, а через UART или еще как-нибудь?
1762 425849
>>425848
По Ethernet. Возможно придется делать резервный канал через RS-422.

Я хочу по мере приема пакетов с новой прошивкой не сразу затирать старую версию (вдруг помехи, обрыв, потери, питание пропало), а записать ее в другой сектор флэша, а потом, убедившись, что все CRC в порядке, дописывать в конец сектора идентификатор с указанием, что эта прошивка актуальная. А дальше при перезапуске бутлоадер определял бы актуальную версию и загружал бы ее. А если бы загрузка новой прошла со сбоями, останется старая рабочая версия.
1763 425850
>>425849
>>425848
Можно даже потом бутлоадером переписывать новую из второго сектора в первый, чтобы всегда стартовать из одного места, тогда никаких проблем с адресацией и прочим. Но это как-то тупо.
1764 425851
>>425849
Компилируй две версии прошивки под разные адреса, а во флешку пиши только нужную в данный момент.
1765 425855
>>425851
Т.е. каждый раз передавать две прошивки, а железка пусть сама разбирается, какая ей нужна?
1766 425893
С ключом -fPIC и прочими ничего не получается. Загружаю вручную по адресу 0x08020000 первую программу (зеленая мигалка), по адресу 0x08040000 - вторую (красная мигалка). Обе программы скомпилированы с ключом -fPIC, у обеих в скрипте линковщика одно и то же. По идее в зависимости от состояния кнопки при включении питания бутлоадер должен запускать разные версии программы, в итоге запускается только одна, т.к. в обеих таблицах векторов все адреса (в том числе и Reset_Handler) указывают на один сектор 0x08020000.

Если программы линковать с разными адресами, кнопка естественно выбирает прошивку, как надо. Вот только прошивки из-за этого разные получаются.
1767 425895
>>425893
Так создавай таблицу векторов прерываний в ОЗУ динамически, делов то. Но вообще проблема у тебя выдуманная, в чем сложность компилировать две версии с разными адресами и загружать только нужную?
1768 425902
>>425895

> создавай таблицу векторов прерываний в ОЗУ динамически


От этого ничего не изменится.
1769 425915
>>425893
>>425895
Не на всех stm32 нужно переносить таблицу векторов в ОЗУ.
ОПу надо сделать следующее:
1) научиться переходить по адресу на другую программу, как здесь https://www.iar.com/support/tech-notes/general/creating-a-bootloader-for-cortex-m/
2) перенести таблицу векторов прерываний либо в ОЗУ, если не можем через VTOR настроить или перенести в конфигурации линкера и настроить через VTOR
3) Ограничить в линкере диапазон адресов флеша, где может быть размещена прошивка
1770 425918
>>425915
Все это уже сделано.
1771 425919
>>425915

>Не на всех stm32 нужно переносить таблицу векторов в ОЗУ.


Уже было, на что он ответил что у него Cortex-M4.

>2) перенести таблицу векторов прерываний либо в ОЗУ


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

Но вообще он херней страдает, все это можно сделать намного проще и эффективнее. И мне кажется что он не ОП треда.
1772 425920
>>425918
Тогда, если ты таблицы пересчитываешь, то что у тебя не работает?
1773 425921
>>425920
>>425918
Таблицы я не пересчитываю. Просто переношу адрес вектора в регистре VTOR. Похоже я не догоняю.

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

И еще вопрос - допустим обработчики я перенес и программа начнет стартовать из ОЗУ. Как быть со всеми остальными указателями? Их же тоже надо пересчитывать или нет?
1774 425937
>>425921
Помимо VTOR, нужно ещё в файле конфигурации линкера их перенести.
1775 427655
Кто-нибудь использует асм? Насколько выгоднее C?
1776 427665
>>427655

>Кто-нибудь использует асм?


Если ты не используешь молниеносный ногодрыг, то нахуя?
1777 428274
>>427665

>молниеносный ногодрыг


Для этого асм не нужен.
Насколько я знаю, через предделитель можно вывести тактовый сигнал МК (PLL) на любую из ног.
image.png143 Кб, 821x705
1778 428279
>>339005 (OP)

>Хочу вкатится в разработку на stm32.


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

Хули там в твоих кококонтроллерах? Прописал регистры, как макака, и все, хуже даже, чем в жс. И общаться ты там будешь, скорее всего, с нешарящими и тупыми постсовковыми долбоебами-радиолюбителями, если на хедхантере собрался искать (просто нешарящими - это программа-минимум и уже удача; обычно они не просто не шарят, у них еще и куча каких-то извращенных поверий и маняфантазий по теме, и все это на фоне просто запредельных ЧСВ и токсичности). Оно те надо?

Тру - это машобчик, ООП, графика, игры, софтвер инжиниринг.
1779 428432
>>428279
Ну дык нечего торчать в Барнауле
1780 428537
>>428279

>куча каких-то извращенных поверий


Типа каких? мне чисто поржать
image.png134 Кб, 347x276
1781 428586
>>428279

>Тру - это машобчик, ООП, графика, игры, софтвер инжиниринг.

1782 428995
Господа, кто работал с freertos, объясните какой принцип ручного запуска задач по какому-то событию?
Условно я хочу запускать задачу по внешнему прерыванию.
Я сейчас делаю так: освобождаю мьютекс внутри прерывания, задача берет мьютекс себе и в конце его не освобождает. Тем самым снова сама себя блокирует.
1783 428997
>>428995
Так надо было семафор брать, а не мьютекс.
Ты всё перепутал, чел.
1784 429002
>>428997
Спасибо за помощь
Я думал что мьютекс это и есть что-то вроде двоичного семафора.
Сейчас все заработало с двоичным семафором, но только после того как я создал его до конфигурации переферии и задач.
Подозреваю что в этом и была проблема моих зависаний
1785 429346
Планирую вкатываться. Какую среду разработки посоветуете? В универе нам рекомендовали Cube mx + IAR ewarm
1786 429351
>>429346
Ща местный красноглаз обоссыт твой универ и расскажет тебе где тулчейн зимует
1787 429435
>>429346
С пивом покатит, у меня такая же.
Редактор похуже эклипса, зато отладка норм, куб оче удобная и наглядная штука.
Разве что у HAL документация через жопу написана, и в требовательных задачах может не хватить быстродействия, но никто не мешает инициализироваться кубом, а дальше в зависимости от ситуации дрочить регистры по мануалу или использовать тот же HAL/LL.
1788 429456
Полгода читаю ваши срачи о том, что круче: авр, стм, пики-пуки и пр. арм скам, - только щаз до меня дошло. Я ведь работаю на оборонном заводе радиооборудования, у которого клиенты от телеканалов, до эрбаса, амерского эрфорса и арммии эмиратов. Я комплектую детали для этого оборудования и шо я вижу... Когда-то использовали пики, навероное с ними оборудование не выпускается больше 5 лет(судя по иарпи и слою пыли на них); так же есть старинные процессоры от мотороллы со GBA 100 и хайниксы какие-то. Нынешнее поколение оборудования выпускаеца только на Атмега8Л, Атмега128Л и хайниксак. Последние только для сетевого интерфейса.

Олсо, атмеги менее всего заменяемая деталь, за год выдал не больше 5ти штук.

Пики хз для чего, но чего-то очень массового, т.е. дешёвого оборудование. Олсо, СТМ32 для совсем говно-фонариков и ир-стробов, которые делаюца тысячами в неделю.

Олсо, используют ардуины нано или майкро на антеннах, но хз какова их функция.
1789 429467
>>429456
А миландровские (1986ве) и нииэтовские (1921вк) кортексы не используете?
1790 429474
>>429467
Он же просто кладовщик... Непонятно где, причем.
Это примерно как выслушивать мнение "домохозяйки" по этому вопросу.
1791 429512
>>429456

>Олсо, СТМ32 для совсем говно-фонариков и ир-стробов


Ты просто открыл для меня новый мир!! Сейчас же заброшу возню с хуетой 746Дискавери и перейду на Ардуино_Мега. У ней Атмега 256!!! Я буду просто на острие оборонного прогресса

покормил бидораса
artem-rhx-chebokha-4-1200.jpg744 Кб, 1200x1200
1792 429533
>>429512
мошт ОНО (ардуино) лампочкой моргает на антенне (по ночам) чтоб самолёты не врезались-а ВЫ на кладовщика сразу взьелись
1793 429565
>>429533

>ОНО (ардуино) лампочкой моргает


Ардуино/10
Интересно, сколько бюджета на этом освоили
1794 429782
>>339005 (OP)
Как управлять скоростью вращения канального вентилятора для вытяжки через Ардуино?
1795 429799
>>429782
Схему канального вентилятора в студию! А то может вообще он для этого не предназначен.
1796 429814
>>429799
А у меня нет еще вентилятора, я только присматриваю. Вот нашел диммер, походу то что надо.
https://aliexpress.ru/item/32975095882.html
А на что там обращать внимание в вентиляторе, что бы он от диммера работал?
W2jrB-EFXRg.jpg163 Кб, 1280x720
1797 430440
>>339005 (OP)
По ошибке заказал с алика CKS32F103C8T6 вместо оригинальной STM32. Попытки прошить ее с помощью программатора St-link/v2/01-0 что с OpenOCD, что без нее, оборачиваются неудачей. Пробовал менять в конфигурационных файлах некий адрес, а также менять конфигурационные файлы полностью на те, что нашел на гитхабе (ссылку потерял), ничего не помогло.
1798 430441
>>375829

> Gay


Проиграл
1799 430442
>>430440
unable to connect to the target это программатор вообще не видит камень, у тебя тупо swd линии где-то оборваны
1800 430443
>>430442
Он там по вебу его прошить пытается? Лохохост:3333 это что за чертовщина?
1801 430444
>>430443
По OpenOCD же.

>>430442
Подключение по SWD я много раз перепроверял
1802 430446
>>430444

>По OpenOCD же.


Но при чем тут локалхост, если подключается по USB через ST-Link или по юарту через переходник? Это какая-то опенсурсная магия?
1803 430447
>>430446
"Клиент" подключается к "серверу" OpenOCD, общаясь с ним по определенному протоколу, то есть, говоря, что именно надо зашить в микроконтроллер. А OpenOCD, в свою очередь, взаимодействует с драйвером программатора st-link v2. Теоретически можно проводить эту прошивку удаленно, да.
1804 430448
>>430447
Веб-макаки дорвались до системного программирования не смогли обойтись без своих жаба-скриптов штоле?
1805 430449
>>430448
Причем тут это?)
1806 430450
>>430448
ты не знаешь, как общаются IDE и GDB/OpenOCD, да? Они связываются по TCP протоколу, и так было задолго до повсеместного распространения жаба-скриптов
1807 430452
>>430444
у тебя либо прошивка отключает SWD, тогда выбери connection under reset
либо камень не имеет SWD или вообще пустышка
1808 430454
>>430450
Я просто замечаю редкие проскакивания нитаких как все, которые стесняются купить на торренте кейл и не ебать себе голову, а любящие бряцать линупсами/эклипсами и прочей лабудой, постоянно не осиливающие их закрасноглазить. Короче, мне хватает мозгоебли с самим контроллером, чтобы не лезть в эти ебучие дебри.
1809 430455
>>430454
В кейле все еще хуже.
1810 430457
>>430454
cudeide это эклипс с плагинами от производителя, отладка работает из коробки, красноглазить особо негде
Кейл застрял в нулевых по внешнему виду и функционалу, такие как все сейчас используют clion
1811 430459
>>430440
IDCODE для начала прочти, а то непонятно вообще что это за микроконтроллер. CS32 у меня читался и писался обычным JLink-ом без проблем, насколько я помню, только IDCODE не соответствовал. Но лучше, если есть возможность, купи в терраэлектронике или чипдипе нормальный микроконтроллер и перепаяй.

>>430454

>Кря!!!


Если это для тебя красноглазие, то поправить что-нибудь по мелочи в какой-нибудь опенсурсной программе и скомпилировать ее для тебя будет нереально. Там ведь мейкфайлы! Какой ужас! Конечно ты можешь написать что программируешь только микроконтроллеры, а для компов не пишешь ни строчки, но это уже ограниченность какая-то.
1812 430465
>>430459

>Кря!!!


>Пук


Вот и вылезло это больное животное.
1813 430478
>>430465
Для тебя наверное и системы контроля версий тоже ненужное красноглазие?
1814 430507
>>430478

>и системы контроля версий тоже ненужное красноглазие?


Нет. Это нужный инструмент в отличии от этой детской ебли с опенсурсом в попытке доказать одноклассникам кокой ты кулхакир.
1815 430511
>>430507
надо быть как все, а на самом деле - байтики в калькуляторе посчитал, прошивочку в блокнотике написал.
1816 430539
>>430511

>прошивочку в блокнотике написал


Есть же охуенный VSCode
1817 430578
>>430507
Так все наиболее популярные системы контроля версий опенсурсные. Причем графический интерфейс у них не предоставляет некоторых возможностей, которые иногда требуются и тогда приходится вводить команды руками, как ты выражаешься "красноглазить".
Один анон выше упоминал CLion, так он вовсе не опенсурсный, но CMake с ним использовать придется. Тоже красноглазие по твоему?
Почему именно линуксы с эклипсами тебя так напрягают? Ничего же не мешает писать код в любой IDE, а компилировать armclang-ом, если так не нравится gcc.
1818 430893
Я чёто прожал и всё пропало. Залил тестовую почти пустую прогу (в регистрах не разбирался, просто пару переменных объявил). Потом решил сделать это ещё раз, но ничего не получилось. st link usb communication error. В винде он есть, а проги его не видят
1819 430894
>>430893
Если поменять бут мод джамперами, то вроде включается. Блин, в универе как-то без задней мысли кодились эти шимы на таймерах и ультразвуковые датчики
1820 430905
>>430894
Ставь линукс и st-util
1821 430938
>>430894
Проблема заключалась в том, что я не подрубил serial wire debug в cubemx. Надо было затереть память с другого джампера
1822 430960
>>430938
а вот если бы ты не использовал cubemx, оно было бы включено по умолчанию
1823 430981
>>430960
но ведь это удобно
1824 431015
Насколько сильно нужно разбираться в электронике, чтобы собирать разнообразные устройства на базе STM32 и далее FPGA?
1825 431037
>>431015
закона Ома для начала хватит, а когда будет не хватать, тогда и доучишь то, что надо
1826 431048
>>431037
У меня прерывания срабатывают за полметра до концевика. Концевик расположен на расстоянии двух метров от stm32. Знаю закон Ома и правила Кирхгофа, а прерывания на пине случайным образом возникают. Что нужно почитать по этому вопросу?
1827 431049
>>431015
На сколько хорошо знаешь линукс?
1828 431050
>>431048
пин подтянут или в воздухе висит?
1829 431051
>>431050
Подтягивал и к плюсу и к минусу, ничего не помогает.
1830 431068
>>431049
Ничего, а каким образом он относится к STM32?
1831 431098
>>431068
Красноглазить часто приходится в отличие от тех же восьмибитных пиков где все инструменты под Винду заточенны.
1832 431107
>>431098
Полнейший бред, аналогичный >>430454 Может это один анон?

Это не так, даже если брать для STM32 все опенсурсное. gcc одинаково работает и под виндой и под линуксом. make тоже работает под виндой. SEGGER или OpenOCD тоже кроссплатформенные. Остальные инструменты тем более будут одинаково работать под любой ОС. Нет там никакой "заточенности" под ляликс, даже если брать все опенсурсное.
Про FPGA тоже все не так. Квартус и вивада сейчас есть под обе операционные системы.

>в отличие от тех же восьмибитных пиков где все инструменты под Винду


Можно использовать SDCC, при желании.
1833 431543
>>431048

> Что нужно почитать по этому вопросу?


Очевидно, reference manual, главы про gpio и прерывания
Для начала покажи, как ты настраиваешь прерывания на ноге
1834 431827
Приветствую, радач.
Ковыряю stm32f103 и его таймеры в режиме захвата импульсов. Понимаю, что можно назначить на один пин мк два канала (direct и indirect) и по прерываниям на каналах читать регистры, куда каналы сохраняют счетчик по фронтам/спадам и высчитывать разницу. Но это блять занимает два канала на один сигнал, сука! А у меня таймеров (и пинов) и так не хватает, и вообще внутренний еврей подавился жабой, поэтому внимание, ебанутый вопрос:
можно ли реализовать измерение длительности импульса на одном канале таймера? Ковыряю HC-SR04, хочу схитрожопить.
Фантазия такая:
1 настраиваю таймер (пусть будет TIM3): предделители, предел счета все дела, настраиваю канал (пусть будет CH1) на захват по фронту. Включаю прерывание и обработку прерываний. Включаю таймер.
2 на пин приходит сигнал лог 1, т.е. фронт, генерится прерывание
3 в обработчике прерываний смотрю какой бит прерываний появился. Если это прерывание по появлению сигнала, а не по переполнению счетчика, то обнуляю регистр CNT, перенастраиваю пин на обработку по спаду сигнала и запускаю счетчик
4 когда сигнал уходит, генерится прерывание. В обработчике считываю регистр CNT (это и будет длина импульса) и обратно перенастраиваю пин на обработку по фронту.

Будет такой подход работать или я где-то наебался?
1835 431832
>>431827
Ты как-то сложно всё описал. Я просто запускал/останавливал таймеры по прерыванию с ноги. Но может и я не прав
1836 431833
>>431827
Попробуй на отладочной плате, для одного должно прокатить. Вроде бы кто то уже делал такое, поищи по форумам, посмотри в RM и timer cuckbook.
Только настраивай захват в регистр CCRn, input capture, он зафиксирует значение cnt ровно в момент прихода импульса. И счетчик лучше запустить сразу по trig и не останавливать, иначе сразу добавится неизвестная задержка вызова прерывания. По прерыванию считываешь CCR и по твоим условиям меняешь полярность захвата, у результата делаешь обработку переполнения, там еще флаги соответствующие есть.

Если не покатит, можно использовать два канала.
Единственно, с двумя и несколькими сигналами лучше dma, как то мерял скважность сигналов двумя каналами и забирал результат по таймеру, при постоянной скважности были периодические небольшие выбросы.
1837 432096
>>431833
Заработало, таки победил.
Сделал так:
https://pastebin.com/gPAr3dwd
В итоге меряет число тиков между фронтом и спадом, может кому пригодится, хотя точность на обработку прерывания теряется немного.
5454462245578.jpg111 Кб, 1280x720
1838 432282
Надо отсчитывать определённый промежуток времени: от нескольких секунд до минут. Пока не уверен - нужна ли привязка к реальному времени, но...

Есть три стула:
1) заморочиться с микросхемой часов реального времени с интерфейсом I2C и брать показания с неё - не знаю, сколько может занять считывание показаний по шине.
2) запустить ещё один таймер, но даже 64-битный таймер не сможет считать больше 5 минут. Не уверен, что правильно посчитал, но перепроверю позже.
3) уже есть таймер отмеряющий 100 мс - вести счёт на его основании, отмеряя счёт по 100мс, но с минутами... у, это ещё тот пиздец.

Как будет лучше?
1839 432284
>>432282
Что пиздецового в третьем варианте? Начал отсчёт, обнулил переменную, надо закончить, прочитал переменную.
Без троллинга, просто обычно всегда так делаю.
Есть ещё rtc, может там как-то замутить можно?
1840 432332
>>432282
Не с того бока заходишь. Какое разрешение то нужно?
Наносекунды, пикосекунды джиттера, микросекунды, миллисекунды, секунды?
Даже если брать обоссаный 16 битный таймер и тактировать его часовым кварцем на 32 килогерца - у тебя будет 2 секунды с разрешением 1/32768, те где-то 30 микросекунд.
Поставь прескалер /32 = получишь 64 секунды счета и разрешение 1/32768*32 = где-то 1 миллисекунда. Бери православный 580ВИ53 - там целых три 16-битных таймера.
1841 432335
>>432284

>Что пиздецового в третьем варианте?


Размер счётчика. 5 минут - это 3к отсчётов по 100 мс.
Разве это нормально?

>Есть ещё rtc, может там как-то замутить можно?


Да, RTC хорош.

>>432332

>Какое разрешение то нужно?


1 секунда. Может подойдёт 5 или 10 секунд.
1842 432337
>>432282

>1) заморочиться с микросхемой часов реального времени с интерфейсом I2C и брать показания с неё - не знаю, сколько может занять считывание показаний по шине.


В некоторых RTC есть режим "будильника" и внешний выход под него. В новых версиях STM32 тоже есть режим будильника в модуле RTC. В чем проблема его использовать? Что за камень то используется или планируется?
1843 432734
>>432335
Сделай таймер периодом в 100 мсек и в прерывании переполнения счетчика заведи инкремент uint32_t переменной. Тебе этого надолго хватит. 4 294 967 295 по 100мсек это 429496729.5 сек это около 4970 суток лол.
1844 432737
>>432282 А как кстати лучше считать время при нестабильном питании? Скажем вести отсчет наработки той или иной нагрузки.
Еппром же затрется до дыр, если его перезаписывать чаще раза в час. Ставить большой конденсатор по питанию, отлавливать просадку по питанию внешним компаратором с гистерезисом и выделять отдельную ногу под прерывание? Есть ли способ проще?
1845 432746
>>432737
Ионистор не спасет отца русской электроники?
1846 432753
>>432746 Чем? Энергию на несколько милисекунд работы можно запасти и в электролите. Но вся остальная схема то не становится проще.
1847 432760
>>432737
Даташит референс мануал хоть раз открывал?
Во всех STM32 есть немного оперативной памяти, которая питается от вывода Vbat, который питает внутренний RTC. Вот и еби эту память перезаписями сколько хочешь.
Если совсем шиза одолевает - через тот же вывод PC13 можно аппаратно давать команду на стирание памяти в которую пишешь свою статистику что бы ее никто не стырил.. Не забудь при этом отключить отладку по JTAG и SWD. Вот смеху то будет..
1848 432764
>>432753
На короткий промежуток времени да. Я просто по старой работе помню что в DVD ресиверах Samsung часы и энергозависимая память с пользовательскими настройками питалась ионистором. Можно было выключать из розетки на довольно долго, ни часы, ни настройки не сбивались. Давно это было. Бывало эта система сбоила, резистором разряжаешь ионистор и включаешь-работает. Но часы с нуля и все настройки по дефолту.
1849 433042
>>428279
Сойбой ты, ска! Иди пиши на говне JS! И последнюю версию гейакта не забудь, фем-квир-куколд!
1850 433051
Тупые постсовковые псевдоинженеры с кучей извращенных поверий и маняфантазий по теме. Говно вообразившее бог знает что о себе.
1851 433072
>>433051
Ты чего порвался?
bobcat112233[1].jpg361 Кб, 1200x630
1852 433415
>>339005 (OP)
Реально ли с использованием __qadd16() ускорить суммирование элементов массива, длина которого не всегда кратна двум?
Суммирование сейчас:

int16_t *signal;
uint32_t sum = 0;
for(int i = 0; i < count; i++) sum += signal;
1853 433417
>>433415

>__qadd16()


Я не настоящий сварщик, но ведь прийдется сначала преобразовать элементы массива в джва массива вида val[x] -> val[x][15:0] и val[x][31:16] ?
1854 433420
>>433417
Ебать я опозорился. Оно само раскидывает.
1855 433461
Котаны, поясните за Black Magic Box.
В чем минусы, подводные?
Закинул на blue pill, в принципе идея понравилась, ф103 л053 увидел без проблем л433 не захотел SW-DP scan failed!
1856 434008
Пиу, радач.
Начинаю перекатываться с avr-ок на stm32, все нравится кроме одного: гребаная STM32CubeIDE не умеет без пердолинга в С++. Самое смешное, когда я запускаю IDE и создаю проект с нуля, выбираю камень, указываю что хочу C++ проект блеать, настраиваю периферию в кубике, и....генерируется сишечка. Вот что у этих долбоебов-разработчиков IDE в голове? Хлебушек? Нахуя опция "хочу С++ проект" если один хуй генерится С? Чтоб блять у них всегда в пачке с надпитью "кофе" пурген был.

Посоветуйте IDE чтобы можно было нормально кодить на С++, мутить классы и тд. Да, можно и в STM32CubeIDE напердолить #ifdef __cplusplus extern "C" { и прочее, но что-то разочаровался я.
1857 434013
>>434008
ты в курсе, что стартап файл вообще на асме при любом языке?
1858 434015
>>434013
И при чем тут asm? Что сказать-то хотел?
1859 434016
>>434008
Тоже подумываю о перекате с простых 8 битных авр на стм32. Расскажи, какие подводные камни встретил? Почему выбрал именно эту среду разработки? Ебля с ООП на крестах обусловлена объемами кода?
1860 434017
>>434008

>Посоветуйте IDE


В какой IDE писал для AVR, в той и для STM32 можно попробовать.

>Да, можно и в STM32CubeIDE напердолить


Что? Этож эклипс обыкновенный, с плагинами. Откуда в эклипсе могут быть проблемы с цпп? Да там практически любой компилятор любого языка программирования можно использовать, если мейкфайлы использовать.
1861 434019
>>434015
бери да пиши на с++ поверх того кода, что тебе сгенерировали, тупо удаляешь main.c и добавляешь main.cpp с static int main
1862 434176
>>434017
Не работает так. Решил я замутить библиотеку. Создал cpp и chh файлики, написал в нем слово "Class" а компилятор сказал что такого слова не знает. Гугл дал понять, что в КубоИде можно напердолить настройки компилятора чтобы и С и С++ понимал, но это и есть пердоленье.
Я хочу чтобы в пакете с надписью "хлеб" был хлеб сука, а не дрожжи мука и стакан воды. Если блять кодогенератор спрашивает "Хотите С++ проект?" то ответив "Да" я ожидаю получить С++ проект с поддержкой всех функций С++, а не обосрамс компилятора, который слово "Class" не знает. Понимаешь суть моей претензии?
1863 434178
>>434019
Я так делал. И когда мне понадобилось добавить еще и RTC, то после тыканья в кубе и кодогенерации снова появились main.c Можно конечно завести два проекта: один весь такой С++, а второй чисто для натыкивания в кубе чтобы смотреть инициализацию периферии. Но нахера такое в 21 веке? Вот я и ищу варианты, чтобы проект С++ был действительно С++. Я и пердолиться готов, если в аннотации к ИДЕ будет написано "Готовься пердолиться, вот инструкция", а не как в говнокубе.
1864 434186
>>434176

>Понимаешь суть моей претензии?


Не понимаю зачем вообще сразу хвататься за IDE. Пиши мейкфайлы, в нормальных проектах под твои восьмибитные ардуины так и делают. Смотри к примеру код известного тестера транзисторов или код grbl, все по человечески сделано, также и ты делай.
image.png915 Кб, 650x739
1865 434187
>>384956

>Если надо будет за раз передавать больше 8 байт - то готовься к пердолингу


Уже давно умные люди придумали CAN FD, с возможностью передавать за раз до 64 байт, а тебя в твоей избушке и вчерашний шторм не разбудил.
1866 434228
>>434176
Если бы было всё и сразу, то программисты были бы не нужны.
1867 434290
>>384956

>твое дерьмо будет ГАРАНТИРОВАННО доставлено единым куском.


А в RS-485 разве не так? Хозяин по очереди опрашивает рабов на линии, и сообщение от нужного раба будет Г А Р А Н Т И Р О В А Н Н О доставлено единым куском до мастера. И никакого авторазрешения коллизий для этого не нужно.
1868 434300
>>434290
RS-485 это ебучий интерфейс.
Мимокрок.
1869 434345
>>434290
RS485 это просто интерфейс. Грубо говоря микросхема и уровень напряжения сигналов. А какой протокол ты этими сигналами реализуешь - зависит от тебя. Например:
1 Modbus RTU/ASCII по RS485 просто отправляет пакеты. Программисту приходится самому решать, как в мастере реализовывать проверки, что записанные данные действительно записались (считать в следующем цикле и сравнить). Приходится решать как контролировать потерю связи, хотя в протоколе есть какие-то коды функций при возникновении ошибок, но редко кто из производителей реализовывает у себя полный модбас со всеми функциями. Приходится самому решать как реализовывать очередность запросов если мастеров несколько.
2 Profibus DP тоже работает на шине RS485, но там уже на уровне протокола реализованы все недостатки модбаса выше. Написать самому такой протокол на МК я хз надо каким быть уберкодером. Такие люди врядли будут задавать вопросы про протоколы связи.
1870 434361
>>434290
Скажу очень коротко, дальше сам додумывай.
В CAN фреймы с адресом получателя и полем данных от 0 до 8 байт, которые передаются одним куском без каких-либо пауз внутри особо умные припомнят 1 бит тишины когда рабы должны ответить что поняли Господина что гарантирует доставочку одним куском, а не склейку из кучи рассыпающихся отдельных байтов.
В RS485 (UART) передача идет по 1 байту. Пролетающий мимохуй может дристануть левым байтом в линию и все поломается. В CAN же после определения приоритета (разрешения коллизий) всякая шпана затыкается и только Господин вещает в линию, а рабы молчат в тряпочку и слушают.

Совсем тупо - посмотри на Ethernet. Там фреймы по 60+4 байт. Минимум. Даже если тебе надо передать 1 байт полезных данных - у тебя всегда будет передаваться фрейм из 64 байт. Если надо больше данных передать - фрейм может быть расширен до 1518 байт, из которых вычтя служебное говно остается около 1450 байт под полезные данные которые будут доставлены одновременно и без разрывов. Если же 2 килобайта данных слать - то данные прилетят в 2 захода - 1450 байт и 550 байт.

Суть уловил? CAN как и Ethernet - единая неделимая пачка данных передается за раз в отличии от рассыпчатых байтов в RS485 (UART).
1871 434400
>>434361
Чето сложно предлагаешь.
Я бы ебашил таки Modbus, ибо:
1 протокол отлично описан и стандартизирован
2 много промышленный датчиков его умеют
3 проблемы лишних сигналов/байтов/пердежа в линиях решаются CRC
4 сам интерфейс устойчив к наводкам за счет передачи по витой паре.

Но блять это уже какая-то промышленная автоматизация получается.
1872 434703
Решил вактиться из АСУ в Embedde и начать с STM32, среда программированияSTM32CubeIDE. Так вот вопросик - есть ли годные видосы с обзором самой среды программирования? Не как поморгать условным светодиодом, а именно обзор структуры среды и всего такого?
1873 434708
>>434703
Это же эклипс, не лезь, оно тебя сожрет
1874 434736
>>434703

>Решил вактиться из АСУ в Embedde


Так надо наоборот - разобраться, как всё работает в ембедед, а потом идти в асу.
В embedded всё печально с зп-хой и карьрным ростом.
1875 434737
>>434300
CAN это не менее ебучий интерфейс.
1876 434755
>>434737
Это еще и семейство протоколов. 485 ничего кроме интерфейса не подразумевает.
1877 434756
>>434703
Короч. Предлагаю чего, могу в личке помочь с вкатом в МК за помощь с пониманием АСУ ТП.
Я в нем вообще ноль, абсолютный, но интересно всегда было.

В МК я далеко не профи, прям сильно, много дыр и нехватки знаний, но даже могу немного в коммерческую разработку(ага, унитазы автоматизирую).
Не ардуинщик
1878 434786
>>434756
асутп изи после ембеддед, покупаешь овен на кодесисе (только с прошивкой через езернет типа такого https://owen.ru/product/plk100_150_154, ком-порт прошлый век),осваиваешь, у них все разжевано, на русском и куча примеров, потом уже покупаешь на авито б/у или китайский клон сиеменс/AB и осваиваешь его.
модули расширения эмулируешь компом, благо эмулей модбаса на комп хватает
1879 434805
>>434786
Мне больше эдакая общая вводная и вводная о окружении нужна, чем непосредственно частности.
Вообщем не о том, как программировать ПЛК, а о том как работать на профессии.
1880 434813
>>434805
сидеть у тендерщиков собирать шкафы или сидеть на заводе чинить гаечным ключом всё, что сломалось?
1881 434818
>>434805
Есть останки железок (модули ввода 7000 серии от ICP DAS) и сервер телемеханики от ЦентрЭнергоАвтоматика. За сисечки-писечки можно достать STM32 и попробовать сделать устройство, отвечающее по протоколу DCON или Модбасу. Есть шлюз CANOPEN в DCON ( https://icp-das.ru/catalog/i-7231d ). Оно тебе надо? Ну посмотришь, потыкаешь как оно на минималках настраивается на конкретном оборудовании, а дальше?
1882 434822
>>434813
Чуточку менее обобщенно.

>>434818
Не понял вопроса, это оффер?
1883 434823
>>434822

>оффер


Маркетолог не палится? Да, оффер без призыва к действию и ограничения по срокам.
1884 434873
>>434756
Я только с гОвеном -то и могу помочь. Живу в ебенях, нормальные вендеры нас стороной обходят, поэтому клепаем автоматику для ЖКХ на овне и сегнетике, скоро мб попытаемся на сименс лого. Но без нормального сотрудничества с вендерами и продовацами кад-сисметам ничего не добиться. работа на пиратском софте удручает.
f411.png275 Кб, 500x500
1885 435789
Кто-нибудь пользуется платами STM32F411CE с алика?
Внешне, кстати, ультраняшные.
1886 435790
>>435789
Заказал ради тайп си после видоса, лежит.
https://www.youtube.com/watch?v=QCdnO43RBK4
Что с ней делать не знаю да и не умею, в STM32 только начинаю разбираться.
1887 435813
>>435789
O kurwa! Да тут же тупезь!
1888 435823
>>435789
Что вы делаете с 256/512кб прог флэша? Мне за более 10 лет махарай-строя атмеги с 8 кб лишь несколько раз не хватило, 16-32 кб меги выручили. Это же нереально высрать столько кода, кроме как всякие картинки, иконки, шрифты и аудиозаписи в памяти хранить.
1889 435836
>>435823
Питон можно установить туда, как вариант. Будет даже маловато.
Там же на обратной стороне есть посадочное место для spi флешки ещё.

https://github.com/micropython/micropython/tree/master/ports/stm32/boards
1890 435838
>>435823

>кроме как всякие картинки, иконки, шрифты


/this
1891 435888
>>435849
Иди нахуй, анимэпидар сраный.
1892 435900
>>435899
Да все уже поняли, что ты не умеешь в оптимизацию.
1893 435913
>>435909

>В курсе хоть, чья цитата


Ты такой умный... Это всё от турбопаскаля?
1894 435917
>>435838
>>435823
Как вариант, звуки пук для последующей сигнализации каких-либо событий пора смывать говно в бимбоунитазе.
1895 435918
>>435849
>>435899
>>435909
Анeме - ето гомно! :P

макак скриптопердольный, уходи, пожалуйста, обратно в свой жс/питон/веб/сосаниепиписьки тред
1896 435924
>>435909
Вот зачем выебываться? Ответь на вопрос >>435823, приведи пример и все.
1897 435926
>>435925
Чувак, ты можешь конкретный пример привести?
13716625892037859148.jpg12 Кб, 193x261
1898 435928
>>435926
Дилдодрон с гигом звуков из хентая и гачи-ремиксов на sd-карте, управлением коптером, ИИМ + GPS, камерой, дилдо с подогревом, и анимированным лицом Черного Властелина на 6" lcd.
1899 435931
>>435926
Влезу в разговор
У меня устройство с двумя МК, которые непрерывно общаются по modbus между собой на высокой скорости.
Прикреплен графический монохромный дисплей 128*64 с меню, которое содержит более 50 экранов
На каждом МК есть внешний rs-485 для внешнего modbus с несколько десятков регистров
На главном МК висит sd карта с fatfs в которую пишутся отдельные осциллограммы с каждого МК по 2000 точек (2 байта точка) по срабатыванию и отпусканию сигнализации, при этом почти одновременно может сработать до 4-5 событий, и все надо успеть сохранить и записать.
В ту же карту пишутся события в архив событий, одновременно может появится скажем до 10 событий
При этом на каждом МК со скоростью 50кгц крутится цифровой фильтр и расчеты действующий значений пульсаций тока и напряжения

Наверное можно умудриться уменьшить раз в 5 код и запихать все это в 8кб, но зачем заниматься без необходимости таким геморроем?
1900 435936
>>435928
Обычный модульный проект уровня Ардуино. Не увидел чем тут хвастаться, весь код заимствован.

>>435931
Ких фильтр хоть и требует много процессорного времени, сам по себе вряд ли больше ста строк кода занимает. Остальное, согласен, требует много места.

Короче, вывод: много низкоуровневого кода нужно если контроллер выполняет много разных задач.
1901 435938
>>435923
Анимешникговноед, я тебе напоминаю, что ты, ебучая линуксопрыщеблядь, что ты пришло в тред к господам электронщикам и сереш тут. Ещё раз, уходи в свои хипстерские скриптотреды отсюда.
1902 435939
>>435931
Спасибо за пример.
Это какой-то промышленный регистратор данных?

Если этот проект под подпиской о неразглашении, то не отвечай, лол.
1903 435949
>>435939
Ну почти. Контроль параметров на аккумуляторной батареи 220в для подстанций
1904 435953
>>435931

>Наверное можно умудриться уменьшить раз в 5 код и запихать все это в 8кб, но зачем заниматься без необходимости таким геморроем?


Так вроде речь изначально шла про домашние махарайки, а ты описываешь промышленное решение. Зачем? Вроде бы такой вумный дядька, а логика хромает.
1905 435954
>>435949
Ни*уя себе.
Ну, анон, это круто. Респект тебе.
1906 435958
Кто-нибудь реализовывал прошивку или доступ к адресному пространству через SWD?
Где написано сколько в stm32 AP и какое у них назначение?
Нужно ли jtag переключать в swd при инициализации, или он по умолчанию?
1907 435969
>>435958
что за адскую хрень ты там творишь, что тебе не хватает функционала gdb для стлинка?
1908 435984
>>435969
Свой программатор делаю, у меня хобби такое.
1909 435985
>>435965
Конечно бомбит когда первоклашка в тред заходит.
1910 435990
>>435987
Чем бы дитя не тешилось.
1911 435991
>>435965
Stm32f373, взяли потому что нужен был сигма дельта АЦП. У меня по три канала такого АЦП задействовано у каждого МК для измерения одного параметра у каждого МК
Есть другой проект с f407 но там попроще с вычислениями, но надо будет реализовать usb host и наверно ethernet, плюс в идеале накатить freertos
1912 436012
>>435965
1. 32х битного
2. Нет, я больше по соляной кислоте
1913 436016
>>436015
Блять, точно, прочитал неправильно. Да, споймал меня.
А хуле ты хотел, час ночи, ты пидор. Я почти сплю.

И вообще, будь, пожалуйста, более мужественным в этом треде. Поменьше конченого ня-сленга и говнимешных тёлок, побольше маскулинности. Мы тут серьезные люди, а не педики какие-то.
1914 436072
>>436070
Ты делаешь эту борду менее унылой, анимешная аватарка :3
1915 436074
>>436072
Спасибо тебе добрый анон. Теперь я знаю за что кинуть репорт.
1916 436096
>>436074
Кого ты там репортить собрался, клоун анимешный? Тебя самого уже зарепортили.
1917 436106
>>436096
Мимо, я против оффтопа и аватарок, хоть и тоже анимешник.
Безымянный.png7 Кб, 696x102
1918 436113
Не знаю где ещё спросить.

Передираю либу для SPI Flash, написанную для STM32, под другой МК.

Флешка: S25FL032P0XMFI011
https://www.cypress.com/file/196861/download

Пока удалось считать JEDEC ID.
Но чтобы что-то в неё писать \ читать - надо знать её параметры.

В либе заполняется структура, для имеющейся флешки поля почти неизвестны:
s25flxxx.BlockCount = ???
s25flxxx.PageSize = 256
s25flxxx.SectorSize = ???
s25flxxx.SectorCount = ???
s25flxxx.PageCount = ???
s25flxxx.BlockSize = ???
s25flxxx.CapacityInKiloByte = ???

Помогите, плез, найти значения полей.
Я нашёл только PageSize. Больше ничего в глаза не бросилось.
Screenshot20201017-094943Drive~01.jpg31 Кб, 720x155
1919 436137
>>436113
32 Мбит = 4 МБ = 4096 КБ
1 сектор = 64 КБ = 65536 Б
весь флеш/размер сектора = 4096/64 = 64 сектора всего
1 страница (page) = 256 Б
размер сектора / размер страницы = 65536 / 256 = 256 страниц на сектор

Судя по скриншоту размер блока строго в 16 раз больше сектора. Поэтому

1 блок = 1 сектор 16 = 64 КБ 16 = 1024 КБ
Кол-во блоков = кол-во секторов / 16 = 64/16 = 4

Попробуй, может правильно. Сам никогда не запускал флешки.
Рекомендую забить только числовые параметры, формулы не трогать пока.
1920 436148
>>339689

>Keil


Ебать ты багач, он же стоит несклько тысяч долларов.
1921 436212
>>436113
Бамп.

>>436137
Расчёт со скрина взят из либы. Либа написана для флешек W25Qxxx.
Они, в принципе, похожи: совпадают регистры / команды. Только вот организация может быть разной.
16005057942023.gif42 Кб, 220x124
1922 436214
>>436074
шиз, кекаю с тебя на весь дом:з
тебе нужно было репортить СВОИ посты, а не мои, дурачок:з
а теперь все узнали, что у тебя сильна-сильна пригорело:з
а позорные постики, которые ты понапостил тут, остались навсегда:з

РРРЯЯЯ МАМ 32кб НИНУЖНА Я СКОЗАЛ
1923 436530
Анончики, подскажите либу для WS2812B, чтобы работала на BluePill.

Порт FastLED отсюда https://github.com/evq/FastLED работает, но выжирает весь флеш нахуй (72МГц тактовой же, а он асм генерирует).
1924 436564
Ну вот мы и выяснили, куда тот анимечник девает 512 КБ памяти. 500 на управление светодиодами, остальное на логику программы.
15892090703410.png531 Кб, 602x699
1925 436599
>>436530
Пиши сам не выжирающее, ручками наставь нопов лично под свой проц в конце концов :з

>>436564
Бака >:с Умные няши не пользуются глупыми форками FastLED на норм чипах :з У блюпилл 64кб кстати, ты же даже этого не знаешь :р
1926 436601
>>436599

>У блюпилл 64кб


Не совсем так. Там 128 кб, только в документации этого нет и СТ соответственно не гарантирует работоспособность. Скорее всего STM32F103C8T6 это 103CB у которого провели не все тесты. Однако для разовой самоделки это скорее всего не важно.

>наставь нопов


Не лучше ли ПДП задействовать?
16003603436420.png94 Кб, 400x400
1927 436602
>>436601

>Не совсем так. Там 128 кб


>только в документации этого нет и СТ соответственно не гарантирует работоспособность


Это значит, что там 64кб, дурачок :з

>ПДП


Визжишь про память, бака, а оперативы тебе не жалко под твой DMA? Да и нахуя, сучичька? :з На нопах делаеца за полчаса от силы, ему хватит :з
1928 436604
>>436602
Я думаю, можно заюзать ПДП контроллер, НО "подкидывать" данные в буфер по чуть-чуть, по half-transfer (да или даже по full transfer и перезапсукать ПДП) (если нет подводных, конечно).
1929 436610
>>436602

>Это значит, что там 64кб, дурачок :з


У тебя детектор не работает, я тебе в первый раз тут отвечаю. А потом, как это может что-то значить для мигалки светодиодами, да еще на китайской плате в которую китайцы могут припаять вообще что угодно? Китайцы тебе вкорячат в "блюпилл" свой клон с кривой маркировкой вместо STM32, о каких гарантиях вообще можно говорить?
Предполагаю что такие нездоровые фантазии у тебя от японских мультиков.
1930 436613
>>436604
Пример именно такой вроде был у самих стм. Сомнительная хуйня, слишком много ебли, если новичку в реальный проект.
1931 436617
>>436613
Хм. Ну да, ебля тут 100% будет.
Мб, тогда таймеры + isr (в них и задавать значение для следующего бита значения)?

Да, я понимаю, в прерываниях работать не комильфо, конечно, но все же...
1932 436618
>>431107
>>431098
>>431049
Сижу под макосью, все работает. Кодится, компилируется, загружается, дебажится. Не понимаю, что там за проблемы у вас.
1933 436621
>>436618
Дрочую неистово не писюн. Сидел под факинтошем обратно хочу, все найс работало. arm-none-eabi-gcc работал на ура. st-flash (texane) тоже хорошо работал.
16015775518760.png284 Кб, 470x511
1934 436622
>>436617
Какой иср, лолачька, какие таймеры? с: Там же наносекундные интервалы, десу. :з Ты решил зайти сюда потралибасить, анончик, но это мы кекаем с тебя, глупенький :р
1935 436623
>>436622
А разве нельзя генерить интервалы по 400ns-800ns таймером, если камень тактировать 72МГц?
16000019910870.png305 Кб, 578x578
1936 436624
>>436623
Делай :3 Код принесешь покажешь
sage 1937 436651
>>436214
>>436599
>>436602
>>436622
>>436624
Зарепортил аниме-пидарасов.
1938 436652
>>339005 (OP)
В чём разница между видами плат Nucleo и Discovery(кроме цвета, конечно)? Какую лучше взять, чтобы поиграться?
1939 436655
>>436652
В нуклео как правило камень, пара светодиодов, кнопок и внешние интерфейсы типа usb и eth. А всё остальное подключаешь к гребёнке сам. На диско к этому набору ещё идут всякие акселерометры, дополнительная память, экранчики.
лазер.mp49 Мб, mp4,
1280x720, 0:35
1940 436657
Приветствую, радио-анон. Перекатился в стм с ардуинок, пилю всякое понемногу. Когда завел себе котейку (на двачах даже где-то тред был про выбор имени), запилил для нее игрушку. Тян зовет ее "Око Саурона" лол.
Два серво SG90 и stm32f030f4p6 двигают лазерную указку по траектории с рандомными точками. Котейка теперь довольна и не бесоебит по ночам.
16032709918630.jpg41 Кб, 447x589
1941 436658
images (1).jpeg8 Кб, 212x238
1942 436659
>>436657
Ебать охуенненько, анончик :з
Не думал и для тяначки сделать тоже игрушку какую-нибудь? :з
1943 436664
>>436659
Хммм...
А это идея, кстати, порадовать кого-то из своих подруг... ;3
1944 436693
>>436624
Будет время - попробую запилить. А так - работы дохуя + жизненных дел, эх.
1945 436721
>>436657
>>436659
>>436664

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

Носится кошка весело для вас, в тоже время она сама остается неудовлетворенной.
Это как заходить в дотку и сливать все катки.
1946 436748
>>436721
Ого... Окей, анон. Не знал про кошек...
Большое спасибо за предупреждение. Буду в курсе.

Добра.
16031441603660.jpg103 Кб, 640x775
1947 436792
>>436693
Хуя отговор очка, гречняша:з
Как до дела доходит - то собака у них сидит, то жопа не вытирается, то водка невкусная, то труханы прохудилися:з
1948 436814
>>436623
Можно и на 16МГц. Я так на Mega16/32/1284p делал на 8-16 линиях по 512 WS2812B.
1949 436822
Анончики! Есть одна плата 32F746GDISCOVERY. И дело в том, что она не запускается при питании от Mini USB, который по совместительству является разъемом для ST-Link. В мануале пишут, что после подключения разъема, плата запрашивает у пк повышенный ток и если он говорит САСАЙ, то плата и не получает питание. Так вот, можно ли как то заставить ПК давать разрешение? Знаю, что можно въебать джампер на ключе, который подает питание на всю схему, но может есть софтовый вариант?
1950 436829
>>436721
Можно, по идее, это в обратную сторону закреплять: поносилась кошка за указкой как следует — получила любимую нямку. Наоборот, будет ебанутая от счастья за лазером носиться, условный рефлекс же, как у собаки Павлова.
1951 436835
>>436721
Я в курсе, анон, но спасибо за предупреждение.
Лазер включаю минут на 10-15, не больше. Даже в проге МК таймер стоит отключаться через 15 мин.
А потом даю кошке реальную игрушку разодрать в хлам, клочки по закоулочкам, вот это все.
1952 436851
>>436792
Какая отговорочка, вась?
Вась, пойми, у других людей действительно есть работа и другие дела в жизни. Да, есть люди которые не смотрят аниме 24/7 как ты, а работу работают и жизнь живут! Прикинь!)))
1953 436852
>>436814
Да. Вот и я о чем.
Я не вижу, на самом деле, причин, по которым прям вот нужно исключительно херачить именно нопами и больше ничем другим.

Че-то мне кажется, что этот манямешник жирный тролль. Либо же потребление в аниме в таких количествах вызвало у него органические изменения мозга, лол
15910872799830.jpg38 Кб, 640x628
1954 436857
>>436851
Маничка, ты драматизируешь ситуацию, няш:з Есть няши, которые и работку поработать, и поняшиться под пледиком под аниме, и музачку послушать, и погулять, и стмку поковырять успевают:з И еще минутка остается свободная:з А ты, бака, даже стмку не можешь запрограммировать:з
1955 436861
>>436857

>Есть няши, которые...


Как же вы успеваете всё, блин... Научите чтоли...
мимо
1956 436862
>>436861
Так надо ставить перед собой более скромные цели, на уровне того чтобы посмотреть аниме и помигать светодиодиками. Тогда наверняка будешь успевать.
1957 436866
>>436857
В жопе у своего настоящего отца - соседа по лестничной клетке поковыряй, пидорас анимешный.

Что вобще, блядь, происходит? Где ебаный мочух?
1958 436869
>>436829

>поносилась кошка за указкой как следует — получила любимую нямку.


Так чего ты ждешь? Дорабатывай своего робота блять.
1959 436870
>>436835
Мне кажется это не много не так работает.
Что это скорее как когда пытаешься почесаться и не чувствуешь эффекта.
Но дело твое.
1960 436907
>>436857
В нормальном режиме - успеваю ещё и как.
Но у меня тут слегка авралы, шо по работе, шо по жизненным делам :'(
Зоэбало, но выберемся.
15993145654620.png680 Кб, 700x700
1961 436932
У меня тут сегодня старая блюпиллка нашлась на подоконничке, хорошая маленькая лампа на ней и на светодиодной ленте получилась (хорошо, что анончики напомнили). Разноцветная, сочная и няшная:з Можно позалипать теперь как-нибудь вечерком:з

>>436861
>>436866
>>436907
Хуя гречняшки закококали:з
А все элементарненько обстоит, никаких секретиков: кто больше делает - тот больше успевает, няши:з

>>436852
Можно и не нопами, анончик:з Но нопами легче всего, хуяк-хуяк и готов вариантик:з Я так и делаю у себя, на 72МГц времени вагон:з

>>436829
Хех мда, это хорошо, что ты не додумался стримики с донатами пилить. Вот это у неки случилось бы попадалово :с
1962 436956
>>436822
Хаб с внешним питанием используй, это подсветка экрана столько выжирает. Либо просто павербанк рядом в другой разъём воткни, либо через Y кабель.
1963 436963
Прихуел что в thumb нет даже загрузки регистра константой, пришлось макрос писать.
Ясен хуй если нет полноценных действий с константами, то любые битовые операции займут 2-3 регистра и 5-6 команд вместо 1 регистра и 1 команды.
Теперь ясно нахуя вам столько регистров.
В stm8 всего 3 регистра и их хватает, ведь я могу просто указать маску чтобы сбросить биты.

А сейчас вставил элемент в двусвязный список за 4 команды, как в x86, и должен признать, что этот ассемблер не безнадежен.
1964 436964
>>436963

>Прихуел


Почему тебя это удивляет? Это RISC а не CISC.

>ассемблер не безнадежен.


Зачем трогать ассемблер руками? Ну кроме как для общего развития и каких-то крайне редких случаев?
1965 436981
>>436964
Ассемблер проще.

В си нужно шаманить, учить как ведут себя какие-то васянские типы для каждой новой архитектуры, изучать флаги компилятора и линкера, изучать ебучее api стандартных библиотек, ебаться с переопределениями типов каждый раз, искать А КАК ЖЕ ТАМ В ЕБЕНЯХ определен адрес стека, а как же мне здесь прерывание определить, а что это за константы ебучие хуй поймёшь, если в даташите совсем другое что-то.

И вот ты лезешь в инклуды, лезешь в исходники. А жизнь проходит.

Все это совершенно лишняя для мозга информация для меня. Мне только светодиод подключить и пару простых протоколов реализовать.
Все эти сишные фишки типа доступа к массиву и циклов легко заменяются вызовами, если нужно.
Только арифметику в одну строчку конечно не сделаешь.
И код не перенесешь. Но код и на си так просто не перенесешь. Все равно весь проект перелопатишь.
1966 436983
>>436981

>Все равно весь проект перелопатишь.


Хорошо абстрагированный код вполне легко переносится.
1967 436984
>>436983
Ну да, вычисление факториала там.
Но во встраиваемых системах такого кода меньше чем аппаратно зависимого.

Все равно же садишься и делаешь обертки, обертки, обертки.
1968 436985
>>436984
Херню несешь. Какой код аппаратно зависим, что его так дохуя?
У тебя 90% драйвера занимают?
1969 436986
>>436981
Вот такая она, шиза.
1970 437000
>>436986
Я любитель, а не профессионал. Мне можно.

>>436985
Ну ок.
1971 437002
>>431051
В самом мк очень слабая подтяжка, на 100кОм обычно, она плохо работает с сильными помехами. Нужно внешнюю подтяжку делать резистором на 10к или меньше.
1972 437209
Кто-нибудь встречался с проблемами после компиляции с gcc/g++? У меня код с оптимизацией работает вообще неправильно. На UB проверял, вроде нету.
1973 437802
бамп
1974 437813
>>437209
Хз, я ассемблеро, но обычно советуют ставить volatile аппаратно зависимым переменным наподобие итератора цикла в задержках.
Давай подробности.
1975 437816
>>437209

>У меня код с оптимизацией работает вообще неправильно.


А не ассерты ли какие-то вкидываются у тебя? В которых ты по случайности вычисления делаешь в дебажной версии?
1976 437848
Подскажите китайскую за копейки плату типа blue pill но с экранчиком, батарейкой и энкодером на борту? Хочу сделать устройство, но не хочу разводить плату
1977 437852
>>437848
А с перламутровыми пуговицами тебе не подсказать?
1978 437853
1979 437881
>>437848
Собери из модулей что тебе нужно.
1980 437884
>>437853
Пизда
1981 437981
>>437848
Если ты не хочешь ничего разводить там, никаких плат там, то в этом треде тебе только с перламутровыми а ты в картинках загугли помогут.

Сорри, чел, за такой противный ответ, но тут, в тредах /ra/, собираются люди, которые любят конструировать аппаратуру. Добра тебе.

А если по делу - купи все по отдельности, соедини все проводами и разъёмами dupont, чего как маленький...
-2102175296986543880.jpg374 Кб, 700x700
1982 438082
>>437848
Из модулей, если дохуя быстро надо - возьми подходящие dip/soic/sop/sot макетки, спаяй на них недостающие схемы и подключи к bluepill, часто так делаю.
1983 438257
>>437981

>dupont


лол, так вот как ардуиновские провода называются
1984 438293
>>438257
Сам когда-то был в шоке. Лол.
1985 438595
>>438257
>>438293
>>437981
А ни у кого нет таблицы с названиями распространённых разъемов?
Я например эту хуйню всю жизнь PLS называл, по названию пап.
1986 438597
>>438595

>разъемов


При чем тут разъемы к одножильным проводам?
1987 438604
>>438595
Увы, нету :(
А источник знаний о названиях этих всех разъемов - процесс гуглежа, в т.ч. по картинкам.
1988 438610
>>438597
Что бы ты доебался.

>>438604
Жаль, мб кто еще кинет в треде.
1989 440863
>>438610
Никто не кинул.
16042471325450.jpg100 Кб, 554x768
1990 441127
Подскажите что смотреть кроме продукции ST?

Наваял говна, и оно не лезет в blue pill, флеша надо килобайт 300. У ST резко дороже становятся контроллеры, но вот например ESP есть вполне годные (но у меня код под ARM заточен)
Screenshot2020-11-26-17-14-48-077com.android.chrome.png103 Кб, 1080x2248
1991 441135
>>441127
Раз уж ты рассматриваешь китайцев и знаком с st
16053575149941.png1,3 Мб, 1280x959
1993 441174
>>441135
О, благодарочка!
1994 441175
>>441137
Надо чтобы распаяно уже было на макетках удобных в обиходе

>>441135
Не нашёл на алиэкспрессе
1995 441178
>>441175

>Надо чтобы распаяно уже было на макетках удобных в обиходе


Ардуинщик что ли? Ну тогда https://aliexpress.ru/item/1005001774599333.html
1996 441179
>>441178

>Ардуинщик что ли?


Погроммист, мне надо проверить что мой софт работает, а не готовую конструкцию собрать
1997 441180
>>441178
Еще есть Raspberry Pi Zero, в три раза дороже и не микроконтроллер, но тоже может сойдет для чего-нибудь.
1998 441181
>>441179

>Погроммист


Я не из этих.

>мне надо проверить что мой софт работает, а не готовую конструкцию собрать


А что тебе мешает этот софт запускать на компе? Учитывая что ты не написал требований к периферии. Или ты на ассемблере там все написал?
1999 441191
Итак, я скачал CubeIDE и помигал светодиодом через HAL. Ну вроде не сильно страшнее, чем на пердуине, но у меня осталось куча вопросов.
1. В чем отличие от ArduinoIDE? Мне например рассказали, что CubeIDE это CubeMX и Eclipse. Ну и вместо эклипса можно использовать любую другую иде, а куб вообще не обязательно использовать. Так что такое куб? Что за генерация кода после настройки ног?
2. Можно ли прошить бутлоадер на ту же блек пилку и заливать код через кубиде? Я в опциях загрузки видел только SWD и JTAG
3. Подкиньте какое-нибудь объяснение, как работает RTC и как его использовать
4. Что такое DMA, зачем и нужно ли мне париться, если я собираюсь программировать только с HAL, не дроча регистры?
2000 441209
Дамы и господа, надо бы перекат запилить.
2001 441210
>>441209
Хммм... Красная полоска бамплимита свалила. Отбой пока.
2002 441211
>>441210
Блять! Нет, я в глаза ебусь, сорян
2003 441227
>>441191

>1. В чем отличие от ArduinoIDE? Мне например рассказали, что CubeIDE это CubeMX и Eclipse.


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

>Ну и вместо эклипса можно использовать любую другую иде


Это тоже так, только стоит добавить что не обязательно использовать IDE, код можно писать в любом текстовом редакторе.

>Так что такое куб? Что за генерация кода после настройки ног?


Если ты сделал мигалку, то как ты мог не заметить, что куб нагенерил кучу кода? Это код для настройки периферии микроконтроллера.

>2. Можно ли прошить бутлоадер на ту же блек пилку и заливать код через кубиде? Я в опциях загрузки видел только SWD и JTAG


Там бутлоадер в масочной ПЗУ (не перезаписываемой) из завода, куда тебе еще один? Зачем вообще тебе это нужно, когда есть SWD? Разумеется никто не запрещает написать свой бутлоадер, который сможет что-то еще, например обновляться с SD карточки. Но тебе это зачем?

>3. Подкиньте какое-нибудь объяснение, как работает RTC и как его использовать


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

>4. Что такое DMA, зачем и нужно ли мне париться


Это штука, которая перекладывает байты или слова/полуслова из одной области памяти в другую, без участия ядра процессора, которое в этот момент может делать что-то еще. Например оно может автоматом перекидывать данные из периферии в память. Оно нужно в основном когда из периферии нужно забирать данные (или наоборот класть) очень быстро, когда по прерываниям можно не успеть.

>не дроча регистры?


А вот это зря. Ладно еще, может быть в самом микроконтроллере ты сможешь не касаться регистров, ну а подключишь что-нибудь через I2C или SPI?
Мне кажется тебе стоит как следует изучить ардуину для начала, чтобы регистров не бояться. Советую разобраться с регистрами и прочим в AVR, тем более что там не так много всего и поэтому это не сложно.
2003 441227
>>441191

>1. В чем отличие от ArduinoIDE? Мне например рассказали, что CubeIDE это CubeMX и Eclipse.


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

>Ну и вместо эклипса можно использовать любую другую иде


Это тоже так, только стоит добавить что не обязательно использовать IDE, код можно писать в любом текстовом редакторе.

>Так что такое куб? Что за генерация кода после настройки ног?


Если ты сделал мигалку, то как ты мог не заметить, что куб нагенерил кучу кода? Это код для настройки периферии микроконтроллера.

>2. Можно ли прошить бутлоадер на ту же блек пилку и заливать код через кубиде? Я в опциях загрузки видел только SWD и JTAG


Там бутлоадер в масочной ПЗУ (не перезаписываемой) из завода, куда тебе еще один? Зачем вообще тебе это нужно, когда есть SWD? Разумеется никто не запрещает написать свой бутлоадер, который сможет что-то еще, например обновляться с SD карточки. Но тебе это зачем?

>3. Подкиньте какое-нибудь объяснение, как работает RTC и как его использовать


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

>4. Что такое DMA, зачем и нужно ли мне париться


Это штука, которая перекладывает байты или слова/полуслова из одной области памяти в другую, без участия ядра процессора, которое в этот момент может делать что-то еще. Например оно может автоматом перекидывать данные из периферии в память. Оно нужно в основном когда из периферии нужно забирать данные (или наоборот класть) очень быстро, когда по прерываниям можно не успеть.

>не дроча регистры?


А вот это зря. Ладно еще, может быть в самом микроконтроллере ты сможешь не касаться регистров, ну а подключишь что-нибудь через I2C или SPI?
Мне кажется тебе стоит как следует изучить ардуину для начала, чтобы регистров не бояться. Советую разобраться с регистрами и прочим в AVR, тем более что там не так много всего и поэтому это не сложно.
2004 441257
>>441227

> Если ты сделал мигалку, то как ты мог не заметить, что куб нагенерил кучу кода?


Я кроме main.h не залазил в другие файлы

> куда тебе еще один?


Чтоб можно было заливать код через USB, без ST-Link

> ну а подключишь что-нибудь через I2C или SPI?


В ардуине обходился либами и тут надеюсь на то же. Я взял стмку для поделок, а не разбираться в устройстве микроконтроллеров
2005 441274
>>441181

>>мне надо проверить что мой софт работает, а не готовую конструкцию собрать


>А что тебе мешает этот софт запускать на компе?



Ничего, и я его там запускал первоначально в qemu. Но задача стоит написать под контроллер.

> Учитывая что ты не написал требований к периферии.



Один выход SPI и одна кнопка.
1.JPG101 Кб, 1131x697
2006 441448
На них же полётные контролёры отличные получаются,
и прошивка бесплатная.
Никто не пробовал делать?
2007 441587
>>441227

>точность будет так себе


А конкретнее?
2008 441617
Анончики, тут понадобилось прикрутить две фичи к stm32f429 на демоплате f4discovery: ворох датчиков 1-wire и rtc.
Не тратил еще кучу времени, но волосики на голове шевелятся от того что в интернетах пишут.
Итак, rtc. Обрезал страпы, запаял кварц 32768, провел инициализацию rtc. Часы идут, но после первого холодного запуска останавливаются через десятки секунд. После ресета кнопкой идут хорошо. Так же останавливаются от помех по питанию. Это что за нахуй за пиздец? Пишут что не все кварцы подходят. Честно, перепробовал десяток и в конце концов взял из совместимого списка, похуй. Да, конденсаторы к кварцу ок, все дорожки от проца к кварцу не длиннее сантиметра, лишних нет.

Второй вопрос по 1wire. А что, никто не написал легкоинтегрируемую либу для stm32?
Максимум что я нарыл - порт с ардуины, где очень болезненно надо настраивать задержки для ногодрыга. Ладно, почитаем корифеев. Говорят usart+dma - тема. Ок, ищу либу, вроде что-то есть, тянет лютые ардуинозависимости. Бля.
Читаю еще, на 10 странице форумов все приходят к выводу что usart не подходит, на морозе тайминги не те, и длина линии сильно падает. Нужен таймер+Dma, но решения не выкладываются. На 20 странице форумов приходят к выводу что 1wire протокол не удобный а значит не нужен, давайте ntc юзать.

Я не очень в экосистеме stm32 свободно плаваю. Это норма?
2009 441784
>>441448
На них опенсорсные подвесы сделаны, на плате Storm32 и других. Работают паршиво, однако. И здоровые они.
2010 442162
>>441617

Ну что же вы, стм32-боги, перекатите тред и дайте ответ, молю
2011 442166
Помогите ньюфагу. Пару дней назад пришла моя первая пердуинкастмка - т.н. blue pill, пытаюсь запустить на ней miniblink на libopencm3 ( https://github.com/libopencm3/libopencm3/opencm3-miniblink )
Скомпилировал, прошил - НЕ МИГАЕТ СУКА. Пробовал код из >>375829 той книги - та же хуйня.
Отладчиком увидел, что исполнение начинается с адреса 0x000000xx. Оказалось, в получившейся прошивке вторым словом какого-то хуя идёт не адрес reset handler'а, а 0x14.
ЧЯДНТ?
2012 442168
>>442166
Разобрался. Проблема из-за того, что по какой-то причине в самом начале прошивки оказывается секция .note.gnu.build-id. То ли их компоновочный скрипт её не учитывает, то ли флажок какой-то gcc забыли передать.
Пока что лень разбираться, просто закостылил мэйкфайл, добавив флажок -R.note.gnu.build-id для objcopy
2013 442304
>>442168
Просто используй куб и иар
image.png21 Кб, 361x376
2014 442307
Объясните тупому. Таймер работает без прескейлера на макимальной частоте (72 МГц).
ARR = 143, значит прерывания случаются с частотой 500 кГц. Переменные смотрю через live watch в IAR:
t1 = 28;
t2 = 100;
Вопрос: куда проёбываются 28 тактов перед первой строчкой в обработчике прерывания? Куда проёбываются 72 такта в куске кода с одним ифом и одним присвоением. Там даже ассемблерных строчек столько не набирается
2015 442337
>>442307

>Вопрос: куда проёбываются 28 тактов перед первой строчкой в обработчике прерывания?



Вызов прерывания не мгновенно происходит. Контекст сохраняется, ещё что-о там.
2016 442425
>>441587
У простых кварцев на 32768 Гц для RTC, будет точность около ±20ppm. То есть за сутки часы будут уходить максимум на ±1.7 секунды. У высокочастотных кварцев, от которых обычно тактируется микроконтроллер, точность почти такая же, чаще около ±50ppm. То есть RTC с простым кварцем не обеспечит большую точность, чем простой таймер.
При этом у отдельных RTC с TCXO, таких как DS3231, точность заявлена ±2ppm. Конечно можно прицепить простой TCXO без RTC к STM32, но это будет дороже чем DS3231 и потреблять будет немного больше.
Поэтому основное применение встроенного в микроконтроллер RTC это вывод микроконтроллера из спячки. Ну или если обычные таймеры все заняты.
2017 442445
>>442425
Хуйня опять какая-то.
Допустим, точность меня устраивает (часы нужны для суточного таймера, и погрешность в 5 мин не страшна). Да и подводить можно по сети. Что нужно - так это сохранение хода от бекап-батарейки и не тащить лишний корпус в плату.
И вроде бы все ок, но идет эта залупа не стабильно. Может я с инициализацией проебался, не знаю.
Вопрос: нахуя же столько задекларировано классной периферии, если она не работает толком и нинужна?
2018 442483
>>442445
Значит припаял что-то криво или не совсем то. Если не работает кварц, то поставь генератор, делов то. https://www.electronshik.ru/item/SITIME/SIT1533AI-H4-D14-32.768E Например.

>и не тащить лишний корпус в плату.


Вместо кварца с двумя конденсаторами ставишь одну микросхему с парой конденсаторов. Количество корпусов не поменяется.

>Вопрос: нахуя же столько задекларировано классной периферии, если она не работает толком и нинужна?


Не надо делать из-за какой-то ерунды трагедию. Выкини STM32, возьми еще что-нибудь, если эти не устраивают.
2019 442485
>>442445

>Да и подводить можно по сети.


Добавь настраиваемую коррекцию хода раз в час и всё
2020 442574
>>442483
То есть варианта разобраться и заставить работать rtc как оно задумано нет? Ладненько.
2021 442617
Никак не могу разобраться, почему прерывание не срабатывает.
https://pastebin.com/6cyRhi3N
Подключил ИК-датчик движения HC-SR501 к ножке B0, вроде бы всё настроил, но обработчик не вызывается, хотя через gpio_get сигнал считывается.
Где я объебался?

Один-в-один же с примерами, почему у них работало, а у меня — нет?
https://github.com/libopencm3/libopencm3-examples/blob/master/examples/stm32/f1/stm32-h103/exti_both/exti_both.c
https://github.com/StanislavLakhtin/stm32f103-libopencm3-exti/blob/master/src/main.c
2022 442626
st-flash 1.6.1
[!] send_recv read reply failed: LIBUSB_ERROR_PIPE
[!] send_recv STLINK_DEBUG_RESETSYS
[!] send_recv read reply failed: LIBUSB_ERROR_PIPE
[!] send_recv STLINK_DEBUG_READCOREID
ERROR common.c: Failed to read core_id
[!] send_recv read reply failed: LIBUSB_ERROR_PIPE
[!] send_recv STLINK_JTAG_READDEBUG_32BIT
WARN common.c: Invalid flash type, please check device declaration
Failed to connect to target

Всё? Доигрался?
2023 442635
>>442626
Удалось перепрошить только через openocd. Вдруг кому-то тоже понадобится:

>openocd -f openocd.cfg -c init -c "reset halt" -c "flash erase_address 0x8000000 32768" -c "flash write_image yoba.bin 0x8000000" -c shutdown -c exit

2024 443071
Анончики, одна проблема возникла при расчете CRC32, вообщем ситуация следующая: есть микроконтроллер российского гавнопроизводства, копия stm32, но без встроенного модуля расчета crc32, я написал прошивку для него, у этой прошивки с помощью обычных онлайн калькуляторов можно посмотреть контрольную сумму, то есть там используется полином crc32 ieee, моя задача прочитать память МК, в которую и была записана прошивка, это будет как раз массив uint32_t massiv[size]. Далее мне нужно вот к этому массиву применить расчет crc с использованием полинома crc32 ieee, для того чтобы я мог сравнить то что должно было быть записано в МК, с тем что там записано по факту.
Так вот, все работает, crc32 рассчитывается, но возникла проблема, как оказалось онлайн калькуляторы не используют чисто полином ieee, там какие то мутанты, поэтому единственный вариант это смотреть значение crc прям во время работы программы.
Ещё раз по порядку, я запускаю программу, там есть переменная которая хранит рассчитанную crc, затем я должен добавить в эту программу define с текущим значением crc, который я только что увидел, это и есть как бы эталон, но вот проблема, как только я впишу туда значение эталона crc, после перезапуска программы crc естественно изменится, так как новая строчка кода появилась.
То есть: пусть значение crc32 без добавления строчки с эталоном это Х, У значение crc32 с добавленным значением эталона. Я врубаю прогу, получаю Х, это значение Х я вписываю в эталон и при запуске значение Х меняется на некий У. И в программе я сравниваю Х с У и получаю нихуя, потому что У я не могу знать заранее, как и Х, я их узнаю только после запуска.
Вопрос: есть ли способ как-то заранее учесть в программе это, может есть какие-то алгоритмы?
2025 443083
>>443071
Upd: Проблема решена
2026 443086
>>443083
Как?
2027 443090
>>443086
Выделил место в конце eeprom, чтобы не затереть его прошивкой:
#pragma locate FuncCRC 0x8001FFC
Затем просто объявил константу с этим именем, записал в нее значение эталона:
const uint32_t FuncCRC = 0x1432C98
Читаю также память с адреса 0x8000000 до конца записанных байт и у них считаю контрольную сумму, при этом запись в конец флеш не меняет общую контрольную сумму
2028 443111
>>443071

>есть микроконтроллер российского гавнопроизводства, копия stm32


Что за контроллер такой? Любопытно
2029 443117
>>443111
1986BE91T
2030 443120
>>443117

>Ближайший аналог STM32F103x


>22 600 руб.


ЛОЛЧТО?! Серьёзно? Он ручной работы что ли?
2031 443179
>>443120
Он для военных целей предназначен, там высокая степень устойчивости к температурным, вибрационным и радиационным воздействиям
2032 443363
>>443120
Металлокерамика везде дорогая плюс наценка барыг, 1986ВЕ92QI в пластике 400 руб стоит.
2033 443438
>>443363

> 1986ВЕ92QI в пластике 400 руб стоит.


Дороже, конечно, чем стмка с алика, но всё равно круто, что хотя бы есть.
А где они продаются вообще?
2034 443729
>>443438
Не видел их в розничной торговле, скорее всего их только оптом продают. Да и зачем они вообще нужны, мк сделан очень хуево
2035 444072
>>443363
Он столько стоил может быть только до подорожания бакса в 2015. Последняя официальная цифра от производителя 700 с чем-то рублей, некоторые барыги продают, например, по 900.
https://ldm-systems.ru/catalog/milandr?cat=k1986be92qi&scat=mk
2036 444158
Подсобите, пожалуйста, свернуть формулы со скринов и скормить их компилятору gcc.

Надо получить RPM_A.

Если можно, то в двух вариантах: 1) кратко пошагово; 2) в одно действие.
2037 444445
Сап аноны, как можно достать программу, выполняющуюся на stm32?
2038 444676
>>444445

>как можно достать программу


откуда достать?
2039 444778
>>444676
Из платы
2040 445403
Приветствую радиоанона, да не охладеет жало паяльника твоего.
Есть stm32f103 и желание замутить машинку на пульте управления. Саму машинку сделать несложно: ШИМ для двигателей, датчики ультразвуковые для препятствий и поехало. Но столкнулся с проблемой пульта:
1 Блютус и телефон использовать не хочу т.к. 10 метров радиус действия, а я хочу побольше. И написать хоть какой-то вменяемый софт управления под андроид для меня пока оверкилл.
2 Можно взять два nRF24L01+ и еще один stm32f103, наколхозить самодельный пульт. Но где найти вменяемый корпус с кнопками, рычажками и хоть какой-то индикацией? Гугл показал, что некоторые умельцы используют старые джойстики от XBox/PS, кто-то пилит самодельную коробку, но этот вариант стоит рассматривать от безысходности.
3 Готовые пульты для радиомоделей фактически вещь в себе: пульт общается с родной платой, на которой уже есть выходы под управление моторами, сервами руля и тд. Но это готовый конструктор с ограничениями: я не могу поменять логику работы, добавить/убрать датчики, добавить/убрать передаваемую инфу и тд.

Есть ли в природе пульты/заготовки, вида "вот тебе корпус+кнопки+контроллер+модуль связи, програмировай"? Или пульт, который уже запрограммирован и есть описание его радиообмена? Типа "частота такая-то, канал такой-то, ключ сопряжения такой-то, на принимающей стороне нужен будет радиомодуль такой-то. Вся посылка вмещается в байт, нажал кнопку на пульте - улетела "1" в таком-то бите".

Или я только что описал вариант 2?
2041 445498
>>445403

>И написать хоть какой-то вменяемый софт управления под андроид для меня пока оверкилл.


Можешь наговнякать на tcl/tk под androwish, с гуем в сотню строк выйдет.
2042 445558
>>445498
или mit app inventor
2043 445856
>>445403
4. 433МГц приёмник и передатчик OOK
изображение.png13 Кб, 692x134
2044 446444
Есть код под stm32l0xx, пытаюсь перенести его на stm32f1xx

SET_BIT(FLASH->PECR, FLASH_PECR_ERASE); / Set the ERASE bit /
SET_BIT(FLASH->PECR, FLASH_PECR_PROG);/ Set PROG bit /

CLEAR_BIT(FLASH->PECR, FLASH_PECR_PROG);
CLEAR_BIT(FLASH->PECR, FLASH_PECR_ERASE);

Ошибки пикрил. Что поменять надо, чтоб оно работало?
image.png12 Кб, 493x104
2045 449886
Просто гениально. Ни разу, блять, не запутаться
KdPiO8nhE9E.jpg49 Кб, 489x600
2046 450861
2047 451998
Господа, куда блять исчезли почти все STM32F0/F3/F4 да блять почти все их магазинов? На LCSC вообще дичь, цены раза в 3-4 выросли и по наличию залупа. Что вообще происходит, может кто в курсе?
image.png858 Кб, 625x900
2048 452469
>>451998
Может ли stm майнить?
2049 454746
Ребяточки, извините за глупый вопрос, для контроллеров только с99 версия будет нужна? Новые стандарты (с11) не нужны?
2050 455188
>>454746
Любой, какой твой компилятор поддерживает.

>Новые стандарты (с11) не нужны?


В 11м стандарте не так много добавили: https://ru.wikipedia.org/wiki/C11
2051 459448
во истину Попов!
2052 463441
Если есть blue pill, то должен же быть ещё и red pill для базированных инженеров?
2053 464004
Здравствуйте, дорогие радиоаноны!
Вкатился две недели по воле случая в stm32.
Использую SPL и IAR на stm32f407vg плата дискавери. Изучаю каждый интерфейс для обмена данными. Дошел до USART'а. Плату подключил с помощью USB TTL к компу и отправляю данные с stm32. Всё отправляется хорошо, но только на низкой скорости. То есть ставлю baud 1200 — всё работает. Ставлю 9600 — нихуя не работает.
Погуглил, понял, что надо как-то настроить частоту шины с помощью делителей, но нихуя не понял как...
Код не могу скинуть, он остался на работе. Но писал строго по примеру из библиотеки, никак не настраивал частоту, т.е. идёт стандартная 168 МГц, определенная в systemconf.
Как мне вообще поменять частоту? Как подобрать необходимые делители?
Запутался, пацаны...
Если у кого-то есть код, кидайте, буду очень благодарен!!!
2054 464009
>>464004
Открываешь даташит. Находишь раздел про уарт. Находишь там формулу расчета скорости передачи. Вписываешь коэффициенты в регистры.
Для упрощения, там уже должны быть таблицы с готовыми коэффициентами для стандартных скоростей.
2055 464318
>>464009
Спасибо, но, как оказалось, проблема была не в скорости. Перенастроил на USART2 вместо USART1 и всё заработало. Я так понял, что USART1 как-то конфликтует с USB портом на плате. Как именно хз, мне это сказал мой куратор — я стажируюсь в отделе разработки.
Так или иначе, всё заработало...
Вот потом мне дали следующее задание: намутить USART с DMA. Ну я подумал, ну всё легко, потому что уже настраивал SPI с DMA и всё работало.
Я оставил настройки USART'а без DMA и делал всё строго по примеру из библиотеки, переделывая под себя. И вот такая хуйня — приходит неверное количество бит. Более того, вместо моих данных приходит мусор. Разумеется, DMA настроил правильно, по референс мануалы. Около часа залипал в код и никак не нашел ошибку, гуглил и прочее прочее.
У кого-нибудь есть варианты, что не так?
Код могу завтра кинуть
2056 464319
>>464318
куда устраивался на стмки?
2057 464336
>>464319
История такая:
Заканчиваю местный вуз по специальности радиотехника. Я очень бедный и ради прикола закинул резюме на хедхантер. Причем, в резюме не было ни слова о программировании мк, потому что я этим никогда не занимался, но схемотехникой более менее владею и основы цифровой электроники тоже знаю. В основном, я надеялся на матлаб, потому что много там работал.
Неожиданно где-то через месяц написала HR строительной компании, говорят им нужен инженер программист в отдел разработки. Я говорю ок, только я ведь нихуя не умею. Она говорит, не страшно — мы научим. Ну я думаю, похуй, больше меня никуда не звали.
Сделал тестовое задание, прошел собеседование. Очень сильно удивился, что взяли.
Ну а в первый день дали плату и говорят: делай что хочешь у тебя весь интернет — изучай, будут вопросы — спрашивай, мы поможем. Ну и хуле я так по-тихонечку изучаю. Сначала было тяжело, но потом я начал постепенно постигать, научился проектировать и разводить печатные платы. Меня никто никуда не торопит, никто на меня не кричит, никто от меня ничего не требует — это плюс. Зарплата 15к во время стажировки — это минус. С другой стороны, я ведь просто учусь, а мне за это ещё платят. После стажировки обещают 40к, но мне кажется, я не справлюсь. Даже, если и так, это опыт.
2058 464375
>>464336
Бля, охуенно
2059 464527
>>464318
Странная херня, скинь глянуть когда нибудь.
Я в свое время dma тоже долго не мог переварить, но ничего, справился.
Если есть, кто тебе подсказывает на работе и даёт наставления это сразу плюс. Я таким же методом обучался после универа нихуя не имею знаний, повезло поработать с нормальным спецом, который говорил что делать и дальше изучать. 7ой год работаю уже.
2060 464587
>>464527
Я в итоге разобрался. Как оказалось, код был правильный, дело было в настройках самого проекта. Я там добавил лишнюю папку в include. Я убрал её и всё заработало. Как и обмен между двумя платами, так и по rs 232
единственное, не разобрался с прерываниями юсарта и дма.
Дело вот в чем, чтобы сделать функцию, отправляющая пакет данных (100 байт условно), нужно в этой функции включить дма и разрешить запросы от юсарта на передачу. А потом нужно выключить дма и запросы, очистить флаги о передаче и вроде всё. Я настроил прерывания по окончанию передачи и для дма и для юсарта. Вроде всё должно работать, но если в теле main вызвать эту функцию два раза подряд, придёт только один пакет. Если поставить точку на этой функции, то компилятор будто ее не видит и просто проскакивает. Делать функцию __IO и Volatile тоже пробовал. Но!!! если поставить точку именно в прерывании, то оно срабатывает раза и отправляется два пакета, как и должно быть. То есть, будто всё происходит настолько быстро, что компилятор не успевает запустить прерывания, что невозможно в принципе. Разумеется, в прерываниях ставил while(get_dma_status), чтобы код не шел дальше пока флаги не сбросятся.
Кароче, странная хуйня
Тред утонул или удален.
Это копия, сохраненная 24 июня 2021 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /ra/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски