У микроконтроллеров STM32 есть
Five-volt Tolerant (FT) пины, которые, как можно подумать из названия, устойчивы к напряжению 5V, при том что стандартное питание микроконтроллера - 3.3V.
На самом деле всё не так просто и однозначно с этими 5V. Есть несколько нюансов, которые нужно держать в голове, если собираетесь использовать эту фичу.
1. Vdd + 3.6V < 5.5VНа самом деле реальная толерантность этих пинов - не совсем 5V, а Vdd + 3.6V, но не более 5.5V.
Т.е. если ваш микроконтроллер питается от 3.3V, то FT-пину можно приложить не более 5.5V.
Если же ваш контроллер питается от 1.8V, то максимум уж не 5.5V, а 1.8V + 3.6V = 5.4V
2. Остерегайтесь Vdd = 0Если в вашей системе возможна ситуация, когда на FT-пине присутствует 5V, а сам микроконтроллер еще не включен (т.е. его Vdd = 0), то условие Vdd + 3.6V превысится и микроконтроллер будет поврежден.
Для защиты от такого случая, можно поставить зенеровский диод между 5V и 3.3V как на
картинке ниже.
3. Питание пина важноЕсли пин питается не от Vdd, а от другого источника (Vdda, Vvbus, Vlcd и т.д.), то эти 3.6V отсчитываются не от Vdd, а от источника питания пина.
Иными словами, допустимое напряжение на FT пине, питающегося от USB будет Vusb + 3.6V, но не болоее 5.5V
4. Аналог не толерантен к 5VЕсли FT-пин используется как аналоговый вход (Analog Input), то вся его толерантность к 5V обнуляется. Она превращается в стандартные Vdda/Vref + 0.3V.
Это обусловлено внутренней структурой пина в микроконтроллере.
5. FT не для outputЕсли FT пин настроен как output, то он перестает быть FT.
Обычно, никто не подает 5V на пин, если он настроен на выход.
Но лучше иметь это ввиду, чтоб не попасть в ситуацию «Я случайно приложил 5V к output пину во время дебага, но он же FT, а значит не должен выходить из строя, следовательно что-то другое его повредило».
Подробнее о внутренних структурах GPIO пинов в микроконтроллерах STM32, как избежать глупых ошибок при их настройке и как снизить их потребление, расписано в этом документе от ST.