Forum: Mikrocontroller und Digitale Elektronik Grundlagen USART/SPI Crumb644 ATmega Modul


von Jaki L. (jaki_langthaler)


Lesenswert?

Hallo zusammen!

Für mein Abschlussprojekt brauche ich einen Bewegungssensor. Aber 
einfach einen fertigen kaufen und in mein Programm einbinden ist leider 
nicht..

Deshalb soll das ganze jezt mit einem Beschleunigungssensor (ADXL345 
Breakout Board von Sparkfun) und einem uController umgesetzt werden.
Dafür verwende ich das Crumb644 V1.1 AVR ATmega Modul und zum 
Programmieren das Atmel Studio.

Nur leider bin ich wenns ums Thema uController geht ziemlich blank.
Hab zwar schon einige kleiner Programme mit dem ATMega32 
programmiert(LED blinken, Lauflicht) aber da war schon fast alles fertig 
eingestellt, musste eigentlich nur die Pins richtig ansteuern :P
Meine Probleme habe ich jezt also mit den Grundlagen, wie man den USART 
initialisiert bzw. damit senden und empfangen kann oder wie ich zwischen 
Sensor und Controller mittels SPI kommunizieren kann.

Ich habe mir schon ein paar Testprogramme runtergeladen und mir das UART 
Tutorial hier angesehen aber ich blick leider nicht wirklich durch :/

Wäre echt toll wenn mir jemand helfen könnte bzw. sagen kann wie ich am 
besten vorgehe und wo ich Anfangen soll.
Danke schon mal im Vorhinein (:

Gruß Jaki

: Bearbeitet durch User
von Karl H. (kbuchegg)


Lesenswert?

Jaki Langthaler schrieb:

> Ich habe mir schon ein paar Testprogramme runtergeladen und mir das UART
> Tutorial hier angesehen aber ich blick leider nicht wirklich durch :/

Was genau durchblickst du nicht?

Denn eigentlichg ist es ziemlich einfach. Eigentlich so wie immer: erst 
mal wir die 'Komponente' entsprechend konfiguriert, was einem Setzen von 
diverser Bits bzw. Zahlenwerten in diversen Registern entspricht. Um die 
Komponente dann tatsächlich zu benutzen, müssen diverse Bits oder wie 
hier bei der USART Zuweisungen an ein Register gemacht werden. Bei der 
USART ist es eben die Zuweisung an UDR, welches das versenden genau 
dieses zugewiesenen Byte-Wertes in die Wege leitet.

Eigentlich recht simpel, wenn da nicht die Nebenbedingung wäre, dass die 
Baudrate stimmen muss, sonst versteht das Gegenüber nur Bahnhof.

Daher: UART erst mal testen, indem man vom µC zum PC (dort ein 
Terminal-Programm laufen lassen) sendet. IM Terminal sieht man dann sehr 
schnell, ob das vom AVR gesendete dort auch wirklich korrekt ankommt.

>
> Wäre echt toll wenn mir jemand helfen könnte bzw. sagen kann wie ich am
> besten vorgehe.

Mit nicht zu komplexen Dingen. Mit einfachen Sachen anfangen. Auch Rom 
ist nicht an einem Tag erbaut worden.
Daher: nicht den Überblick verlieren, indem dir der Sensor die ganze 
Zeit im Hinterkopf rumspukt. Mach dich frei davon. Dein Augenmerk gilt 
momentan der UART und sonst nichts. Der AVR soll über UART etwas 
ausgeben. Was das ist, was er ausgeben soll und wo und wie du zu den 
Werten kommst, das kommt später. Im Moment reicht es, wenn du einen Text 
am Terminal ausgeben kannst und auch im Detail verstehst warum und wie 
das funktiniert bzw. wie das programmiert wird.


> Hab zwar schon einige kleiner Programme mit dem ATMega32
> programmiert(LED blinken, Lauflicht) aber da war schon fast
> alles fertig eingestellt, musste eigentlich nur die Pins richtig
> ansteuern
Das sind natürlich nicht unbedingt ideale Voraussetzungen.

: Bearbeitet durch User
von Jaki L. (jaki_langthaler)


Lesenswert?

Danke für die schnelle Antwort!

> Was genau durchblickst du nicht?

Ich habe schon Probleme beim erstellen eines neuen Projekts im AVR 
Studio.
Da brauche ich ja das richtige Board. Hab zwar eins mit dem ATMega466 
drauf gefunden aber da ist er auf einem anderen Board. Kann ich das 
trotzdem verwenden?
Auf der Seite wo ich das Crumb Modul bestell habe (chip45.com) habe ich 
auch eine AVR Toolchain gefunden weiß aber leider nichts damit 
anzufangen.

von Karl H. (kbuchegg)


Lesenswert?

AVR-Studio oder Atmel-Studio?

Auf dieser Ebene wichtig ist erst mal, dass die Einstellung für den µC 
stimmt. Denn der bestimmt, wie die Register heißen und was du in ihnen 
enthaltenen Bits bedeuten.

Um zu kontrollieren, ob du das im Griff hast, kannst du ja mal deine 
LED-Beispiele von 0 beginnend nochmal nachbauen. Dann siehst du sehr 
schnell, ob du das richtige Board hast oder nicht.

von Jaki L. (jaki_langthaler)


Lesenswert?

Das Problem ist, dass ich das Board erst am Freitag bekomme aber ich bis 
dorthin schon funktionierenden Code haben soll :P
Aber das LED Programm werde ich testen sobald ich kann.

> AVR-Studio oder Atmel-Studio?
Atmel-Studio hab ich gemeint, sorry!

von Karl H. (kbuchegg)


Lesenswert?

Wie gesagt: das Board ist nicht so wichtig. Wichtig ist, dass du für den 
richtigen µC programmierst.

Wo sich die Board-Einstellung im Atmel-Studio tatsächlich auswirkt, weiß 
ich ehrlich gesagt gar nicht. Ich denke mal, dass die erst beim Brennen 
auf den µC wichtig wird.

von Karl H. (kbuchegg)


Lesenswert?

Jaki Langthaler schrieb:
> Das Problem ist, dass ich das Board erst am Freitag bekomme aber ich bis
> dorthin schon funktionierenden Code haben soll :P

Aber doch nicht die volle Kombination "Beschleunigungssensor - SPI - µC 
- USART - PC".
Das ist völlig illusorisch, bei deinen Vorkentnissen.

Da wäre es noch einfacher, wenn du am Freitag deine erste 
Herztransplantation machen sollst. Mit nichts weiter in der Hand als dem 
Wissen wie man ein Butterbrot schmiert.

: Bearbeitet durch User
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.