Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.56/70: Рейтинг темы: голосов - 70, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 10.05.2010
Сообщений: 17
1

STM32 F103C8 не работает вывод на пин MCO (Решено)

13.04.2014, 12:33. Просмотров 13883. Ответов 30
Метки нет (Все метки)

Добрый день.

Столкнулся с проблемой. Хочу посмотреть частоту на пине МСО (PA8), но никак не могу его настроить.

Мк STM32F103C8T6. Среда keil 5.

Ход действий такой.

1) Включаю тактирование порта А (RCC->APB2ENR IOPAEN = 1)
2) Конфигурирую пин, как цифровой выход 50 мГц подключенный к специальным блокам (mode 0x11, CNF 0x10)
3) Включаю тактирование альтернативных функций (RCC->APB2ENR AFIOEN = 1)
4) Подключаю пин MCO ( RCC->CFGR MCO = перепробовал все варианты)

Запускал контроллер, как на внутреннем генераторе, так и на внешнем. Тыкаю осциллографом. Ну не выводит частоту и всё тут.

Буду рад помощи!!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.04.2014, 12:33
Ответы с готовыми решениями:

как выбрать CS пин в SPI1 на stm32?
Обязательно ли в роли CS пина в SPI1 на stm32 использовать только те что обозначены как SPIx_NSS...

[РЕШЕНО]stm32 + qbs
Добрый день, форумчане. Начитался несколько заметок о использовании Qt Creator в качестве IDE и...

[РЕШЕНО]System Workbench for STM32
Добрый день, форумчане. Решил поюзать данную IDE, но при добавлении файлов с инициализацией, и...

STM32 FFT example на Coocox [решено]
Добрый день,форумчане. После работы на AVR-ках на асм-е, пытаюсь освоить ARM (STM32F4-discovery)....

30
0 / 0 / 0
Регистрация: 19.07.2013
Сообщений: 423
13.04.2014, 14:44 2
ХЗ, так попробуйте
*(__IO uint8_t *) CFGR_BYTE4_ADDRESS = RCC_MCO;
0
0 / 0 / 0
Регистрация: 10.05.2010
Сообщений: 17
13.04.2014, 14:54 3
А что это и куда это прописывать?
0
0 / 0 / 0
Регистрация: 08.02.2012
Сообщений: 648
13.04.2014, 15:04 4
невнимательно прочитал....
0
0 / 0 / 0
Регистрация: 10.05.2010
Сообщений: 17
13.04.2014, 16:51 5
sitimur, дружище, ты читал, что я написал в сообщении или только название темы прочитал? Я всё это делал уже сто раз. Подключал разные источники для МСО. И даже указал это в своём сообщении:
4) Подключаю пин MCO ( RCC->CFGR MCO = перепробовал все варианты)
----------------

Да, ещё добавлю. Проверил пин в регистре IDR - работает. Не сгоревший.
0
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 4,017
13.04.2014, 20:30 6
Цитата Сообщение от Yodo
Ход действий такой.

(RCC->APB2ENR IOPAEN = 1)

(RCC->APB2ENR AFIOEN = 1)

( RCC->CFGR MCO = перепробовал все варианты)
Что за странные конструкции????
Вы окончательно уверены в своих действиях?

Код
RCC ->APB2ENR |= RCC_APB2ENR_IOPAEN ;
Код
RCC->CFGR |= (RCC_CFGR_MCO_0|RCC_CFGR_MCO_2);
от HSE

Остальное правьте сами ...
0
0 / 0 / 0
Регистрация: 20.03.2014
Сообщений: 50
14.04.2014, 12:59 7
Запускал с SPL вывод разных клоков.
Так работает на STM32F100, на F103 должно тоже работать 100%:

Код
/* Enable peripherial clock */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);   // Enable Ottirnative functions IO clock
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);    // GPIOA clock enable

/* Enable MCO output for SYSCLK */
RCC_MCOConfig(RCC_MCO_SYSCLK);

GPIO_InitTypeDef gpio;
gpio.GPIO_Mode = GPIO_Mode_AF_PP;
gpio.GPIO_Pin = GPIO_Pin_8;
gpio.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOA, &gpio);       // Initiotyze PA8 as PP AF (MCO)
0
0 / 0 / 0
Регистрация: 10.05.2010
Сообщений: 17
14.04.2014, 18:53 8
Цитата Сообщение от dosykus_2
Цитата Сообщение от Yodo
Ход действий такой.

(RCC->APB2ENR IOPAEN = 1)

(RCC->APB2ENR AFIOEN = 1)

( RCC->CFGR MCO = перепробовал все варианты)
Что за странные конструкции????
Вы окончательно уверены в своих действиях?

Код
RCC ->APB2ENR |= RCC_APB2ENR_IOPAEN ;
Код
RCC->CFGR |= (RCC_CFGR_MCO_0|RCC_CFGR_MCO_2);
от HSE

Остальное правьте сами ...

ЧТО ПРАВИТЬ? У меня всё правильно написано. А в первом сообщении всё это я это написал для примера, чтобы было понятно мои действия.
0
0 / 0 / 0
Регистрация: 10.05.2010
Сообщений: 17
14.04.2014, 19:25 9
<Изображение удалено>


<Изображение удалено>


<Изображение удалено>
0
0 / 0 / 0
Регистрация: 10.05.2010
Сообщений: 17
14.04.2014, 19:26 10
Пин проверил. Пин рабочий, не сгоревший. Просто мистика какая-то ((((
0
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 4,017
14.04.2014, 19:32 11
Цитата Сообщение от Yodo
А в первом сообщении всё это я это написал для примера, чтобы было понятно мои действия.
Понятно кому ?

Цитата Сообщение от Yodo
мистика какая-то
Причем здесь мистика? Обыкновенное неумение читать и работать с документацией.
Если внимательно рассмотреть таблицу пинов :


<Изображение удалено>

Очевидно же, что сразу несколько альтернативных функций включено не может быть.
0
0 / 0 / 0
Регистрация: 10.05.2010
Сообщений: 17
14.04.2014, 19:44 12
Цитата Сообщение от dosykus_2
Цитата Сообщение от Yodo
А в первом сообщении всё это я это написал для примера, чтобы было понятно мои действия.
Понятно кому ?

Помойму и дурачку понятно, что если бы я написал вот так:

RCC->APB2ENR IOPAEN = 1
То кейл бы ругнулся и ничего не скомпилировал. Тогда бы вопрос стоял по другому - почему не компилируется. Но заметь, вопрос совсем не про компиляцию, а про отсутствие вывода частоты на пин MCO.
0
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 4,017
14.04.2014, 19:58 13
Цитата Сообщение от Yodo
Помойму и дурачку понятно, что если бы я написал вот так:
А вышло,что только тебе дурачку и понятно ...
0
0 / 0 / 0
Регистрация: 10.05.2010
Сообщений: 17
14.04.2014, 20:03 14
Очевидно же, что сразу несколько альтернативных функций включено не может быть.
А зачем мне несколько? Мне нужна одна! МСО. Она одна и включена. Юсарт выключет. Таймер выключен. Это ж очевидно. Я их не включал.

Причём это даже на скриншотах видно, что я привёл выше. На лицо обыкновенная невнимательность при чтении сообщений форума.
0
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 4,017
14.04.2014, 20:05 15
Цитата Сообщение от Yodo
Юсарт выключет. Таймер выключен. Это ж очевидно. Я их не включал.
Обыкновенное неумение читать и понимать документацию .


<Изображение удалено>
0
0 / 0 / 0
Регистрация: 10.05.2010
Сообщений: 17
14.04.2014, 20:07 16
Цитата Сообщение от dosykus_2
Цитата Сообщение от Yodo
Юсарт выключет. Таймер выключен. Это ж очевидно. Я их не включал.
Обыкновенное неумение читать и понимать документацию .


<Изображение удалено>

И что это означает? Что таймер можно заремэпить на PE9? Ну это понятно. Контроллер позволяет рэмэпить многие пины. Но какое это имеет отношение к моей проблеме, если таймер выключен?
0
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 4,017
14.04.2014, 20:09 17
Цитата Сообщение от Yodo
И что это означает? Что таймер можно заремэпить на PE9? Ну это понятно. Контроллер позволяет рэмэпить многие пины. Но какое это имеет отношение к моей проблеме?
То что по дефолту PA8 подключен к TYM1_СH1 , а не к MCO.
0
0 / 0 / 0
Регистрация: 10.05.2010
Сообщений: 17
14.04.2014, 20:15 18
То что по дефолту PA8 подключен к TYM1_СH1 , а не к MCO.
Я же написал ещё в первом сообщении, что включаю в RCC->CFGR битовое поле MCO. Перепробовал все значения. Частота не выводится.

Причём во всех примерах в интернете - алгоритм всегда один и тот.
1) Включение тактирования порта А в APB2ENR.
2) Включение тактирования альтернативных функций в APB2ENR.
3) Настройка пина в GPIOA.
4) Подключение МСО в RCC->CFGR.

Нигде никто про таймер ничего не пишет, потому что он выключен и ничему не мешает. Даже Dihalt на этом сайте ничего про таймер не писал.
0
0 / 0 / 0
Регистрация: 12.11.2013
Сообщений: 27
14.04.2014, 23:27 19
А если так?
Код
RCC->APB2ENR |= RCC_APB2ENR_IOPAEN;
RCC->APB2ENR |= RCC_APB2ENR_AFIOEN;

GPIOA->CRH |= GPIO_CRH_MODE8_0;   //================================
GPIOA->CRH |= GPIO_CRH_MODE8_1; //тактовый выход PA8
GPIOA->CRH |= GPIO_CRH_CNF8_1;   //alternate function push-pull
GPIOA->CRH &=~ GPIO_CRH_CNF8_0;   //================================

RCC->CFGR |= RCC_CFGR_MCO_SYSCLK;

AFIO->MAPR|=AFIO_MAPR_SWJ_CFG_1; // только SWD, JTAG отключен



[1.71 Кб]
0
0 / 0 / 0
Регистрация: 10.05.2010
Сообщений: 17
15.04.2014, 12:53 20
Такое чуство, что dosykus_2 вообще с стм32 дело имел только на буниге. Не хочу, конечно, обидеть человека, но такое складывается впечатление.

Проблему решил. Была ошибка в конфигурировании пина PA8. Ошибка в собственных библиотеках конфигурирования.

Всем спасибо.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.04.2014, 12:53

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

[РЕШЕНО]STM32 и Si7021-A20
Кто работал с датчиком влажности Si7021-A20, подскажите, как вычитывать его, дата шит скачен и...

SSD1963 + STM32 + ucGUI [РЕШЕНО]
Добрый вечер! Совсем плохо. Есть у кого нибудь рабочий код драйвера LCD на контроллере SSD1963 для...

[Решено] STM32 и DfuSe: шьёт, но не прошивает.
Столкнулся с проблемой при попытке использовать класс DFU USB устройств для обновления прошивки...

[РЕШЕНО] Питание STM32 от аккумулятора Lipo
Есть аккумулятор Lipo на 250 mA/h хочу от него запитать stm32l151. Наверное эту тему сто раз...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.