Easyelectronics.ru

Электроника для всех
Текущее время: 10 авг 2020, 05:24

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 3340 ]  На страницу Пред.  1 ... 130, 131, 132, 133, 134  След.
Автор Сообщение
 Заголовок сообщения: Re: STM32 для чайников
СообщениеДобавлено: 14 июн 2020, 21:13 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 4713
Откуда: КЧР, поселок Нижний Архыз
AstraHard писал(а):
Загрузил в Blue Pill DFU bootloader линуксовый (вроде работает с dfu-util), оказывается он не дружит с DfuSeDemo от STMicro.

Вообще-то, dfu-util работает с "искоробочным" загрузчиком, зачем туда было другой прошивать? Я STM32F0x2 именно через DFU и прошиваю, а в режим DFU программно перехожу. Вот только фигово, что после прошивки нужно reset жамкать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 для чайников
СообщениеДобавлено: 14 июн 2020, 21:18 
Старожил
Аватара пользователя

Зарегистрирован: 01 дек 2013, 18:06
Сообщения: 227
Откуда: г. Волгоград.
Цитата:
при изменении GPIO_OSPEEDR, тактирование гпио не меняется.

А оно и не должно меняться


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 для чайников
СообщениеДобавлено: 14 июн 2020, 22:23 
Старожил

Зарегистрирован: 10 окт 2014, 00:48
Сообщения: 6905
Антип писал(а):
Код:
while(1) {
               GPIOD ->ODR = i;      
               GPIOD ->ODR = j;
       };
}


Во-первых, включите оптимизатор "-O2" ... "-O3" в компиляторе.
Во-вторых, изменение параметра "OSPEED" влияет на аппаратное (задержки) формирование выхода GPIO, а не программное (частота выхода) и реально работает только на очень высоком сигнале (>10M). "Просто так" на осциллографе вы ничего не заметите. Сделайте "во-первых" и слегка модифицируйте код:
Код:
while(1) {
               GPIOD ->ODR = i;      
               GPIOD ->ODR = j;
               GPIOD ->ODR = i;      
               GPIOD ->ODR = j;
               GPIOD ->ODR = i;      
               GPIOD ->ODR = j;
               GPIOD ->ODR = i;      
               GPIOD ->ODR = j;
               GPIOD ->ODR = i;      
               GPIOD ->ODR = j;
               GPIOD ->ODR = i;      
               GPIOD ->ODR = j;
       };
}

Если не ошибаюсь, то после этого на порте совсем другую картину.
Впрочем, этот баг (с фальшивой OSPEED) был на F1 и частично поправлен на F3. Как на (более старой) серии F4 - не знаю.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 для чайников
СообщениеДобавлено: 14 июн 2020, 22:37 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 4713
Откуда: КЧР, поселок Нижний Архыз
А почему это баг? OSPEED же только влияет на домен питания: какой предельный ток МК готов будет в порт отдавать…


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 для чайников
СообщениеДобавлено: 14 июн 2020, 22:53 
Старожил

Зарегистрирован: 10 окт 2014, 00:48
Сообщения: 6905
НЕ влияет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 для чайников
СообщениеДобавлено: 14 июн 2020, 22:54 
Старожил
Аватара пользователя

Зарегистрирован: 13 янв 2018, 21:36
Сообщения: 1515
Антип писал(а):
Жду Ваших советов.
Для начала выведи на MCO частоту SYSCLK и измерь её. Судя по делителю UART он у тебя не 42 МГц. Да и скорость выполнения while это подтверждает.

u37 писал(а):
НЕ влияет.
Да ладно, фронты сильно разные при разном OSPEED.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 для чайников
СообщениеДобавлено: 15 июн 2020, 15:43 
Только пришел

Зарегистрирован: 14 июн 2020, 18:59
Сообщения: 6
Всем спасибо за ответы.
u37 писал(а):
Если не ошибаюсь, то после этого на порте совсем другую картину.

:)) Да! Я увидел совсем другую картину... При О2 и О3 гпиоД вообще перестал переключаться. Поставил О1 появился сигнал в 12.5 МГц ... При любом значении OSPEED. Я в ступоре. Но как тогда DFU видит контроллер? Ведь юсб, имхо, весьма критична к таймингам. Кстати шью при помощи dfu-util , кто пользуется этой программой посмотрите репорт, он нормальный? Пугает восьмая строчка.

dfu-util: Invalid DFU suffix signature
dfu-util: A valid DFU suffix will be required in a future dfu-util release!!!
Opening DFU capable USB device...
ID 0483:df11
Run-time device DFU version 011a
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuERROR, status = 10
dfuERROR, clearing status
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 2048
DfuSe interface name: "Internal Flash "
Downloading to address = 0x08000000, size = 1024
Download [=========================] 100% 1024 bytes
Download done.
File downloaded successfully

u37 писал(а):
Для начала выведи на MCO частоту SYSCLK и измерь её.


вряд ли что из этого получится, если я для начала не могу нормального тактирования получить, то что уж говорить про SYSCLK.
Может, у кого есть еще какие идеи?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 для чайников
СообщениеДобавлено: 15 июн 2020, 16:21 
Старожил

Зарегистрирован: 23 янв 2016, 15:37
Сообщения: 1235
Антип писал(а):
В смысле, он работает, но с каким то чудовищным UART4->BRR. Вместо 273,4375 по реф мануалу 9600 на 42 МГц, у меня заработал с BRR равном 1642 (вычислил опытным путем).

Скорее всего у тебя частота 16MHz и 273 превращается в 104, а 1642 ты пишешь в BRR без учета того, что в нем хранится не только целая часть. Итого получается 104 и 103...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 для чайников
СообщениеДобавлено: 15 июн 2020, 17:03 
Старожил

Зарегистрирован: 10 окт 2014, 00:48
Сообщения: 6905
"При О2 и О3 гпиоД вообще перестал переключаться"
Вы так думаете? Отключите PLL, вас поджидает сюрприз.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 для чайников
СообщениеДобавлено: 15 июн 2020, 18:26 
Старожил
Аватара пользователя

Зарегистрирован: 13 янв 2018, 21:36
Сообщения: 1515
Антип писал(а):
Может, у кого есть еще какие идеи?
Их есть у меня. Пойти борщ варить, если не в состоянии RM прочитать и MCO включить.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 для чайников
СообщениеДобавлено: 15 июн 2020, 18:37 
Старожил

Зарегистрирован: 19 апр 2016, 11:59
Сообщения: 537
Антипу нужно научится пользоваться отладчиком. Все сразу станет намного проще.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 для чайников
СообщениеДобавлено: 16 июн 2020, 20:55 
Только пришел

Зарегистрирован: 14 июн 2020, 18:59
Сообщения: 6
Reflector писал(а):
Скорее всего у тебя частота 16MHz .

Скорее всего так и есть, записал в BRR 0x683 (согласно реф ману) передача и прием идут без ошибок.
Reflector писал(а):
Отключите PLL, вас поджидает сюрприз.

добавил строчку RCC ->PLLCFGR &= ~RCC_CR_PLLON; - надеюсь, это выключение PLL. В результате, без оптимизации на выходе 2 МГц, с оптимизацией О1 12.5 МГц. Как грица, толи снег не идет, толи ....
u37 писал(а):
Пойти борщ варить

Я понимаю Вашу иронию, но для меня вывести SYSCLK оказалось неподъёмной задачей. Дело в том, что сисклок на 407 камне выводится не на МСО1 (как обычно), а на МСО2, что и написано в реф мане, и даже указана нога С9 где он находится. Однако какой альтернативной функцией это все запускается я не нашел (в смысле что в AFR да и в RCC_CFGR писать). Возможно, плохо искал.
VladislavS писал(а):
Антипу нужно научится пользоваться отладчиком. Все сразу станет намного проще.

Категорически с Вами согласен! :)
Eddy_Em писал(а):
А оно и не должно меняться

Если не секрет, как бы Вы реализовали такую задачу?
Всем удачи.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 для чайников
СообщениеДобавлено: 16 июн 2020, 22:09 
Старожил
Аватара пользователя

Зарегистрирован: 13 янв 2018, 21:36
Сообщения: 1515
Антип писал(а):
Однако какой альтернативной функцией это все запускается я не нашел
Кроме RM есть DataSheet на конкретный камень. В нем все возможные AF для каждой ноги расписаны. Умение читать и искать документацию сегодня одно из самых важных для разработчика.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 для чайников
СообщениеДобавлено: 16 июн 2020, 22:43 
Старожил

Зарегистрирован: 10 окт 2014, 00:48
Сообщения: 6905
Антип следует научиться правильному цитированию.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 для чайников
СообщениеДобавлено: 17 июн 2020, 00:10 
Старожил

Зарегистрирован: 06 окт 2014, 20:14
Сообщения: 827
Заинтересовал вопрос о времени входа в прерывание (увеличении этого времени) в условии максимально напряженной работы DMA (STM32F103). Хочу устроить преобразование последовательного интерфейса в параллельные слова на GPIO. Скорость GPIO предполагается 400 КГц. Интересно, какой получиться фазовый дребезг параллельного вывода по таймеру. Поскольку GPIO не снабжено DMA вывод будет по таймеру. Если кто измерял фазовый дребезг в таком случае прошу меня посвятить? Я хочу на практике показать влияние клока отладки SWD интерфейса на фазовый дребезг в таком случае. То-есть доказать, что CLK SWD "вращает" приоритеты DMA. Таким образом подтвердить свое теоретическое предсказание. Изменяя частоту CLK SWD посмотреть эффект.

P.S. Вот еще вопрос, работая в CCS с процессором TMS320F280xx привычно оформление так называемых RAM функций, Как обстоят дела с этим в STM32CubeIDE?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 для чайников
СообщениеДобавлено: 17 июн 2020, 11:18 
Только пришел

Зарегистрирован: 14 июн 2020, 18:59
Сообщения: 6
u37 писал(а):
Антип следует научиться правильному цитированию.

Пардон! Просто движек форума, по крайней мере у меня, выставляет автора цитаты по какому то своему разумению. Впредь буду внимательней.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 для чайников
СообщениеДобавлено: 17 июн 2020, 14:20 
Старожил

Зарегистрирован: 19 апр 2016, 11:59
Сообщения: 537
Антип писал(а):
Просто движек форума, по крайней мере у меня, выставляет автора цитаты по какому то своему разумению.
Все он правильно выставляет. Это вы нажимаете на кнопку предыдущего сообщения.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 для чайников
СообщениеДобавлено: 19 июн 2020, 00:06 
Старожил

Зарегистрирован: 06 июн 2018, 22:30
Сообщения: 529
Откуда: Киев
Подскажите такую вещь хочу понять почему включение кеш инструкций у H750 не дает практически никакого эффекта. Проделываю следующий опыт. Выполняю расчет CRC16 10000 раз при расчете буфера в 256 байт, при этом я специально увеличил латентность флеша до 16. С отключенным кешем время цикла 330мс с включенным 248 мс. Но по идее как раз циклы должны максимально раскрывать производительность при включении кеша. Код такой:
Код:
volatile uint32_t i, a;

  SCB_EnableICache();

  while(1)
  {
   LED0_SET;
   for(i = 0; i < 10000; i++)
   {
    a = TCRC16::GetCRC16Modbus(0xffff, Task_USART_PC::USART2_RxBuff, 256);
   }
   LED0_RST;
   __NOP();
   __NOP();
   __NOP();
   __NOP();
   __NOP();
   __NOP();
   __NOP();
  }



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 для чайников
СообщениеДобавлено: 19 июн 2020, 00:32 
Старожил
Аватара пользователя

Зарегистрирован: 13 янв 2018, 21:36
Сообщения: 1515
MasterElectric писал(а):
почему включение кеш инструкций у H750 не дает практически никакого эффекта.

С отключенным кешем время цикла 330мс с включенным 248 мс.
25% это никакого эффекта? Ведь код то не только чтением flash занят, он активно с RAM работает. Пока идут обращения к RAM всякие продвинутые акселераторы успевают флэшь вычитать. Там шина к флэшь поди уже 128 бит?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 для чайников
СообщениеДобавлено: 19 июн 2020, 00:44 
Старожил

Зарегистрирован: 23 янв 2016, 15:37
Сообщения: 1235
MasterElectric писал(а):
Но по идее как раз циклы должны максимально раскрывать производительность при включении кеша.

У M7 еще предсказание переходов есть которое работает и без кеша.

VladislavS писал(а):
Там шина к флэшь поди уже 128 бит?

256, еще и с очередью.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 для чайников
СообщениеДобавлено: 19 июн 2020, 01:21 
Старожил

Зарегистрирован: 06 июн 2018, 22:30
Сообщения: 529
Откуда: Киев
Спасибо огромное теперь все прояснилось. Да посмотрел внимательнее на контроллер флеш памяти, эффективно работает и шина 256 бит и очередь глубиной в 3х и еще независимая работа банков. А вот интересно в случае 2 ядерников у них как раз ядра подключены по умолчанию к разным банкам. Я не нашел особо информации по шине AXI (хотя в RM таки что-то есть), но насколько я понял шина позволяет передавать данные параллельно если разные мастера и слейвы, так ли это?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 для чайников
СообщениеДобавлено: 20 июл 2020, 11:00 
Старожил

Зарегистрирован: 20 мар 2013, 11:27
Сообщения: 5358
Вопрос. Если просто активируешь выводы на uart включив нужную альтернативную функцию (например AF1 для stm32f030f4) то в каком режиме будет TX? Push pull или open drain?
И вообще биты переключения будут влиять на пин в альтернативной функции?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 для чайников
СообщениеДобавлено: 20 июл 2020, 11:08 
Старожил

Зарегистрирован: 23 янв 2016, 15:37
Сообщения: 1235
axill писал(а):
Вопрос. Если просто активируешь выводы на uart включив нужную альтернативную функцию (например AF1 для stm32f030f4) то в каком режиме будет TX? Push pull или open drain?

Очевидно же, режим будет такой как и до включения нужной AF... Периферия может направления сама менять, но OD или подтяжки нужно включать самому.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 для чайников
СообщениеДобавлено: 20 июл 2020, 14:52 
Старожил

Зарегистрирован: 20 мар 2013, 11:27
Сообщения: 5358
Понял, спасибо
Для меня не очевидно из RM и даташита

Еще вопрос
Прерывания EXTI
В обработчике надо сбрасывать pending bit именно той линии по которой пришло прерывание?
А как узнать по какой линии было прерывание?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 для чайников
СообщениеДобавлено: 21 июл 2020, 00:10 
Старожил

Зарегистрирован: 20 мар 2013, 11:27
Сообщения: 5358
если этот регистр содержит биты в 1 по которым произошло прерывание и чтобы сбросить их же надо выставить в единицу
так заработает?

Код:
EXTI->PR |= EXTI->PR;


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3340 ]  На страницу Пред.  1 ... 130, 131, 132, 133, 134  След.


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB