Проект для микроконтроллера attiny2313 был создан на ассемблере.Там определены константы:
.equ BAUD = 38400
.equ XTAL = 8000
.equ N = 12
Далее N засылается в UBRR,выставляются биты RXEN и TXEN в UCR.
И тогда устанавливается связь компъютера с микроконтроллером, кварц
12 MHz,скорость COM порта 4800 bod.Причём COM порт любой.Как истинный
+/12 вольт так и виртуальный на микросхемах FTDI232RL, CP2102.Почему
это так?
Ещё один пример:AT90S2313, assembler,
.equ XTAL = 11059
.equ BAUD = 38400
.equ N = 12
Тогда устанавливается связь на скорости COM порта 9600 с кварцем 2 MHz.
И ещё один:Attiny2313,кварц 3.5795 MHz,8N1,19200
Там в исходнике:
.equ XTALL = 11059
.equ BAUD = 115200
.equ N = 11
В общем для attiny2313 верна формула: N =(XTALL/12/16/BAUD)-1.
А для at90s2313 верна формула : N = (XTALL/16/BAUD)-1
Но в большинстве случаев связь работает криво.В окне
гипертерминала мусор.Как уточнить формулы?