[Ответить в тред] Ответить в тред

Check this out!


<<
Назад | Вниз | Каталог | Обновить тред | Автообновление
160 | 38 | 51

STM32 тред Аноним 02/10/18 Втр 12:20:39  339005  
image.png (322Кб, 600x438)
image.png (398Кб, 600x487)
Хочу вкатится в разработку на stm32. Сначала стоит вопрос выбора отладочной платы. Что лучше взять: NUCLEO-F401RE или NUCLEO-F303RE ? Или может вообще, что то другое.
Нужно максимальное количество АЦП для обработки звука.
Какую среду разработки лучше использовать?

Аноним 02/10/18 Втр 12:58:34  339010
>>339005 (OP)
Тут есть ARM-тред, в котором ты вполне мог бы задать свой вопрос. Хотя действительно есть некоторый смысл в раздельных тредах.
>Или может вообще, что то другое.
Именно. Ты бы посмотрел какие АЦП используют для звука. У тебя в компьютере сколько разрядов в АЦП для звука? А сколько в STM32?
>Какую среду разработки лучше использовать?
Это не не оказывает существенного влияния на процесс вкатывания. Но если спрашиваешь, то это будет в самый раз: https://www.instructables.com/id/Quick-Start-to-STM-Nucleo-on-Arduino-IDE/
Аноним 02/10/18 Втр 13:08:35  339011
>>339010
>А сколько в STM32?

Написано что 12 разрядов. Для моих задач, запись голоса с низким качеством, вполне должно подойти
Аноним 02/10/18 Втр 13:22:18  339014
>>339011
выбирай stm с dsp
Аноним 02/10/18 Втр 13:32:37  339015
>>339014

А они разве не все с DSP? Если я не путаю это просто набор инструкций процессора?
Аноним 02/10/18 Втр 13:55:33  339016
>>339015
Нет. С тчк зрения программиста.
Аноним 09/10/18 Втр 00:47:44  339689
2014-03-27 11.2[...].jpg (2879Кб, 2592x1952)
2015-09-18 17.4[...].jpg (2496Кб, 2592x1952)
2016-02-12 18.2[...].jpg (2958Кб, 1952x2592)
2017-05-20 02.0[...].jpg (1622Кб, 2592x1552)
>>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, которая будет строить график изменения значения наблюдаемых переменных хоть целый день.
Аноним 09/10/18 Втр 13:41:48  339752
>>339689
А зачем тебе куб нужен, только ради схемки тактирования и пинов? Я просто сразу с регистров начал и Keil и не понимаю зачем вообще эти говнокубы и говнохалы. Единственное - приходится читать исходники хала и комментарии ибо бывает сложно понять что и в какой последовательности врубать для того чтобы врубить какую-нибудь периферию ибо в RM не всё так понятно расписано.
Аноним 09/10/18 Втр 15:29:58  339757
>>339015
>А они разве не все с DSP? Если я не путаю это просто набор инструкций процессора?

Нет, только F4 и F7
Аноним 09/10/18 Втр 15:58:43  339762
>>339752
stm32f7 вне кубика дюже сложно будет сконфигурировать
Аноним 10/10/18 Срд 00:02:16  339821
>>339752
Ради инициализации периферии, меня это заебывало на AVR - постоянно лезть в мануал потому что на каждой атмеге свои регистры и комбинации флагов для одной и той же настройки частоты шима или параметров uart. Потом то я надрочился с ними и запомнил, но когда перекатился на stm, решил ну его нахуй пусть генерит - за 3 года никаких проблем не было, тем более HAL'овские функции довольно хорошо написаны, изи понимать что там происходит когда дебажишь. А в кубе все задал, оно сгенерило функцию с инициализацией двух десятков параметров и тебе не надо лезть каждый раз в мануал на 300 страниц если надо что-то изменить, особенно это касается всяких DCMI, FMC, встроенного LCD-TFT контроллера и прочего.
Аноним 10/10/18 Срд 00:59:39  339829
photo2018-10-03[...].jpg (181Кб, 960x1280)
video2018-10-03[...].mp4 (1203Кб, 360x640, 00:00:09)
Взял себе такую платку. Какие подводные?
Аноним 10/10/18 Срд 02:16:42  339839
>>339829
Открыл шебм, изображение на экране посыпалось, все в полоску стало, пришлось ресет жать, теперь стремно снова открывать, что это за хуйня была.
Аноним 10/10/18 Срд 05:51:29  339843
WP2018030522422[...].jpg (1036Кб, 3241x1827)
>>339829
>Какие подводные?
Поморгаешь диолдами и положишь на полку. Анус ставлю.
мимовладелец 429-discovery
Аноним 10/10/18 Срд 06:23:54  339844
От треда у меня сложилось впечатление, что вы тут обсуждаете тысячекратно оверпрайснутые аналоги ардуины.
Лучше бы накидали литературы, желательно на русском. А также плюсы-минусы разных средств разработки.
И все это желательно с ориентиром на массовую дурино-подобную плату с STM32F103C8T6, дабы вкатиться мог любой бомж.
Аноним 10/10/18 Срд 08:09:53  339847
>>339844
Тебе для чего? Как можно быстрее что-то сделать или основательно вкатиться? Если первое - бери ардуину.
>литературы, желательно на русском.
1) Без книг по Си по любому не обойтись. Конечно можно это заменить каким-то кратким курсом, но тогда знания останутся поверхностными. Для начала микроконтроллеры можно вообще не трогать, а примеры с упражнениями компилировать под винду (или что там у тебя).
Хороших книг тут две:
- Подбельский и Фомин http://publ.lib.ru/ARCHIVES/P/PODBEL%27SKIY_Vadim_Valerievich/_Podbel%27skiy_V.V..html
- Керниган и Ричи. http://publ.lib.ru/ARCHIVES/K/KERNIGAN_Brayan_Vil%27son/_Kernigan_B.V..html
Но в этих книгах есть существенная проблема - не рассматриваются нововведения C99, без которых (хотя и совсем малой части) для микроконтроллеров не обойтись. Об этих нововведениях нужно где-нибудь прочитать, хотя бы статейку нагуглить.
2) Нужно что-то для понимания того что такое процессор. Нужно понимание о том что такое система команд, гарвардская/фон-неймановская архитектура, CISC/RISC и прочее. В рамках этого пункта, для общего развития, неплохо было бы разобрать систему команд какого-нибудь простенького процессора и написать десяток строк на ассемблере. Тут я не знаю какую литературу советовать.
3) Ядро Cortex-МЗ компании ARM. Полное руководство. Джозеф Ю. Стоит прочитать, хотя бы по диагонали.
4) После того как осилишь предыдущие пункты, остается только открыть документацию на микроконтроллер, посмотреть примеры и понять куда тыкать в IDE.

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

>И все это желательно с ориентиром на массовую дурино-подобную плату с STM32F103C8T6, дабы вкатиться мог любой бомж.
Вообще без разницы. Все отличие этих плат лишь в наличии/отсутствии встроенного отладчика и количестве светодиодов.
Аноним 10/10/18 Срд 08:47:04  339849
>>339847
>Тебе для чего?
Для махараек.
>бери ардуину.
С нее и AVR заинтересован в перекате.
>Без книг по Си по любому не обойтись
В дроч регистров, ногодрыг и битовые операции могу, книг особо не читал. Думаешь, стоит? Для аврок вроде знаний хватало. Библиотеки с классами и ООП, конечно, не делал, но оно мне вроде и не нужно.
>Нужно что-то для понимания того что такое процессор. Нужно понимание о том что такое система команд, гарвардская/фон-неймановская архитектура, CISC/RISC и прочее
Зачем? Вещатели о CISC/RISC и прочих общих определениях в 99% случаев тоже нихуя не смогут объяснить внутреннее устройство процессора, глубже чем "вот этот квадратик - АЛУ, а вот эти стрелочки - шина данных".
>для общего развития, неплохо было бы разобрать систему команд какого-нибудь простенького процессора и написать десяток строк на ассемблере
Так открываем даташит на те же аврки и пишем, список команд с кратким описанием там дан. Чего тут разбирать-то? Ну и смысла в этом нет, только для общего развития.
>3) Ядро Cortex-МЗ компании ARM. Полное руководство. Джозеф Ю. Стоит прочитать, хотя бы по диагонали.
По диагонали определенно стоит изучить.
>После того как осилишь предыдущие пункты, остается только открыть документацию на микроконтроллер, посмотреть примеры и понять куда тыкать в IDE.
Т.е. я уже практически готов к секасу?
>Это по вкусу.
Ну, допустим. А какие самые популярные у махарайщиков, с большим коммьюнити?
>отличие этих плат лишь в наличии/отсутствии встроенного отладчика
Вот, кстати, важный момент. Где на компе тестить и симулировать код внутри МК? С аврками Протеус в этом деле все решает, а вот с стм32 полные непонятки.
Аноним 10/10/18 Срд 09:47:23  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.
Аноним 10/10/18 Срд 10:12:28  339859
Посоны, я правильно понял, что CMSIS это самый такой байтоебский способ погромирования, с прямым обращением к регистрам и прочее. HAL сродни ардуиновскому языку. А по SPL какой положняк?
Аноним 10/10/18 Срд 11:20:52  339862
SPL.png (35Кб, 806x539)
>>339859
>Посоны, я правильно понял
Может правильно, а может и вовсе неправильно. Особенно подозрительно про "ардуиновский язык".
>А по SPL какой положняк?
В первом приближении это мало чем отличается от CMSIS. Вот например на картинке код одной из функций SPL. Как видно, берутся поля из структуры и практически напрямую запихиваются в регистры. Преимущество по сравнению с CMSIS в том что не нужно помнить какой бит в каком регистре и меньше шансов что-то пропустить и ошибиться.

ST постепенно отказываются от SPL, поэтому использовать SPL не стоит. Сейчас у них есть LL, которая мало чем отличается от SPL. Хотя может я в чем-то не прав, т.к. за STM наблюдаю издали, так сложилось что мне приходится использовать другие микроконтроллеры.
Аноним 10/10/18 Срд 11:35:32  339864
>>339862
>Как видно, берутся поля из структуры
Дополню, а то вдруг не совсем понятно окажется. В эту структуру уже все вручную пихается. Получается что документацию в части регистров все равно, как правило, необходимо читать.
Аноним 10/10/18 Срд 13:31:14  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 от производителя микросхем.
Аноним 10/10/18 Срд 14:13:52  339877
LL.png (81Кб, 818x1492)
>>339869
>SPL - набор высокоуровневых либ, по сути надстройка над CMSIS
>LL - низкоуровневый API, который ST выкатили относительно недавно, по сути является аналогом CMSIS
Что-то ты странное пишешь. Вот на на картинке код функции из LL, выше код аналогичной функции из SPL. Как говорится, найди 10 отличий (кроме имен). Ну да, записываются чуть разные биты (назначение функций немного отличается). Еще вместо переменных tmpreg в LL используется макрос MODIFY_REG. Но существенных отличий нет.
>по сути является аналогом CMSIS
Вот только как видно из приведенного кода, LL это такая же надстройка над CMSIS как SPL. И LL ничуть не заменяет CMSIS, а наоборот его использует.
Аноним 10/10/18 Срд 14:32:23  339878
>>339843
>Поморгаешь диолдами и положишь на полку. Анус ставлю.

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

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

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

а COM порт на плате сможет пропустить столько? У него вроде максимальная скорость 128000 байт в секунду.
Аноним 10/10/18 Срд 16:13:11  339889
>>339883
>а COM порт на плате сможет пропустить столько? У него вроде максимальная скорость 128000 байт в секунду.
На материнской плате компа? По разному, но я больше 921600 бод/с (это 737280 бит/с) я не встречал. А микроконтроллер вполне может несколько мегабит выдать.

У тебя два варианта - USB и Ethernet. На счет USB посоветовать ничего толком не могу, т.к. делал только HID и то давно. Знаю только что есть стандартный аудио класс, но не знаю можно ли в нем сделать столько каналов. Впрочем можно сделать составное USB устройство, т.е. чтобы компьютером виделось как несколько устройств.
Другой способ - это использовать FT232H или другие микросхемы от FTDI. Программно это намного проще, только для компа придется что-то придумывать. Сам я это не делал, но пользовался устройством где они применялись для передачи видео из ПЛИС.
С Ethernet все можно сделать совсем просто. Если воткнуть в сетевуху компа напрямую, то можно обойтись без TCP/IP и слать RAW пакеты. С TCP/IP тоже не сложнее, только требований к микроконтроллеру может быть чуть больше.
Аноним 10/10/18 Срд 23:01:55  339924
>>339878
Есть же прекрасные мемс-микрофоны с полкой 20-20000 Гц, которые выдают уже цифровой выход правда, нужна обработка фильтром. Один такой даже стоит на stm32f4discovery
Аноним 10/10/18 Срд 23:04:36  339925
>>339889
> С TCP/IP тоже не сложнее, только требований к микроконтроллеру может быть чуть больше.
Я поднимал lwip стек на m4, работал прекрасно с потоком примерно 10мбит/с. Главное, с буферами не мельчить
Аноним 11/10/18 Чтв 09:55:23  339975
https://www.youtube.com/watch?v=VYhAGnsnO7w
Пссст, там Дейв создал хайп про китайские МК по 3 цента в розницу. На сайте производителя есть IDE и шиты на ангельском. Реально найти и купить программатор. Т.е. все есть, только разбирайся.
Фанатики STM8, по 40 центов за штуку, массово режут себе вены и вешаются.
STM32-господа тоже в легком недоумении от китайского чуда.
Но есть один подводный камень: все эти мк однократно программируемые.
Аноним 11/10/18 Чтв 10:20:24  339978
>>339975
И это еще что, на том сайте есть китайские 16-битные ЦАПы по 30 центов и 16-битные АЦП по 50 центов... Вот это реально ШОК. Полагаю, ОП ёбнется под стол от охуения.
Аноним 11/10/18 Чтв 10:22:19  339979
>>339975
Ну а смысл? Будто есть разница для единичных самоделок - 100 рублей или два рубля. Обычно в любом изделии, микроконтроллер это не самое дорогое, если это конечно не мигалка одним светодиодом. Или ты свои поделки делаешь сериями по тысяче штук?
Тематике треда тоже не соответствует. Это восьмибитный микроконтроллер, а тут тред про STM32.
Аноним 11/10/18 Чтв 10:29:28  339981
>>339979
Ну, вообще в видео речь шла про массовое производство. Но народ все-равно набежал. Забавно, что вскоре после выхода видео все запас тех мк резко раскупили.
Тем не менее, магаз с китайскими брендами - это охуенная находка.
>>339978
>16-битные АЦП по 50 центов
24-битные, фикс
Есть даже дешевле.
Аноним 11/10/18 Чтв 10:48:25  339982
>>339978
>Полагаю, ОП ёбнется под стол от охуения.
Полагаю ему будет без разницы. Тем более ты наверное про одноканальные или двухканальные пишешь. На диджикее PCM1681PWP с восемью каналами стоит 4 доллара поштучно.
А еще, внезапно, разрядность и частота дискретизации - это не единственные характеристики АЦП.

>>339981
>Тем не менее, магаз с китайскими брендами - это охуенная находка.
Ты свои самоделки делаешь сериями по несколько тысяч штук?
Аноним 12/10/18 Птн 09:52:22  340117
Есть вопрос по теме. Предложили работу с программированием STM32 и обработке инфы с него на компе, построение графиков и прочее. Контора вроде занимается машиностроением. Глубокими знаниями по теме я не обладаю. До этого только занимался PIC-контроллерами на поверхностном уровне. И тут вопросы?
1)Тяжело ли новичку адаптироваться к сфере?
2)Актуально ли вообще в 2018 году вкатываться в встраивыемые системы?
3)Стоит ли заниматься этим, если вообще нет знаний по электронике дальше закона ОМА? Прогать под железо нравиться на отладочниках, но не нравиться разводка плат, расчёты электротехнические и прочее...
4)Насколько это творческая деятельность и насколько оплачиваемая? Куда может расти разработчик дальше?
Аноним 13/10/18 Суб 05:01:55  340258
>>340117
Изучаю геймдев и параллельно веб-макакинг, ещё в параллель на онлайн-курсы ардуино записался. Там видно будет когда всё развалится.
Аноним 13/10/18 Суб 05:56:17  340259
15363799073970.jpg (26Кб, 347x330)
>>340258
>онлайн-курсы ардуино записался
Аноним 13/10/18 Суб 12:47:02  340287
>>339689
Ты крутой. А мои эстээмки повторили путь ардуины. Покупка - блинк - ящик.
Аноним 13/10/18 Суб 14:06:43  340295
>>340117
>PIC-контроллерами
Изучал в институте ассемблер PIC18. Угадал?
Аноним 13/10/18 Суб 14:38:07  340299
>>340287
У меня создалось впечатление, что он тоже особо плотно не занимается. Фотки одни и те же, готовых девайсов не показывал. Наверняка ошибаюсь, но впечатление создалось именно такое.
Аноним 13/10/18 Суб 15:54:37  340303
>>339877
Ок ладно, согласен, LL не заменяет CMSIS, но нет особой разницы использовать чистый CMSIS или LL, который используется для инициализации периферии, а потом код пишется снова на CMSIS. Я например вообще HAL'о адепт, не понимаю почему его постоянно поливают грязью в ру комьюнити, при том что за рубежом все пользуются и довольны кроме небольшого количества заядлых байтодрочеров.
Аноним 13/10/18 Суб 16:04:23  340304
>>340299
Та нечего показывать, разработал 2,5 девайса, собираю и продаю их (в течении пары дней паяю платы и подготавливаю корпуса, которые продаю за 1-2 недели, остальное время кинчики смотрю или играю - на жизнь и обновление пеки/смартфона каждые пару лет хватает), последний год ничего нового на STM32 не писал, кроме ковыряния всяких новых датчиков и дисплеев с али. Пару раз в месяц достаю с ящика ESP32 в ожидании того, что наконец-то запилили нормальные библиотеки для асинхронного веб сервера под ESP-IDF...
Аноним 13/10/18 Суб 17:13:30  340311
27854781465368.jpg (59Кб, 900x616)
>>340304
Найс. Тоже, видимо, созрел до этого. Осталось только родить что-нибудь стоящее.
Аноним 14/10/18 Вск 20:47:03  340453
>>340295
MPASM и поверх адаптированный под них СИ. Вроде во многих универах это распространённый набор. Правда умирающий.
Аноним 14/10/18 Вск 22:59:04  340486
>>340304
Что за девайсы?
Аноним 16/10/18 Втр 02:56:07  340693
>>340304
Что за девайсы? Может дашь каких советов, как найти свою нишу? Я хиккан-программист-фрилансер, имею средненькие знания электроники, паю махарайки для себя. Крутится идея создать стартап какой-то или типа того, в общем делать реальные вещи.
Аноним 16/10/18 Втр 08:03:04  340699
>>340303
>Я например вообще HAL'о адепт, не понимаю почему его постоянно поливают грязью в ру комьюнити, при том что за рубежом все пользуются и довольны кроме небольшого количества заядлых байтодрочеров.

Потому что кроилово на себестоимости и вытекающая из него байтооптимизация головного мозга.
Аноним 16/10/18 Втр 17:02:57  340783
>>340486
>>340693
Не хочу палить то что я делаю, потму что довольно востребованная херовина среди обычных людей и продается изи.

Двигайся в направлении бытовых систем автоматизации, которые будут дешевые по себестоимости и при этом не будет особо аналогов, кроме китайского говна с али. Например простой контроль температуры и влажности при помощи тэна/лампы и увлажнителя/осушителя - он лежит в основе инкубаторов, сушилок, хранилищ продуктов, климат контроля в доме. Добавляешь к этому свои фишки которые нужны пользователям или которых еще никто не делал и у тебя уже несколько устройств для разной целевой аудитории но с одинаковым принципом работы и элементной базой.
Аноним 20/10/18 Суб 17:06:16  341412
image.png (84Кб, 563x513)
Раз уж такой тред, спрошу: пытаюсь вкатиться в 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.
Аноним 20/10/18 Суб 18:16:38  341418
>>341412
>никаких данных не передает
Осциллографом или логическим анализатором смотрел? Может у тебя скорость неправильная?

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

Наверное тебе следует глобально определить HSE_VALUE. Ну и еще ты зря используешь SPL.
Аноним 20/10/18 Суб 19:31:02  341429
image.png (95Кб, 737x525)
image.png (20Кб, 721x595)
>>341418
Осциллографом, пик 2. Данные должны иди через канал 1 (желтый) сразу после включения светодиода (канал 2, синий). Тактовая частота вроде верно настроена, пик 1.
Аноним 20/10/18 Суб 19:50:30  341431
image.png (150Кб, 1058x534)
>>341418
>>341429
Я напал на след и, кажется, ты прав. Почему-то все частоты кроме SYSCLK стоят в 0.
Аноним 20/10/18 Суб 20:03:35  341437
image.png (23Кб, 207x442)
Все, решилась проблема. В USART_Init вызывалась RCC_GetClocksFreq, которая лезла в глобально объявленный массив APBAHBPrescTable. А там был мусор. Убрал модификаторы volatile и все заработало. Теперь вопрос к знатокам - какого хуя?
Аноним 20/10/18 Суб 20:04:23  341438
image.png (19Кб, 213x451)
APBAHBPrescTable здорового человека.
Аноним 20/10/18 Суб 20:52:24  341440
>>341437
>>341438
Это скорее вопросы по стандарту Си или к компилятору. Разве оно там не static volatile const в результате получается?
Попробуй через objdump -t посмотреть в каком сегменте оказывался этот массив.
Аноним 20/10/18 Суб 21:11:22  341441
image.png (25Кб, 676x114)
>>341440
я немного ошибся, массивов два, один объявлен статически в XXX_rcc.c (APBAHBPrescTable), второй - глобально в system_XXX.c (AHBPrescTable). если вернуть все как было, то AHBPrescTable попадает в секцию .data в бинарнике.
Аноним 20/10/18 Суб 21:12:11  341442
>>341441
Ах да, в рабочем состоянии он в секции .text
Аноним 20/10/18 Суб 22:27:04  341447
>>341442
>>341441
Возможно ты это и так знаешь, но на всякий случай скажу. Очевидно, что секция .data должна инициализироваться в самом начале из флешки. Код этой инициализации находится в startup файле. И в скрипте линкера это тоже должно быть отражено.
Если все переменные из секции .data не инициализируются, то это может быть из-за неправильного startup или скрипта линкера.
Аноним 13/11/18 Втр 00:16:35  345085
Full HD 1080p.jpg (2Кб, 300x300)
Хватит ли ресурсов контроллера, чтобы захватывать и слегка обрабатывать (смотреть среднюю яркость и превалирующий цвет) цветное аналоговое видео PAL или NTSC?
Аноним 13/11/18 Втр 14:43:37  345161
>>345085
>чтобы захватывать и слегка обрабатывать
raspberry pi zero w
Аноним 13/11/18 Втр 15:57:37  345172
>>345085
Цвет и яркость по всему кадру? Или по краям экрана? Мне кажется что микроконтроллер тут лишний, хватит какой-нибудь телевизионной микросхемы TDA для выделения цветоразностных сигналов. Для получения средней яркости так вообще достаточно лишь пропустить привязанный по уровню видеосигнал через RC-цепочку.
На микроконтроллере выделить цветоразностные сигналы должно быть затруднительно, как минимум потребуется довольно высокая частота дискретизации.
243243 5464465 13/11/18 Втр 18:47:24  345189
342432
Аноним 13/11/18 Втр 19:20:15  345200
>>345172
Спасибо. Немного не так выразился. Нужно разбить кадр на участки квадратно-гнездовым способом (т.е. что-то типа таблицы) и определить средние цвет и яркость каждого участка (ячейки таблицы).
Аноним 13/11/18 Втр 21:09:34  345238
>>345200
Типичная задача для плис
Аноним 13/11/18 Втр 21:27:12  345251
>>345238
Ерунду выдумываешь. Достаточно лишь получить цветоразностные сигналы на какой-нибудь телевизионной микросхеме, пропустить их через ФНЧ (в соответствии с ячейками таблицы) и в нужные моменты времени запустить АЦП. Длительность строки 64 мкс, даже на ардуине можно сделать запуск АЦП в нужный момент, если конечно ячейки не слишком мелкие.
Это скорее задача для компьютера (может одноплатника) с easycap для видеозахвата.
Аноним 14/11/18 Срд 07:07:20  345311
.jpg (1129Кб, 2048x1232)
>>345251
>на какой-нибудь телевизионной микросхеме
Как-то так? Нет уж, лучше на плис.
Аноним 14/11/18 Срд 23:06:28  345384
Так, я тут заказал простейшую stm32f103c8-базед плату и ст-линк в2 прошивальщик и надеюсь на то, что первое время поучусь без обвязки контроллера. Нормально жи? Я просто хочу с ним пообщаться с пекарни типа "посчитай мне корень из пи". Мне кажется, что после традиционного погромирования так проще будет.
Я вообще адекватно задачи ставлю по вкату?
Потом, если чё, докуплю макет за 200 рублёв с диодами разноцветными.
Аноним 15/11/18 Чтв 14:34:41  345526
>>345384
Думаю, что это гораздо адекватнее чем покупать пачку модулей или всякие демоплаты типа дискавырей. Лично мне идеальным видится вариант покупки под конкретную задумку, когда сначала придумываешь охуительный велосипед, а затем подбираешь под него железо, которое и осваиваешь в процессе.
мимо
Аноним 15/11/18 Чтв 17:58:36  345547
>>345526
>придумываешь охуительный велосипед
и начинаешь ЛУТить до дыму, запарывать детальки, пока Дискавери-боярин занимается написанием кода.
Аноним 15/11/18 Чтв 18:06:10  345549
>>345547
Да, хотеть писать код.
Так что, в принципе кроме стлинка ничего не надо?
Вернуть на комп результат вычислений и бенчить МИПСы можно будет?
Аноним 15/11/18 Чтв 18:52:18  345563
>>345547
>Дискавери-боярин занимается написанием кода.
Ты хотел сказать написанием хеллоуворлдов?

>>345549
Стоит еще взять переходник USB-UART.
Аноним 15/11/18 Чтв 19:04:37  345566
>>345547
>Дискавери-боярин занимается написанием кода
Велосипед потом поедет по назначению, а дискавери отправится в небытие. Это примерно как делать детей или дрочить.
Аноним 15/11/18 Чтв 19:28:52  345570
1542113727-352f[...].jpeg (41Кб, 700x438)
>>345566
>Велосипед потом поедет в помойку,
а Дискавери-боярин будет отлаживать код вывода на дисплей и работу с памятью. Данную связку велосипедо-нищенка не сможет спаять своими кривыми ручонками и забросит затею. А почтенный Дискавери-господин закончит написание кода, отрисует схему своего йоба-устройства, спокойно сочинит печатку и закажет ее изготовление китайским мастерам. Затем спаяет свое устройство и зальет в него отлаженный и рабочий код.

Аноним 15/11/18 Чтв 19:38:07  345571
>>345570
>дисплей и работу с памятью
То есть во всех твоих самоделках, кроме микроконтроллера, дисплея, памяти и может быть батарейки, ничего более существенного нет?
Аноним 15/11/18 Чтв 19:38:55  345572
7546459748676479.jpg (55Кб, 589x545)
>>345570
Так, а что с дискавырей станет по итогу?
>нищенка
Щас бы всерьёз думать, что у кого-то нет денег на дисковырь.
Аноним 15/11/18 Чтв 20:07:26  345578
>>345571
>ничего
Ну чому ты так? Есть памяти 8Мб, есть GPRS-модем, есть порт Ethernet, 7" touch-LCD 800х640
Аноним 15/11/18 Чтв 20:53:42  345598
>>345578
Ну а смысл делать такое на STM32? Не проще ли и дешевле взять одноплатный компьютер?
Толку от дискавери не так много. Допустим захочется отмакетировать синтезатор частоты для радиоприемника или часы на неонках, сильно поможет дискавери по сравнению с простейшей платой? Или взять к примеру задачу ОП-а, ему будет какой-то толк от дискавери только если он решит использовать ethernet.
Аноним 16/11/18 Птн 08:03:54  345696
>>345563
> usb-uart
Пичаль, а что тогда вообще st-link v2 делает? Я читал, он и шьёт, и дебажит.
Т.е. доступ к памяти МК у него есть.
Так почему бы через него не возвращать результаты?
Аноним 16/11/18 Птн 09:16:22  345699
>>345696
>Я читал, он и шьёт, и дебажит.
>Т.е. доступ к памяти МК у него есть.
Это все верно. Но printf-ами удобнее срать в UART. В отладчик тоже можно, например через SWO или semihosting, но по моему это не так удобно. Так что USB-UART дополняет отладчик.
Аноним 16/11/18 Птн 13:49:21  345711
>>345699
Можешь нищепример кинуть?
Просто плата 120, отладчик столько же, а эти уарты нахожу по 800.
Проще тогда борду докупить за 200 и моргать диодами, так там ещё фоторезюки в комплекте.
Аноним 16/11/18 Птн 13:50:07  345712
>>345711
> борду за 200
Сиранул, це макет, нувыпонели.
Аноним 16/11/18 Птн 14:35:36  345718
Screenshot2018-[...].png (430Кб, 1080x1920)
Screenshot2018-[...].png (558Кб, 1080x1920)
>>345711
Эт что ты за 800 нашел?
Пик1 можно брать, или на chg340 что-то, но лучше пик2 - им можно как gpio/i2c/spi over usb пользоваться.
Аноним 16/11/18 Птн 14:52:57  345721
>>345711
https://ru.aliexpress.com/item/CP2102/32694152202.html
https://ru.aliexpress.com/item/CH340G/32831329095.html
https://ru.aliexpress.com/item/FT232RL/32826575637.html
https://ru.aliexpress.com/item/PL2303/32345829369.html
Аноним 27/11/18 Втр 00:40:41  347146
shutterstock909[...].jpg (17Кб, 300x225)
Пагни, а можно ли сделать на платке stm32f103c8t6 что-то вроде SPI сниффера или примитивный логический анализатор? Чтобы просто послушать SPI.
Аноним 27/11/18 Втр 06:33:06  347158
>>347146
>примитивный логический анализатор
На Хабаре была статья про логаналайзер на стм32ф4ххх, думаю можно адаптировать под твои нужды. Гугл ит!
Аноним 27/11/18 Втр 07:44:33  347161
>>347146
>SPI
>serial pereprherial interface
>SERIAL
Ну почему в вопросе опять ответ, а задавший его этого не видит? Конечно можно! Главное не мешай ему работать и всё. Тебе надо слушать MOSI, MISO по тактам через SCK.
Аноним 27/11/18 Втр 07:50:27  347164
154110682114936[...].jpg (180Кб, 672x1000)
>>347158
У него там осциллограф с аналоговой частью. Мне просто надо посмотреть, что стм8 передает модулю нрф24.
Аноним 27/11/18 Втр 08:52:24  347167
ra - STM32 тред[...].png (1796Кб, 1289x780)
>>345311
Где такой булыжник купить? Помню батя паял телевизоры и постоянно тыкал паяльником в него. А как он называется не знаю. Ищу его лет 10 уже.
Аноним 27/11/18 Втр 10:23:18  347178
Аноны, есть STM32F103 на Cortex M3, есть SSD1306. как реализовать прошивку, чтобы вывести на дисплей элементарное анимированное изображение с ПК?
Аноним 27/11/18 Втр 10:47:41  347181
>>347167
Первая сцылка из гугла по словам "кусковая сосновая канифоль" http://prodiel.ru/product_info.php?products_id=468
Аноним 27/11/18 Втр 11:03:40  347182
>>347161
>Тебе надо слушать MOSI, MISO по тактам через SCK.
Я только вчера с ардуины слез. Всё в теории выглядит довольно очевидно. Но где посмотреть пример кода для стм?
Аноним 27/11/18 Втр 11:10:39  347183
>>347182
>nurgle: STM32 SPI sniffer
Аноним 27/11/18 Втр 11:12:30  347184
>>347164
А что ещё может STM32 передавать nRF24I01+ , кроме команд и данных? Или тебе лень проверять ВЕСЬ ЭФИР, НА ВСЕХ АДРЕСАХ И КАНАЛАХ? А ведь там 5 байт на адрес, лол.
Аноним 27/11/18 Втр 12:38:50  347191
>>347181
Спасибо
Аноним 27/11/18 Втр 17:39:30  347268
>>339005 (OP)
Аноны, купил на али stm32f4.., до этого только с авр дело имел.
Битый час уже пытаюсь лед зажечь. Что я делаю не так? https://pastebin.com/K5FH5SCr
Аноним 27/11/18 Втр 18:15:23  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 для зажигания(Это зависит от того где он сидит - на минусе или плюсе).
Аноним 27/11/18 Втр 18:24:47  347275
>>347268
Для начала выкинул бы строчку GPIOD->OTYPER &= ~(GPIO_OTYPER_OT0);
Заглянул в документацию (ни камня, ни название доски) что висит на выводе PD0 и чем зажигать светодиод (есть вариант что его надо нулем зажигать). Без схемы ловить нечего.
Аноним 27/11/18 Втр 19:41:53  347285
STM32F407ZET6de[...].jpg (548Кб, 1500x1000)
>>347274
>>347275
Доска на пике.
Использую свой внешний LED, хочу его через пин зыжечь, так что должно с любого пина работать, или я ошибаюсь? Собираю из под линукса с помощью arm-none-eabi-gcc, флешу через st-link v2. Флешится всё без проблем (по крайней мере так говорит мне программер). Говорит ли это о том, что я правильно компилирую? Может я там флагов каких-нибудь левых понапихал или еще чего...
Аноним 27/11/18 Втр 19:50:10  347286
>>347285
Вот мэйкфайл вдогонку pastebin.com/HaR59pbT
Аноним 27/11/18 Втр 19:51:48  347287
>>347285
Очевидно же, что если ты написал: "GPIOD->MODER |= GPIO_MODER_MODE0_0;" и так дальше всё, то у тебя светодиод будет зажигаться только от pd0.
Аноним 27/11/18 Втр 19:56:25  347288
led4.png (3Кб, 189x184)
>>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
Аноним 27/11/18 Втр 20:11:26  347289
>>347288
Безрезультатно. Есть предположение, что борда поломаная.
Аноним 27/11/18 Втр 20:16:53  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

Аноним 27/11/18 Втр 20:27:59  347295
123.png (9Кб, 322x159)
>>347293
Та плата, что на прошлом моём пике, оказалась чуть другой. Нашел схему своей. Можешь для PF9 хекс запилить, пожалуйста? Прошил своим - опять ноль эмоций.
Аноним 27/11/18 Втр 20:34:04  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
Аноним 27/11/18 Втр 20:37:15  347297
>>347296
Спасибо тебе, анон, большое, но не работает. На сегодня брошу это дело.
Аноним 27/11/18 Втр 20:57:13  347299
f429.jpg (1642Кб, 3264x2448)
>>347297
На 429 камне стартанул код. Здесь PG14 зажигается единицей. Пикрил горит красным и сеанс отладки за заднем фоне. Мне кажется как-то не так прошиваешь хекс или страницы памяти не чистишь. В самом дубовом варианте попробуй через uart прошить - кажется бут0=1 , бут1=0 и через какую-то утилиту от st можно по компорту заливать прошивку. Нужен преобразователь уровней, напрямую к компорту подключать нельзя. Нужен как минимум usb-uart ttl преобразователь.
Аноним 27/11/18 Втр 21:00:19  347300
>>347296
Вы на каком-то неправильном наречии базарите с контроллером. Используйте HAL и не ебите себе моск
Аноним 27/11/18 Втр 21:02:32  347302
>>347297
Есть один вариант на проверку..
"install: main.bin
st-flash write main.bin 0x8000000"
Обращаем внимание - тут бин файл указываем, а тебе кидался хекс. Использовал внешнюю программу чтобы из HEX получить BIN? Кажется в этом косяк. Так и гуглить hex2bin.exe - старая консольная программка и обратная ей bin2hex.
Аноним 27/11/18 Втр 21:10:34  347303
>>347299
спасибо, буду курить
>>347302
st-flash хексы тоже кушает - https://github.com/texane/stlink/blob/master/doc/man/st-flash.md

Может ИДЕ какую-нибудь на линукс накатить? Посоветуете что-нибудь для этих целей?
Аноним 27/11/18 Втр 21:12:05  347304
>>347302
а в хекс через всё тот же arm-none-eabi-objcopy, только с ihex вместо binary
Аноним 27/11/18 Втр 21:17:59  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 и еще раз попробуй.
Аноним 27/11/18 Втр 21:23:04  347306
>>347303
Еще мелочь - (как минимум в Keil) - после заливки прошивки (flash->download) ничего не происходит до тех пор, пока руками камень не перезагрузишь. Те или ресет на нем нажать или по питанию передернуть. Ребут после заливки делал?
Аноним 28/11/18 Срд 00:54:08  347318
Кста, раз уж тут про хэллоуворды спрашивают, я тоже спрошу. Есть ли разница в форме импульсов ШИМ при использовании таймера и простого ногодрыга? Реально ли на stm32f103c8t6 разогнаться на частоту, хотя бы 2-х мегагерц? В регистрах то максимальная скорость 50мгц проскакивает, но вот что она значит и не будут ли фронты завалены?
Аноним 28/11/18 Срд 06:06:11  347330
mco.png (17Кб, 602x253)
>>347318
> Есть ли разница в форме импульсов ШИМ при использовании таймера и простого ногодрыга?
Что GPIO, что Timer используют одинаковый тип выхода - Push-Pull. Разницы нет.
> не будут ли фронты завалены?
Зависит от емкости того, что подключено к выводу. Чем больше емкость, тем больше будут завалены и искажены. Как вариант можно взять только один вывод - MCO, на который выводить системную тактовую частоту. Настроек нет, доступен только меандр и с жестко заданной частотой.
Аноним 28/11/18 Срд 07:31:08  347339
1.png (2Кб, 287x76)
>>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.
Но по умолчанию это действительно выключено.
Аноним 28/11/18 Срд 14:12:25  347361
>>339689

Привет, напиши мне в личку или на почту tyler.harper, есть тема.
Аноним 28/11/18 Срд 14:13:52  347362
>>347361

На эту почту tyler.harper@mail.ru
Аноним 28/11/18 Срд 15:43:28  347367
Лень гуглить@Спрошу анона
STM32F407. На какие пины можно выставлять прерывания? Если на все, то как сконфигурировать прерывания? У меня все кроме PA0 не дают повесить на себя прерывания в кьюбе.
Аноним 28/11/18 Срд 15:56:15  347370
>>347367
По даташиту на (почти) любую ногу можно повесить. Единственное что есть аццкая подстава - нельзя получить более 16 внешних прерываний, тк прерывание от PA6 PB6 PC6.. Px6 - это условно одно и то же прерывание и слушается только один порт. Что бы получить все 16 прерываний - нужны разные выводы портов от 0 до 15, сам порт (A-H) не важен (те например PA9 PB4 PC0 PG5.. - уже 4 прерывания).
Аноним 28/11/18 Срд 16:19:56  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 не трогать, они должны оставаться входами (подтяжка по желанию).
Аноним 28/11/18 Срд 16:55:20  347384
Нашёл в кубе как выставить прерывания на пины, тупанул изначально.
Мне нужно записывать сигнал, в тот момент когда он изменяется на пинах. Попробовал пока послать на него I2C, но почему-то либо вешается ардуино, с которой посылаю, либо просто прерывания не срабатывают.
>>347376
Вроде бы я и понял, что ты мне описал, а вроде бы и нет.
Как понять какая линия к какому входу подведет и чем это отличается от 16 линий, про которые сказал >>347370-анон?
Могу ли я назначить прерывания более чем на 16 пинов, и если могу, то при пересечении двух пинов с противоположными подтяжками/уровнями сигнала (лог. единица и ноль) на одной линии, что произойдёт?
Аноним 28/11/18 Срд 18:31:40  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 прерывания сработает - можешь соснуть, тк пока просрешся на первое есть шанс потерять данные из второго прерывания (см ссылку выше).
это один и тот же анон
Аноним 28/11/18 Срд 19:06:22  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.
Аноним 28/11/18 Срд 19:33:14  347396
>>347391
>как собрались делать логический анализатор на STM32.
https://habr.com/post/165853/
Аноним 28/11/18 Срд 20:41:13  347412
>>347391
>Интересно послушать как собрались делать логический анализатор на STM32.
Помигали светодиодом и расходимся.
Аноним 29/11/18 Чтв 00:09:48  347439
>>347306
Анонче, спасибо тебе за твоё вчерашнее время. Прошивал без стартап файла. Даже не знал, что он нужен был. Вот уж не думал, что буду когда-нибудь еще буду так радоваться загоревшемуся леду. Пошёл читать даташиты.
Аноним 29/11/18 Чтв 00:11:48  347440
>>347439
>буду когда-нибудь еще буду
Ну вы поняли.
Аноним 29/11/18 Чтв 00:41:11  347445
>>347439
>Даже не знал, что он нужен был.
В таком случае тебе нужно читать не даташиты, а Джозефа Ю.
Аноним 29/11/18 Чтв 00:58:02  347447
yiu.png (259Кб, 597x737)
>>347445
>Джозефа Ю
Пикрл подойдет?
Аноним 29/11/18 Чтв 09:02:09  347463
>>347389
>Обоссанное школололо с пердуино треда?
Да. Ну ты заебал, я ж не школоло
>Невозможно назначить прерывание на одноциферные выводы разных портов
Ок
>Если почти сразу 2 прерывания сработает - можешь соснуть, тк пока просрешся на первое есть шанс потерять данные из второго прерывания (см ссылку выше).
Если на разных пинах сработает прерывание, оно же просто встанет в очередь, не? На частоте 165mHz, или сколько там пиковая, прочитать с нескольких пинов значение и записать время - должен вписаться во временные рамки. Если только не все 16 пинов изменят состояние единоразово, но такие состояния я не встречу

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

Тогда простым вопросом уйду немножко в другую степь:
Как настроить USB? Есть готовые примеры с BULK передачей?
Те готовые примеры что есть, пока завести не смог.
Аноним 29/11/18 Чтв 13:19:49  347493
eth.png (249Кб, 2795x1035)
> я ж не школоло
You make me sad

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


> Как настроить USB? Есть готовые примеры с BULK передачей?
С USB говном не работал и ебись оно конем разбираться в этих помоях и реализаций под каждую ось. Сам то хоть нашел СДК или либы через которые собрался принимать помои с USB шины?
Пикрил - немного погуглил и используя православный Ethernet сразу на 3 разных машинки лилось дерьмище броадкастом по UDP - Windows, FreeBSD, Linux - все приняли это. Дальше на том же питоне или сях import socket и вперед. По временнЫм меткам видно что срет примерно каждую миллисекунду (os.Delay(1)) как и задумывалось. Скорость сам прикинешь.
Аноним 29/11/18 Чтв 13:49:52  347502
>>347493
>ебись оно конем разбираться в этих помоях и реализаций под каждую ось
Libusb же, просто не разобрался как она работает и почему не могу с ней достучаться к STM.
Пока читаю этот https://damogranlabs.com/2018/02/stm32-usb-cdc/ гайд
Аноним 29/11/18 Чтв 15:15:06  347510
Вопрос короткий и по делу. Может кто сталкивался.

Либа LibUsb-1.0. На команду библиотеки libusb_open_device_with_vid_pid(ctx, USB_VENDOR_ID, USB_PRODUCT_ID);, STM с сгенерированным в кубе HID-кодом, отзывается как должна. STM с кодом же CDC-устройства сгенеренном там же, в кубе, с этим запросом не работает (возвращается Null). Так же, при этом, устройство определяется в системе как COM-6, но ни один терминал не с ним работает как говорится в примере из интернета, мы должны получать ответ в терминале, от сгенерированного кубом кода.
Аноним 01/12/18 Суб 07:36:22  347764
ucb.png (69Кб, 1569x565)
>>347510
Как мне кажется - всем по хуй. Троллинга ради попробовал создать проектик CDC. Ну и пиздец, осталась огромная куча вопросов по режиму отладки этого говна.
Запустил отладку. При самом первом прогоне кода до строчки 121 ничего не происходит(????). После первого прохода 121 строчки появляется компорт.
После появления компорта при попытке подключиться putty снова сосу - даже окно терминала не появляется пока еще раз не выполнится 121 строка (или криво тестил или в этот проход спам не шлется).
После третьего и последующего выполнения 121 строки уже шлется спам в терминал.
Определенно этот быдлокод поломал манямирок - U$B шина активна всегда, даже если ничего не передается летают какие-то пакеты опроса есть че? и при останове(?) выполнения кода соединение не рвется и компорт не пропадает.
При выходе из отладки/перезагрузке компорт пропадает, но putty не говорит что компорт недоступен (как при выдергивании FTDI или PL2303 и подобных) и при повторном прогоне кода в терминале тишина, ничего не шлется, а если закрыть терминал и заново открыть - говорит иди на хуй, не могу открыть, хотя он виден в диспетчере устройств.
Перезайдя в отладку - пропадет компорт и см начало поста. WTF?
Аноним 01/12/18 Суб 08:32:48  347767
>>347764
>Перезайдя в отладку - пропадет компорт и см начало поста. WTF?
Потому что микроконтроллер перестает отвечать компу, а спецификация USB устанавливает определенное время на ответ.
Аноним 01/12/18 Суб 17:23:33  347828
>>339005 (OP)
Гуры, расскажите как вы организуете расположение папок в проекте? Я уже заебался копировать примеры стм и корректировать их. Получается какая-то безумная ебала с папками библиотек и исходников. Как захуярить отдельно неизменяемое местоположение либ и прочих халов и облако/гит своего говнокода, чтобы его можно было быстро найти?
Аноним 02/12/18 Вск 02:13:25  347916
Screenshot20181[...].jpg (45Кб, 1080x1152)
>>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 не переношу, ибо меняется он никогда, а генерит кашу неподдержтюиваемую
Аноним 02/12/18 Вск 02:17:14  347917
>>347916
Забыл дописать. Если нужна периферия, а готовой репы нет, то ты обязан сделать отдельный готовый репозиторий из ошметков интернета и запушить на гитхаб, таким образом ты сделаешь жизнь другим легче. Ну и кидаешь эту репу в сабмодули. Реюзабельность +, карма +++
Аноним 02/12/18 Вск 06:35:15  347929
>>347917
>и запушить на гитхаб
Ты же понимаешь, что весь гитхаб будет ржать над моими потугами в кодинге?
Аноним 02/12/18 Вск 08:08:19  347934
>>347929
Никто не будет ржать. Портировал код с Raspberry на PIC.
Аноним 02/12/18 Вск 12:35:27  347968
>>347934
Удваиваю, все похуй. Пока твой говнокод выполняепт задачу, всем похуй.
Аноним 04/12/18 Втр 15:53:45  348213
>>347929
Никто даже не воспользуется твоим кодом
Аноним 04/12/18 Втр 17:01:51  348215
>>348213
Не пизди.
запилил репу, получил четыре звезды в течение года
Аноним 05/12/18 Срд 23:52:47  348464
>>340304
А кому продаешь? В рашке или за бугор с ибея какого-нибудь?
Аноним 05/12/18 Срд 23:54:07  348466
15344409730020.png (104Кб, 645x729)
>>339005 (OP)
Приделал батарейку к своей STM32F429I-Discovery, теперь буду задрачивать все регистры RTC!
Аноним 05/12/18 Срд 23:56:15  348468
>>348466
И сразу соснул с проглотом. Часы хоть и не сбрасываются при отключении питания, но таки останавливаются.
Аноним 06/12/18 Чтв 03:32:42  348495
>>348468
Держи в курсе. не сарказм
Аноним 06/12/18 Чтв 08:45:35  348506
>>348495
Насколько хватило моих знаний ангельского и мощности гуглопереводчика, понял, что для работы RTC от Vbat необходимо тактирование часов от LSE. В демонстрационной программульке от ST, дохуя завязано на тактирование от LSI и желания разбираться в дебрях их кода у меня нет. Сейчас засяду писать сам свои часы и попробую еще раз.
Аноним 06/12/18 Чтв 09:14:36  348508
А вот эти вот примеры, типа TouchGFX_Demo, студии пишут или йоба-программисты одиночки? Этож охуеть можно сколько кода надо написать. Он только канпилируется 7 минут.
Аноним 06/12/18 Чтв 11:33:08  348516
>>348508
Наверное это на С++ с использованием шаблонов написано, из-за этого вполне может компилироваться на порядок дольше чем аналогичный код на Си.
Аноним 06/12/18 Чтв 20:33:20  348566
>>347463
Как дела у школьника? Давно не видно и не слышно. Уроки учит? Или в крестики-нолики играет над дампом?
Аноним 11/12/18 Втр 13:52:49  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 знаю, но без понимания всего процесса и того, как что срабатывает (особенно эвенты), я делать выводов не берусь
Аноним 11/12/18 Втр 14:05:06  349272
Даже нет, не так, подправлю:
В принципе то понятно, когда срабатывает эвент сейчас с позиции слейва: как настроишь - на приходе адреса, при заполнении буффера, при срабатывании BTF, при получении стопа.
Только не ясно, как понять, что на линии был старт. Или оно тогда и не надо, даже если это повторный старт? Просто в таком случае получим задержку в ~2 пакета. Хотелось бы конечно минимизировать, но если что - не смертельно.
А NACK/ACK я хочу ставить сам, тогда когда мне удобно.
Аноним 11/12/18 Втр 17:30:16  349288
i2c.jpg (644Кб, 3264x2448)
>>349270
Да вы батенька походу Reference Manual не открывали, или увидев овер 1К страниц открестился, закрыл и забыл как страшный сон.
Что у тебя за побрякушка как платка называется и что за камень (полное название)?
Мыльница говно. Открываю древний мануал Да, он бумажный, 4 страницы на листе. Как минимум его можно читать в сортире, делать пометки и пиздить им тех, до кого с первого раза не доходит.
> 1. От чего (от каких действий на I2C шине) срабатывает I2C1_EV_IRQHandler?
На странице 843 есть замечательная табличка, где видно как двумя битами включить и прерывания и события от блока I2C. Только вот незадача - два бита действуют глобально, те нельзя выбрать например автобус сломался и ошибка подтверждения.
Очень внимательно почитай раздел Inter-Integrated circuit interface - он короткий.
На первый взгляд только 2 адреса слейва себе можешь назначить. Остальное - через особо жесткие костыли. Возможно SPI+EXTI поможет ловить произвольные адреса.
Что меня напрягает в IIC - нет таймаутов и можно основательно повесить шину, которая отвисает только после ребута по питанию или руками давать STOP, но это не всегда корректно, так как некоторые слейвы очень привередливы и STOP например после 5 тактовых импульсов игнорируют.
Аноним 12/12/18 Срд 14:55:56  349363
>>349288
У меня реф мануал немного отличается (RM0090 Rev 17), но суть та же. На эти страницы (IIC Functional Description) не обратил внимания, сейчас почитаю.
Железка STM32f407.
>Что меня напрягает в IIC - нет таймаутов и можно основательно повесить шину, которая отвисает только после ребута
Так то в том же референсе есть намёки на то что можно и без этого перезапустить шину. Как минимум я видел что настраиваются какие-то тайм-ауты, есть определение подвешенной линии и контроль недопустимых состояний на шине. А сбросить шину ты можешь и программно, но это не точно
Аноним 13/12/18 Чтв 11:41:48  349470
shkololo.jpg (733Кб, 3041x2030)
detect.png (8Кб, 1375x240)
>>349270
Масштаб троллинга неуклонно растет и достиг опасных показателей.
Собрал из подручного хлама - F429 под эмулятор, мега328 - для первоначальной отладки шины, онанокомп с линуксой под тестилку ебать она медленная, особенно i2cdump - на каждый байт оно дает команду записи адреса и потом команду чтения, но похуй - нашел говнокод на си - он чуть быстрее работает , логический анализатор, пара микросхем памяти и... CPLD на 64 макроячейки - может получится из нее сделать костыль I2C->SPI. На STM32F4 SPI умеет или 8 или 16 бит. Интересно, это все говно взлетит?

>>349363
Через жопу читал и мануал и пост повыше. В классической IIC нет таймаутов вообще. Таймауты в SMBUS (в компе можно найти). Повисший контроллер IIC можно попытаться "перезагрузить" через отключение и включение, но выше писалось про СЛЕЙВА, который считает такты и только спустя 9 тактов поймет команду СТОП и отпустит шину и игнорирует сигнал СТОП в другие моменты времени. Где-то видел описание подобных случаев.
Аноним 13/12/18 Чтв 13:30:41  349475
>>349470
Я не могу понять, что ты снял анализатором. Что ты получить то хотел и чего добился?
Аноним 13/12/18 Чтв 16:51:29  349485
image.png (24Кб, 1015x181)
>>349470
Посмотри проект если не сложо.
Сгенерировал в кьюбе инициализацию, при установке адреса слейва1 зависает SCL на земле (пикрил).
Если вернуть адрес в ноль, то всё нормально. Сравниваю с примером из интернета , вроде последовательность инициализации похожа, в функцию тоже всё приходит норм.
Это на f103.
https://yadi.sk/d/CDEei4OVxVj1DQ
Аноним 13/12/18 Чтв 16:56:19  349486
shololo2.png (89Кб, 1677x794)
>>349475
Кое как подогнал смехоту. 5 макроячеек из 64.
Здесь за одно хорошо видно как тупит железка на линуксе и мне похуй. Это же proof of concept.
Как у меня ебануло.. Черную магию что ли еще раз почитать? CPLD настолько нежная, быстрая и суровая, что ловит отраженку с конца никуда не подключенного примерно 40 см шланга и считает ее за реальные импульсы/фронты. Временно отключил - уже нет аномалий. Если правильно понял вывод - оно легко прожует и не подавится от IIC с тактовой 50 МГц.
Смотреть на 7 и 5 анал, их "сумма"- 6 анал. Если включить мозги - догадаешься что это за костыль сбоку.
Аноним 13/12/18 Чтв 17:04:09  349488
f1031.png (34Кб, 669x784)
f103.png (56Кб, 764x967)
>>349485
Точного камня не знаю, но серия F1 оставила тяжелые воспоминания.. Сам поищешь подобное, тем более что или здесь или в пердуино треде говорилось что F103 и IIC - крайне хреновая затея из-за аппаратных глюков. Поэтому ебитесь как хотите со своей F103.


Топ тредов
Избранное