А это все не под ртосом каким-нибудь гоняется?isx писал(а):Переменная butt по-прожнему сказала ..., но вот прерывание от маркера на строке {countERROR++;} не происходило, да и переменная countERROR оставалась равной нулю.
STM32 новичку в ARM что к чему
-
Pnjom-Penb
- Мучитель микросхем
- Сообщения: 469
- Зарегистрирован: Вс авг 30, 2015 03:52:59
Re: STM32 новичку в ARM что к чему
- Реклама
Re: STM32 новичку в ARM что к чему
isx, проверьте на этом SPLбыдлокоде правильно ли работает АЦП вообще. Подавайте напряжение на PC1 и смотрите переменную valADC.
- Вложения
-
- ADC_test.rar
- (653.69 КБ) 147 скачиваний
Иван Сусанин - первый полупроводник 
Re: STM32 новичку в ARM что к чему
Нее... АЦП и 2 таймера, там РТОС не нуженPnjom-Penb писал(а):А это все не под ртосом каким-нибудь гоняется?
У меня SPL нет даже на том компе для этого камня (инет щас медленный, качать пол дня будет), но АЦП в принципе работает правильно (напряжение от переменника если давать, то как положено значения изменяются от 0 до 4096). Завтра попробую родить библиотеку и попробовать.Myp3ik писал(а): проверьте на этом SPLбыдлокоде правильно ли работает АЦП вообще.
Сделал генератор синуса ШИМ-ом (у ШИМа такая же частота, как и в проекте усилителя), подключил наушники, погонял частоты от 50 до 2000Гц - звук чистый безо всяких фильтров (как я и думал, роль фильтра-интегратора взяли на себя головы наушника). Значит шум таки из АЦП.
Завтра попробую сделать генератор сигнала с амплитудой шумов АЦП (+-2LSB) и посмотрю как оно звучит в динамиках. Будем выяснять откуда шум, от наводок на АЦП или от программных уродств.
Re: STM32 новичку в ARM что к чему
Упс... Ступил
. Только вот думаю теперь смысла нет АЦП проверять
.
Не сдержался, сделал генератор белого шума (3 часа выкинул чтоб алгоритм более менее нормальный накорябать). Оказывается мои шумы по уровню громкости похожи на шумы в 1 бит! Я и не думал что шум в 1 бит можно будет хорошо слушать в наушниках
. Идеальной точности на 12 битах получить вряд ли удастся, поэтому буду экспериментировать с программной фильтрацией....
Не сдержался, сделал генератор белого шума (3 часа выкинул чтоб алгоритм более менее нормальный накорябать). Оказывается мои шумы по уровню громкости похожи на шумы в 1 бит! Я и не думал что шум в 1 бит можно будет хорошо слушать в наушниках
- Реклама
Re: STM32 новичку в ARM что к чему
Есть ли какая-то документация или примеры использования HAL'a?
Пока нашел только http://stm32f4-discovery.com/2015/07/al ... libraries/
Пока нашел только http://stm32f4-discovery.com/2015/07/al ... libraries/
-
Pnjom-Penb
- Мучитель микросхем
- Сообщения: 469
- Зарегистрирован: Вс авг 30, 2015 03:52:59
Re: STM32 новичку в ARM что к чему
Так, это ж вроде, не офсайт?
Re: STM32 новичку в ARM что к чему
к сожалению, да...Pnjom-Penb писал(а):Так, это ж вроде, не офсайт?
по поводу шумов измерения на ацп, нашел пару ресурсов:
AN2834 How to get the best ADC accuracy in STM32Fx Series and STM32L1 Series devices
STM32F2 ADC Signal Noise тут все разрешилось 4х слойной разводкой платы.
Re: STM32 новичку в ARM что к чему
В документации на STM32Cube есть. Вам на F4 надо? Тогда вот - STM32CubeF4 (набор библиотек с примерами), там внизу есть доки. Например UM1725 Description of STM32F4xx HAL drivers, документик на 900 с лишним страниц.zebrox писал(а):Есть ли какая-то документация или примеры использования HAL'a?
Re: STM32 новичку в ARM что к чему
Про App.Note в курсе, там особо ничего ценного не нашел - все рекомендации стандартные.zebrox писал(а):по поводу шумов измерения на ацп, нашел пару ресурсов:
А по второму, так там:
Несколько LSB это серьезно для звуковой аппаратуры.Only standard noise of several LSBs corresponding to techspecs remains, of course.
Я у себя проблему частично решил следующим способом. Так как у моего камня максимальная частота 48МГц, то реализовать таймерами можно только 11бит АЦП, поэтому полученный 12-ти битный результат я поделил на два, чем практически ликвидировал шум. Теперь шумит 1 бит, но его еле слышно в наушниках.
Интересно, если на МК повесить радиатор и подключить к заземлению, то это уменьшит помехи?
- Mishany
- Электрический кот
- Сообщения: 1031
- Зарегистрирован: Чт июн 20, 2013 00:00:58
- Откуда: москва, м.Сходненская
Re: STM32 новичку в ARM что к чему
были ли у кого случаи с китайским свистком st-link v2 что б усб отъехал с stm32f101 внутри?
Re: STM32 новичку в ARM что к чему
Здравствуйте. Пытаюсь разбираться понемногу с микроконтроллерами и программированием. С непривычки непросто, элементарные вещи с трудом воспринимаются. Нашёл на разных ресурсах статьи, видео по STM32. Самое простое, запись битов в регистр не могу понять.
Вот пример:
RCC->APB2ENR = RCC->APB2ENR | RCC_APB2ENR_IOPCEN
В статье это действие описывается как побитное суммирование двух значений, что, собственно, вертикальный слэш и значит. Но в итоге и нужно в бит IOPCEN регистра APB2ENR единицу записать. Насколько я понял, бит IOPCEN по умолчанию "0". Ломаю голову и не могу понять - КАК?! Причём многие абсолютно разные ресурсы именно такой подход и описывают, без особых объяснений. Подскажите, плиз, где тут собака зарыта.
Вот пример:
RCC->APB2ENR = RCC->APB2ENR | RCC_APB2ENR_IOPCEN
В статье это действие описывается как побитное суммирование двух значений, что, собственно, вертикальный слэш и значит. Но в итоге и нужно в бит IOPCEN регистра APB2ENR единицу записать. Насколько я понял, бит IOPCEN по умолчанию "0". Ломаю голову и не могу понять - КАК?! Причём многие абсолютно разные ресурсы именно такой подход и описывают, без особых объяснений. Подскажите, плиз, где тут собака зарыта.
Нужно добиваться того чего хочется. В противном случае останется лишь довольствоваться тем, что есть.
Re: STM32 новичку в ARM что к чему
Нет, что такое побитное сложение мне известно, как, впрочем, и другие логические операции. Вопрос в том, что с чем здесь складывается. Как побитным сложением в данном случае искомый бит превращается в единицу? 32-х разрядный регистр и его бит...
Нужно добиваться того чего хочется. В противном случае останется лишь довольствоваться тем, что есть.
Re: STM32 новичку в ARM что к чему
RCC_APB2ENR_IOPCEN - маска, определена где-то в .h файлах, содержит в себе значение типа 0b00000000000100000000000 (просто "типа того", разряды не считал) - т.е. имеет такое числовое значение, что у него в единицу выставлен только нужный бит. Далее он битовым И складывается с текущим значением регистра APB2ENR (RCC->APB2ENR), при битовом сложении нули в маске на значения битов регистра влияния не оказывают, единица в маске встает на соответствующее место в значении. Потом результат пишется обратно в регистр.
- Andrew Martin
- Вымогатель припоя
- Сообщения: 606
- Зарегистрирован: Вт июн 25, 2013 18:45:07
Re: STM32 новичку в ARM что к чему
Porada писал(а): Но в итоге и нужно в бит IOPCEN регистра APB2ENR единицу записать. Насколько я понял, бит IOPCEN по умолчанию "0". Ломаю голову и не могу понять - КАК?! Причём многие абсолютно разные ресурсы именно такой подход и описывают, без особых объяснений. Подскажите, плиз, где тут собака зарыта.
Это вот яркий пример для всех критиканов ассемблера
Вся строка
RCC->APB2ENR = RCC->APB2ENR | RCC_APB2ENR_IOPCEN
сводится к следующим операциям
- загрузка значения регистра APB2ENR в один из регистров ядра (от r0 и до как минимум r7)
- загрузка битовой маски RCC_APB2ENR_IOPCEN в один из регистров ядра
- побитовое OR между двумя регистрами ядра с сохранением результата опять же в регистре ядра
- запись результата побитового OR из регистра ядра обратно в APB2ENR.
Так понятнее?
- КРАМ
- Друг Кота
- Сообщения: 25252
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: STM32 новичку в ARM что к чему
Не факт.Andrew Martin писал(а): сводится к следующим операциям
Во многих компиляторах при подобной записи код оптимизируется до записи бита в конкретный разряд через соответствующий регистр вывода. Процедура RMW происходит на аппаратном уровне и в коде отсутствует.
Re: STM32 новичку в ARM что к чему
Я сомневался насчёт того, что RCC_APB2ENR_IOPCEN маска. Всё остальное ясно. Спасибо всем за развёрнутые ответы.
Нужно добиваться того чего хочется. В противном случае останется лишь довольствоваться тем, что есть.
- Andrew Martin
- Вымогатель припоя
- Сообщения: 606
- Зарегистрирован: Вт июн 25, 2013 18:45:07
Re: STM32 новичку в ARM что к чему
Конечно не факт.КРАМ писал(а): Не факт.
Во многих компиляторах при подобной записи код оптимизируется до записи бита в конкретный разряд через соответствующий регистр вывода. Процедура RMW происходит на аппаратном уровне и в коде отсутствует.
Не только от компилятора зависит, а и от аппаратной части, а именно от наличия/отсутствия bit-banding для конкретной части периферии.
Например, в STM32F0 его увы нет, поэтому финт с атомарной установкой/сбросом бита в регистре вывода может быть реализован только для ног портов (BSRR и BRR регистры).
А RMW может быть реализована программно на любом МК и практически для любых периферийных IO-регистров, как наиболее общий подход.


