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

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

Сообщение Oxford »

Схем для паяльников полно готовых берите решение и юзайте.
Инженер R@D

Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Контактная информация:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 6642
Зарегистрирован: Сб янв 28, 2006 22:47:24

Сообщение Asmodey »

[uquote="do-vitas",url="/forum/viewtopic.php?p=3994363#p3994363"]Eddy_Em, у меня терморезистор 50ом[/uquote]
Мостовая схема включения терморезистора и дифусилитель. Либо измерение напряжений на плечах моста двумя каналами АЦП, с вычислением разности. После усиления усилителями постоянного тока, разумеется.
Астролябия-сама меряет, было бы что мерять!!!
Реклама
Мучитель микросхем
Сообщения: 446
Зарегистрирован: Вс ноя 01, 2015 09:15:16
Откуда: 69.Ржев

Сообщение a797945 »

Loyso Pondohva, между ОУ и МК R и C стоят? (оговариваются в AN2834), если спешить не куда - поставьте максимально "длинное" преобразование (в SMPRх ).
Прорезались зубы
Сообщения: 213
Зарегистрирован: Пт июл 03, 2020 22:09:02

Сообщение Loyso Pondohva »

[uquote="a797945",url="/forum/viewtopic.php?p=3994525#p3994525"]Loyso Pondohva, между ОУ и МК R и C стоят? (оговариваются в AN2834).[/uquote]

Нет. Не стоят. Этот вход вообще я сделал чтобы "не пропадал" второй ОУ в LM358. А первый используется после AD8307 (логарифмический детектор ВЧ) и там стоят - после детектора и до ОУ.

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

Или сделаю от 5 в до 3 в линейный стабилизатор на LM317т. Правда - это 2 в на пределе LM - ки и я не знаю нормально ли 3в (а не 3.3) для всего. Но скорее всего - так даже лучше. Самый большой ток потребляет подсветка дисплея, а так еще можно все запитать от 3.3 v blue pill - не помню сходу сколько там можно брать, но на AD9850 и MCP4922 хватит.

Вообще посмотрю сколько тока нужно на критичные по стабильности узлы и исходя из этого пойму как схему запитывать. Пока собрал только прикидочно - чтобы убедиться, что все как-нибудь работает и весь софт написать. Еще ОУ для ВЧ - AD 8009 не пришел...
Реклама
Эиком - электронные компоненты и радиодетали
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 363
Зарегистрирован: Вс мар 03, 2019 08:18:34
Откуда: Волгоград

Сообщение do-vitas »

do-vitas писал(а):проблема в том что устройство стартует только после нажатия ресета!
Решил однако кандер 105 допаял параллельно тому что ресет на массу подтягивает! может кому пригодится... :))
Реклама
Мучитель микросхем
Сообщения: 446
Зарегистрирован: Вс ноя 01, 2015 09:15:16
Откуда: 69.Ржев

Сообщение a797945 »

документ не торопясь посмотрите - не надо будет делать лишних движений ;)
Реклама
Прорезались зубы
Сообщения: 213
Зарегистрирован: Пт июл 03, 2020 22:09:02

Сообщение Loyso Pondohva »

Смотрю AN2834. Ох, самое трудное - не делать а читать по делу... да. Спасибо :)
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1231
Зарегистрирован: Ср янв 29, 2014 08:41:31
Откуда: Баку

Сообщение Zhuk72 »

Приветствую, котоварищи.
Разбираюсь с L031, в частности с его USART2.

При отправке символа с компа МК входит в прерывание, а далее (смотрите картинку) программа должна зайти в обработку приема.
Изображение
Но в момент чтения регистра USART2->ISR бит RXNE сбрасывается. Соответственно чтения не происходит.
Кто-то может объяснить причину такого поведения?
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Контактная информация:
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

[uquote="Zhuk72",url="/forum/viewtopic.php?p=3995045#p3995045"]Кто-то может объяснить причину такого поведения?[/uquote]
Уверен, что отладчик прочитал только ISR, а не все регистры включая DR?
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1231
Зарегистрирован: Ср янв 29, 2014 08:41:31
Откуда: Баку

Сообщение Zhuk72 »

Действительно :)
Но в терминале эхо не появилось, хотя по всем шагам прошелся как положено.
Со скоростью напортачил или с конфигом пина ТХ - вот в чем вопрос!
Спасибо!
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Контактная информация:
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

Вожусь со светодиодной матрицей (поочередно соединены четыре матрицы 8х га MAX7219. И в мануале на STM32F103 вообще не вижу прерывания SPI по окончанию передачи данных! Есть по TXE, но в это время передача еще идет. Данные передаю при помощи DMA, а MAX7219 требует сразу после последнего тактового импульса поднять ногу CS, чтобы захватить данные из буфера.
А еще у меня почему-то все данные, приходящие на вход, идут на выход, хотя последние 16 бит должны захватываться!

Как с этим бороться нормальным способом? Чтобы не по-абдурински, используя блокирующие вызовы, а с помощью DMA и конечных автоматов?
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 7363
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Сообщение uldemir »

Не знаю нюансов про MAX, но если это тот самый сигнал CS, то почему не использовать аппаратный, который должен нормальный SPI уметь генерить? В STшной документации, вроде его зовут NSS.

disclaimer: я сейчас сижу под MSP432 и EFM32 и занимаюсь именно SPI - там всё это происходит именно так и без проблем.
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

uldemir, спасибо, попробую. Правда, пока вообще ничего не выходит: как только активировал аппаратный NSS, даже данные перестали полностью передаваться (передается только три бита, а CS вообще в нуле сидит и на 1 не "выпрыгивает")…
На форумах пишут, что NSS управляется исключительно ногодрыгом! И действительно: аппаратный NSS не работает так, как нужно! Он постоянно держит ногу CS в нуле, не поднимая ее в 1 после окончания передачи данных...
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3996566#p3996566"]а CS вообще в нуле сидит и на 1 не "выпрыгивает"…[/uquote]
Только узнал, что у ST проблемный SPI? :) По документации NSS в нуле пока включен SPI, но даже если его выключить NSS будет просто болтаться в воздухе и можно разве что подтяжку включить... Более новые версии SPI умеют дергать NSS между байтами, но F1 так не умеет. А если нужно отправить серию байт и поднять NSS в самом конце, то нужен еще более новый SPI, как у H7, хотя писали, что такие будут у большинства мк выпущенных с этого года.
Последний раз редактировалось Reflector Сб мар 13, 2021 13:54:22, всего редактировалось 1 раз.
Друг Кота
Аватара пользователя
Сообщения: 7363
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Сообщение uldemir »

есть: 25.5.2 SPI control register 2 (SPI_CR2)
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.
NSS ни в коем случае не должен дёргаться между байтами. Иначе будет невозможно общение с SPI EEPROM - там тоже надо опустить CS, передать данные, поднять CS. Так вот, пока есть данные на передачу CS остаётся в нуле. Если делать это по опросу (и даже по прерываниям, если случится задержка) - может возникнуть пауза и CS снимется (перейдёт в лог.1), но если кормить через DMA - такой проблемы нет.
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

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. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 7363
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Сообщение uldemir »

Хмм. не ожидал такого от ST... Тогда План Б. А обязательно ли делать фронт импульса после передачи? В одной конструкции я делал динамическое отображение через сдвиговый регистр MAX6312. Там задвигал данные через SPI, а по окончании дёрнуть строб параллельной загрузки. Я изменил порядок. Сначала дёргаю строб, чтобы записалось то, что было перед этим залито, а затем заливал следующую порцию для следующего фрейма.

Всё это делалось на таймере. Один канал сравнения формировал строб записи, а другой канал создавал event, который запускал DMA, который заливал данные в SPI и SPI заливал данные в сдвиговый регистр MAX-имки. Период таймера задавал интервал с какой частотой переключались разряды. Как-то так, и это всё работало аппаратно без всяких опросов, прерываний итп.

О, посмотрел старый исходник - там еще этот таймер формировал PWM для сигнала Blank - регулировка яркости.
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

В общем, оказалось, что строгих требований к CS у MAX7219 таки нет. И данные поперли. Бьюсь сейчас с инициализацией всех пикселей (почему-то пока только нулевая строка светится).

UPD: все завелось, всем спасибо!
https://github.com/eddyem/stm32samples/ ... 219_screen
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
Родился
Сообщения: 13
Зарегистрирован: Вт май 25, 2021 18:41:53

Сообщение avtoneru »

Вопрос.
А пользуется кто-либо для работы с STM32 PlatformIO?
Поддерживается работа с фреймворками:
Arduino
Cmsis
Spl
Stm32Cube
Mbed
Libopencm3
Zephyr

Мне очень "зашло"... порог вхождения - на уровне ардуино.
Друг Кота
Аватара пользователя
Сообщения: 6642
Зарегистрирован: Сб янв 28, 2006 22:47:24

Сообщение Asmodey »

[uquote="avtoneru",url="/forum/viewtopic.php?p=4037274#p4037274"]Поддерживается работа[/uquote]
Ага, поддерживается. Через командную строку и правку файла конфигурации? Как в каменном веке.
Кому как, а мне этого платформио хватило по самое нехочу с ESP32...
Астролябия-сама меряет, было бы что мерять!!!
Ответить

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