Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

Re: STM32 библиотека работы с ИК пультом (NEC)

Вс янв 22, 2023 10:59:31

Два канала для обоих фронтов импульсов, то есть один канал ловит восходящий фронт, второй - задний, в таком случае длительность равна |CCR2 - CCR1|. Конкретно в вашей реализации (у меня тоже так сделано) немного не так, первый канал является источником триггерного сигнала, по которому происходит сброс счетчика таймера, второй ловит конец импульса и в регистре CCR2 лежит результат (примерно так).

UPD: Мне вот ЭТА статья помогла разобраться, как на таймере сделать ИК-приемник.

Re: STM32 библиотека работы с ИК пультом (NEC)

Вс янв 22, 2023 11:21:48

Для TIM14 и TIM16 у меня компилируется норм, даже не ругается не на что, но не заводится... наверное всё-так потому что одноканальные, как сказали выше, только не понял зачем два канала?

Регистры и константы из расчета на самый жирный таймер определены, если дополнительно ничего не проверять, то можно спокойно использовать регистры которых для конкретного таймера нет, все нормально скомпилируется :) А два канала нужны потому что в режиме PWM input два регистра CCRx задействованы, для периода и скважности.

Re: STM32 библиотека работы с ИК пультом (NEC)

Пн янв 23, 2023 01:36:28

Скомпилируется только если подставить подходящий таймер, канал и пин.

То-есть нужно угадывать чтоб оно просто собралось???

Добавлено after 5 minutes 56 seconds:
Ноги поменять глянув в даташит вообще труда не составляет.

Приятно слышать. Однако отказываться от удобного инструмента всё-же не стоит.

Re: STM32 библиотека работы с ИК пультом (NEC)

Пн янв 23, 2023 03:19:47

То-есть нужно угадывать чтоб оно просто собралось???

Вот же пример zenon перед глазами, когда пытаются подставить TIM14/16 при этом код компилируется и не работает, а почему не понятно. Может нужен таймер минимум двухканальный, может пин неправильный или AF, может с частотами что-то не то или вообще припаял не туда... Это и есть гадание, а были бы там проверки, типа как у меня, то TIM14/16 сразу бы отпали, а кроме них там TIM17, с которым тоже не соберется, и рабочие 4-х канальные.

ps. Zenon, ты же в курсе, что у F030K6T6 есть TIM2 поскольку по факту это F031?

Re: STM32 библиотека работы с ИК пультом (NEC)

Пн янв 23, 2023 07:29:37

...а потом гадать, почему же не скомпилировалось? Н-да, те же яйки, но с другой стороны. Один фик - в мануал смотреть.
А вот Куб как инструмент полезен для визуализации при подборе вариантов распиновок. И тем более, у него очень правильная идеология - генерация готового кода, не содержащего посторонних портянок. Кодогенератор просто не сгенерирует неподходящий код исходя из выбранных настроек, а разрешенные настройки сразу же отображаются. Именно такой принцип исповедуют матерые программисты издревле - "много раз повторяешь одни и те же операции в различных вариантах? создай кодогенератор".

Re: STM32 библиотека работы с ИК пультом (NEC)

Пн янв 23, 2023 08:39:38

То-есть нужно угадывать чтоб оно просто собралось???
Не обязательно. Я вот так стараюсь делать. Уже на этапе редактирование доступны только существующие в конкретном контроллере сущности.
СпойлерИзображение

Изображение

Изображение

Изображение

Изображение

tm1.png
(20 KiB) Скачиваний: 47
tm2.png
(12 KiB) Скачиваний: 44
tm3.png
(25.1 KiB) Скачиваний: 45
tm4.png
(18.33 KiB) Скачиваний: 44
tm5.png
(8.85 KiB) Скачиваний: 46

Re: STM32 библиотека работы с ИК пультом (NEC)

Пн янв 23, 2023 08:45:37

Reflector, упс, тут я не в курсе на счёт F031 и TIM2. Вот его как раз ни в stm32f030x6.h, ни в stm32f030f4.pdf нет, ну собственно и не должно, или предлагаешь 031-ые хедеры подсунуть?

Re: STM32 библиотека работы с ИК пультом (NEC)

Пн янв 23, 2023 09:25:39

Я вот так стараюсь делать.

А внутри как, сами таймеры понятно, через ifdef TIMx using TimerX = ..., а вот каналы я что-то смог угадать :(

Как-то распарсили SVD-шки и нагенерировали из них код соответствующий?

Re: STM32 библиотека работы с ИК пультом (NEC)

Пн янв 23, 2023 09:30:51

azhel12, тут это злобный офф. Напишу в личку. Вкратце, всё на основе заголовочного файла контроллера, в нём всё необходимое есть.

Re: STM32 библиотека работы с ИК пультом (NEC)

Пн янв 23, 2023 11:18:59

или предлагаешь 031-ые хедеры подсунуть?

Я в подобных случаях сразу проект для F031 создаю.

Добавлено after 20 minutes 26 seconds:
...а потом гадать, почему же не скомпилировалось? Н-да, те же яйки, но с другой стороны. Один фик - в мануал смотреть.

Если не компилируется, то получим ошибки говорящие о том, что таймеру не хватает SlaveCtrl или пин для конкретного канала указан не верно, а для AF не будет ошибки, он автоматически подставляется.

Re: STM32 библиотека работы с ИК пультом (NEC)

Пн янв 23, 2023 13:09:30

Во блин как, создал проект для F031K6 (stm32f031x6.h).
Поискал TIM2_CH1... нету, есть TIM2_CH1_ETR на PA0, ну пусть думаю будет так.
Ну и в инит:
Код:
RCC->APB1ENR  |= RCC_APB1ENR_TIM2EN;
RCC->AHBENR   |= RCC_AHBENR_GPIOAEN;
GPIOA->MODER  |= _VAL2FLD(GPIO_MODER_MODER0, 2);
GPIOA->AFR[0] |= _VAL2FLD(GPIO_AFRL_AFSEL0, 2);

... и вы же посмотрите на эту ять - работает. :)
Спасибо!

ы. А раз пошла такая гульба - случаем нет ли у 031-го в 32-х ногом теле недокументированная возможность подключить внешнюю опору? :)

Re: STM32 библиотека работы с ИК пультом (NEC)

Пн янв 23, 2023 13:42:07

Zenon, ты же в курсе, что у F030K6T6 есть TIM2 поскольку по факту это F031?

А есть ли где сводная таблица таких "недокументированных возможностей"? Скажем, те же F100, у которых как бы нет USB, китайцы отлично в st-linkv2 пихали, и эта USB там работала! Здесь вот у человека "недокументированный" таймер начал ШИМ выдавать...
Ну и интересно, насколько можно полагаться на эти "недокументированные возможности"? А то вдруг - бац, и партия, где все это не работает??

Re: STM32 библиотека работы с ИК пультом (NEC)

Пн янв 23, 2023 13:46:34

Скажем, те же F100, у которых как бы нет USB, китайцы отлично в st-linkv2 пихали
Таки не F100, а F102.

Re: STM32 библиотека работы с ИК пультом (NEC)

Пн янв 23, 2023 13:57:45

F101, У F102 и так USB есть по документации. А F100 у меня и на 72MHz не работал.

Добавлено after 2 minutes 30 seconds:
Ну и интересно, насколько можно полагаться на эти "недокументированные возможности"? А то вдруг - бац, и партия, где все это не работает??

Если прям вся партия не работает, значит китайцы клон сделали, без всего лишнего :)

Re: STM32 библиотека работы с ИК пультом (NEC)

Пн янв 23, 2023 15:55:33

Во блин как, создал проект для F031K6 (stm32f031x6.h).
Поискал TIM2_CH1... нету, есть TIM2_CH1_ETR на PA0, ну пусть думаю будет так.

Внезапно есть.
Temp.jpg
(193.23 KiB) Скачиваний: 41

Re: STM32 библиотека работы с ИК пультом (NEC)

Пн янв 23, 2023 16:13:15

Изумительно выходит в кубе есть, в мануалах - нет.
Или считать TIM2_CH1 = TIM2_CH1_ETR? (собственно я так и сделал).
Надо ещё в reference глянуть.
Вложения
tim2_ch1_pdf-2.jpg
(137.58 KiB) Скачиваний: 28
tim2_ch1_pdf-1.jpg
(138.01 KiB) Скачиваний: 26

Re: STM32 библиотека работы с ИК пультом (NEC)

Пн янв 23, 2023 16:51:10

Или считать TIM2_CH1 = TIM2_CH1_ETR?
TIM2_CH1_ETR означает TIM2_CH1 и TIM2_ETR, просто они на одном AF висят, а могут и на разных.
Ответить