PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ein AVR (AT TINY) programmieren - einfachste hardware?



Maverick89
11.05.2007, 18:40
Hallo, Elektroniker! =))
Ich bin Anfänger, und muss im rahmen eines wettbewerbs einen simplen spannungsmesser bauen, der einfach in bereich von 0 bis 5V die spannung anzeigt. ich will es mit einer 7-Seg LED-Anzeige machen, doch habe keine gefunden die man mit einem einfachen A/D wandler ansteuern könnte..

Da ich mich sehr für controller interessiere, will ich das mit einem ATTiny machen (der hat doch einen wandler eingebaut, oder?). Programmieren ist kein problem, aber das programmiergerät schon.. Wie kann ich möglichst billig so ein controller vom pc aus programmieren?

(ich hab die ISP kabel hier gesehen, aber.. die sind doch für die platinnen mit entsprechenden anschlüssen gedacht, oder wie? ich hab einen "nackten" controller)

meldano
11.05.2007, 19:31
Hi,

guck mal unter www.rowalt.de unter Programmer.
Ich denke soetwas suchst du.

Gruß
Daniel

EDIT: Pass bei der Tiny Wahl auf. ein tiny13 etc. passt ja schon mal nicht,da du ja alleine 7Pins für deine Anzeige brauchst.
Der tiny 2313 hat nur einen Komperator und keinen ADC. Der ADC wäre ja hier wichtig.

Ratber
11.05.2007, 19:42
Es geht auch einfacher.

hotchip.

Parport Pin 6 über 1K als SCK
Pin 7 über 1K als MOSI
Pin 10 direkt als MISO
Pin 9 als Reset
Brücke von Pin 2 nach 12 und Pin 3 nach 11
Pin 24 und 25 als GND
Materialkosten rund 50 Cent.

Billiger gehts nimmer aber "Ein" winziger Fehler und der Parport ist Geschichte und das Mainboard manchmal auch gleich.
Also überhaupt nicht zu empfehlen.

Dann doch lieber 4-5 Euronen ausgeben und nen brauchbaren Adapter mit 74HCT244 basteln.

Maverick89
11.05.2007, 19:48
Dann doch lieber 4-5 Euronen ausgeben und nen brauchbaren Adapter mit 74HCT244 basteln.

das denke ich auch ) wo kann man den einen passenden schaltplan finden?

und wie baue ich eine eigene passende platinne eigentlich auf? (hab bisher nur mit steckplatinne gearbeitet...)

EDIT: ich meine, Löten kann ich, aber was kann man als platinne selbst benutzen? =)

Maverick89
11.05.2007, 20:05
Hi,

guck mal unter www.rowalt.de unter Programmer.
Ich denke soetwas suchst du.

Gruß
Daniel

EDIT: Pass bei der Tiny Wahl auf. ein tiny13 etc. passt ja schon mal nicht,da du ja alleine 7Pins für deine Anzeige brauchst.
Der tiny 2313 hat nur einen Komperator und keinen ADC. Der ADC wäre ja hier wichtig.

welche versionen haben den einen analogen input? woran erkenne ich das wie heißt das in der doku?
Weil ich dachte alle ports von den kontrollern wären analogfähig...

BastelWastel
11.05.2007, 20:35
https://www.roboternetz.de/wissen/index.php/AVR-ISP_Programmierkabel

Ratber
11.05.2007, 20:39
Dann doch lieber 4-5 Euronen ausgeben und nen brauchbaren Adapter mit 74HCT244 basteln.

das denke ich auch ) wo kann man den einen passenden schaltplan finden?

und wie baue ich eine eigene passende platinne eigentlich auf? (hab bisher nur mit steckplatinne gearbeitet...)

EDIT: ich meine, Löten kann ich, aber was kann man als platinne selbst benutzen? =)

Einen Plan findet man fast überall im Web wo es um AVR geht.
Auch hier im Wiki ist einer vorhanden.
Aufbauen kannst du das zb. auf Lochraster,das ist wirklich einfach.

Hier mal nen Bild von meinem "Dongle".
Das hab ich wärend ich nen Film gesehen habe so nebenbei gebastelt.

http://home.arcor.de/ratber/ispdongle.jpg

SIGINT
12.05.2007, 10:14
Hi,
hier gibts ne Liste mit den Features der AVRs.
http://www.atmel.com/dyn/products/param_table.asp?family_id=607&OrderBy=part_no&Direction=ASC

Gruß,
SIGINT

Maverick89
13.05.2007, 10:10
OK, danke für die antworten, ich bin dabei die teile für ein solches dongle zu bestellen :)

Ich hab noch eine weitere frage: wie schalte ich den controller richtig an den dongle an (ich habe ja keine experimentierplatinne für den controller auf der ich ISP durchführen könnte, ich müsste mir also was basteln)?

Die Ausgänge sind ja beschriftet und ich nehme an sie lassen sich mit der Dokumentation des controllers "namentlich" anschließen, aber muss da externe stromversorgung sein usw? wo könnte ich nachlesen wie man es richtig macht?

Ratber
13.05.2007, 11:54
Was meinste ?

Den Dongle wie er überall angeboten wird und den ich mir selber auch gebastelt habe ?

Der muß von der Zielschaltung (Den Controller den du Programieren willst) seine 5V bekommen.



Ich hab noch eine weitere frage: wie schalte ich den controller richtig an den dongle an (ich habe ja keine experimentierplatinne für den controller auf der ich ISP durchführen könnte, ich müsste mir also was basteln)?

du willst also einen Controller in einer bestehenden Schaltung programieren.
Ja dazu mußt du die Signale MISO,MOSI,SCK und RESET sowie die Versorgung mit Vcc und Gnd an die entsprechenden Controllerpinne anbringen (Belegung steht im jeweiligen Datenblatt.Is bei jedem Modell anders)

Es setzt aber voraus das in der Zielschaltung nicht die Möglichkeit für eine Programierung verbaut wurde oder an den entsprechenden Pinnen noch andere Komponennten hängen.

Maverick89
13.05.2007, 12:03
Was meinste ?

du willst also einen Controller in einer bestehenden Schaltung programieren.
Ja dazu musst du die Signale MISO,MOSI,SCK und RESET sowie die Versorgung mit Vcc und Gnd an die entsprechenden Controllerpinne anbringen (Belegung steht im jeweiligen Datenblatt.Is bei jedem Modell anders)

Es setzt aber voraus das in der Zielschaltung nicht die Möglichkeit für eine Programierung verbaut wurde oder an den entsprechenden Pinnen noch andere Komponennten hängen.

d.h.ich muss die entsprechenden pins so verbinden und zusätzlich an VCC auch noch +5V und an GND 0V setzen? (stromversorgung durch ein spannungsregler). ist das richtig?

Ratber
13.05.2007, 13:35
d.h.ich muss die entsprechenden pins so verbinden und zusätzlich an VCC auch noch +5V und an GND 0V setzen? (stromversorgung durch ein spannungsregler). ist das richtig?

Ich habe die Vermutung das du das noch nicht ganz begriffen hast also nochmal etwas umfangreicher.


Ein Controller läst sich nicht Programieren wenn er keinen Saft hat.
Dh. die Zielschaltung muß unter Spannung stehen.

Der Programmer (Also der 74HCT244/74HC244) braucht auch Saft um zu funktionieren.

Folglich versorgt man den Programmer aus der Zielschaltung mit Energie da der Parallelport des PC'S das nur bedingt könnte (Ja,es gibt Möglichkeiten aber die sind sehr Wackelig und bei Notebooks versagen sie zu oft oder man müßte zuviel schaltungstechnisches Bohei darum machen).

Deswegen ist neben den Signalleitungen MISO,MOSI,SCK,Reset sowie der Bezugsmasse (GND) auch die Versorgung (Vcc) zu verbinden.

Du kannst den Programmer natürlich auch mit einer eigenen Spannungsversorgung ausstatten aber dann sparst du dir nur die Verbindung für den Vcc.
Die Masse (GND) bleibt ,da sonst kein Massebezug für die Signale vorhanden ist.
Die Zielschaltung muß ebenfalls mit Spannung versorgt werden sonst läst sich der Controller nicht programieren.

Es wäre also unnötiger Aufwand bei dem man nichts sparen würde.

Deswegen haben ISP-Adapter (Die Verbindung zur Zielschaltung) meist mindestens 6 Polige Kabel.

Maverick89
13.05.2007, 19:55
Ich bin gerade bei Conrad darauf gestoßen:
MYMULTIPROG USB, AVR-PROGRAMMER BAUSATZ

http://www1.conrad.de/m/1000_1999/1900/1910/1915/191536_LB_00_FB.EPS.jpg



Microcontroller-Multiprogrammer myMultiProg USB

Mit dem universellen Programmer myMultiProg USB erhalten Sie eine preiswerte und qualitativ hochwertige USB Lösung zur Programmierung der meisten AVR Controller im DIP Gehäuse über ISP Interface. Das USB Programmierinterface (mySmartUSB) wird zum Betrieb des myMultiProg benötigt, es ist nicht im Lieferumfang enthalten. Trotz kompakter Abmaße sind sieben verschiedene Sockel für Classic AVR, Tiny AVR, Mega AVR und auch AVRs der neusten Baureihen integriert.

Sie benötigen ein USB Programmierinterface (19 15 10).



ich hab nicht recht verstanden was mit "usb programmierinterface" gemeint ist? das ist doch ein programmiergerät mit (scheinbar) einen USB-Eingang... was benötigt man denn noch?

Ratber
13.05.2007, 20:31
Die Multiprogplatine (Bausatz für 14.86,Fertig 19.99) ist nur ein Adapter mit mehreren DIL-Fassungen in die du die zu programierenden Controller stecken kannst.

Der eigentliche Programmer ist das Programierinterface (191510) für 28.72

Maverick89
13.05.2007, 21:02
was ist mit
MYMULTIPROG LPT, AVR-PROGRAMMER BAUSATZ

da steht nix von anderen Teilen, aber auch kein foto auf dem man sehen könnte was das für ein tier ist....

Ratber
13.05.2007, 21:28
Hab ich doch schon geschrieben

Der Programmer 191510 ist das was du brauchst.

Der Multiprog ist nur ein Adapter mit Fassungen auf den du den PRogrammer aufstecken kannst.(Kann man auch auf dem Foto sehen)

Maverick89
15.05.2007, 19:10
Ich hab mir den USB-Programmer bestellt, danke für ihre Hilfe!!

oberallgeier
12.09.2007, 10:12
Hallo, alle,

ich programmiere mit einem seriellen Kabel (Franzis - Lernpaket Mikrocontroller, für den tiny13 ). Und ich habe immer wieder gehört die Programmiererei mit USB sei so dämlich langsam ](*,) . Stimmt das?

Danke für die Anwort,
Joe
DerAltevomBerg

Ratber
12.09.2007, 10:57
Wer erzählt denn so einen Unsinn ?

Wenn ich einem Mega16 den Speicher voll mache (16k) dann dauert das inkl. Verify rund 2.5 Sekunden inklusive aller Wartezeiten.

(Von der IDE zum Steurproggie des Programmers,von dort aus zum Programmer selber,dann von dort zum Zielsystem und einmal zurück zum überprüfen.Anschließend Rückmeldung )
Und das bei einem ISP-Takt von 1 Mhz
Läuft der Controller mit 16 oder 20 Mhz dann kann ich auch mit 4 bzw. 5 Mhz arbeiten und es geht entsprechend schneller.

Das sollte doch ausreichen oder ? ;)

SprinterSB
12.09.2007, 13:06
Die günstigste und einfachste Hardware geht via Port-Banging:

http://s-huehn.de/elektronik/avr-prog/avr-prog.htm

Die Software kost auch nix (zB avrdude (http://www.gjlay.de/pub/index.html#avrdude)), da gehen auch alle ATtiny)

Ratber
12.09.2007, 13:19
Also vom Hotwirekabel (2 Widerstände am Parport) kann ich nur abraten.

Zum einen zu empfindlich gegen Störungen und zum anderen null schutz für den Parport des PC.
Im Fehlerfall wars das dann für den Port und da die Schnittstellen im Chipsatz liegen ist an eine Reparatur kaum zu denken.
Lieber die Variante mit Treiber (74xxx244).
Der chip kostet im Zweifelsfalle nur einige Cent.

oberallgeier
12.09.2007, 16:48
Hallo, Ratber,


Wer erzählt denn so einen Unsinn ?

Wenn ich einem Mega16 den Speicher voll mache (16k) dann dauert das inkl. Verify rund 2.5 Sekunden inklusive aller Wartezeiten. . .


Danke. Manchmal halten sich alte Gerüchte besonders lang #-o

Ciao sagt Joe
DerAlte vom Berg

Besserwessi
12.09.2007, 17:56
Das mit den langen Programmierzeiten Über USB sind nicht nur Gerüchte. Allerdings trift dies nur zu wenn man einen USB-RS232 Adapter, einen nicht besonders intelligeneten Seriellen Programierer und einen älteren AVR (die noch nicht Seitenweise, sondern Byte für Byte programmiert werden) benutzt. Das Problem ist die Zeit die der USB Adapter ein einzelens Byte von der RS232 Schnittstelle weitergibt.

oberallgeier
12.09.2007, 21:06
Also vom Hotwirekabel (2 Widerstände am Parport) kann ich nur abraten. ... Im Fehlerfall wars das dann für den Port und da die Schnittstellen im Chipsatz liegen ist an eine Reparatur kaum zu denken. ... Lieber die Variante mit Treiber (74xxx244).
Der chip kostet im Zweifelsfalle nur einige Cent.

Schlimm schlimm. Manche Beiträge machen mich klüger, andere ängstlicher.

Klüger: ich nehme an, dass ein Parport ein paralleler Port ist (sorry, ist neu für mich).

Ängstlicher: Muss ich denn fürchten, dass Ähnliches (ruinierte Schnittstelle) auch bei meinem simplen Programmierverfahren/-kabel mit dem seriellen Anschluss passieren >>kann<< ?

Auf der Seite http://s-huehn.de/elektronik/avr-prog/avr-prog.htm und an anderen Stellen habe ich ähnlich simple Kabel-Anschlüsse für serielle Schnittstellen gesehen. Sind die also schlecht?

Ich frage nur, weil es mir um mein mainboard schon leid täte.

Muss ich dann also ein "richtiges" Programmiergerät anschaffen? Wäre da eine Empfehlung möglich (ich habe meine Taschen nicht so total mit Geld voll . . .) - - - - Im ersten Schrecken #-o hab ich schon mal (vielleicht hilfts) in den USB einen USB<->RS232 Adapter gesteckt.

Schon mal danke für die Antwort.

SprinterSB
12.09.2007, 22:20
Also vom Hotwirekabel (2 Widerstände am Parport) kann ich nur abraten. ... Im Fehlerfall wars das dann für den Port und da die Schnittstellen im Chipsatz liegen ist an eine Reparatur kaum zu denken. ... Lieber die Variante mit Treiber (74xxx244).
Der chip kostet im Zweifelsfalle nur einige Cent.

Schlimm schlimm. Manche Beiträge machen mich klüger, andere ängstlicher.

Klüger: ich nehme an, dass ein Parport ein paralleler Port ist (sorry, ist neu für mich).

Ängstlicher: Muss ich denn fürchten, dass Ähnliches (ruinierte Schnittstelle) auch bei meinem simplen Programmierverfahren/-kabel mit dem seriellen Anschluss passieren >>kann<< ?

Auf der Seite http://s-huehn.de/elektronik/avr-prog/avr-prog.htm und an anderen Stellen habe ich ähnlich simple Kabel-Anschlüsse für serielle Schnittstellen gesehen. Sind die also schlecht?

Bislang habe ich in der recht langen Zeit, die ich in diesem Forum bin, noch keinen Beitrag gesehen, wo jemand seine Schnittstelle gegrillt hätte mit nem Simpel-Teil...

Die Aussage, Simpel-Adapter seien unsicher ist IMHO teilweise recht undifferenziert oder hat Marketing-technische Gründe (Beiträge über solche Adapter werden zB aus dem Wiki gelöscht mit dieser pauschalen Begründung).

Adapter wie auf der Seite von Huehn sind wesentlich simpler im Aufbau als andere Selbstbau-Adapter. Von daher ist auch die Fehlerquelle beim Aufbau geringer.
Nehmen wir mal den Simpel-Adapter für den RS232, der die Zielschaltung mit Widerständen von zB 3.9kOhm entkoppelt. Nehmen wir weiter an, in der Zielschaltung kommt es zu einer Fehlfunktion, etwa Spannungsüberhöhung. Rechne jetzt aus, wie hoch/tief die Spannung schlimmstenfalls sein darf, daß der Strom über nen RS232-Pin nicht über +/-20 mA kommt. Du bist dann bei ca +/-70 (siebzig!) Volt.

Jetzt stell dir den Fall vor, du hast nen TTL oder CMOS-Chip in deinem Progger und der sieht 70V oder -70V auf einem Pin oder auf VCC. Das ist jenseits jeglicher Spezifikation, wie du dir denken kannst! Eine Aussage, was der IC tut, wirst du in KEINEM Datenblatt finden. Bestenfalls raucht das Teil ab und wird hochohmig. Nicht unwahrscheinlich ist der Fall, daß man nen LachUp bekommt (CMOS) bzw. das der IC voll auf Durchzug geht, und das wird dir dann ganz komfortabel den Port grillen.

Überlegungen für den ParPort ähnlich, wobei der aber nur kleinere Ströme abkann.

Bedenke, daß wir hier reden über FEHLFUNKTION der Schaltung, und daß du über einen IC kaum sagen kannst, was das Teil unter den Bedingungen veranstaltet! Mit einem simplen R kann man das sehr wohl sagen.


Zugegeben, als ich meinen Simpel-Adapter (damals aufm Steckbrett) vor 3 Jahren an meinen neuen Lappi angeschlossen hatte, war mir extrem mulmig. Bis heute hat der Lappi überlebt, die Adapter auch.

Nur einige Male hab ich mir aus Dummheit µC in der Zielschaltung geröstet (hab da teilweise 160-200V drauf für ne Röhrenschaltung). Einmal hab ich zB einen fetten Kondensator zwischen VCC und GND montiert, auf dem noch 35V drauf waren. Die µC und Portexpander hat's zerlegt, der Prog-Adapter und RS232 haben nicht mal mit der Wimper gezuckt.

Bei gekauften Adaptern hat man natürlich die Sicherheit, daß sie korrekt aufgebaut sind.


Muss ich dann also ein "richtiges" Programmiergerät anschaffen? Wäre da eine Empfehlung möglich (ich habe meine Taschen nicht so total mit Geld voll . . .) - - - - Im ersten Schrecken #-o hab ich schon mal (vielleicht hilfts) in den USB einen USB<->RS232 Adapter gesteckt.

Für nen USB-Selbstbau-Adapter gibt's noch den USBasp von Fischl

http://www.fischl.de/usbasp/

Funzt auch gut bei mir als Sauerkraut aufm Steckbrett. Allerdings hast du dann das Henne-Ei-Problem, weil du für den einen ATmega8/48 proggen must.

oberallgeier
12.09.2007, 23:22
Hallo SprinterSB,

danke für die ausführliche Darstellung.


Bislang habe ich in der recht langen Zeit ... keinen Beitrag gesehen, wo jemand seine Schnittstelle gegrillt hätte mit nem Simpel-Teil...

Zugegeben, als ich meinen Simpel-Adapter (damals aufm Steckbrett) vor 3 Jahren an meinen neuen Lappi angeschlossen hatte, war mir extrem mulmig. Bis heute hat der Lappi überlebt, die Adapter auch.

Bei gekauften Adaptern hat man natürlich die Sicherheit, daß sie korrekt aufgebaut sind.

Für nen USB-Selbstbau-Adapter gibt's noch den USBasp von Fischl

http://www.fischl.de/usbasp/

Funzt auch gut bei mir als Sauerkraut aufm Steckbrett. Allerdings hast du dann das Henne-Ei-Problem, weil du für den einen ATmega8/48 proggen must.

Es ist ja nicht so, dass ich ein DSUB9-DSUB9 - Kabel einfach an eine wirre, selbsterfundene Schaltung gesteckt hätte. Ich hab das Ganze gekauft (FRANZIS-Verlag, Einsteigerkurs Mikrocontroller-Programmierung) - und es hat fast alles prächtig funktioniert. Bisher. Mir war nur (so wie Dir offenbar auch schon mal) mulmig geworden. Bei mir wars eben da, als ich von der Möglichkeit gelesen hatte, dass, wie und wo man leicht einiges schrotten könnte.

Aber mit den Rechnungen geht mir schon ein Licht auf - ich müsste öfters mal überlegen was ich in ETechnik gelernt hatte. Vor etlicher Zeit.

Bitte nimm das alles als (meine) Anfänger- (oder Nachlässigkeits-) -fehler.

Ciao, Joe
DerAltevomBerg

Ratber
13.09.2007, 04:29
@SprinterSB


Bislang habe ich in der recht langen Zeit, die ich in diesem Forum bin, noch keinen Beitrag gesehen, wo jemand seine Schnittstelle gegrillt hätte mit nem Simpel-Teil...

Ja,das stimmt.
Geschrieben hat davon hier soweit ich weiß noch keiner direkt aber man darf nicht vergessen das wenn überhaupt nur wenige es auch zugeben würden.
Ich kenne hier im Forum Zwei Leute denen das passiert ist.
Die haben mich per PN angeschrieben in der Hoffnung doch noch was zu retten.
Früher hätte man einfach die Schnittstellenkarte getauscht aber spätestens seit ATX ist das ja nicht mehr Möglich.
Da hilft dann nur abschalten im Bios und Steckkarte kaufen.

Neben dem Elektrischen Risiko spricht gegen die zwei Widerstände auch das sehr schlechte Signalverhalten.


Den Minimaladapter mit 2 Widerständen hatte ich auch mal probiert aber wie du hatte ich dabei ein flaues Gefühl also hab ich erstmal die Parallele Variante mit 74xxx244 gebastelt der zu dem Zeitpunkt von jeder Soft unterstützt wurde und es wohl auch noch immer wird.

Summasumarum ist übertriebener Geiz auch nicht der ware Jakob.
die maximal 5 Euro für einen vernünftigen Adapter sollte man sich schon leisten.

oberallgeier
13.09.2007, 10:40
Ich muss jetzt mal anfangen zu grübeln-kramen-nachgucken-undso wieso der 74xxx244 die prinzipell sicherere Variante ist als ein einfacher Draht.

((Das Folgende ist nicht zum Lesen gedacht, nur meine eigenen, unbekümmerten Gedanken. "...wenn der 74x.. ne Fehlfunktion hat - dann brennt doch sowieso auch wieder mal was an ... und ein Teil ohne Fehlfunktion gibts doch nicht ... hmmmm ..))

SprinterSB
13.09.2007, 12:34
Bislang habe ich in der recht langen Zeit, die ich in diesem Forum bin, noch keinen Beitrag gesehen, wo jemand seine Schnittstelle gegrillt hätte mit nem Simpel-Teil...

Ja,das stimmt.
Geschrieben hat davon hier soweit ich weiß noch keiner direkt aber man darf nicht vergessen das wenn überhaupt nur wenige es auch zugeben würden.
Ich kenne hier im Forum Zwei Leute denen das passiert ist.
Die haben mich per PN angeschrieben in der Hoffnung doch noch was zu retten.

Klar, ein Erfolgserlebnis ist sowas nicht gerade. Beim Parallel wär ich auch zurückhaltender als beim RS232, der da robuster ist.

Ich erinnere mich an einen Beitrag, in dem jemand den RS232-Adapter nachbaute und der nicht funzte. Es stellte sich heraus, daß er PC-seitig die Signale für MISO und MOSI vertauscht hatte. Nachdem er das korrigierte lief das Teil problemlos.


Neben dem Elektrischen Risiko spricht gegen die zwei Widerstände auch das sehr schlechte Signalverhalten.
Da geb ich dir recht, vor allem weil der ParPort auf TTL arbeitet und nicht wie der RS232 auf +/- 9V. Selbst beim RS232 sollte man lange Leitungen vermeiden, evtl helfen 100pF an den Signalen.

Ein Selbstbau-Adapter ist sowoeso nur was für Leute, die schon Erfahrung mit Basteleien und etwas Sicherheit darin haben. Newbees machen teilweise haarstäubende Fehler, auf die man niemals von selbst kommen würde (zB Bauteile festkleben, weil man kein Lötkolben hat).

Den Minimaladapter mit 2 Widerständen hatte ich auch mal probiert aber wie du hatte ich dabei ein flaues Gefühl also hab ich erstmal die Parallele Variante mit 74xxx244 gebastelt der zu dem Zeitpunkt von jeder Soft unterstützt wurde und es wohl auch noch immer wird.


Summasumarum ist übertriebener Geiz auch nicht der ware Jakob.
die maximal 5 Euro für einen vernünftigen Adapter sollte man sich schon leisten.

Was den Preis (Geiz) angeht und die Signalgüte geb ich dir recht.

Für mich zB war aber damals aber gerade die Einfachheit (siehe Topic!) der entscheidende Grund: etwas bauen, was ich nachvollziehen kann und genau weiß, wie's funzt. Mit dem 74*244 ist das net ganz so einfach und die möglichen Fehlerquellen beim kompletten Selbstbau sind eben ungleich mehr.

Mir geht's hier nicht darum, einen Glaubenskrieg vom Zaun zu brechen, sondern darum, das überall nachgebetete "simpel=unsicher, komplex=sicher" kritisch zu hinterfragen.

Ratber
13.09.2007, 13:33
@Oberallgeier

Wie auch immer, ich kann und werde niemanden Zwingen irgendwas zu machen,ich gebe nur meine Meinung dar.


Und zum Thema "Wenn der 74x ne Fehlfunktion hat" kann ich dir nur den Gedankenanstoss geben das dieses Argument für "jeden" Programmer mit auch nur einem aktiven Halbleiter gilt.
Also auch für deinen jetzigen.
Damit wären wir wieder da wo wir angefangen haben und drehen uns im Kreis.


Wie schon gesagt hängst du ja an der Seriellen, die wesentlich Tolleranter ist (Pos. sowie Neg. Pegel. Kuzschlussgechützt), also ist die Diskussion für dich eh mehr nur theoretischer Natur.



PS:

@SprinterSB


Mir geht's hier nicht darum, einen Glaubenskrieg vom Zaun zu brechen, sondern darum, das überall nachgebetete "simpel=unsicher, komplex=sicher" kritisch zu hinterfragen.

Ja,kritisch hinterfragen zu ich ja auch immerwieder allesmögliche aber 2 Widerstände irgendwie als Sicher zu bezeichnen halte ich für fragwürdig.
Gerade am Parport ist das schnell mal Tödlich für die Hardware.

Und "Komplex" ist eine Frage der Sichtweise.
An nem Parportadapter mit 74xxx244 finde ich nichts kompliziertes.
Es sind ja nur eine Hand voll Bauteile.
Wer das schon zu komplex findet und kapituliert der kann rein logisch betrachtet bei Mikrocontrollern nur noch Slebstmord begehen denn einfacher wirds bestimmt nicht.
Also man sollte schon bei Adam und Eva anfangen und nicht bei Quantencomputern :D

Aus dem Grunde lernt man erst Feilen,Sägen,Schleifen usw. per Hand bevor man an eine entsprechende Maschine darf.
Der Hintergrund ist das man das Prinzip dahinter also die Grundlagen im Kopf hat.

Auf die Elektronik bezogen sehen wir es gerade hier doch immer wieder.
Leute mit fast keinem Elektronikwissen wollen gleich ganze Geräte bauen und scheitern allzuoft an im Grunde lächerlichen Kleinigkeiten wie fehlenden Entstörmaßnahmen (100nf am Regler und über jeden Chip,Elko vor der Motorstufe usw.) oder dem Versuch hohe Ströme mit einem TTL-Baustein zu schalten (zb. Stepper direkt an einem PCF8574).
Das möchte ich nicht unterstüzen.
Da gebe ich lieber Tips zu Grundlagen und zu Schaltungen die einige der Fehler wenigstens abmildern.
Dazu gehöhrt aber bestimmt nicht die Variante mit den 2 Widerständen.




Da geb ich dir recht, vor allem weil der ParPort auf TTL arbeitet und nicht wie der RS232 auf +/- 9V. Selbst beim RS232 sollte man lange Leitungen vermeiden, evtl helfen 100pF an den Signalen.

Ja,nur belastet man damit das Signal.
Die Kanten verschleifen und da man nie sagen kann wie lang jemand seine Serielle nun am ende macht kann man auch nicht voraussehen wie sich das auf das Signal auswirkt.

Ich versuche den Leuten lieber was in die Hand zu drücken was sicher funktioniert oder wenigsten halbwegs sicher.

Fummelige Sachen mache ich nur für mich selber da mir auch die Hintergründe bekannt sind und ich weiß wie und wo ich nach Fehlern suchen muß (Für gewöhnlich.Man lernt ja nie aus)
Sowas kann ich von anderen, deren Wissensstand ich nicht kenne, einfach nicht verlangen.

Du wirst mir vieleicht zustimmen wenn ich sage das man mit den Grundlagen anfängt und dann zu den Tricksereien übergeht und nicht umgekehrt.
Den Grund dafür kennst du ja sicher auch. :D

Besserwessi
13.09.2007, 17:17
Die Schaltung mit dem 74xx244 gibt schon etwas mehr Schutz für den Parallelport. Die Ports sind gegen Kürzschlüsse und anlegen von Spannungen bis 5 V normalerweise ressitent. Was dagegen schädlich ist sind Spannungsspitzen durch statische Aufladungen wie sie beim Verbinden mit der Schaltung oder Berühren der Kontakte entstehen können. Das Andere Mögliche Problem sind eventuell -5V durch eine falsch verbundene Masse. Die 74xx ICs leiten derartige Spannungen erst einmal auf ihre Versorgungsspannung ab und ehrhöhen damit die Spannung im hoffentlich vorhandenen Kondensator ein wenig. Wenn man will kann man diese mit einer Zenerdiode auf ca. 5,6 V begrenzen. Wie schon oben erwähnt ist der Typische Schaden ein Latch-up, d.h. das IC verursacht einen Kurzschluß in seiner Versorgungsspannung und das schadet dem Parallelport nicht.

Die Widerständen zwischen dem Parallelport und dem Treiber IC, die in manschen Schaltungen zu finden sind, haben durchaus ihren Grund: Sie Verhindern das der Prallelport den Programmierer und eventuell sogar die Schaltung mit Strom Versorgt. Bei mir fehlten diese Widerstände und das hat zu einem schwer zu finden Problem geführt:

In der zu Programmierenden Schaltung war die Spannungsversorgung unbemerkt unterbrochen. Der Parallelprort konnte genug Strom liefern um die Prozessor ID auszulesen, aber beim Schreiben ins Flash gabs dann dauernd Fehler.

Dolfo
16.11.2007, 17:44
Hallo,

darf ich mich anhängen: habe nach obigen Ratschlägen zur ISP die Schaltung (Parallelport) mit 74LS245 nachgebaut. Allerdings nach dem Bauplan von Gerhard Schmidt http://www.avr-asm-tutorial.net/avr_de/beginner/index.html

Problem: AVR Studio 4 kann keinen Kontakt aufnehmen.

Statt Paralellport über den klassischen 10pin Pfostenstecker mit dem STK500 verbunden lässt sich der Controller einwandfrei programmieren. Lötstellen usw. auch geprüft und i.O.

Hat jemand Rat?

Hubert.G
16.11.2007, 19:37
PonyProg verwenden, das AVR-Studio kann diesen Programmer nicht.

Dolfo
17.11.2007, 06:09
und ich hab mir schon die Haare gerauft... Danke für prompte Antwort!!!

AlKI
17.11.2007, 11:48
Also ich hab mir den lpt-adapter mitm 74HCT244 gebaut, und dann mal mit bascom-AVR programmiert. Er macht auch immer das, was ich von ihm will, solange ich keine fehler programmiert hab.
jetzt hab ich mir den SI-Prog in der vereinfachten variante gebaut, damit ich nicht immer am lpt umstöpseln muss.
Hatte zwar auch beide male ein mulmiges gefühl, es gingen aber beide, der lpt mit bascom und ponyprog, mit dem SI-prog kann ich mit ponyprog meinen AVR auslesen, beschrieben hab ich ihn noch nicht damit.

Was mich jetzt nur wundert: mein bascom-AVR gibt mir beim Auslesen folgendes an (als Bsp. mal nur den Anfang, der Rest geht so weiter):


0000 C0 10 95 18 95 18 95 18 95 18 95 18 95 18 95 18 À.|.|.|.|.|.|.|.

Und mein ponyprog das da (sowohl mit SI-prog, als auch mit dem lpt-HCT244-Adapter):


0000 10 C0 18 95 18 95 18 95 - 18 95 18 95 18 95 18 95 .À|.|.|.|.|.|.|


Warum vertauscht ponyprog da jede zweite stelle?




Und "Komplex" ist eine Frage der Sichtweise.
An nem Parportadapter mit 74xxx244 finde ich nichts kompliziertes.
Es sind ja nur eine Hand voll Bauteile.
Wer das schon zu komplex findet und kapituliert der kann rein logisch betrachtet bei Mikrocontrollern nur noch Slebstmord begehen denn einfacher wirds bestimmt nicht.

Wenn man das Datenblatt des 74HCT244 durchliest, versteht man die (fast) gesamte schaltung. zumindest ich.

oberallgeier
17.11.2007, 12:01
Was mich jetzt nur wundert: mein bascom-AVR gibt mir beim Auslesen folgendes an (als Bsp. mal nur den Anfang, der Rest geht so weiter):


0000 C0 10 95 18 95 18 95 18 95 18 95 18 95 18 95 18 À.|.|.|.|.|.|.|.

Und mein ponyprog das da (sowohl mit SI-prog, als auch mit dem lpt-HCT244-Adapter):


0000 10 C0 18 95 18 95 18 95 - 18 95 18 95 18 95 18 95 .À|.|.|.|.|.|.|


Warum vertauscht ponyprog da jede zweite stelle?

Hmm, das sieht ja nicht gut aus. Meine Meinung zu den ersten Datensätzen (evtl. ist die Allgemeingültigkeit jetzt beschränkt :( ): C0 ist ja der Relativ-Jump-Befehl - hinter dem die Sprungweite kommt. Und C0 steht in meinen hex-files immer VOR der Sprungweite. ALSO ist wohl in Deinem zweiten code-Beispiel irgendetwas nicht so richtig glaubwürdig.

AlKI
17.11.2007, 12:44
es ist so:
https://www.roboternetz.de/phpBB2/album_pic.php?pic_id=1990

oberallgeier
17.11.2007, 16:35
Hi, AlKi,

dazu kann ich nun nix sagen, da ich kein PonyProg verwende und dessen Handbuch nicht kenne. Aber auch Deine weiteren Codeteile sind ja im ponyprog "verkehrt" rum, denn der "reti"-code = 95 18 (hex) erscheint ja ebenso verdreht wie der Rest - aber das hattest Du ja schon selbst festgestellt.

Fazit: rtfm. Oder hoffen wir, dass bald ein ponyprog-user antwortet.

AlKI
17.11.2007, 17:02
ja, mehr bleibt mir aber auch nicht übrig :-)

trotzdem vielen dank, denn jetzt weiß ich wenigstens, dass bascom wirklich das programm ist, welches richtig ausliest.

voher wusste ich ja nur, dass eines von beiden falsch sein muss.

vlt. gibts ja irgend ne inverted-einstellung o.ä....


!!!! [EDIT!]: gelöst:
jap, da gibts bei Utility ne "Byte swap"-Funktion, die isses gewesen!

oberallgeier
24.11.2007, 11:44
Hallo AIKI,

ich habe jetzt auch PonyProg. Und sehe die Codesequenzen wie Du sie zeigst. Die Frage war jetzt für mich - warum ist das so programmiert?

Dazu habe ich mir Folgendes überlegt (vielleicht kann das bitte ein Programmierprofi kommentieren ?):
bei den Programmen (z.B. in Assembler) wird üblicheweise die Folge MSB/LSB (most significant byte/least significant byte) eingehalten.

Beispiel mit einem tiny-Befehl in Assembler:
ADIW R25:R24, 2 ;Subtrahiert dez2 vom Word in den beiden Registern R25:R24
siehe dazu auch die Notiz:
http://de.wikipedia.org/wiki/Bitwertigkeit

Es liegt also bei dieser Denkweise nahe, den Code als Word-Schreibweise (zwei Bytes bilden ein Paar) in dieser Art zu präsentieren: das erste Byte ist das HÖHERWERTIGE (höhere Adresse) und das zweite ist das NIEDERWERTIGE (niedrigere Adresse). Die Adressenfolge der Bytes ist demnach:
2 1 4 3 6 5 ...
Es ist also nur eine formalistische Geschichte. Und wie Du vermutlich feststellen kannst - der HEX-Code, den Du mit Ponyprog einlädst, wird (normalerweise, ohne Deine byte swap - Umstellung) in dieser Reihenfolge dargestellt - aber im Controller stehts dann schon richtig drin - und funzt auch wirklich :).

Nachtrag: ADIW ist die Addition, SBIW die Subtraktion, sorry.

AlKI
24.11.2007, 11:52
aha, interessant und gut zu wissen.

Danke!