Stm32 с чего начать изучение...

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1337
Зарегистрирован: Сб июн 09, 2012 02:14:11
Откуда: ХАРЬКОВ

Сообщение СЦБист »

Мурик писал(а): Это примерно как с WinAPI.

в WinAPI мы не знаем как реализована начинка функций.

знаем только что она принимает и что возвращает

.главная задача периферии с точки зрения кода это ее инициализация.

поэтому мы и лезим в документацию что-бы правильно инициализировать периферию.

как я понял это можно сделать и визуальным тыканьем мыши.
Реклама
Опытный кот
Сообщения: 812
Зарегистрирован: Сб июл 02, 2016 20:22:23

Сообщение SashaN123 »

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

Даже просто на переводе документации на руский вполне можно было б заработать...

Как, вон, различные сайты знакомств зарабатывают. Есть общий доступ для всех (для привлечения чайников) , а есть платный доступ для вип (для чего нить посерьезнее).
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3385
Зарегистрирован: Пн окт 11, 2010 19:00:08

Сообщение Мурик »

SashaN123, если так хочется простоты то откройте для себя куб. https://habrahabr.ru/post/213561/
Еще проще ардуино. :) Нужно уметь читать и тыкать мышкой. :)))
SashaN123 писал(а):Как, вон, различные сайты знакомств зарабатывают.
Вот идите туда и гребите деньги лопатой. :)))
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1363
Зарегистрирован: Чт апр 04, 2013 22:22:57
Откуда: Белгород, РФ

Сообщение SIM31 »

Мурик писал(а):SashaN123, если так хочется простоты то откройте для себя куб. https://habrahabr.ru/post/213561/
Еще проще ардуино. :) Нужно уметь читать и тыкать мышкой. :)))
Ну вообще-то не проще, так как это генератор шаблонов для ранее установленного компилятора. И аналог не Arduino, а скорее Codevision AVR. Который как-раз проще, в связке с отладчиком Proteus вообще творит чудеса, виртуально можно проверить ШИМ, таймеры, понажимать кнопки, отладить аналоговые части.
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 3385
Зарегистрирован: Пн окт 11, 2010 19:00:08

Сообщение Мурик »

SIM31 писал(а):Который как-раз проще, в связке с отладчиком Proteus вообще творит чудеса
В протеусе часто работает не так как в железе. :dont_know: И STM32 вместе с ST-Link, J-Link и т. д. "рвет" протеус как тузик грелку. :)))
Реклама
Вымогатель припоя
Аватара пользователя
Сообщения: 606
Зарегистрирован: Вт июн 25, 2013 18:45:07

Сообщение Andrew Martin »

Мурик писал(а):
Andrew Martin писал(а):мечта и у STM - закрыть прямой доступ к периферии
Смысл? Многие сменят производителя МК и уровень продаж у ST уменьшится. Им это нужно?
Это всеобщая тенденция, а не только у STM. Поэтому к тому времени достойной альтернативы может и не быть. А STM попросту может продолжать демпинг, чем она нынче и занимается.
А смысл в том, что тогда можно изменять сколько угодно (до неузнаваемости) аппаратную часть, нисколько не заботясь о проблемах миграции и совместимости - только править HAL при этом.
Реклама
Вымогатель припоя
Аватара пользователя
Сообщения: 606
Зарегистрирован: Вт июн 25, 2013 18:45:07

Сообщение Andrew Martin »

Мурик писал(а):В протеусе часто работает не так как в железе. :dont_know:
Нужно знать специфику и ограничения протеуса, тогда и сюрпризов не будет :)
По-моему одна из основных ценностей отладчика - возможность пошаговой отладки. С этой точки зрения в ряде приложений отладчик абсолютно бесполезен.
Вымогатель припоя
Аватара пользователя
Сообщения: 616
Зарегистрирован: Вс ноя 01, 2015 13:13:49

Сообщение scorpi_0n »

СЦБист писал(а):
.главная задача периферии с точки зрения кода это ее инициализация.

поэтому мы и лезим в документацию что-бы правильно инициализировать периферию.

как я понял это можно сделать и визуальным тыканьем мыши.
Нельзя. Для того чтобы правильно инициализировать периферию нужно знать как она работает, что визуальное тыкание не даёт изначально.
Вымогатель припоя
Аватара пользователя
Сообщения: 616
Зарегистрирован: Вс ноя 01, 2015 13:13:49

Сообщение scorpi_0n »

Andrew Martin писал(а): А смысл в том, что тогда можно изменять сколько угодно (до неузнаваемости) аппаратную часть, нисколько не заботясь о проблемах миграции и совместимости - только править HAL при этом.
Ну замутите не думая "о проблемах миграции и совместимости" хардварно 9-бит СПИ на Ф100 при переходе с Ф0ХХ. Что, не получается?
Опытный кот
Сообщения: 812
Зарегистрирован: Сб июл 02, 2016 20:22:23

Сообщение SashaN123 »

В этой http://amperka.ru/product/iskra-js вещичке ушли от необходимости знать архитектуру микросхемы?
Вымогатель припоя
Аватара пользователя
Сообщения: 606
Зарегистрирован: Вт июн 25, 2013 18:45:07

Сообщение Andrew Martin »

scorpi_0n писал(а): Ну замутите не думая "о проблемах миграции и совместимости" хардварно 9-бит СПИ на Ф100 при переходе с Ф0ХХ. Что, не получается?
Не надо сравнивать несравнимые вещи.
Ф0 новее Ф1, и поэтому имеют более совершенную периферию. Неуместно в рамках эволюции говорить о совместимости "сверху вниз" и переходе на устаревшие семейства, только "снизу вверх".
Вымогатель припоя
Аватара пользователя
Сообщения: 616
Зарегистрирован: Вс ноя 01, 2015 13:13:49

Сообщение scorpi_0n »

Тогда зачем вообще твердить "о проблемах миграции и совместимости"? Можно замутить ногодрыгом аля ардуина, но разве это выход? И о каком "сверху вниз" может идти речь, если Ф0ХХ самая простая и нижняя линейка СТМ32?
Вымогатель припоя
Аватара пользователя
Сообщения: 606
Зарегистрирован: Вт июн 25, 2013 18:45:07

Сообщение Andrew Martin »

В том то и прелесть закрытой аппаратной части, что производитель как раз может в HAL что-то замутить ногодрыгом, чтобы обеспечить работу "нового" кода на "старом" МК той же линейки, а вы и знать не будете :)))
Глупо в общем-то говорить о совместимости "сверху вниз" линеек МК на разных ядрах, когда даже без периферии код всё равно будет работать неоптимально. Но возможно будет ещё более новая линейка на М0 (на замену Ф0), и тогда встанет вопрос совместимости.
Вымогатель припоя
Аватара пользователя
Сообщения: 616
Зарегистрирован: Вс ноя 01, 2015 13:13:49

Сообщение scorpi_0n »

Andrew Martin писал(а):Неуместно в рамках эволюции говорить о совместимости "сверху вниз" и переходе на устаревшие семейства, только "снизу вверх".
Andrew Martin писал(а): Глупо в общем-то говорить о совместимости "сверху вниз" линеек МК на разных ядрах
Ну так и перестаньте говорить глупости если не в теме. Или почитайте хоть что нибудь о линейках СТМ32 чтобы иметь представление о ядрах и периферии.
Вымогатель припоя
Аватара пользователя
Сообщения: 606
Зарегистрирован: Вт июн 25, 2013 18:45:07

Сообщение Andrew Martin »

scorpi_0n писал(а): Ну так и перестаньте говорить глупости если не в теме. Или почитайте хоть что нибудь о линейках СТМ32 чтобы иметь представление о ядрах и периферии.
Я в отличие от вас не смешиваю мухи с котлетами и не задаюсь вопросом совместимости по периферии и миграции с относительно новых (хотя и "нижних", на ядре М0) F0хх до древних (хотя и на ядре М3) F100. Одно дело разделение на линейки, а другое - хронология их появления.

Правильная аналогия - это сравнение, например, ATMEGA8/16/32 и ATMEGA88/168/328. Последние - это результат эволюции первых, ядро у всех AVR, а по периферии (и особенно по доступу к ней) отличия существенные. Здесь как раз проблему совместимости может решить HAL, чтобы код для Меги8 работал на Меге88.
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

Сообщение Ярослав555 »

Здравствуйте. Вливаюсь в тему. Значит, перехожу я с меги на stm32. Пока в любительском русле, а там посмотрим. С мегами работал в иаре, тут тоже буду юзать его. Светодиодом моргал, даже програмный шимчик делал)) С цапом получилось поиграться. Но пока что очень трудно вложить в голову логику работы периферии, так сказать ее схему. Имею ввиду АЦП. Не хочу использовать HAL, не будем это обсуждать)
Хочу запустить АЦП в режиме ручного запуска, на один канал, самый простой пример использования.

RCC->APB2ENR|=RCC_APB2ENR_ADC1EN;//тактирование АЦП
ADC1->CR1|=ADC_CR1_EOCIE;//включить прерывание АЦП
ADC1->CR2|= ADC_CR2_EXTSEL_0 | ADC_CR2_EXTSEL_1 | ADC_CR2_EXTSEL_2;//програмный запуск АЦП
ADC1->CR2|=ADC_CR2_CAL;//калибровка (не факт что правильно использую)
ADC1->CR2|=ADC_CR2_CONT;//непрерывный режим преобразования
ADC1->CR2|=ADC_CR2_ADON;//включить АЦП
ADC1->SMPR2|=ADC_SMPR2_SMP1;//максимальное время преобразования для 1 канала
ADC1->SQR1&=~ADC_SQR1_L_0|ADC_SQR1_L_1|ADC_SQR1_L_2|ADC_SQR1_L_3;//0000 означает что в списке регулярных каналов у нас 1 канал
ADC1->SQR3|= ADC_SQR3_SQ1_0;//первый вход АЦП
ADC1->CR2|=ADC_CR2_SWSTART;//старт АЦП
while(1){
y=ADC1->SR;
ADC_complete=(ADC1->SR&ADC_SR_EOC);
while(ADC_complete){
x=ADC1->DR;
}
}
Подскажите что я не так включил? В прерывание не уходит, регистр статуса чекаю - бит готовности всегда 0 (x,y использую для мониторинга в отладчике).
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

Ярослав555 писал(а):Хочу запустить АЦП
Я вот так запускал.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

Сообщение Ярослав555 »

Z_h_e писал(а): Я вот так запускал.
инжектированый режим хотелось отложить на потом. А вот:
Z_h_e писал(а):Запустил я АЦП как хотел, не хватало вот этого

Код: Выделить всё

ADC1->CR1|=ADC_CR1_SCAN;//сканирование каналов
интересный момент. Вообще оно как-то в голове все перемешалось регулярные, инжектированые, режим сканирования, непрерывный (а discontinius вообще еще не вкурил как - одноразовый чтоли). Только вторая неделя разбирательства, надеюсь в конце в голове выстроится рабочая модель и понимание логики внутри блока.
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

Ярослав555 писал(а): ADC1->CR2|=ADC_CR2_CAL;//калибровка (не факт что правильно использую)
This bit is set by software to start the calibration. It is reset by hardware after calibration is complete.
Вроде все просто, нужно ждать пока битик не сбросится.
ADC1->CR2|=ADC_CR2_ADON;//включить АЦП
0: Disable ADC conversion/calibration and go to power down mode.
Тоже вроде все логично, калибровку нужно было делать после включения ADC, а не до :)
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

Сообщение Ярослав555 »

Reflector писал(а):
Ярослав555 писал(а): ADC1->CR2|=ADC_CR2_CAL;//калибровка (не факт что правильно использую)
This bit is set by software to start the calibration. It is reset by hardware after calibration is complete.
Вроде все просто, нужно ждать пока битик не сбросится.
ADC1->CR2|=ADC_CR2_ADON;//включить АЦП
0: Disable ADC conversion/calibration and go to power down mode.
Тоже вроде все логично, калибровку нужно было делать после включения ADC, а не до :)
Упс. Установку битов делал в порядке следования в даташите.
Нет, пока не заработало. Перенес включение в конец инициализации, калибровку после включения - что включал, что выключал калибровку - одинаково. Видимо проблема еще где-то.
P.S. Но калибровку проходит - в дата регистре висит значение 0х41.
Ответить

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