Hallo zusammen,
nach langer Zeit hab ich wieder ein Projekt mit einem ATtiny. Diesmal der 814. Irgendwie stehe ich auf der Leitung was die Berechnung der Baudrate für den USART betrifft. Und den Eintrag in die Register.
Bei den "alten" Tinys, wenn ich mich recht erinnere, gab es immer eine Tabelle in der Doku in welcher man die benötigten Werte ablesen konnte. Das ist bei dem "neuen" Tiny nicht mehr so.
Hat eventuell jemand Erfahrung mit der Baudrate beim ATtiny 814?
Der ATtiny814 soll mit 20Mhz laufen.
Der USART soll im asynchronen Modus mit 9.600 Baud seinen Dienst versehen. Es werden Daten empfangen und auch gesendet werden.
In der Doku steht die Berechnungsformel:
BAUD = 64 * fCLK_PER / (S * fBAUD)
BAUD ist der Wert welcher in die Register USART.BAUD H-Byte und USART.BAUD L-Byte eingetragen werden muss.
fCLK_PER ist die Taktfrequenz = 20MHz
S = 16 (asynchroner Modus)
fBAUD = gewünschte Baudrate -> 9.600
BAUD = 64 * 20.000.000 / (16 * 9.600) = 8.333,3 (periodisch)
Laut Doku stehen mir von den 16 vorhandenen Bits nur Bit 15 bis 6 für den Ganzzahligen Wert zur Verfügung. Bit 5 bis 0 sind für die Nachkommastellen.
"The 10 MSBs (BAUD[15:6]) hold the integer part, while the 6 LSBs (BAUD[5:0]) hold the fractional part."
8.333 kann ich aber mit 10 Bit nicht darstellen … 0010 0000 1000 1101
Meine Verständnisfragen:
Hab ich irgendwas falsch verstanden, irre ich mich irgendwie?
Falls ich mich nicht irre, kann es sein, dass ich mit der Baudrate wesentlich höher gehen muss oder die Taktfrequenz wesentlich niedriger einstellen muss um die Kommunikation zu realisieren? (Beides für das Projekt unideal)
Unsicher bin ich auch wie ich die Nachkommastellen in binär umrechnen soll?
nach langer Zeit hab ich wieder ein Projekt mit einem ATtiny. Diesmal der 814. Irgendwie stehe ich auf der Leitung was die Berechnung der Baudrate für den USART betrifft. Und den Eintrag in die Register.
Bei den "alten" Tinys, wenn ich mich recht erinnere, gab es immer eine Tabelle in der Doku in welcher man die benötigten Werte ablesen konnte. Das ist bei dem "neuen" Tiny nicht mehr so.
Hat eventuell jemand Erfahrung mit der Baudrate beim ATtiny 814?
Der ATtiny814 soll mit 20Mhz laufen.
Der USART soll im asynchronen Modus mit 9.600 Baud seinen Dienst versehen. Es werden Daten empfangen und auch gesendet werden.
In der Doku steht die Berechnungsformel:
BAUD = 64 * fCLK_PER / (S * fBAUD)
BAUD ist der Wert welcher in die Register USART.BAUD H-Byte und USART.BAUD L-Byte eingetragen werden muss.
fCLK_PER ist die Taktfrequenz = 20MHz
S = 16 (asynchroner Modus)
fBAUD = gewünschte Baudrate -> 9.600
BAUD = 64 * 20.000.000 / (16 * 9.600) = 8.333,3 (periodisch)
Laut Doku stehen mir von den 16 vorhandenen Bits nur Bit 15 bis 6 für den Ganzzahligen Wert zur Verfügung. Bit 5 bis 0 sind für die Nachkommastellen.
"The 10 MSBs (BAUD[15:6]) hold the integer part, while the 6 LSBs (BAUD[5:0]) hold the fractional part."
8.333 kann ich aber mit 10 Bit nicht darstellen … 0010 0000 1000 1101
Meine Verständnisfragen:
Hab ich irgendwas falsch verstanden, irre ich mich irgendwie?
Falls ich mich nicht irre, kann es sein, dass ich mit der Baudrate wesentlich höher gehen muss oder die Taktfrequenz wesentlich niedriger einstellen muss um die Kommunikation zu realisieren? (Beides für das Projekt unideal)
Unsicher bin ich auch wie ich die Nachkommastellen in binär umrechnen soll?