[Embedded] Programmierung in C

Allgemeines rund um's Informatikstudium an der RWTH Aachen
[StuBe] Mails aus dem Verteiler der Studienberatung Informatik

[Embedded] Programmierung in C

Beitragvon panky » 22.07.09 15:52

Hi zusammen,

ich möchte mich kurz mit dem Thema Mikrocontroller und besonder Atmega16 beschäftigen und weiß noch nicht, was ich so zum Einstieg als Hardware brauche.

kann jemand mir ein tolles Buch oder link zum Einstieg in die Programmierung von Microkontroller bzw. Atmega16 in C.

Gruss
Paul
panky
 
Beiträge: 38
Registriert: 30.03.07 11:33

Beitragvon heipei » 22.07.09 16:05

Das ist natürlich ein sehr breites Thema und du musst erstmal überlegen was du alles machen willst. Nur Mikrocontroller programmieren (just-for-fun), ein spezifisches Projekt verwirklichen (aka "Geek-Wecker bauen") oder von Grund auf alles machen, also auch Sachen zusammenlöten und dich mit den Elektrotechnischen Grundlagen beschäftigen.

Zum Einstieg empfehlen kann ich einen einfachen Bausatz mit Atmel Controller der ein paar simple Input-und-Output-Möglichkeiten hat. Wenn du das Ding zusammengebaut und ein bisschen rumprogrammiert hast kannst du für ein eigenes Projekt besser überlegen was du für Bauteile willst, was es gibt und dir dann deine eigene Platine zusammenbauen.

Ein Kollege von mir der auch hier an der RWTH ist hat einen kleinen Onlineshop der Bausätze verkauft. Hab den Bausatz ohne jegliche vorherige Löterfahrung selber zusammengebaut. Beim flashen kann man auch keine Fehler machen (aka "bricken").

Auf der Seite gibts auch Links zur Doku: http://www.lochraster.org/. Und der Bausatz den ich hab heisst Rumpus: http://www.lochraster.org/rumpus/
Benutzeravatar
heipei
Moderator
 
Beiträge: 769
Registriert: 02.11.06 21:55
Wohnort: Aachen
Studiengang: Informatik (Dipl.)
Studiert seit: fertig
Anwendungsfach: Medizin

Beitragvon cracki » 22.07.09 20:42

wenn du das nicht alles alleine in deinem zimmer machen willst, frag mal am i11, ob die ne bastelstunde haben. auch der CCAC ist fuer solche sachen gut.

ansonsten lassen sich bestimmt auch leute aus dem forum (z.b. ich) breitschlagen, sich mit dir hinzusetzen und elektronik zu frickeln
"I suppose if what you said had any merit it would occasion hostility." -- Kenny Tilton
Frische Vorlesungen! -- video.rwth-aachen.de
Benutzeravatar
cracki
 
Beiträge: 537
Registriert: 22.02.08 14:51
Wohnort: Aachen
Studiengang: Informatik (M.Sc.)
Studiert seit: ?
Anwendungsfach: Medizin

Beitragvon I11 » 23.07.09 00:55

Wir bieten meines Wissens im nächsten Semester ein Praktikum an, das in diese Richtung geht. Ansonsten könnte in die Richtung auch ein Hiwi-Job drin sein. Meld dich einfach mal...
I11
 
Beiträge: 22
Registriert: 10.01.08 14:21

Beitragvon DominikP » 25.07.09 13:40

heipei hat geschrieben:Und der Bausatz den ich hab heisst Rumpus: http://www.lochraster.org/rumpus/


Das Rumpus Board ist meines Wissens aus ChaosComputerClub Kreisen entstanden und gibt es bei diversen Stellen, manchmal auf Lochrasterplatinen oder vorgefertigten Platinen.



Ich selbst verwende ein Board eines Bochumer Elektronik/Informatik Bastelclubs (-> "Das Labor e.V.")

Das komplette Board kostet nur 13,80 €, allerdings solltest du (einfache) Lötkenntnisse haben.
http://das-labor.org
http://das-labor.org/wiki/Laborboard
und die Reichelt-Einkaufsliste für das Board: http://www.reichelt.de/?ACTION=20;AWKID ... ROVID=2084


Der Bestückungsplan ist auf der genannten Webseite im svn zu finden.

Hast du im dritten Semester nicht längst das Hardwarepraktikum gehabt?
Oder hat hier jemand einen uralten Thread aufgewärmt und meine Antwort ist überflüssig?


PS: Ich sehe gerade Reichelt hat Preise gesenkt. Es kostet nur noch 12,19 €.
Wenn du bestellst sag mir vorher Bescheid, ich würde dann 2 Stück mitbestellen! Die Versandkosten sind ja recht hoch, die kann man sich dann teilen.
Klein-\varphi macht auch Mist....
DominikP
 
Beiträge: 242
Registriert: 12.11.07 21:29
Wohnort: Aachen, vorher Korschenbroich bei MG
Studiengang: Informatik (M.Sc.)
Studiert seit: WS 07/08
Anwendungsfach: BWL

Beitragvon mani » 25.07.09 15:22

bei einer Sammelbestellung wär ich auch dabei, bitte bescheid geben 8)
[url=http://carshownet.com]infiniti[/url]
mani
 
Beiträge: 103
Registriert: 25.10.08 00:36
Studiengang: Informatik (B.Sc.)
Studiert seit: WS 08/09
Anwendungsfach: Medizin

Beitragvon DominikP » 25.07.09 15:42

Ich denke wir kriegen sicher eine Sammelbestellung hin.
Allerdings wäre mir das nach der Klausurzeit lieber. Im Moment könnte ich damit sowieso nichts tun.


Noch was zum Thema "programmieren":
Der MC muss ja auch mit Code bestückt werden. Das geht simpel über das in der Reichelt Liste enthaltene Kabel.
Man braucht allerdings einen Parallelport am PC, sowas haben neuere PCs manchmal nicht mehr und Notebooks sowieso nicht.

Ich habe mir daher das gegönnt:
USBProg

Ansprechen kann man den USBProg mit einem Programmiertool namens avrdude (auch für Linux erhältlich).
Das ist ein bekanntes Tool zum Flashen von Atmel-MCs, wenn man nicht gerade das Original AVR Studio benutzt.
Achja, auch über das Flachbandkabel kann man mit avrdude arbeiten.

Man muss beachten:
Debuggingfunktionen (zum Beispiel das allseits beliebte "Durchsteppen"), wie sie das JTAG ICE mkII kann (ich meine in Erinnerung zu haben, das sei das Gerät, welches im Hardwarepraktikum verwendet wird), sind damit nicht möglich.



###########################

Machen wir mal eine Liste:

Dominik : 2x Board (OHNE Kabel, Netzteil schon vorhanden)
Mani : 1x Board (Oder mehr? Einschränkungen, z.B. kein Kabel?)
panky : bestellst du mit uns mit, oder doch lieber Rumpus Board?

###########################



PS: Ich sehe gerade in der aktuellen Reichelt Liste fehlt das kleine billige Netzteil. Davon solltet ihr natürlich auch mindestens eins haben.
Klein-\varphi macht auch Mist....
DominikP
 
Beiträge: 242
Registriert: 12.11.07 21:29
Wohnort: Aachen, vorher Korschenbroich bei MG
Studiengang: Informatik (M.Sc.)
Studiert seit: WS 07/08
Anwendungsfach: BWL

Beitragvon mani » 25.07.09 17:16

Also ich hab weder einen Parallel- noch einen Com-Port oder ähnliches an meinem Rechner, gibts da nur das USBProg als Workaround?
Oder gibts direkt Platten, die auch an USB gehen?
[url=http://carshownet.com]infiniti[/url]
mani
 
Beiträge: 103
Registriert: 25.10.08 00:36
Studiengang: Informatik (B.Sc.)
Studiert seit: WS 08/09
Anwendungsfach: Medizin

Beitragvon MartinL » 25.07.09 17:51

DominikP hat geschrieben:Man muss beachten:
Debuggingfunktionen (zum Beispiel das allseits beliebte "Durchsteppen"), wie sie das JTAG ICE mkII kann (ich meine in Erinnerung zu haben, das sei das Gerät, welches im Hardwarepraktikum verwendet wird), sind damit nicht möglich.


Ich hab mal angefangen so eine Funktionalität für das Ding zu entwickeln. Irgendwie hatte ich dann aber nach dem Ende der Semesterferien keine Lust mehr und alleine hats auch wenig Spass gemacht. Ich denke die nötigen Hintergründe hatte ich damals zusammen. Wenn es hier ja offenbar so viele Leute gibt die sich für Microcontroller interessieren finden sich vielleicht auch Leute die Lust haben die OnChipDebug Funktion weiterzuentwickeln?!

Gruß,

Martin
MartinL
 
Beiträge: 531
Registriert: 23.01.07 20:48
Studiert seit: WS 06/07
Anwendungsfach: Mathe

Beitragvon heipei » 25.07.09 19:52

Der Vorteil des Rumpus ist dass ein Programmieradapter schon direkt drauf ist. Das Ding kann also ueber USB geflashed werden, und/oder ueber Seriell (dafuer gibts ganz viele USB-Seriell Adapter, ein Pegelkonverter ist auf dem Board auch schon drauf). Auch andere Microcontroller koennen also damit geflashed werden.

Wenns also nur darum geht Sachen dafuer zu programmieren und schnell draufzuflashen ist das ziemlich einsteigerfreundlich.
Benutzeravatar
heipei
Moderator
 
Beiträge: 769
Registriert: 02.11.06 21:55
Wohnort: Aachen
Studiengang: Informatik (Dipl.)
Studiert seit: fertig
Anwendungsfach: Medizin

Beitragvon DominikP » 26.07.09 14:02

MartinL hat geschrieben:Ich hab mal angefangen so eine Funktionalität für das Ding zu entwickeln. Irgendwie hatte ich dann aber nach dem Ende der Semesterferien keine Lust mehr und alleine hats auch wenig Spass gemacht.


Die Entwickler des USBProg haben auch damit angefangen, jedoch steht das Projekt mittlerweile seit Ewigkeiten auf "alpha" und es passieren keine Neuerungen mehr. (Oder warst DU dieser Entwickler?)
Ich fände es jedoch hochinteressant daran weiter zu arbeiten, im Gegensatz zu dir habe ich allerdings Null Vorkenntnisse, was dabei zu tun wäre.
Und ich weiß genau, dass ich dazu im Wintersemester keine Zeit haben werde. Im Sommersemester '10 bin ich jedoch für alles zu haben.



mani hat geschrieben:Also ich hab weder einen Parallel- noch einen Com-Port oder ähnliches an meinem Rechner, gibts da nur das USBProg als Workaround?
Oder gibts direkt Platten, die auch an USB gehen?

Du musst dir vor Augen halten, mit was du da eigentlich arbeitest. Das ist kein "fertiger" Computer, wo ein (wenn auch rudimentäres) Betriebssystem läuft und der nur noch darauf wartet Programme zu empfangen.
Einen Betrieb mit Bootloader gibt es natürlich auch, aber auch dieser Bootloader muss mindestens einmal auf den Microcontroller gekommen sein.
Dazu hat der Hersteller eine simple Funktionalität bereitgestellt - und die geht nunmal über einfachste Kabel und kann sich an keine USB-Spezifikation halten.

Der USBProg ist dabei noch die günstige Variante das zu umgehen. Das Atmel Original kostet gerne über 150€, kann natürlich auch viel mehr, wie oben beschrieben.










Hat das Rumpusboard denn einen zweiten vorgeflashten Baustein mit drauf? Ich kann mir nicht vorstellen, wie das sonst funktionieren soll.



Nochmal was Grundsätzliches:
Kleine ATmega Projektbeispiele werden ab und zu in den Folgen des CCzwei gezeigt.
http://www.cczwei.de/index.php?id=tvissuearchive
Klein-\varphi macht auch Mist....
DominikP
 
Beiträge: 242
Registriert: 12.11.07 21:29
Wohnort: Aachen, vorher Korschenbroich bei MG
Studiengang: Informatik (M.Sc.)
Studiert seit: WS 07/08
Anwendungsfach: BWL

Beitragvon MartinL » 26.07.09 14:30

DominikP hat geschrieben:
MartinL hat geschrieben:Ich hab mal angefangen so eine Funktionalität für das Ding zu entwickeln. Irgendwie hatte ich dann aber nach dem Ende der Semesterferien keine Lust mehr und alleine hats auch wenig Spass gemacht.


Die Entwickler des USBProg haben auch damit angefangen, jedoch steht das Projekt mittlerweile seit Ewigkeiten auf "alpha" und es passieren keine Neuerungen mehr. (Oder warst DU dieser Entwickler?)
Ich fände es jedoch hochinteressant daran weiter zu arbeiten, im Gegensatz zu dir habe ich allerdings Null Vorkenntnisse, was dabei zu tun wäre.
Und ich weiß genau, dass ich dazu im Wintersemester keine Zeit haben werde. Im Sommersemester '10 bin ich jedoch für alles zu haben.

Ja ich hatte an der Weiterentwicklung einen gewissen Anteil. Insbesondere kenne ich inzwischen einen Großteil des notwendigen Protokolls.

DominikP hat geschrieben:Hat das Rumpusboard denn einen zweiten vorgeflashten Baustein mit drauf? Ich kann mir nicht vorstellen, wie das sonst funktionieren soll.


Es ist möglich auf den AVRs LowSpeedUSB per Software zu handeln. Ich gehe davon aus, dass der Bootloader das tut und wenn man das Board kauft schon ein Bootloader auf dem AVR ist.
MartinL
 
Beiträge: 531
Registriert: 23.01.07 20:48
Studiert seit: WS 06/07
Anwendungsfach: Mathe

Beitragvon fw » 26.07.09 16:01

MartinL hat geschrieben:Ich gehe davon aus, dass der Bootloader das tut und wenn man das Board kauft schon ein Bootloader auf dem AVR ist.


Genau. Siehe Webseite, die heipei ganz am Anfang gepostet hat:

http://www.lochraster.org/rumpus/ hat geschrieben:Ist der verwendete Mikrocontroller einmal mit dem dafür entwickelten Bootloader bestückt (Bausätze enthalten einen vorprogrammierten Mikrocontroller mit Bootloader), so genügt ein USB-Kabel (USB A auf USB Mini B) zum programmieren und experimentieren.


Dass man mit USBProg nicht debuggen kann finde ich vollkommen egal. Als Anfänger braucht man das sowieso nicht (und auch als fortgeschrittener nicht. Eine serielle Konsole im Stil von "printf debugging" und man ist fast immer glücklich :-))
Benutzeravatar
fw
 
Beiträge: 1356
Registriert: 17.05.06 19:37
Studiengang: Informatik (Dipl.)
Studiert seit: fertig
Anwendungsfach: Mathe

Beitragvon limx » 26.07.09 18:08

Ich kann euch die Mikrocontroller Projekte von Ulrich Radig empfehlen. Dort gibt es einen Onlineshop in dem man für fast alle seine Projekte industriell gefertigte Platinen bekommt. Für manche Projekte kann man auch direkt komplette Bausätze erwerben. Mit dem USB ASP Bausatz und ATmega8 Testboard Bausatz (Kabel nicht vergessen) hat man dann für relativ wenig Geld einen vollwertigen USB ISP Programmer und ein schönes Testboard mit USB-RS232 Schnittstelle zum Debuggen, bzw. Kommunikation mit dem PC. Einziger Nachteil ist eben, dass man einen Lötkolben zum zusammenbauen benötigt.
limx
 
Beiträge: 45
Registriert: 02.06.09 19:00

Beitragvon DominikP » 27.07.09 22:12

limx hat geschrieben:Mit dem USB ASP Bausatz [...]

Einen USB ASP hab ich hier noch als Bausatz rumfliegen. Allerdings nicht von Herrn Radig, sondern mit anderem (gleichwertigen) Layout.
Den gebe ich gern für 5 Euro ab.

fw hat geschrieben:Dass man mit USBProg nicht debuggen kann finde ich vollkommen egal.

Finde ich nicht. Gerade dieses Debuggingfunktion hat mir während des Hardwarepraktikums einige Zeit bei der Fehlersuche gespart.
fw hat geschrieben:Eine serielle Konsole im Stil von "printf debugging" und man ist fast immer glücklich :-)

Naja eben genau das ist nicht immer so einfach beim Micocontroller.
Klein-\varphi macht auch Mist....
DominikP
 
Beiträge: 242
Registriert: 12.11.07 21:29
Wohnort: Aachen, vorher Korschenbroich bei MG
Studiengang: Informatik (M.Sc.)
Studiert seit: WS 07/08
Anwendungsfach: BWL

Nächste

Zurück zu Allgemeines