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

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

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

Сообщение baghear »

Добрый день, подскажите пожалуйста с какой частотой будет работать выход?

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

    gpio.GPIO_Mode = GPIO_Mode_AF_PP;
    gpio.GPIO_Pin = GPIO_Pin_7;
    GPIO_Init(GPIOD, &gpio);
   
Аватара пользователя
es131245
Потрогал лапой паяльник
Сообщения: 369
Зарегистрирован: Пт фев 01, 2013 21:05:30

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

Сообщение es131245 »

GPIO не дает частот. GPIO только включает/выключает. Что бы была часта надо циклично инвертировать пин. Лучше всего это делают таймеры с прерыванием.

Например

Запускаем таймер на 0.5сек с прерыванием.
В функции прерывания через GPIO уже инвертируем пин.

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

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

Сообщение baghear »

А в каком режиме он включается, ведь это то же не указывается.
Аватара пользователя
amv2000
Опытный кот
Сообщения: 717
Зарегистрирован: Вт апр 26, 2011 13:58:36
Откуда: Ростовская область

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

Сообщение amv2000 »

baghear писал(а):с какой частотой будет работать выход?

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

 Биты MODEy определяют направление вывода и скорости переключения 
*                  в режиме выхода:                                         
* MODEy[1:0] = 00: Режим входа (состояние после сброса);
* MODEy[1:0] = 01: Режим выхода, максимальная скорость             – 10МГц;
* MODEy[1:0] = 10: Режим выхода, максимальная скорость             – 2 МГц;
* MODEy[1:0] = 11: Режим выхода, максимальная скорость             – 50МГц.
* Биты CNF задают конфигурацию выходных каскадов соответствующих выводов:
*                  в режиме выхода:
* CNFy[1:0]  = 00: Двухтактный выход общего назначения               Out_PP;
* CNFy[1:0]  = 01: Выход с открытым стоком общего назначения         Out_OD;
* CNFy[1:0]  = 10: Двухтактный выход с альтернативной функцией       AF_PP;
* CNFy[1:0]  = 11: Выход с открытым стоком с альтернативной функцией AF_OD.
*                  в режиме входа:
* CNFy[1:0]  = 00: Аналоговый вход                                   AIN;
* CNFy[1:0]  = 01: Вход в третьем состоянии (состояние после сброса) IN_FLOATING;
* CNFy[1:0]  = 10: Вход с притягивающим резистором                   IPU, IPD
*                  pull-up (если PxODR=1) или pull-down (если PxODR=0);
* CNFy[1:0]  = 11: Зарезервировано. 

baghear писал(а):А в каком режиме он включается

Кто он ? Таймер или пин?
http://eugenemcu.ru/publ/13-1-0-71
Аватара пользователя
baghear
Опытный кот
Сообщения: 791
Зарегистрирован: Вт июн 17, 2014 00:34:26

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

Сообщение baghear »

Пин.
Обычно раньше встречал что структуру заполняют полностью, в примере, который я привел не заполняют полностью, и как мне объяснили просто включают, а в каком режиме непонятно пока..
Аватара пользователя
amv2000
Опытный кот
Сообщения: 717
Зарегистрирован: Вт апр 26, 2011 13:58:36
Откуда: Ростовская область

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

Сообщение amv2000 »

baghear писал(а):а в каком режиме непонятно пока..

В каком режиме как раз таки понятно, двухтактный выход с альтернативной функцией, а скорость переключения скорее всего где то указана в другом месте, иначе это был бы вход с притягивающим резистором.
kapitan0v
Открыл глаза
Сообщения: 56
Зарегистрирован: Сб июн 14, 2014 09:05:06

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

Сообщение kapitan0v »

Нужно ли настраивать пин (вход-выход, подтяжки и т.д) если он используется как альтернативная функция?
Аватара пользователя
balmer
Это не хвост, это антенна
Сообщения: 1433
Зарегистрирован: Вс дек 02, 2012 03:13:48
Откуда: Калининград

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

Сообщение balmer »

Да нужно. Можно посмотреть в сэмпликах - везде настраивается. Бывают особые случаи, когда часть настроек потом изменяются в AF. Например SPI может переключать на вход/выход ножки в зависимости от NSS.
kapitan0v
Открыл глаза
Сообщения: 56
Зарегистрирован: Сб июн 14, 2014 09:05:06

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

Сообщение kapitan0v »

balmer писал(а):Да нужно. Можно посмотреть в сэмпликах - везде настраивается. Бывают особые случаи, когда часть настроек потом изменяются в AF. Например SPI может переключать на вход/выход ножки в зависимости от NSS.

В примерах от ST есть конечно, но в RM толком ничего не нашел. Или плохо смотрел.
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

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

Сообщение ChipKiller »

Или плохо смотрел.
в разделе об альтернативных функциях как раз и приводится - GPIO configurations for device peripherals
Аватара пользователя
baghear
Опытный кот
Сообщения: 791
Зарегистрирован: Вт июн 17, 2014 00:34:26

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

Сообщение baghear »

Добрый вечер, подскажите пожалуйста при дергании ножки в ручную частота переключения составила 4MHz.
На выходе MCO установил SYSCLK, осциллограф показал 72MHz.

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

#include "stm32f10x.h"
#include "stm32f10x_rcc.h"
   
int main(void)
{

   RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1;
   RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1;
   
   RCC->APB2ENR = RCC_APB2Periph_GPIOA;
   GPIOA->CRL &= ~GPIO_CRL_CNF0;
   GPIOA->CRL |= GPIO_CRL_MODE0;
   
   while(1)
   {
      GPIOA->BSRR = GPIO_BSRR_BR0;
      GPIOA->BSRR = GPIO_BSRR_BS0;
   }
}

Подскажите пожалуйста почему так может быть?
Изменение максимальной скорости вывод изменяет лишь амплитуду, частота остается та же.

P.S логический анализатор в Keil показывает то же самое.
kapitan0v
Открыл глаза
Сообщения: 56
Зарегистрирован: Сб июн 14, 2014 09:05:06

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

Сообщение kapitan0v »

Всем привет! Не поделитесь кодом для STM32F0 чтения и записи в I2C EEPROM. Без SPL и прерываний. RM читал, примеры в снипетах смотрел, но понял что не особо понял. :)) Особенно то что с таймингами и фильтрами. Заранее спасибо! :beer:

И немного офтопа: поставил на подтяжку 10 кОм резисторы (3,3 питание). Нормально или лучше 5?
Аватара пользователя
balmer
Это не хвост, это антенна
Сообщения: 1433
Зарегистрирован: Вс дек 02, 2012 03:13:48
Откуда: Калининград

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

Сообщение balmer »

Для 100 КГц I2С и коротких проводов - резистора 10 КОм более чем достаточно. Если частота выше или там провода на пару метров - то уже надо смотреть, может и не хватить.
kapitan0v
Открыл глаза
Сообщения: 56
Зарегистрирован: Сб июн 14, 2014 09:05:06

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

Сообщение kapitan0v »

balmer писал(а):Для 100 КГц I2С и коротких проводов - резистора 10 КОм более чем достаточно. Если частота выше или там провода на пару метров - то уже надо смотреть, может и не хватить.

Спасибо. Провода 10 см, частота 400 кГц.
alexf58
Нашел транзистор. Понюхал.
Сообщения: 183
Зарегистрирован: Сб фев 09, 2013 23:00:23

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

Сообщение alexf58 »

baghear писал(а):Добрый вечер, подскажите пожалуйста при дергании ножки в ручную частота переключения составила 4MHz.
На выходе MCO установил SYSCLK, осциллограф показал 72MHz.

Изменение максимальной скорости вывод изменяет лишь амплитуду, частота остается та же.

P.S логический анализатор в Keil показывает то же самое.


Посмотрите на машинный код. Цикл дает большое замедление. Если его развернуть, то скажем, 4 импульса пройдут намного быстрее.

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

GPIOA->BSRR = GPIO_BSRR_BR0;
GPIOA->BSRR = GPIO_BSRR_BS0;
GPIOA->BSRR = GPIO_BSRR_BR0;
GPIOA->BSRR = GPIO_BSRR_BS0;
GPIOA->BSRR = GPIO_BSRR_BR0;
GPIOA->BSRR = GPIO_BSRR_BS0;
GPIOA->BSRR = GPIO_BSRR_BR0;
GPIOA->BSRR = GPIO_BSRR_BS0;


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

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

Сообщение baghear »

Да Вы правы, сделал так как Вы написали получилось 6MHz.
Все равно маловато.
Последний раз редактировалось baghear Пт апр 24, 2015 12:51:13, всего редактировалось 1 раз.
Аватара пользователя
Pavel_1978
Опытный кот
Сообщения: 830
Зарегистрирован: Пт ноя 16, 2007 11:21:37

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

Сообщение Pavel_1978 »

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

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

Сообщение baghear »

Хотел посмотреть с какой максимальной частотой можно дергать ножкой, и как работают ограничения по частоте.
Аватара пользователя
GARMIN
Держит паяльник хвостом
Сообщения: 953
Зарегистрирован: Вс дек 02, 2012 16:58:33
Откуда: от туда
Контактная информация:

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

Сообщение GARMIN »

Ножкой дёргайте в таймере, а софтовым ногодрыгом перестаньте заниматься.
Аватара пользователя
es131245
Потрогал лапой паяльник
Сообщения: 369
Зарегистрирован: Пт фев 01, 2013 21:05:30

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

Сообщение es131245 »

Может ли таймер быть и master И slavом?

Использую timer IC mode, там таймер подключен как slave, а что бы увеличить разрядность хотел его обьединить с другим таймером как master. Пока не получается.

Это вообще реально?
Ответить

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