Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32F103RC PWM+SPI
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
uriy
STM32F103RC на PA15 выдаю ШИМ через TIM2_CH1. Таймер берет данные через DMA никакие прерывания не используются.
Добавил SPI3 на PB3, PB4, PB5 и chipselect на PD2.
SPI корректно работает, но оказалось что после включения SPI перестает работать ШИМ.
В KEIL вижу что DMA и TIM2 по прежнему тикают.

Стал упрощать программу и увидел что уже включение клока для SPI отрубает ШИМ.
Сделал бесконечный цикл, перед ним никакой инициализации SPI3 нет, его регистры имееют нулевые значения:
Код
    Delay(1000);
    RCC->APB1ENR |= (1<<15);    //spi3    
    while(1);

Если в этом куске кода убрать включение SPI в RCC то ШИМ отлично работает.
На ногу PA15 где мой ШИМ попадает SPI3_NSS неужели он как-то мешает?
После включения SPI NSS по дефолту отключен
Forger
Цитата(uriy @ Sep 23 2017, 20:00) *
На ногу PA15 где мой ШИМ попадает SPI3_NSS неужели он как-то мешает?

Похоже на конфликт альтернативных функций от различной периферии, висящей на одной ноге ....
Попробуйте использовать другой пин для TIM2_CH1, хотя бы временно.

Вполне возможно, что этот случай подходит под эту тему: https://electronix.ru/forum/index.php?showtopic=143734

зы. А вообще, "распиновку" удобно делать в кубе. Он помогает избежать подобные конфликты еще на этапе трассировки платы.
Хотя ни кубом, ни SPL/HAL не пользуюсь, но именно этот инструмент от куба оказался для меня вполне годным и удобным (других все равно нет).
uriy
Цитата
Попробуйте использовать другой пин для TIM2_CH1, хотя бы временно.
Туда приходит выход другой микросхемы. Получится два выхода натравлены друг на друга.
Плата в одном количестве для которой нужно написать свою прошивку и она покрыта лаком. Нет желания отпаивать что-то чтобы проверить на другом пине.
Цитата
А вообще, "распиновку" удобно делать в кубе. Он помогает избежать подобные конфликты еще на этапе трассировки платы.
Пробовал там нет конфликтов.
Forger
Цитата
Получится два выхода натравлены друг на друга.

Тот пин можно настроить на вход, чтобы он не подключал выходной буфер.
Временно, разумеется, чтобы понять в этом дело или нет. Пока что других предположений нет ((

Цитата(uriy @ Sep 25 2017, 17:19) *
Пробовал там нет конфликтов.

Что говорит errata?
uriy
Код
Тот пин
это выход логического элемента 74HC14.
в errata не вижу ничего похожего на мой случай.
Forger
Цитата(uriy @ Sep 25 2017, 18:19) *
это выход логического элемента 74HC14.


Чую, что мы о разном толкуем ))
Покажите схему подключения этого "конфликтного" пина и другого пина, куда можно перекинуть (перемаппировать) временно этот выход от конфликтующей периферии.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.