Добрый вечер! Что есть: 1) Atmega328P с кристаллом 16mHz 2) Atmega328P с кристаллом 8mHz Между ними будет связь по UART. Вопросы: 1) Будет ли работать UART, если у устройств разные тактовые частоты, но одинаковая скорость передачи? (115200 БОД). 2) 8mHz подходит для устройств с напряжением 3.3V. Является ли нормальным, если будет 5 Вольтовое питание с данной частотой? Обычно для 5 Вольт ставят 16mHz.
1 - будет, отчего не быть. 2 - при пониженном питании следует понижать частоту, а не наоборот. то есть 8мгц при 5 вольтах будет хорошо, а вот 16мгц при 3 вольтах - не очень.
Для 5 вольт надо ставить все 20МГц, иначе в 5 вольтах нет никакого смысла. Не понимаю, почему в ардруинах выбрана именно 16МГц.
А что с согласованием уровней сигналов? Если напряжение у двух плат разное - нужно и уровни сигналов между ними согласовывать.
220 oм даст снижение полосы. На 9600 это без разницы, но на высоких частотах может смазать. Лучше преобразователь уровня.
А зачем вообще согласовывать уровни? Мы имеем две Atmega328P. Оба контроллера выдерживают 5 вольт, и уровень 3,3 вольта отлично распознают как логическую единицу.
Что значит "выдерживают 5 вольт"? Если открыть даташит на Atmega328P то там ясно написано) "Voltage on any pin except RESET with respect to ground Min: –0.5 Max: VCC + 0.5" То есть если у нас Vcc 3.3V, то подавать больше 3.8 вольт не положено. Другое дело, что там есть защитные диоды на входе, которые лишнее напряжение "сливают" . Но надо ограничивать ток через них иначе диоды легко могут погореть. Вот для этого и нужны токоограничивающие резисторы.