Forum: Mikrocontroller und Digitale Elektronik µracoli wuart - Falsche Baudrate?


von Peter K. (peterka2000)


Lesenswert?

Hallo,

ich bin noch relativ neu, was die Atmel-RFs angeht. Mit NRF24L01 hab ich 
aber schon mal gearbeitet.
Nun bin ich an zwei WDB-A1281-P1 Boards vom ehemaligen Meshnetics 
gekommen. Zum testen wollte ich erstmal µracoli-wuart draufflashen. Also 
zur Linux-VM gewechselt, runtergeladen, das übliche Make-Gefrickel, nach 
Windows rüberkopiert, mit Atmel-Studio 4, JTAG ICE MKii per JTAG auf die 
Boards geflasht.
Die ersten Tests weißen (glaube ich zumindest) auf einen Baudratenfehler 
hin.
Beim Reset der Boards bekomme ich:
1
FC 1C 1C 1C 1C 00 1C E0 1C FC 1C E0 E0 1C FC E0 E0 00 1C FC 1C 1C FC 1C E0 00 E0 FC 00 E0 E0 1C 00 1C E0 1C E0 1C FC 00 E0 E0 E0 E0 1C 00 E0 00 E0 E0 00 1C E0 1C E0 1C E0 00 1C 1C 1C 00 00
Wenn ich den Quelltext von wuart mal schnell überfliege, sieht es so 
aus, als söllte das eigentlich Ascii-Lesbares sein.

Die Funkstrecke funktioniert auch (irgendwie), wenn ich am ersten Modul 
was sende, kommt am zweiten auch was an, aber immer nur F0 oder E0.

Muss ich beim kompillieren noch irgendwie die F_CPU definieren? Laut 
JTAG stehen die Fuses auf Interner Oszillator.

PS: Das Terminalprogramm steht auf 115,2 kBaud, ich vermute das es 
richtig ist?

von Peter K. (peterka2000)


Lesenswert?

Bei 9600 Baud im Terminalprogramm kommt etwas "schöneres Raus":
=w?Bi?C?? (als Ascii)
bzw.
3D 77 C4 42 69 E2 43 CE C6 (als Hex)

Das bestätigt meine Baudratenvermutung, oder? Und was kann man degegen 
tuen?

von A. W. (uracolix)


Lesenswert?

Peter, wenn du das Paket aus dem Netz genommen hast, 
uracoli-src-0.4.2.zip dann ist die Baudrate fuer das wdba1281 38400 bps 
(siehe inc/board_cfg.h).

Kontrollier auch nochmal die Fuses: (siehe inc/boards/board_wdba1281.h)

Fuses/Locks:
    uracoli settings:
     LF: 0xe2 - 8MHz internal RC Osc.
     HF: 0x11 - without boot loader
     HF: 0x10 - with boot loader
     EF: 0xff
     LOCK: 0xef - protection of boot section

    original settings
     LF: 0x62 - ... ? todo
     HF: 0x1d - ... ?
     EF: 0xff

Wir hatten die Fuses damals von 1MHz auf 8 MHz geaendert.

Der wuart meldet sich in etwas so:

"Wuart 0.3 chan=%d radio %02x.%02x cfg %c"

(... auf klingonische Texte haben wir bislang verzichtet)

von Peter K. (peterka2000)


Lesenswert?

Danke. Jetzt geht es. So simple Fehler...

Nur noch mal eine ganz blöde Frage: WO steht die Baudrate? Weder in 
wuart sources, noch in den Board-Includes hab ich was gefunden

EDIT:
Habs gefunden. In der board_cfg.h :
1
#elif defined(wdba1281) || defined(mnb900)
2
# define BOOT_LOADER_ADDRESS (0xf000)
3
# if !defined(HIF_DEFAULT_BAUDRATE)
4
#  define HIF_DEFAULT_BAUDRATE (38400)
5
# endif
6
# include "boards/board_wdba1281.h"

von A. W. (uracolix)


Lesenswert?

HIF_DEFAULT_BAUDRATE ist das Stichwort, inc/board_cfg.h ist im 
uracoli-src Paket generiert.

Wenn du mit scons aus dem Mercurial-Repository heraus arbeitest, steht 
die Baudrate in Config/board.cfg, dort kann sie auch geaendert werden.


$grep "defined(wdba1281)" -A 6 inc/board_cfg.h

#elif defined(wdba1281) || defined(mnb900)
# define BOOT_LOADER_ADDRESS (0xf000)
# if !defined(HIF_DEFAULT_BAUDRATE)
#  define HIF_DEFAULT_BAUDRATE (38400)
# endif
# include "boards/board_wdba1281.h"


Mit dem RC-Oszillator ist 38400 aber das max. stabil erreichbare.

von A. W. (uracolix)


Lesenswert?

Der letzte Beitrag war ein Cross-Post, Peter du tippst echt schneller 
;-)

von A. W. (uracolix)


Lesenswert?

Das hatte ich noch überlesen:

>Also zur Linux-VM gewechselt, runtergeladen, das übliche Make-Gefrickel,
>nach Windows rüberkopiert, mit Atmel-Studio 4, JTAG ICE MKii per JTAG auf
>die Boards geflasht.

Das Bauen der Firmware geht auch direkt unter Windows, die AVR Toolchain 
und einige GNU-Tools (make, gmkdir) kommen im Atmel-Studio mit, liegen 
aber in zwei Pfadzweigen. Mit  atprogram.exe kann man von der 
Kommandozeile aus flashen.

Hier ein Auszug aus einem Batchfile, das meine Umgebung setzt. Wichtig 
ist wirklich keine Anführungszeichen in der PATH Variable zu verwenden, 
sonst kommt irgendeine mystische Fehlermeldung des GCC, der interne 
Tools nicht findet (irgendwann hatten wir daran auf avrfreaks lange 
gesucht, ich finde nur den Beitrag gerade nicht mehr).
1
@rem =====================================================================================
2
@rem Note: No quotation in PATH variable, even if there are spaces in the directory names.
3
@rem =====================================================================================
4
@set PATH=%PATH%;C:\Programme\Atmel\Atmel Studio 6.2\shellUtils
5
@set PATH=%PATH%;c:\Programme\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1051\avr8-gnu-toolchain\bin

In den µracoli-Makefiles gibts noch einen Windows-Quirk der gmkdir aus 
den "shellUtils" verwendet.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.