Страница 108 из 446

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

Добавлено: Вс апр 05, 2015 15:11:44
baghear
Добрый день, подскажите пожалуйста с какой частотой будет работать выход?

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

    gpio.GPIO_Mode = GPIO_Mode_AF_PP;
    gpio.GPIO_Pin = GPIO_Pin_7; 
    GPIO_Init(GPIOD, &gpio);
    

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

Добавлено: Вс апр 05, 2015 16:08:28
es131245
GPIO не дает частот. GPIO только включает/выключает. Что бы была часта надо циклично инвертировать пин. Лучше всего это делают таймеры с прерыванием.

Например

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

Вот и частота уже с периодом 1сек.

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

Добавлено: Вс апр 05, 2015 19:22:59
baghear
А в каком режиме он включается, ведь это то же не указывается.

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

Добавлено: Вс апр 05, 2015 19:43:27
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

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

Добавлено: Вс апр 05, 2015 20:57:02
baghear
Пин.
Обычно раньше встречал что структуру заполняют полностью, в примере, который я привел не заполняют полностью, и как мне объяснили просто включают, а в каком режиме непонятно пока..

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

Добавлено: Пн апр 06, 2015 07:32:35
amv2000
baghear писал(а):а в каком режиме непонятно пока..
В каком режиме как раз таки понятно, двухтактный выход с альтернативной функцией, а скорость переключения скорее всего где то указана в другом месте, иначе это был бы вход с притягивающим резистором.

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

Добавлено: Пн апр 13, 2015 09:50:01
kapitan0v
Нужно ли настраивать пин (вход-выход, подтяжки и т.д) если он используется как альтернативная функция?

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

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

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

Добавлено: Пн апр 13, 2015 10:06:14
kapitan0v
balmer писал(а):Да нужно. Можно посмотреть в сэмпликах - везде настраивается. Бывают особые случаи, когда часть настроек потом изменяются в AF. Например SPI может переключать на вход/выход ножки в зависимости от NSS.
В примерах от ST есть конечно, но в RM толком ничего не нашел. Или плохо смотрел.

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

Добавлено: Пн апр 13, 2015 12:05:47
ChipKiller
Или плохо смотрел.
в разделе об альтернативных функциях как раз и приводится - GPIO configurations for device peripherals

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

Добавлено: Пт апр 24, 2015 00:35:15
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 показывает то же самое.

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

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

И немного офтопа: поставил на подтяжку 10 кОм резисторы (3,3 питание). Нормально или лучше 5?

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

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

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

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

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

Добавлено: Пт апр 24, 2015 10:42:49
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;
А "максимальная скорость" определяет скорость наростания, т.е. это ФНЧ.

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

Добавлено: Пт апр 24, 2015 12:18:31
baghear
Да Вы правы, сделал так как Вы написали получилось 6MHz.
Все равно маловато.

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

Добавлено: Пт апр 24, 2015 12:31:49
Pavel_1978
А что в итоге получить то хотите?

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

Добавлено: Пт апр 24, 2015 12:50:52
baghear
Хотел посмотреть с какой максимальной частотой можно дергать ножкой, и как работают ограничения по частоте.

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

Добавлено: Пт апр 24, 2015 15:59:37
GARMIN
Ножкой дёргайте в таймере, а софтовым ногодрыгом перестаньте заниматься.

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

Добавлено: Пн апр 27, 2015 22:43:13
es131245
Может ли таймер быть и master И slavом?

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

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