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

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

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

Сообщение Eddy_Em »

Reflector, это как же, интересно, если использовать кал, можно "не подозревать" об отличиях? Кал внезапно включит CAN одновременно с USB на F103? Или у его USB аппаратную подтяжку? Или таймер 32-битный "родит"? Или у его GPIO сделает аппаратную подтяжку в режиме opendrain выхода? И т.д., и т.п.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

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

Сообщение Reflector »

[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3793571#p3793571"]Reflector, это как же, интересно, если использовать кал, можно "не подозревать" об отличиях? Кал внезапно включит CAN одновременно с USB на F103? Или у его USB аппаратную подтяжку? Или таймер 32-битный "родит"? Или у его GPIO сделает аппаратную подтяжку в режиме opendrain выхода? И т.д., и т.п.[/uquote]
Резистор для USB на Blue Pill уже стоит, CAN мало кому нужен, чтобы захотеть подтяжку в режиме opendrain нужно как минимум понимать что такое opendrain, остается один 32-х битный таймер :)
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

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

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

Reflector смотря с чем сравнивать. Если сравнить скажем F103 с ATmega328, то окажется что даже устаревший F103 весьма хороший МК. :)))
По сравнению F072 тоже есть плюсы. Это большая тактовая частота, более мощное ядро (аппаратно поддерживает деление и т. д.). Есть DWT. Больше приоритетов прерываний. Не нужно выравнивать данные в памяти (в Cortex-M0 обязательно иначе HardFault). Больше ОЗУ. Для USB есть библиотека от ST, а для F072 нужно самому писать или пользоваться кубом.
Короче F103 нормальный МК, для которого много подходящих задач. :)
Аватара пользователя
Oxford
Опытный кот
Сообщения: 819
Зарегистрирован: Вт окт 23, 2012 13:17:25
Откуда: Прокопьевск
Контактная информация:

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

Сообщение Oxford »

Просто скопирую свой старый пост касательно сравнения 48-ми пиновых F103 и F072:
... порты старые, подтяжки доступны не во всех режимах, меньше гибкости в плане привязки периферии к конкретным пинах и эти порты медленные. USB также без подтяжки, буфер в 2 раза меньше, без кварца USB не работает, одновременно с CAN тоже, разгон с USB недоступен. I2C старый и просто неудачный, USART/SPI старые, USART-ов еще и на 1 меньше, ADC старый, но 2 канала, RTC - просто счетчик, таймеров всего 4 против 9, 32-х таймеров нет, CEC нет, DAC нет, емкостных каналов нет, компараторов нет, DFU нет.


Это куда делся DAC интересно? Проблема что ли подтяжку и кварц поставить если это нужно? У 103 до 11 таймеров. USART/SPI что не выполняют свои задачи? В чем их старость? А ADC в каком месте постарел? Компаратор LM393 религия не позволяет юзать или ADC каналы которых до 21 в качестве компаратора? Если нужны емкостные входы выбирай другую серию, можно копеешную TP223 ставить.
Вопрос отсутствия периферии рассматривать это неправильно. Так можно любой МК подвести.
Последний раз редактировалось Oxford Чт фев 20, 2020 00:44:06, всего редактировалось 1 раз.
Инженер R@D

Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Аватара пользователя
COKPOWEHEU
Говорящий с текстолитом
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

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

Сообщение COKPOWEHEU »

[uquote="Oxford",url="/forum/viewtopic.php?p=3793623#p3793623"][quote]Это куда делся DAC интересно?[/uquote]Если речь про F103, то там его и нет.
Аватара пользователя
Oxford
Опытный кот
Сообщения: 819
Зарегистрирован: Вт окт 23, 2012 13:17:25
Откуда: Прокопьевск
Контактная информация:

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

Сообщение Oxford »

[uquote="COKPOWEHEU",url="/forum/viewtopic.php?p=3793632#p3793632"][uquote="Oxford",url="/forum/viewtopic.php?p=3793623#p3793623"][quote]Это куда делся DAC интересно?[/uquote]Если речь про F103, то там его и нет.[/uquote]

Если найду с тебя 10000р договорились?
Инженер R@D

Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

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

Сообщение Reflector »

[uquote="Oxford",url="/forum/viewtopic.php?p=3793623#p3793623"]Это куда делся DAC интересно? Проблема что ли кварц поставить? У 103 до 11 таймеров.[/uquote]
Читай внимательно, то было сравнение 48-ми пиновых мк, а у самого популярного F103С8, стоящего на Blue Pill, нет ни DAC, ни кучи таймеров. Зато по F1 есть множество статей и дешевые платки избавляющие от необходимости паять что-либо трясущимися руками самому :) В этом секрет популярности F1, а не в том, что они в принципе неплохи... Начиная с 64-х ног расклады немного другие, но в lqfp-64 уже F401 за $1.5 можно взять...

USART/SPI что не выполняют свои задачи? В чем их старость? А ADC в каком месте постарел? Компаратор LM393 религия не позволяет юзать?

Вопрос был про недостатки F1, а более старая периферия - это однозначно недостаток. У кого-то может быть потеря производительности из-за отсутствия FIFO у SPI, а кто-то просто не сможет его использовать, т.к. нужно будет настроить его в 11-ти битном режиме, а F1 позволяет задать только 8 или 16.
Аватара пользователя
Oxford
Опытный кот
Сообщения: 819
Зарегистрирован: Вт окт 23, 2012 13:17:25
Откуда: Прокопьевск
Контактная информация:

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

Сообщение Oxford »

Экономика твоя меня не интересует.
Отсутствие FIFO я говорил сравнивать неправильно. Выбирай другой чип если надо, тоже самое и для 11 бит SPI, надо? Читаем даташит, нету нужной плюшки? Идем и читаем где она есть и выбираем камень. Все просто. Камень под задачу.
Недостатков не вижу у серии их и быть не может в принципе так как зависит от выбора чипа, что выбрал то и получил.Так ты можешь сравнивать в любой комбинации и орать что чего то нет и что-то лучше. F4 vs F0, H7 vs G0, F1 vs F3 и так далее, что надо то и выбирай. Описание в даташите по плюшкам.
Инженер R@D

Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Аватара пользователя
COKPOWEHEU
Говорящий с текстолитом
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

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

Сообщение COKPOWEHEU »

[uquote="Oxford",url="/forum/viewtopic.php?p=3793634#p3793634"][uquote="COKPOWEHEU",url="/forum/viewtopic.php?p=3793632#p3793632"][uquote="Oxford",url="/forum/viewtopic.php?p=3793623#p3793623"][quote]Это куда делся DAC интересно?[/uquote]Если речь про F103, то там его и нет.[/uquote]
Если найду с тебя 10000р договорились?[/uquote]
Ты сначала найди. Я даже сделал скриншот. Будь добр, подчеркни где там ЦАП
dac.jpg
(36.78 КБ) 264 скачивания

СпойлерТо, что ЦАП есть в 100-ногих, никто не спорит, ну так и что? Он и в f100 серии есть, и в l1 - речь-то не про них.
Аватара пользователя
Oxford
Опытный кот
Сообщения: 819
Зарегистрирован: Вт окт 23, 2012 13:17:25
Откуда: Прокопьевск
Контактная информация:

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

Сообщение Oxford »

Ты же написал типо в F103 нету, твои слова. В 64 ногих тоже есть DAC. Проблема у тебя в голове просто, а не в F103
Инженер R@D

Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

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

Сообщение Eddy_Em »

[uquote="Reflector",url="/forum/viewtopic.php?p=3793579#p3793579"]Резистор для USB на Blue Pill уже стоит[/uquote]
И какой-то идиот его намертво там поставил! Т.е. для переподключения надо физически USB дергать... Офигеть, как удобно во время отладки!
CAN мало кому нужен

Да нифига ж себе! Он намного удобней 485-го, т.к. сразу "из коробки" и арбитраж, и т.д., и т.п. На расстоянии больше метра лучше только CAN и использовать.
А насчет остального - если товарищу невдомек, что такое opendrain, то ему и 32-битного таймера не нужно. В принципе, многие абдуринщики перешли на "blue pill", продолжая пользоваться абдуриной или калокубом. Железо сменили, а мозги - нет.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Frogfot
Мучитель микросхем
Сообщения: 443
Зарегистрирован: Ср окт 19, 2011 08:48:27
Откуда: Мать городов русских

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

Сообщение Frogfot »

2 Кислородный, WiseLord, Reflector, Eddy_Em: благодарю за высказывание своего мнения по поводу STM32F103C8. Пожалуй, пока выбрасывать платки и чипы не буду.

Как, кстати, STM32F401/411 - платки с ними - "Black Pils" позиционируются как замена "Blue Pils" c STM32F103C8T6 - https://cnx-software.ru/2019/12/24/%D0% ... %82%D1%8C/?

STMicro STM32F103C8T6 ARM Cortex-M3 MCU с тактовой частотой 72 МГц, флэш 64 КБ, SRAM 20 КБ.
STMicro STM32F401CCU6 Arm Cortex-M4F MCU с тактовой частотой 84 МГц, флэш 256 КБ, SRAM 64 КБ
STMicro STM32F411CEU6 Arm Cortex-M4F MCU с тактовой частотой 100 МГц, Флеш 512 КБ, SRAM 128 КБ
Хорошему коту и в декабре - март :)
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

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

Сообщение WiseLord »

Eddy_Em писал(а):для переподключения надо физически USB дергать
Меня тоже несколько напрягало то, что после заливки новой прошивки USB не работает, пока его не переподключишь. Так как компьютер не "знает" о том, что прошивку перезаливали - физически разъём-то никто не трогает.

В итоге решил проблему небольшим изменением в коде. На старте программы перед инициализацией USB конфигурирую USB линии как GPIO, прижимаю их на 20мс к земле. Компьютер делает сброс USB устройства, детектирует подключение нового устройства. Ну а затем всё нормально уже инициализируется и работает.
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

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

Сообщение Eddy_Em »

Frogfot, F4 — это Cortex-M4. Я с ними вообще не работал полноценно ни разу, поэтому ничего сказать не могу. Но явно для новичка они - перебор! Начинать надо с простейших — STM32F0xx. Например, с STM32F030.
А уж M4 с USB OTG — вообще адов ад!
WiseLord, интересное решение. Надо, наверное, тоже себе такое добавить в DEBUG-режиме, если на "таблетке" отлаживаю.
Вообще, я довольно-таки много посидел на STM32F0, после них F103 кажется вообще лютейшим дерьмищем!
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

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

Сообщение Reflector »

[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3793802#p3793802"]F4 — это Cortex-M4. Я с ними вообще не работал полноценно ни разу, поэтому ничего сказать не могу. Но явно для новичка они - перебор! Начинать надо с простейших — STM32F0xx.[/uquote]
M4 от M3 отличается незначительно, добавился FPU, DSP инструкции новичкам все равно не нужны, потому всю сложность привносит периферия и тут новые G0 уже могут быть сложнее F401, хоть они и M0+. Тот же F303 сложнее F401. OTG там USB или нет особо без разницы, все равно абсолютное большинство будет искать готовые либы, то же касается SDIO.
Аватара пользователя
COKPOWEHEU
Говорящий с текстолитом
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

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

Сообщение COKPOWEHEU »

[uquote="Oxford",url="/forum/viewtopic.php?p=3793713#p3793713"]Ты же написал типо в F103 нету, твои слова. В 64 ногих тоже есть DAC. Проблема у тебя в голове просто, а не в F103[/uquote]
Ты не стесняйся, на скриншоте отметь где там ЦАП.
Либо формулируй свои высказывания более однозначно, особенно когда говоришь о не-типичных случаях. Потому что под f103 практически всегда понимают именно f103c8t6, зачастую даже не сам контроллер, а отладочную плату вроде bluepill, на которой он установлен.
Eddy_Em писал(а):И какой-то идиот его намертво там поставил! Т.е. для переподключения надо физически USB дергать... Офигеть, как удобно во время отладки!

А переподключение по методу vusb не работает? Прижать обе ноги к земле и подождать 20 мс если мне не изменяет память.
WiseLord писал(а):В итоге решил проблему небольшим изменением в коде.

А, меня уже опередили :)
Аватара пользователя
baghear
Опытный кот
Сообщения: 791
Зарегистрирован: Вт июн 17, 2014 00:34:26

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

Сообщение baghear »

Разобрался))
Frogfot
Мучитель микросхем
Сообщения: 443
Зарегистрирован: Ср окт 19, 2011 08:48:27
Откуда: Мать городов русских

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

Сообщение Frogfot »

Народ подскажите чё за фигня - STM32F103C8T6 - TIM2 не хочет считать от внешнего входа - подаю с TIM1 PWM4 (PA11) 100 kHz на внешний вход TIM2 - PA0, ни в какую:
Спойлер

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

RCC->APB1ENR |= RCC_APB1ENR_TIM2EN; // TIM2 clock enabled

RCC->APB2ENR |= RCC_APB2ENR_AFIOEN | // Enabled Alternate Function I/O clock
                             RCC_APB2ENR_IOPAEN;  // Enabled Clock GPIO A

GPIOA->CRL   = GPIO_CRL_CNF0_0;   // PA0 - TIM2_ETR External Clock - Floating input

TIM2->CR1   = 0; // TIM2 disabled
TIM2->CR2   = 0;             
TIM2->CNT   = 0; // TIM2 counter
TIM2->PSC   = 0;    // TIM2 prescaler clock;
TIM2->ARR   = 0xFFFF; // TIM2 auto-reload register
TIM2->SMCR = TIM_SMCR_SMS_0|TIM_SMCR_SMS_1|TIM_SMCR_SMS_2 | - SMS = 0b111 - External Clock Mode
                       TIM_SMCR_TS_2 | TIM_SMCR_TS_1 |
                  TIM_SMCR_ECE; // External clock enable
   
TIM2->DIER  = TIM_DIER_UIE; // Update interrupt enable // разрешить прерывания

NVIC_EnableIRQ (TIM2_IRQn); // Enable TIM2 Interrupt
   
NVIC_SetPriority (TIM2_IRQn, 9); // set Priority for Cortex-M0 System Interrupts   
   
TIM2->CR1  |= TIM_CR1_CEN;  // Counter enabled
__enable_irq(); // Enable Interrupt

  LED_Y_Off;

Даже не входит в прерывание, другие прерывания работают. Пробовал на 2-х чипах - одинаковый эффект - не считает от внешнего входа. Пробовал подавать внутренний клок - считает, в прерывание попадает, светодиод мигает, от внешнего входа - ни в какую :(

Спойлер

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

void TIM2_IRQHandler (void)
{
  LED_Y_On;
   
  if(TIM2->SR & TIM_SR_UIF) // Check Update interrupt flag
  {
    TIM2->SR = ~TIM_SR_UIF; // Clear Update interrupt flag
  }
}


Добавлено after 3 hours 42 minutes 23 seconds:
Ставлю TIM2->SMCR = 0 - работает, ставлю TIM2->SMCR = TIM_SMCR_ECE - глухо. Проверяю анализатором - с TIM1 идёт клок 100 кГц, а TIM2 не работает.

Добавлено after 49 minutes 2 seconds:
Короче разобрался - в проге был включён ремап счётного входа TIM2 с PA1 на PA15, слона то я и не заметил :) Ну всего то делов - раз 20 пролистал Reference manual, аппноты, почитал в инете чего народ пишет по таймерам.

Всем спасибо, все свободны.
Хорошему коту и в декабре - март :)
Frogfot
Мучитель микросхем
Сообщения: 443
Зарегистрирован: Ср окт 19, 2011 08:48:27
Откуда: Мать городов русских

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

Сообщение Frogfot »

Вопросик по STM32F103C8T6 - я вывожу в коде:

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

u16 u;
while(1)
{
  GPIOA->ODR = u++;
}

переменную в порт - в самом младшем разряде РА0 частота 1,8 МГц - это при 72 МГц тактовой. Так мало? Или это нормально?
Хорошему коту и в декабре - март :)
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

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

Сообщение VladislavS »

20 тактов на цикл. Многовато. Включить оптимизацию и смотреть листинг.
Ответить

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