uriy 4 23 сентября, 2017 Опубликовано 23 сентября, 2017 · Жалоба 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 17 23 сентября, 2017 Опубликовано 23 сентября, 2017 · Жалоба На ногу PA15 где мой ШИМ попадает SPI3_NSS неужели он как-то мешает? Похоже на конфликт альтернативных функций от различной периферии, висящей на одной ноге .... Попробуйте использовать другой пин для TIM2_CH1, хотя бы временно. Вполне возможно, что этот случай подходит под эту тему: https://electronix.ru/forum/index.php?showtopic=143734 зы. А вообще, "распиновку" удобно делать в кубе. Он помогает избежать подобные конфликты еще на этапе трассировки платы. Хотя ни кубом, ни SPL/HAL не пользуюсь, но именно этот инструмент от куба оказался для меня вполне годным и удобным (других все равно нет). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
uriy 4 25 сентября, 2017 Опубликовано 25 сентября, 2017 · Жалоба Попробуйте использовать другой пин для TIM2_CH1, хотя бы временно.Туда приходит выход другой микросхемы. Получится два выхода натравлены друг на друга. Плата в одном количестве для которой нужно написать свою прошивку и она покрыта лаком. Нет желания отпаивать что-то чтобы проверить на другом пине. А вообще, "распиновку" удобно делать в кубе. Он помогает избежать подобные конфликты еще на этапе трассировки платы.Пробовал там нет конфликтов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 17 25 сентября, 2017 Опубликовано 25 сентября, 2017 · Жалоба Получится два выхода натравлены друг на друга. Тот пин можно настроить на вход, чтобы он не подключал выходной буфер. Временно, разумеется, чтобы понять в этом дело или нет. Пока что других предположений нет (( Пробовал там нет конфликтов. Что говорит errata? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
uriy 4 25 сентября, 2017 Опубликовано 25 сентября, 2017 · Жалоба Тот пин это выход логического элемента 74HC14. в errata не вижу ничего похожего на мой случай. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 17 25 сентября, 2017 Опубликовано 25 сентября, 2017 · Жалоба это выход логического элемента 74HC14. Чую, что мы о разном толкуем )) Покажите схему подключения этого "конфликтного" пина и другого пина, куда можно перекинуть (перемаппировать) временно этот выход от конфликтующей периферии. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться