Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Кармин Новиелло - Освоение STM32.pdf
Скачиваний:
2754
Добавлен:
23.09.2021
Размер:
47.68 Mб
Скачать

Начало работы над новым проектом

747

Этот документ10 от Texas Instruments является хорошим введением в данную тему.

 

Рисунок 2: Минимальная эталонная схема для микроконтроллера STM32F030

Рисунок 3: Предпочтительный способ размещения развязывающих конденсаторов автора книги

27.1.4. Тактирование

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

10 https://www.carminenoviello.com/download/sloa089-pdf/?wpdmdl=3398

Начало работы над новым проектом

748

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

Большинство ошибок при запуске (то есть микроконтроллер не хочет правильно загружаться на нашей конечной плате, когда используется внешний кварц) возникают из-за неправильного выбора внешних конденсаторов и неправильного размещения кварца. Например, предполагая, что паразитная емкость равна 5 пФ, а емкость кварца равна 15 пФ, можно использовать следующую формулу для вычисления емкости внешних конденсаторов:

C1,2 = 2(CL – Cп) = 2(15 пФ – 5 пФ) = 20 пФ.

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

Рисунок 4: Хороший способ размещения внешних кварцев с использованием отдельной экранирующей плоскости

ST приводит несколько «плохих примеров» в своих руководствах по применению. Более того, все микроконтроллеры STM32 предоставляют достаточно полезную функцию для отладки проблем с внешним генератором: систему защиты тактирования (Clock Security System, CSS). CSS – это периферийное устройство самодиагностики, которое обнаруживает отказ HSE-генератора. Если это происходит, HSE автоматически отключается (это означает, что внутреннее HSI автоматически включается), и срабатывает

11 https://www.st.com/resource/en/application_note/cd00221665-oscillator-design-guide-for-stm8af-al-s-stm32- mcus-and-mpus-stmicroelectronics.pdf

Начало работы над новым проектом

749

прерывание NMI, чтобы сообщить программному обеспечению, что с HSE что-то не так. Поэтому если ваша плата отказывается работать правильно, я настоятельно рекомендую вам написать обработчик исключений для NMI, как описано в Главе 10. Если код зависает внутри него, значит, проблема в конструкции вашего генератора.

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

Большинство микроконтроллеров STM32 позволяют подключать внешний или внутренний источник тактового сигнала (PLL, HSI или HSE и т. д.) к выходу, называемому выходом синхронизации (Master Clock Output, MCO). Это полезно в некоторых приложениях, где выбранный источник тактового сигнала может использоваться для управления внешней микросхемой или в аудиоприложениях. Однако обратите внимание на то, что необходимо избегать длинных дорожек между микроконтроллером и устройством, подключенным к выводу MCO. В этом случае вы должны рассматривать микроконтроллер как обычный источник тактового сигнала, и, следовательно, вы должны обращать внимание как на длину дорожки, так и на перекрестные помехи между MCO и другими соседними или лежащими ниже дорожками.

27.1.5. Фильтрация вывода сброса RESET

Чтобы избежать нежелательного сброса вашей платы, настоятельно рекомендуется подключить развязывающий конденсатор (100 нФ – подтвержденное значение) между выводом RESET (называемым NRST) и землей, даже если ваша плата не требует использования вывода сброса.

27.1.6. Отладочный порт

Чтобы разработать и протестировать микропрограмму для новой платы или просто загрузить ее на устройства при производстве, вам нужен способ взаимодействия с целевым микроконтроллером STM32, используя его порт отладки. Микроконтроллеры STM32 предлагают несколько способов их отладки. Один из них – использование интер-

фейса отладки по последовательному проводу (Serial Wire Debug, SWD). SWD заменяет тра-

диционный порт JTAG, используя линию тактирования (с именем SWDCLK) и один двунаправленный вывод данных (с именем SWDIO12), обеспечивая все привычные функции устранения ошибок и тестирования JTAG, а также доступ в реальном времени к системной памяти без остановки процессора или требуя какого-либо целевого резидентного кода (условие для этого состоит в том, что I/O, связанный с SWD, не переназначен для другой функции – например, на выход GPIO общего назначения). Более того, можно использовать любой отладчик ST-LINK в качестве устройства отладки для ваших пользовательских плат: все отладочные платы от ST (и, следовательно, Nucleo тоже) спроектированы таким образом, что вы можете отключить целевой микроконтроллер от интерфейса ST-LINK и подключите его к своей плате.

На рисунке 5 показано, как использовать Nucleo в качестве внешнего отладчика для собственной платы. Сначала снимите две перемычки с штыревого разъема CN2. Затем подключите PIN1 штыревого разъема SWD к источнику VDD (3,3 В или ниже) вашей

12 Иногда ST называет эти линии также SWCLK и SWIO.

Начало работы над новым проектом

750

собственной платы, PIN2 – к выводу SWDCLK микроконтроллера STM32 на вашей плате, PIN3 – к GND, PIN4 – к выводу SWDIO и, наконец, PIN5 – к выводу NRST целевого микроконтроллера STM32 (этот шаг не является обязательным, по крайней мере, теоретически). Соединение может быть легко выполнено, просто направив эти сигналы на удобный штыревой разъем, который играет роль порта отладки для вашей пользовательской платы. Вывод SWO также доступен на штыревом разъеме SWD, и он соответствует PIN6. Однако SWO подключается к целевому микроконтроллеру через SMD-перемычку (SB15). Поэтому, если вы хотите использовать функциональность SWV на своей плате, вам нужно будет выпаять эту перемычку.

Рисунок 5: Как использовать Nucleo в качестве отладчика ST-LINK

Другой полезной функцией этого порта отладки может быть, по крайней мере, вывод TX USART одного из доступных USART микроконтроллера. Это может очень помочь вам в процессе разработки, используя его для вывода сообщений на консоль, отслеживая таким образом выполнение микропрограммы, даже если она не находится в процессе отладки. Опять же, вы можете использовать плату Nucleo для сопряжения TTL USART целевого микроконтроллера с VCP платы Nucleo, подключив выводы USART к разъему CN3 на плате Nucleo, как показано на рисунке 6. Если это так, то вам может потребоваться выпаять перемычки SB13 и SB13 на вашей Nucleo или оставьте PA2 и PA3 целевого микроконтроллера Nucleo висящими в воздухе.

Рисунок 6: Разъем CN3 позволяет использовать VCP ST-LINK с любым другим USART