Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

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

Ср фев 19, 2020 22:44:40

Reflector, это как же, интересно, если использовать кал, можно "не подозревать" об отличиях? Кал внезапно включит CAN одновременно с USB на F103? Или у его USB аппаратную подтяжку? Или таймер 32-битный "родит"? Или у его GPIO сделает аппаратную подтяжку в режиме opendrain выхода? И т.д., и т.п.

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

Ср фев 19, 2020 22:51:37

Reflector, это как же, интересно, если использовать кал, можно "не подозревать" об отличиях? Кал внезапно включит CAN одновременно с USB на F103? Или у его USB аппаратную подтяжку? Или таймер 32-битный "родит"? Или у его GPIO сделает аппаратную подтяжку в режиме opendrain выхода? И т.д., и т.п.

Резистор для USB на Blue Pill уже стоит, CAN мало кому нужен, чтобы захотеть подтяжку в режиме opendrain нужно как минимум понимать что такое opendrain, остается один 32-х битный таймер :)

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

Ср фев 19, 2020 23:39:00

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

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

Чт фев 20, 2020 00:08:21

Просто скопирую свой старый пост касательно сравнения 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 раз.

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

Чт фев 20, 2020 00:30:41

[quote]Это куда делся DAC интересно?
Если речь про F103, то там его и нет.

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

Чт фев 20, 2020 00:33:31

[quote]Это куда делся DAC интересно?
Если речь про F103, то там его и нет.


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

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

Чт фев 20, 2020 01:19:26

Это куда делся DAC интересно? Проблема что ли кварц поставить? У 103 до 11 таймеров.

Читай внимательно, то было сравнение 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.

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

Чт фев 20, 2020 04:53:13

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

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

Чт фев 20, 2020 08:05:12

[quote]Это куда делся DAC интересно?
Если речь про F103, то там его и нет.

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

Ты сначала найди. Я даже сделал скриншот. Будь добр, подчеркни где там ЦАП
dac.jpg
(36.78 KiB) Скачиваний: 232

СпойлерТо, что ЦАП есть в 100-ногих, никто не спорит, ну так и что? Он и в f100 серии есть, и в l1 - речь-то не про них.

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

Чт фев 20, 2020 08:20:02

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

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

Чт фев 20, 2020 08:31:44

Резистор для USB на Blue Pill уже стоит

И какой-то идиот его намертво там поставил! Т.е. для переподключения надо физически USB дергать... Офигеть, как удобно во время отладки!
CAN мало кому нужен

Да нифига ж себе! Он намного удобней 485-го, т.к. сразу "из коробки" и арбитраж, и т.д., и т.п. На расстоянии больше метра лучше только CAN и использовать.
А насчет остального - если товарищу невдомек, что такое opendrain, то ему и 32-битного таймера не нужно. В принципе, многие абдуринщики перешли на "blue pill", продолжая пользоваться абдуриной или калокубом. Железо сменили, а мозги - нет.

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

Чт фев 20, 2020 10:22:21

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 КБ

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

Чт фев 20, 2020 11:03:04

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

В итоге решил проблему небольшим изменением в коде. На старте программы перед инициализацией USB конфигурирую USB линии как GPIO, прижимаю их на 20мс к земле. Компьютер делает сброс USB устройства, детектирует подключение нового устройства. Ну а затем всё нормально уже инициализируется и работает.

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

Чт фев 20, 2020 11:22:57

Frogfot, F4 — это Cortex-M4. Я с ними вообще не работал полноценно ни разу, поэтому ничего сказать не могу. Но явно для новичка они - перебор! Начинать надо с простейших — STM32F0xx. Например, с STM32F030.
А уж M4 с USB OTG — вообще адов ад!
WiseLord, интересное решение. Надо, наверное, тоже себе такое добавить в DEBUG-режиме, если на "таблетке" отлаживаю.
Вообще, я довольно-таки много посидел на STM32F0, после них F103 кажется вообще лютейшим дерьмищем!

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

Чт фев 20, 2020 11:37:59

F4 — это Cortex-M4. Я с ними вообще не работал полноценно ни разу, поэтому ничего сказать не могу. Но явно для новичка они - перебор! Начинать надо с простейших — STM32F0xx.

M4 от M3 отличается незначительно, добавился FPU, DSP инструкции новичкам все равно не нужны, потому всю сложность привносит периферия и тут новые G0 уже могут быть сложнее F401, хоть они и M0+. Тот же F303 сложнее F401. OTG там USB или нет особо без разницы, все равно абсолютное большинство будет искать готовые либы, то же касается SDIO.

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

Чт фев 20, 2020 12:35:46

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

Ты не стесняйся, на скриншоте отметь где там ЦАП.
Либо формулируй свои высказывания более однозначно, особенно когда говоришь о не-типичных случаях. Потому что под f103 практически всегда понимают именно f103c8t6, зачастую даже не сам контроллер, а отладочную плату вроде bluepill, на которой он установлен.
Eddy_Em писал(а):И какой-то идиот его намертво там поставил! Т.е. для переподключения надо физически USB дергать... Офигеть, как удобно во время отладки!

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

А, меня уже опередили :)

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

Чт фев 20, 2020 18:29:41

Разобрался))

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

Сб фев 22, 2020 00:15:30

Народ подскажите чё за фигня - 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, аппноты, почитал в инете чего народ пишет по таймерам.

Всем спасибо, все свободны.

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

Вт фев 25, 2020 22:21:29

Вопросик по STM32F103C8T6 - я вывожу в коде:
Код:
u16 u;
while(1)
{
  GPIOA->ODR = u++;
}

переменную в порт - в самом младшем разряде РА0 частота 1,8 МГц - это при 72 МГц тактовой. Так мало? Или это нормально?

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

Вт фев 25, 2020 22:32:49

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