NSS ни в коем случае не должен дёргаться между байтами. Иначе будет невозможно общение с SPI EEPROM - там тоже надо опустить CS, передать данные, поднять CS. Так вот, пока есть данные на передачу CS остаётся в нуле. Если делать это по опросу (и даже по прерываниям, если случится задержка) - может возникнуть пауза и CS снимется (перейдёт в лог.1), но если кормить через DMA - такой проблемы нет.Bit 2 SSOE: SS output enable
0: SS output is disabled in master mode and the cell can work in multimaster configuration
1: SS output is enabled in master mode and when the cell is enabled. The cell cannot work
in a multimaster environment.
STM32 новичку в ARM что к чему
есть: 25.5.2 SPI control register 2 (SPI_CR2)
- Реклама
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
uldemir, нет. Как только я включаю SPI, если у меня NSS настроен аппаратно, то он сразу падает в нуль. И после окончания передачи в нуле так и остается. В мануале по поводу SSOE, кстати, так и говорится, что "SS output is enabled in master mode and when the cell is enabled" (а не "when transmission is in process", что нужно мне).
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Я на гитхабе, в ЖЖ
Хмм. не ожидал такого от ST... Тогда План Б. А обязательно ли делать фронт импульса после передачи? В одной конструкции я делал динамическое отображение через сдвиговый регистр MAX6312. Там задвигал данные через SPI, а по окончании дёрнуть строб параллельной загрузки. Я изменил порядок. Сначала дёргаю строб, чтобы записалось то, что было перед этим залито, а затем заливал следующую порцию для следующего фрейма.
Всё это делалось на таймере. Один канал сравнения формировал строб записи, а другой канал создавал event, который запускал DMA, который заливал данные в SPI и SPI заливал данные в сдвиговый регистр MAX-имки. Период таймера задавал интервал с какой частотой переключались разряды. Как-то так, и это всё работало аппаратно без всяких опросов, прерываний итп.
О, посмотрел старый исходник - там еще этот таймер формировал PWM для сигнала Blank - регулировка яркости.
Всё это делалось на таймере. Один канал сравнения формировал строб записи, а другой канал создавал event, который запускал DMA, который заливал данные в SPI и SPI заливал данные в сдвиговый регистр MAX-имки. Период таймера задавал интервал с какой частотой переключались разряды. Как-то так, и это всё работало аппаратно без всяких опросов, прерываний итп.
О, посмотрел старый исходник - там еще этот таймер формировал PWM для сигнала Blank - регулировка яркости.
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
В общем, оказалось, что строгих требований к CS у MAX7219 таки нет. И данные поперли. Бьюсь сейчас с инициализацией всех пикселей (почему-то пока только нулевая строка светится).
UPD: все завелось, всем спасибо!
https://github.com/eddyem/stm32samples/ ... 219_screen
UPD: все завелось, всем спасибо!
https://github.com/eddyem/stm32samples/ ... 219_screen
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Я на гитхабе, в ЖЖ
- Сообщения: 13
- Зарегистрирован: Вт май 25, 2021 18:41:53
Вопрос.
А пользуется кто-либо для работы с STM32 PlatformIO?
Поддерживается работа с фреймворками:
Arduino
Cmsis
Spl
Stm32Cube
Mbed
Libopencm3
Zephyr
Мне очень "зашло"... порог вхождения - на уровне ардуино.
А пользуется кто-либо для работы с STM32 PlatformIO?
Поддерживается работа с фреймворками:
Arduino
Cmsis
Spl
Stm32Cube
Mbed
Libopencm3
Zephyr
Мне очень "зашло"... порог вхождения - на уровне ардуино.
- Реклама
- Сообщения: 7033
- Зарегистрирован: Сб янв 28, 2006 22:47:24
[uquote="avtoneru",url="/forum/viewtopic.php?p=4037274#p4037274"]Поддерживается работа[/uquote]
Ага, поддерживается. Через командную строку и правку файла конфигурации? Как в каменном веке.
Кому как, а мне этого платформио хватило по самое нехочу с ESP32...
Ага, поддерживается. Через командную строку и правку файла конфигурации? Как в каменном веке.
Кому как, а мне этого платформио хватило по самое нехочу с ESP32...
Астролябия-сама меряет, было бы что мерять!!!
- Сообщения: 13
- Зарегистрирован: Вт май 25, 2021 18:41:53
Asmodey, лет 5 не писал под микроконтроллеры, когда-то (2012-2013) баловался с AVR, а несколько платок с STM32 лежали без дела, т.к. "голова была кругом" от порога вхождения. Keil - сложно, Eclipse - муторно и глючно ...
Недавно понадобилось поуправлять одним устройством через UART и логи пособирать. Купил ардуинку Uno по дороге с работы и уже на следующий день отлаживал парсинг данных с софтового UARTa ... Это был первый опыт общения с ардуино.
"В процессе" случайно увидел как человек нахваливает PlatformIO, и как он больше не вернется к ардуино IDE. В результате - проект быстро переехал в PlatformIO - нормальный, а не спартанский редактор кода для меня это было решающим.
Вспомнил про лежащие несколько лет платки с STM32. На удивление легко, практически без "танцев с бубном", перенес написанное под AVR-ардуино на STM32 ...
Отдельной песни заслуживает ода славы для ... Git - контроль версий это сила.
С командной строкой не воевал, т.к. для STM32 и AVR PlatfornIO это обычная графическая оболочка.
Недавно понадобилось поуправлять одним устройством через UART и логи пособирать. Купил ардуинку Uno по дороге с работы и уже на следующий день отлаживал парсинг данных с софтового UARTa ... Это был первый опыт общения с ардуино.
"В процессе" случайно увидел как человек нахваливает PlatformIO, и как он больше не вернется к ардуино IDE. В результате - проект быстро переехал в PlatformIO - нормальный, а не спартанский редактор кода для меня это было решающим.
Вспомнил про лежащие несколько лет платки с STM32. На удивление легко, практически без "танцев с бубном", перенес написанное под AVR-ардуино на STM32 ...
Отдельной песни заслуживает ода славы для ... Git - контроль версий это сила.
С командной строкой не воевал, т.к. для STM32 и AVR PlatfornIO это обычная графическая оболочка.
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
Абдурины и калокубы - тупиковый путь. И уж профессионал этой дрянью точно промышлять не станет. Да и любой уважающий себя любитель — тоже!
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Я на гитхабе, в ЖЖ
- Сообщения: 13
- Зарегистрирован: Вт май 25, 2021 18:41:53
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=4037397#p4037397"]Абдурины и калокубы - тупиковый путь. И уж профессионал этой дрянью точно промышлять не станет. Да и любой уважающий себя любитель — тоже![/uquote]
Это распространённая точка зрения. Но не догма.
Та же ардуино IDE позволяет написать то, что душе угодно. Но есть одно НО. Перед тем, как писать под ардуино, бегло посмотрел на её код, погуглил и узнал какие ресурсы используются средой, а что можно использовать самому ...
Аналогично перекопал STM32duino, и ничего страшного в ней не вижу.
Сейчас пытаюсь освоить freeRTOS, и даже получается. А раньше даже примеры с freeRTOS запускать было мучением.
Дружественная к пользователю IDE - это важно. Мне так думается.
А кто-то не приемлет отсутствие возможности потрошить make файл...
Это распространённая точка зрения. Но не догма.
Та же ардуино IDE позволяет написать то, что душе угодно. Но есть одно НО. Перед тем, как писать под ардуино, бегло посмотрел на её код, погуглил и узнал какие ресурсы используются средой, а что можно использовать самому ...
Аналогично перекопал STM32duino, и ничего страшного в ней не вижу.
Сейчас пытаюсь освоить freeRTOS, и даже получается. А раньше даже примеры с freeRTOS запускать было мучением.
Дружественная к пользователю IDE - это важно. Мне так думается.
А кто-то не приемлет отсутствие возможности потрошить make файл...
- Сообщения: 7033
- Зарегистрирован: Сб янв 28, 2006 22:47:24
[uquote="avtoneru",url="/forum/viewtopic.php?p=4037389#p4037389"]для STM32 и AVR PlatfornIO это обычная графическая оболочка.[/uquote]
Надо будет посмотреть. Может я чего-то упустил и, возможно, для STM он заметно отличается от того, что было с ESP.
Но, все же обратите внимание на IAR for ARM. Среда немного похожа на эклипс, но без танцев с бубнами.
Надо будет посмотреть. Может я чего-то упустил и, возможно, для STM он заметно отличается от того, что было с ESP.
Но, все же обратите внимание на IAR for ARM. Среда немного похожа на эклипс, но без танцев с бубнами.
Астролябия-сама меряет, было бы что мерять!!!
- Сообщения: 13
- Зарегистрирован: Вт май 25, 2021 18:41:53
[uquote="Asmodey",url="/forum/viewtopic.php?p=4037430#p4037430"][uquote="avtoneru",url="/forum/viewtopic.php?p=4037389#p4037389"]для STM32 и AVR PlatfornIO это обычная графическая оболочка.[/uquote]
Надо будет посмотреть. Может я чего-то упустил и, возможно, для STM он заметно отличается от того, что было с ESP.
Но, все же обратите внимание на IAR for ARM. Среда немного похожа на эклипс, но без танцев с бубнами.[/uquote]
Сейчас - не знаю. Но в каком виде был IAR for ARM лет 5 назад, тогда с Keil было на порядок проще. А под Eclipse вечно что-то глючило.
PlatformIO плюс STM32duino - имеет порог вхождения в кодинг для STM32 на уровне обычного ардуино, плюс обалденный редактор кода Visual Code... в два клика смотрится всё, что угодно, отладка по SWD - работает как часы, тут же можно и дизассемблер глянуть, посмотреть чего там ...
Если душа не лежит ко всяким ардуино - кубам, в PlatformIO можно "по ждежайски" писать под STM32 вообще без фреймворков, только CMSIS.
Надо будет посмотреть. Может я чего-то упустил и, возможно, для STM он заметно отличается от того, что было с ESP.
Но, все же обратите внимание на IAR for ARM. Среда немного похожа на эклипс, но без танцев с бубнами.[/uquote]
Сейчас - не знаю. Но в каком виде был IAR for ARM лет 5 назад, тогда с Keil было на порядок проще. А под Eclipse вечно что-то глючило.
PlatformIO плюс STM32duino - имеет порог вхождения в кодинг для STM32 на уровне обычного ардуино, плюс обалденный редактор кода Visual Code... в два клика смотрится всё, что угодно, отладка по SWD - работает как часы, тут же можно и дизассемблер глянуть, посмотреть чего там ...
Если душа не лежит ко всяким ардуино - кубам, в PlatformIO можно "по ждежайски" писать под STM32 вообще без фреймворков, только CMSIS.
- Сообщения: 7033
- Зарегистрирован: Сб янв 28, 2006 22:47:24
Да видел я этот VSC. По моему скромному мнению IAR, Keil, MPLAB, авр студия и Code Blocks значительно удобнее в кодинге и отладке. И возможностей больше. Но, повторюсь, возможно все так плохо обстоит только с платформио и vsc для ESP. Поставлю вот, попробую с STM из под них побаловаться.
Астролябия-сама меряет, было бы что мерять!!!
- Сообщения: 1525
- Зарегистрирован: Чт июн 10, 2010 20:11:19
[uquote="avtoneru",url="/forum/viewtopic.php?p=4037428#p4037428"]Это распространённая точка зрения. Но не догма.[/uquote]
Тут буквально пару дней назад на Хабре пытались выжать из Кубовой реализации USB-CDC максимум скорости. Не превозмогли. А потом нашли две нормальные реализации, которые просто работают.
Тут буквально пару дней назад на Хабре пытались выжать из Кубовой реализации USB-CDC максимум скорости. Не превозмогли. А потом нашли две нормальные реализации, которые просто работают.
У вас с хронологией проблемы. В каменном веке еще не умели писать, картиночками и жестами обходились. Удобный текстовый интерфейс придумали гораздо позже. Так что каменный век это именно графический интерфейс, а командная строка - начало железного века.Asmodey писал(а):Через командную строку и правку файла конфигурации? Как в каменном веке.
- Сообщения: 13
- Зарегистрирован: Вт май 25, 2021 18:41:53
COKPOWEHEU, есть человек тыкающий - тот что мышкой или пальцем по экрану тыкает, а код или копипастит, или набирает одним пальцем - тоже тыкает...
Когда человек начинает писать сам - он постепенно превращается в человека пишущего, и осознает, что неудобно руки отрывать от клавиатуры, что бы совершить действие "тык"..., начинает постепенно использовать горячие клавиши и ценить те моменты, когда в IDE ему удобно.
Но человеку тыкающему это объяснить сложно, он будет продолжать тыкать.
А по поводу Куба, Ардуино, и подобному ...
Есть моменты, когда это может быть удобно. Никто и не обещал, что это будет самый быстрый, безошибочный и оптимальный результат.
Ардуино для кого предназначалась - для школьников, познакомить их с азами программирования. С этой задачей справляется "на ура", да ещё и с возможностью изучить С++ (применение которого в МК довольно спорно, т.к. тратятся, и так скудные, ресурсы МК).
А вот Куб ... там можно почерпнуть примеры инициализации периферии и тактирования, т.к. нынче это становится нетривиальной задачей из-за сложности внутреннего устройства STM32.
Можно ещё посетовать, что люди мало читают даташитов и апноутов ... когда начнут превращаться в людей пишущих - сами начнут читать. Принуждать их к этому бесполезно.
Когда человек начинает писать сам - он постепенно превращается в человека пишущего, и осознает, что неудобно руки отрывать от клавиатуры, что бы совершить действие "тык"..., начинает постепенно использовать горячие клавиши и ценить те моменты, когда в IDE ему удобно.
Но человеку тыкающему это объяснить сложно, он будет продолжать тыкать.
А по поводу Куба, Ардуино, и подобному ...
Есть моменты, когда это может быть удобно. Никто и не обещал, что это будет самый быстрый, безошибочный и оптимальный результат.
Ардуино для кого предназначалась - для школьников, познакомить их с азами программирования. С этой задачей справляется "на ура", да ещё и с возможностью изучить С++ (применение которого в МК довольно спорно, т.к. тратятся, и так скудные, ресурсы МК).
А вот Куб ... там можно почерпнуть примеры инициализации периферии и тактирования, т.к. нынче это становится нетривиальной задачей из-за сложности внутреннего устройства STM32.
Можно ещё посетовать, что люди мало читают даташитов и апноутов ... когда начнут превращаться в людей пишущих - сами начнут читать. Принуждать их к этому бесполезно.
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
avtoneru, если хочется тупо иметь кнопку "сделать зашибись", не вникая в последствия и не имея никакого желания в дальнейшем код развивать и поддерживать, то калокубы-абдурины - как раз то, что надо!
Но это - тупиковый путь. Абдуринщики обычно так и не учатся ничему. Они лишь умеют копипастить и мышкой по галочкам тыкать.
Если же человек хочет именно НАУЧИТЬСЯ, то ему ни в коем случае даже длинной палкой нельзя тыкать все эти абдурины-калокубы и прочую мерзость.
Тот, кто не умеет в голой консоли собрать простейший проектик и прошить МК, вряд ли имеет какое-то будущее!
Но это - тупиковый путь. Абдуринщики обычно так и не учатся ничему. Они лишь умеют копипастить и мышкой по галочкам тыкать.
Если же человек хочет именно НАУЧИТЬСЯ, то ему ни в коем случае даже длинной палкой нельзя тыкать все эти абдурины-калокубы и прочую мерзость.
Тот, кто не умеет в голой консоли собрать простейший проектик и прошить МК, вряд ли имеет какое-то будущее!
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Я на гитхабе, в ЖЖ
- Сообщения: 13
- Зарегистрирован: Вт май 25, 2021 18:41:53
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=4037585#p4037585"]avtoneruТот, кто не умеет в голой консоли собрать простейший проектик и прошить МК, вряд ли имеет какое-то будущее![/uquote]
Бред полный. Тут же не профи собрались, которые пиписьками меряются. Для чего школьнику, или любителю для разового проекта осваивать консоль? Ему нужен полный контроль за всеми действиями компилятора/линкера и супер-оптимальный, супер-надежный код?
Да им просто надо, чтоб "заработало" и счастья будет выше крыши.
Бред полный. Тут же не профи собрались, которые пиписьками меряются. Для чего школьнику, или любителю для разового проекта осваивать консоль? Ему нужен полный контроль за всеми действиями компилятора/линкера и супер-оптимальный, супер-надежный код?
Да им просто надо, чтоб "заработало" и счастья будет выше крыши.
- Сообщения: 7033
- Зарегистрирован: Сб янв 28, 2006 22:47:24
[uquote="avtoneru",url="/forum/viewtopic.php?p=4037575#p4037575"]А вот Куб ... там можно почерпнуть примеры инициализации периферии и тактирования[/uquote]
Я пытался, но там глаза можно сломать выискивая нужное портянках кода. Даташиты и интернет-форумы (спасибо участникам форума Радиокот
) оказались информативнее. К тому же жаль тратить время на изучение самого куба (без чего вряд ли получится подсмотреть примеры), если в последствии не собираешься им пользоваться.
Я пытался, но там глаза можно сломать выискивая нужное портянках кода. Даташиты и интернет-форумы (спасибо участникам форума Радиокот
Астролябия-сама меряет, было бы что мерять!!!
- Сообщения: 1525
- Зарегистрирован: Чт июн 10, 2010 20:11:19
[uquote="avtoneru",url="/forum/viewtopic.php?p=4037575#p4037575"]А вот Куб ... там можно почерпнуть примеры инициализации периферии и тактирования, т.к. нынче это становится нетривиальной задачей из-за сложности внутреннего устройства STM32.[/uquote]
Это не помогает, сам пробовал. Перенести инициализацию из Куба в нормальный проект очень трудно, проще с нуля написать.
Это не помогает, сам пробовал. Перенести инициализацию из Куба в нормальный проект очень трудно, проще с нуля написать.
Скорее, для не-программистов, чтобы смогли быстро тяп-ляп сделать примитиивную автоматизацию и заниматься разведением ежей дальше.avtoneru писал(а):Ардуино для кого предназначалась - для школьников, познакомить их с азами программирования.
Не согласен. Просто она позволяет рукожопам заниматься электроникой хоть как-то. Те, кто хотел заниматься ей нормально, просто из Ардуины вырастают и не попадают в вашу статистику. А те, кто попадает, и так бы ничему не научились.Eddy_Em писал(а):Но это - тупиковый путь. Абдуринщики обычно так и не учатся ничему. Они лишь умеют копипастить и мышкой по галочкам тыкать.
Ну отчего же. Можно - чтобы посмотреть насколько оно мерзость, обжечься и самим так не делать.Eddy_Em писал(а):Если же человек хочет именно НАУЧИТЬСЯ, то ему ни в коем случае даже длинной палкой нельзя тыкать все эти абдурины-калокубы и прочую мерзость.
Снова излишне резкое утверждение. Все с чего-то начинали, некоторые даже с Бейсика. Все же владение взрослыми средствами сборки предполагает наличие некоторого опыта и знаний. Вы же не будете заставлять ребенка лепить куличика по ГОСТу. Детскому уровню развития детские "инструменты".Eddy_Em писал(а):Тот, кто не умеет в голой консоли собрать простейший проектик и прошить МК, вряд ли имеет какое-то будущее!
за то время, сколько этот тезис существует, доля использующих этот метод неуклонно стремится к нулю, в то время как количество "тыкателей мышкой" растет, как на дрожжах.Eddy_Em писал(а):Тот, кто не умеет в голой консоли собрать простейший проектик и прошить МК, вряд ли имеет какое-то будущее!
реальность расставляет все по местам: выживает не умнейший, а наиболее приспособленный.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сообщения: 13
- Зарегистрирован: Вт май 25, 2021 18:41:53
Можно умничать сколько угодно. Но вот реальный пример.
Надо написать потокобезопасный (freeRTOS) код, использующий таймер, GPIO и DMA. Код должен, с минимальными изменениями, работать на F0 F1 F4 семействах.
В итоге из выбора между HAL LL CMSIS, склоняюсь к выбору LL драйверов. Если будет продолжаться дефицит - придется вообще переходить с STM32 на что-то китайское, с адекватной ценой и "в наличии".
Надо написать потокобезопасный (freeRTOS) код, использующий таймер, GPIO и DMA. Код должен, с минимальными изменениями, работать на F0 F1 F4 семействах.
В итоге из выбора между HAL LL CMSIS, склоняюсь к выбору LL драйверов. Если будет продолжаться дефицит - придется вообще переходить с STM32 на что-то китайское, с адекватной ценой и "в наличии".


