Синхронизация 3 синус-генераторов STM32L4 MCU с использованием одного вывода GPIO на каждом MCU - PullRequest
0 голосов
/ 15 апреля 2020

Я разработал специальную плату STM32L475 с одним выводом GPIO, подключенным для синхронизации, по какой-то другой схеме для синхронизации, к сожалению, мы решили направить сгенерированный синусоидальный сигнал от модуля к модулю. Это не оптимально, поэтому я хочу оптимизировать, чтобы не синусоидальный сигнал направлялся от главного модуля к подчиненным модулям, а просто передавал цифровой триггер для перезапуска генерации полной синусоидальной волны.

To Для этого мне нужно иметь возможность настроить MCU для использования одного вывода GPIO на каждом MCU в качестве и выхода, и триггера для таймера.

Чтобы сделать это без обновления HW, мне нужно иметь возможность Объедините: 1. Используя 3 контакта (по одному от каждого MCU) в качестве выходов с открытым стоком в качестве логического элемента И, это работает. 2. Я знаю, что вывод GPIO можно использовать в качестве внешнего триггера, запускающего на отрицательном фронте.

Вопрос в том, можно ли сработать таймер выходного вывода, используя только один вывод GPIO, чтобы сделать MCU, который завершает генерацию синуса, сначала запускает сам себя и другие MCU, и если да, то как? Обратите внимание, что он должен использовать уровень самого выходного контакта, даже если это выходной контакт.

Я разработчик HW, учусь делать прошивки для нашего HW, поэтому я немного новичок в разработке программного обеспечения, поэтому я использую HAL, пожалуйста, будьте милы

1 Ответ

0 голосов
/ 15 апреля 2020

STM32L475 позволяет конфигурировать GPIO в различных режимах, которые должны (исключительно) выбираться через соответствующий регистр GPIOx_MODER : 1

  1. (цифровой) Режим ввода
  2. Режим вывода общего назначения
  3. Режим альтернативной функции
  4. Аналоговый режим

Альтернативная функция, применяемая в Режим альтернативной функции также должен быть выбран исключительно через соответствующий регистр GPIOx_AFRL или GPIOx_AFRH , соответственно 2

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


1 Справочное руководство, Ред. 7 : См.

  • Раздел 8.5.1 для выбора режима GPIO
  • Рисунки 23/24 в Разделе 8.4 для объяснения

2 Там же. : См.

  • Раздел 8.5.9 для выбора альтернативной функции GPIO
  • Раздел 8.4.2 для объяснения
...