Forum: Mikrocontroller und Digitale Elektronik Anfänger macht sich an den mega8


von Thomas W. (xote)


Lesenswert?

Hallo Forum,

ich bin in Sachen Mikrocontroller relativer Anfänger. Jetzt möchte ich 
aber eine Platine machen, die mich nicht nur in Sachen uC vorwärts 
bringt, es sollte auch nicht allzu schwer werden, dieses Stück danach zu 
fertigen, denn wie der Zufall so spielt steht in der Firma eines 
Bekannten eine CNC-Fräsmaschine, und der Chef (auch ein Bekannter) hätte 
auch nix dagegen. Ich würde die Platine dann also später auch gerne 
fräsen.

Ich hab mir das so gedacht, 8 7Segmentanzeigen, ein Display, ein 
Encoder, RS232-Schnittstelle und (wenns noch drin ist) zwei oder drei 
LEDs. Das alles zusammen hätte ich gerne mit einem ATmega8 gemacht und 
(wie im Tutorial) mit dem avr-gcc programmiert. Flashen würde ich das 
dann über die ISP-Pins des Controllers.

So weit so gut, zum Anfang habe ich jetzt mal gleich 2 Fragen:

1) ist das überhaupt möglich? Die 7Segmentanz. könnte ich doch über 
einen MAX7219 ansteuern. Aber brauche ich dazu nicht unbedingt das 
SPI-Interface des uCs? Gehen dadurch nicht die für ISP nötigen Pins 
verloren? Oder kann man das einfach dazuhängen? Oder kann ich den 
MAX7219 auch an irgendwelche anderen Pins hängen?

2) Welchen ISP-Stecker soll ich nehmen? Den 6poligen oder den 10poligen? 
Am Anfang kann ich es mir ja noch aussuchen oder?

Mich interessiert das Thema sehr
vorweg Dank
Thomas

von Peter D. (peda)


Lesenswert?

1)

SPI für ISP und für die Anwendung beißt sich nicht, es passiert ja nie 
beides gleichzeitig. Allerdings sollte das CS des MAX7219 einen Pullup 
kriegen, sonst flackerts beim Porgrammieren.

Du kannst aber auch Software-SPI nehmen, geht dann mit jedem Pin.

2)

Ich nehme den 10-pol.


Peter

von Thomas W. (xote)


Lesenswert?

Dankeschön, na dann mache ich mal meinen ersten Schaltplan. ;-)

von Christian U. (Gast)


Lesenswert?

Du kannst auf die 10-Polige auch gleich die Rs232 noch mit draufhängen 
einige Programmer (z.b. meiner ;)) unterstützen das als Debuginterface

von Willi W. (williwacker)


Lesenswert?

Anderer Ansatz:

Vielleicht solltest Du Dir zuerst einmal ein fertiges Board kaufen (ich 
hatte mit dem AVR-Butterfly angefangen, gab es damals bei ebay für ca. 
16 Euro, funktionierende Hardware und Software inklusive, wichtig: 
"unverbastelt". Es gibt auch noch viele andere, günstige und teure). 
Damit kannst Du Deine ersten Erfahrungen sammeln, ein bisschen 
"rumprogrammieren" und kannst Dir sicher sein, dass die Fehler schon mal 
nciht in der Hardware liegen.

Gerade wenn Du neu bist, stehst Du erst einmal vor einem Haufen Asche, 
nichts geht und Du weißt nicht, warum. Also lieber vorsichtig rantasten. 
Deine eigene Microcontrollerplatine kannst Du dann immer noch machen.

Ciao und Viel Spaß
Willi Wacker

von Sebastian Eckert (Gast)


Lesenswert?

Butterfly ist für den Anfänger eigentlich meiner Meinung nach zu 
kompliziert. Sicherlich ist Anfänger nicht gleich Anfänger, und was der 
eine unübersichtlich findet, stört den anderen vielleicht gar nicht. 
Trotzdem: Der mega169 auf dem Butterfly Board ist schon ein ganz schöner 
Brocken von AVR, und die korrekte Bedienung des integrierten 
LCD-Treibers ist etwas aufwendiger als ein paar LEDs blinken zu lassen.

von Thomas W. (xote)


Angehängte Dateien:

Lesenswert?

Hallo,

ich bins wieder (logisch). Jetzt habe ich mich mal eingelesen 
(datasheets etc.) und ich hoffe ich habe das alles soweit mal ok 
gemacht. Meinungen aller Art erbeten, solangs zum Thema passt.

Zum Schaltplan:

R1 habe ich entsprechend dem Datenblatt des display-drivers 7219 so 
gewählt, dass genug durch die Segmentanzeigen durchgeht. MOSI des mega8 
gehen auf DIN SCK auf CLK des ICs. Für den LOAD/CS pin habe ich den MISO 
genommen, da ich so glaube habe ich das verstanden, eh nix kaskadieren 
will. Falls das so passt, wäre nur mehr eine Frage offen: Wie groß 
sollte den der pullup R2 sein?

So wie Peter gemeint hat, habe ich mich für den 10pol. ISP Stecker 
entschieden.

MAX232 war auch nicht so einfach zu kapieren am Anfang, aber ich glaube 
soweit sollte die Beschaltung auch passen.

Warum hat der den DS1233 drin??? Ganz einfach, lag so rum...

mfg
   Thomas

von Michael U. (Gast)


Lesenswert?

Hallo,

die Idee, den CS/LOAD des 7219 ausgerechnet auf eins der SPI-Pins zu 
legen, ist nicht zu empfehlen. Diese Leitungen ändern schließlich ihre 
Pegel beim Programmieren und der 7219 liest irgendwelchen Müll ein. Das 
macht ihn zwar nicht kaputt, aber wenn er so z.B. zufällig auf 1 
Anzeigestelle mit maximaler Helligkeit gesetzt wird, freut es weder Dich 
noch die Anzeige lange.

Lege CS/LOAD auf einen anderen Pin, z.B. SS.

Zum DS1233 nur soviel: ich habe hier noch so einiges an ICs rumliegen, 
willst Du die auch noch einbauen?

Gruß aus Berlin
Michael

von Thomas W. (xote)


Lesenswert?

> Lege CS/LOAD auf einen anderen Pin, z.B. SS.

Tja, genau das hatte ich mir schon gedacht, die Spuren am SS Pin des 
mega8 zeugen von meiner Unentschlossenheit. ;-) Also verschenke ich 
dummerweise dadurch einen Pin, eine Tatsache, die mich nicht so 
glücklich macht. Naja, es geht darum zu lernen.

> Zum DS1233 nur soviel: ich habe hier noch so einiges an ICs rumliegen,
> willst Du die auch noch einbauen?

Naja, es geht ja darum es auszuprobieren. Da nehme ich halt das was mir 
zur Verfügung steht. Der DS1233 reset generator hörte sich einfach gut 
an in dem Moment wo ich ihn sah, und ich mich dafür interessierte was 
das überhaupt für einer sei...

Danke für gute Kritik,
   Thomas

von Thomas W. (xote)


Angehängte Dateien:

Lesenswert?

Hallo mal wieder,

Jetzt habe ich wieder ein bisserl weitergemacht, und wollte wieder 
Meinungen hören.

Also der LOAD/CS Pin des 7219 habe ich jetzt an SS von meinem mega8. Ich 
hoffe mal, dass das jetzt so passt. Den Pullup, den Peter Danegger 
angesprochen hat brauche ich jetzt nicht mehr.

Ausserdem habe ich die Steuerleitungen für das lcd display gemacht. Ich 
bin schon gespannt wie das dann später mal auf dem pcb ausschaut.

Und ein Encoder-Symbol habe ich gemacht, weil ich vergleichbares in 
Kicad nicht gefunden habe. Ist ein Encoder eigentlich ein IC? Ich meine, 
rein theoretisch wäre dann die Bezeichnung U? auch richtig, 
andererseits...?

Kicad gefällt mir immer besser, habe auch schon ein wenig mit dem 
Layoutprogramm herumgespielt. Bekomme auch schon die Gerber Files ins 
richtige Koordinatensystem (muss angepasst werden) für das CAM Programm 
der CNC Fräse.

mfg
   Thomas

von Thomas W. (xote)


Lesenswert?

Christian U. wrote:
> Du kannst auf die 10-Polige auch gleich die Rs232 noch mit draufhängen
> einige Programmer (z.b. meiner ;)) unterstützen das als Debuginterface

Das hört sich toll an, nur ist das wahrscheinlich für mich als Anfänger 
ungeeignet. Ich bin froh wenn das Ding mal so läuft.

Da gibts doch noch soviel, JTAG, ICE und Konsorten, nicht zu vergessen 
größere Controller mit noch mehr Peripherie. Aber da trau ich mich 
ehrlich gesagt noch nicht drüber, noch nicht.

von Thomas W. (xote)


Angehängte Dateien:

Lesenswert?

So, endlich wieder Zeit.

Hab mir letztens ein paar Application Notes angeguckt. Interessant fand 
ich vor Allem no. 910 (In System Programming).

Interessanterweise sind da jetzt erstmal Widerstände zwischen den SPI 
Ports des mC und dem SPI-Slave (siehe Bild). Ein paar Postings vorher 
meinte doch wer, dass man eigentlich nur einen pull-up braucht. Was ist 
denn jetzt richtig?

sorry falls ich nerv,
mfg
   Thomas

von Dussel (Gast)


Lesenswert?

Ich kenne mich mit dem Problem nicht aus, aber die Widerstände sind wohl 
Pullups, die verhindern, dass die Programmierspannung über den anderen 
IC abfließt. Sollte meiner Meinung nach so gehen.
Dussel

von Johannes M. (johnny-m)


Lesenswert?

Thomas Wursch wrote:
> Interessanterweise sind da jetzt erstmal Widerstände zwischen den SPI
> Ports des mC und dem SPI-Slave (siehe Bild). Ein paar Postings vorher
> meinte doch wer, dass man eigentlich nur einen pull-up braucht. Was ist
> denn jetzt richtig?
Das sind Schutzwiderstände, die verhindern sollen, dass, falls das 
SPI-Device während der Programmierung versucht, der 
Programmierschnittstelle "gegenzusteuern", Kurzschlüsse verursacht, was 
zu einer Beschädigung aller drei Komponenten führen könnte. Durch die 
Widerstände wird der Strom, der in einem solchen Fall fließen könnte, 
auf ein für alle Komponenten erträgliches Maß begrenzt.

von Thomas W. (xote)


Lesenswert?

Hmm, okay. Ich versuche das mal in meinen ersten Schaltplan 
einzuarbeiten. Mehr dazu bald.

Danke soweit.

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.