Hallo Besucher, der Thread wurde 23k mal aufgerufen und enthält 54 Antworten

letzter Beitrag von Seiker am

XS1541 Lochraster

  • Okay, also werde ich auch Ponyprog-Screenshots beifügen.


    Gerade kämpfe ich noch mit der Compilierung unter Ubuntu - scheint nicht ganz so einfach zu sein - hat da jemand vielleicht Erfahrung mit?


    Vom Fehlerteufel gibts zu berichten, dass am LittleUSB (es ist da!) RxD und TxD vertauscht werden müssen. Wieso dachte ich blos, RxD mit RxD und TxD mit TxD verbinden zu wollen?! tzzz... :D


    Diese serielle Schnittstelle... also die Sendedaten TxD des LittleUSB wollen mit den Empfangsdaten RxD des Atmels verbunden werden, und die Empfangsdaten RxD des LittleUSB mit den Sendedaten TxD des Atmels.

  • ponyprog wäre sehr sinnvoll denke ich. ich arbeite ebenfalls damit und bin immer überfragt wegen den einstellugen wenn keine bilder bei sind

    Mal eine dumme Frage, wieso benutzen alle solche graphischen Programme, wenn sie eh' nicht verstehen, was sie da eigentlich anklicken? Da wäre es doch wirklich einfacher, die vorgegebene avrdude-Zeile abzutippen und fertig...

  • Wenn hier jeder einfach nur Kommandozeilen abtippt oder Häkchen so setzt, wie sie auf dem Bild sind, geht das garantiert schief - egal, ob man der Klickibunti-Fraktion angehört oder Kommandozeilen-Nerd ist/gerne wäre.


    Mitdenken ist IMMER erforderlich!


    Das fängt schon bei so einfachen Sachen an wie der Schnittstelle, an der der Flasher hängt. Und NEIN, ich werde nicht sieben Beispielbilder posten für /dev/ttyS0, /dev/ttyR7, /dev/ttyUSB0, COM1: und whatever.


    Der nächste hat dann einen STK200-kompatiblen Flasher, oder einen STK500-kompatiblen oder... oder... oder...


    Ich werde mir Mühe geben, die Faktoren zu beschreiben, damit jeder prüfen kann, was bei ihm zutrifft und das dann entsprechend anpassen kann. Welches Werkzeug er dann benutzt, ist mir persönlich egal - die Hauptsache ist doch, dass man mit seinem Werkzeug umgehen kann, egal, ob man es nun mit der Maus oder mit der Tastatur bedient.

  • die Hauptsache ist doch, dass man mit seinem Werkzeug umgehen kann, egal, ob man es nun mit der Maus oder mit der Tastatur bedient.


    sehe ich ähnlich!
    ich brauche sowas halt eigentlich nie. habe es gebraucht für das mmc2iec von shadowolf. sonst nie.
    und da hats wunderbar geklappt. avrdude müsste ich mir auch erst noch runterladen. also einfacher oder schneller sehe ich da nicht wirklich gegeben. das programm kenne ich nun ein wenig und weiß wo ich welche einstellungen machen muß. auf der kommandozeile bin ich acuh gut zuhause, jedoch habe ich nichtmal avrdude installiert bisher.


    ich würde mich auf jedenfall über einen screenshot der "häckchen" bei pony freuen, denke mehr brauche ich nicht wirklich. wenns nicht geht, pech, dann werde ich mich mit avrdude zwangsläufig auseinandersetzten müssen für dieses eine mal.


    danke auf jedenfall für deine mühe und die anleitung hier!
    meine swinsid platinen sind hier, werde also die nächste zeit mal ne nette bestellung bei reichelt aufgeben können dank dir!


    :D

  • Der nächste hat dann einen STK200-kompatiblen Flasher, oder einen STK500-kompatiblen oder... oder... oder...

    Ist ja alles schön und gut, wobei ich aus Foren normalerweise eher das "Hab' da was gemacht, jetzt reagiert der µC nicht mehr" (= Clock-Fuses falsch gesetzt) kenne, was mit avrdude ja eher nicht passieren kann. Installation ist so schwer auch nicht, ist ja nur ein Kommandozeilentool. Aber klar, abhalten werde ich niemanden, auch haarkleine Doku für PonyProg zu schreiben... ;)

  • So... ich habe das XS1541 Lochraster jetzt fertig aufgebaut und getestet - it works! :D


    Der bislang gepostete Schaltplan und die Verdrahtungsbilder werden damit hinfällig. In diesen hier sind die gefundenen Fehler behoben, da ich meine Schaltung danach aufgebaut habe, kann ich sicher sagen, dass es so funktioniert.


    Der 1k-Vorwiderstand für die LED hat sich für die im Warenkorb enthaltene LED als brauchbar erwiesen. Ich habe bei mir allerdings die LEDs erst mal auf Sockeln montiert, damit ich die LEDs leichter tauschen kann, wenn ein Gehäuse dafür da ist.
    Die momentan verwendete LED leuchtet mit 1k eher schwach, der Widerstand sollte also ggfs. durch z.B. 680 Ohm ersetzt werden.


    Hier die korrigierte Fassung des Schaltplans:
    xs1541lr.pdf


    Die Verdrahtungsbilder von oben zur Positionierung der Bauteile:
    xs1541lr_top_view.png


    Das Verdrahtungsbild von unten, die Ansicht ist gespiegelt und daher genau so, wie man auch löten muss:
    xs1541lr_bot_view.png


    So siehts von oben fertig aus:
    xs1541lr_top_900x675.jpg


    Und so von unten:
    xs1541lr_bot_900x675.jpg


    Die Bilder können wie gewohnt angeklickt werden, um eine größere Ansicht zu erhalten.


    In dieser Form wird das niemand nachbauen: um beide Varianten testen zu können, habe ich sowohl die Little-USB- als auch die MAX232-Variante aufgebaut. Zwischen den beiden kann ich mit dem Schalter umschalten. Der Schalter ist absichtsvoll im Schaltplan nicht enthalten, da man ja normalerweise nur eine Version aufbaut. Die nicht verwendeten Teile werden dann einfach weg gelassen.


    Nicht vergessen, beim Aufbau die Position 1 der Stiftleisten zu kennzeichnen, damit man später weiß, wie man das Kabel zum Flashen oder ggfs. für IEEE-Laufwerke anschliessen muss.


    Wer den LittleUSB verwendet, nur eine DIN-Buchse und kein IEEE braucht, hat das Ding ruck zuck aufgebaut. Wenn man so mehrfach bekloppt ist wie ich, und die volle Packung haben möchte, dauert's natürlich etwas länger.


    Nach dem Aufbau gehts einmalig ans Setzen der Fuses und dem Aufspielen des Bootloaders:


    Die folgenden Beispiele gehen von einem STK200-kompatiblen ISP-Programmer am ersten Parallelport (unter Linux /dev/parport0) aus. Diese Werte sind natürlich ggfs anzupassen.
    Ich hatte einen 644P, daher -p m644p -- wer einen 644er verwendet, muss -p m644 schreiben.


    Erst einmal von Diddls XS1541 Seite den Bootloader und die aktuelle Firmware holen... alternativ kann statt dem XS1541 auch das IEEE2IEC verwendet werden.


    Dann...


    Status und Verbindung prüfen:

    Code
    1. avrdude -v -c stk200 -P /dev/parport0 -p m644p


    Bootloader flashen:

    Code
    1. avrdude -v -c stk200 -P /dev/parport0 -p m644p -U flash:w:main.hex:i


    Jetzt müssen noch die Fuses gesetzt werden. Da ich Schwierigkeiten hatte, alle Fuses auf einmal zu setzen, habe ich mir angewöhnt, die Bytes einzeln zu schreiben:


    low fuse:

    Code
    1. avrdude -v -c stk200 -P /dev/parport0 -p m644p -U lfuse:w:0xFF:m


    high fuse:

    Code
    1. avrdude -v -c stk200 -P /dev/parport0 -p m644p -U hfuse:w:0xD4:m


    ext'd fuse:

    Code
    1. avrdude -v -c stk200 -P /dev/parport0 -p m644p -U efuse:w:0xFC:m


    lock fuse:

    Code
    1. avrdude -v -c stk200 -P /dev/parport0 -p m644p -U lock:w:0x2F:m


    Ist das erledigt, wird der ISP-Programmierer nicht mehr benötigt. Das erstmalige und alle weitere Aufspielen der Firmware kann fortan über den Bootloader über das serielle Kabel bzw. das USB-Kabel erfolgen.


    Der Bootloader meckert über die Typangabe 644p, die daher mit -F erzwungen wird.


    Da der Bootloader in den ersten drei Sekunden nach einem Reset aktiv ist, ist die Vorgehensweise wie folgt:
    erst die Befehlszeige eintippen oder in die Konsole kopieren:


    Code
    1. avrdude -v -c avr109 -P /dev/ttyS0 -b 115200 -p m644p -F -u -U flash:w:XS1541.hex:i


    ...dann die Reset-Taste am XS1541 drücken und dann binnen drei Sekunden die Eingabetaste am PC um den vorbereiteten Befehl auszuführen.


    Wer Linux verwendet und sich nicht sicher ist, wo das LittleUSB nun eingebunden wurde, kann einfach mal dmesg tippen und erhält dann ungefähr so etwas:



    Wie man der Ausgabe entnehmen kann, wurde das LittleUSB an /dev/ttyUSB0 eingebunden - siehe die drittletzte Zeile.


    Beispiele zum Flashen mit PonyProg unter Windows reiche ich nach.


    Viel Spaß und Erfolg beim Nachbauen!
    Wenn es Fragen geben sollte - nur zu!

  • Tolles Projekt und sehr schön dokumentiert, danke For(;;)! Auch hier die bewährte Fädeltechnik ...



    Frage: habe gestern das erste mal "gefädelt". Dabei hab ich gemerkt dass es nicht ganz so einfach ist. Der Lack schmilzt nicht so leicht, der Fädeldraht hat keinen Kontakt oder löst sich gar von selbst. Wenn man länger drauf heizt geht es dann schon.


    Hast du irgendwelche Tipps für Anfänger wie mich? Ideale Temperatur? Ideale Lötzeit? Soll man den Lack vorher etwas abkratzen? Soll man direkt fahren mit dem Fädeldraht oder lieber Umwege machen? Ich frage wegen der Löt Reihenfolge, manchmal muss man über Stellen fahren wo später noch gelötet wird, oder soll man diese Situation total vermeiden?

  • Es gibt verschiedene lackierte Drähte. Weil ich ihn besitze, verwende ich einen Kupferlackdraht. Das ist soweit mir bekannt nicht das gleiche wie Fädeldraht. Fädeldraht soll sich angeblich gut löten lassen und der Lack soll sich beim Löten auflösen ohne beim Löten zu stören. Ich finde 25 Euro für eine kleine Rolle viel zu teuer, deswegen bleibe ich bei meinem Lackdraht, auch wenn der eher zum Wickeln von Spulen als zum Aufbau von Schaltungen gedacht ist.
    Da ich nie mit "echtem" Fädeldraht gearbeitet habe, kann ich zum Arbeiten damit gar nichts sagen.


    Beim von mir verwendeten Kupferlackdraht siehts so aus:


    Der Lack ist durchsichtig und man kann (leider!) beim besten Willen nicht erkennen, wo er noch dran ist und wo nicht. Kurzschlüsse hatte ich aber immer nur an den Lötstellen selbst, nie irgendwo anders - scheint also sehr unproblematisch zu sein.


    Abkratzen muss man gar nichts.


    Der Draht nimmt die Wärme nur da gut auf, wo eine direkte Verbindung zum Kupfer herrscht, sprich: am Ende wo er abgeschnitten wurde. Mittendrin muss man ewig darauf rum braten bis man eine unzuverlässige Verbindung bekommt, die zudem unschön aussieht. Oftmals hat man ja eine Leitung, die an mehrere Beinchen angeschlossen werden muss. Früher habe ich das so gemacht, das ich irgendwo angefangen habe, dann den Draht "unterwegs" drum gewickelt habe (an das Sockel-Beinchen), dann zum nächsten Sockel-Beinchen usw. Das hat sich als unzuverlässig erwiesen, weshalb ich heute jede Leitung einzeln löte - also mit je einem Draht von Punkt zu Punkt. Das ist zwar etwas mehr Arbeit, wird aber durch Funktion belohnt.


    Die Vorgehensweise ist wie folgt:


    Auf die Lötspitze etwas Lötzinn geben.
    Das Ende des Drahtes in das Lötzinn halten, so dass das Ende des Drahtes darin ist. Den Draht etwas im Zinn bewegen, bis die Länge verzinnt ist, die man gerne haben möchte, z.B. 3-5 mm.
    An IC-Beinchen nehme ich ein gerades, kurzes Ende von ca. 3mm, an Buchsen wie z.B. der Centronics-Buchse etwa 5 mm.


    Wenn der Draht verzinnt ist, die Lötspitze auf dem Schwamm säubern. Das alte Lötzinn mit den Lack-Resten ist nicht mehr zu gebrauchen.


    Dann halte ich den Draht dort hin, wo ich ihn festlöten möchte. An Buchsen wie z.B. der Centronics-Buchse biege ich das Ende des Drahtes mit einer Pinzette zu einer Art Schlaufe um, die ich um den Anschlussdraht der Buchse lege - das hält dann besser und ist für mich leichter zu löten.


    Den Draht fixiere ich dann, in dem ich ein paar mm von der Lötstelle entfernt einen kleinen Schlitzschraubendreher auf den Draht stelle und mit meiner "dritten Hand" - meinen Lippen festhalte. Das sieht bestimmt urkomisch aus, hat sich aber bewährt.


    Als Linkshänder halte ich dann in der linken Hand den Lötkolben und in der rechten Hand das Lötzinn.


    Erst Draht und Sockelbein kurz (1-2 Sekunden) erwärmen, dann Lötzinn zuführen bis ausreichend Lötzinn geschmolzen ist und eine gute Verbindung hergestellt ist. Es sollte darauf geachtet werden, nicht zuviel Lötzinn verwendet zu werden, nicht etwa, weils teuer wäre, sondern weils unschön aussieht und ruck zuck Kurzschlüsse gibt.


    Dann entferne ich Lötkolben und Lötzinn und fixiere den Draht noch für ca. 3 Sekunden mit dem Schraubendreher an den Lippen, um der Lötstelle Zeit zum Abkühlen zu lassen.


    Mit dem Wiring-Pen lege ich jetzt den Draht, so wie ich ihn haben will, dabei fixiere ich ihn zwischendurch wieder mit dem Schraubendreher, wenn ich z.B. 90-Grad-Bögen haben will.


    Am Ende biege ich den Draht etwas um das Sockel-Bein, so dass ich einen Knick am Ende habe. An diesem Knick schneide ich den Draht mit dem Seitenschneider ab.


    Dieser Knick markiert zum einen die Position, an der ich den Draht abkneifen muss, zum anderen verhindert er gleichzeitig, dass der Draht in das Innere meines Wiring-Pens rutschen kann und ich alles noch mal neu auf den Wiring-Pen aufrollen muss - ausserdem lässt sich dieser Bogen leichter am Sockelbein löten als ein gerades Ende, da es besser in Position bleibt.


    Das Ende des Drahtes hebe ich nun mit dem Schraubendreher etwas an, so dass das Ende ca. 1 cm von der Platine absteht.


    Den Draht wieder verzinnen wie eben beschrieben.


    Dann den Draht mit dem Schraubendreher in die Endposition bugsieren, den Draht wieder mit dem Schraubendreher fixieren und mit frischen Lötzinn anlöten.


    Zur Löttemperatur kann ich auch nichts sagen, da ich einen ganz einfachen Ersa Multitip 230 verwende, einen 15W-Lötkolben "ohne alles".


    Wenn ich Stellen habe, wo später noch gelötet werden muss, z.B. über die Stiftleiste beim XS-1541 achte ich darauf, wenige Millimeter mehr Draht als unbedingt notwendig wären zu verlegen - so kann ich nachher mit dem Schraubendreher die Drähte "zur Seite" bugsieren und die Lötstelle "frei schaufeln", die ich gerade bearbeiten möchte.


    Ach ja: wenn man eine Lötstelle bearbeitet, wo schon ein Draht festgelötet wurde, also dort einen weiteren Draht anlöten möchte, sollte man den bereits angebrachten Draht dabei fixieren - sonst macht es beim Anhalten des Lötkolbens "pling" und der bereits fertig verlötete Draht verabschiedet sich nach oben!

  • Danke für die ausführliche Beschreibung. Stimmt, an den Enden läßt es sich leicht löten nur in der Mitte nicht so. Schade, ich habe es als riesen Vorteil angesehen dass man mehrere Lötstellen durchgehend verbinden kann. Ich werde noch etwas experimentieren damit ...

  • Wenn man die Fotos auf der Seite von deinem Link betrachtet erkennt man eine Art Cutter oder Skalpell. Ich habe zuerst daraus geschlossen, der kratzt die Lackschicht ab und lötet dann ...




    Ich finde 25 Euro für eine kleine Rolle viel zu teuer, deswegen bleibe ich bei meinem Lackdraht, auch wenn der eher zum Wickeln von Spulen als zum Aufbau von Schaltungen gedacht ist.


    Wer redet denn von 25€??! So um die 6,50 zahlt man für die Rolle á 40m.

  • Er scheint einen dünneren Draht zu verwenden als ich - nein, dem Durchmesser sehe ich das natürlich nicht an, aber so wie sich die Drähte legen bzw. biegen haben sie wohl mehr den Charakter eines Fadens denn eines Drahtes. Vielleicht benutzt er das Cutter-Messer zum Abtrennen des Drahtes (dazu benutze ich den kleinen Seitenschneider) oder die Spitze bzw. die stumpfe Seite zum Bugsieren und Fixieren des Drahtes.


    Rund 25 Euro möchte z.B. reichelt dafür haben: Fädeldraht, Viererpack bei Reichelt - wo hast Du denn dieses Angebot gesehen? Da würde ich ja glatt auch mal was kaufen!

  • Auf meiner Rolle steht Monacor KLD-22/1 FA-NR.: 903259.
    Das "KLD" wird wohl für "Kupferlackdraht" stehen - aber wie gesagt, den möchte ich ausdrücklich NICHT empfehlen! :D


    Wenn man einen lötfähigen Draht hat, bei dem der extra-Schritt des Verzinnens entfällt und der auch mehrere Verbindungen mit einem Draht erlaubt, also das Löten "irgendwo mittendrin am Draht" und nicht nur an den Enden, ist das sicher eine enorme Erleichterung.

  • bei der häufigkeit wo ich den brauche sind 20€ preisunterschied den mehraufwand wert


    Wenn Du wirklich das XS1541, das SD2IEC und den SwinSID (oder wie der heisst) aufbauen möchtest, kommt ja schon einiges zusammen... da würde ich Dir den von Diddl empfohlenen Fädeldraht schon ans Herz legen!
    Eine kleine Rolle Kupferdraht bei Reichelt kostet ja auch an die zwei Euro, da sinds dann schon nur noch fünf Euro Unterschied und glaub mir... wenn Dir fünf Euro drei Stunden nervigste Lebenszeit ersparen können, sind das fünf sehr gut angelegte Euro!

  • Habe ich schon erwähnt... wer sich für die serielle Variante mit MAX232 entschieden hat, braucht natürlich auch ein Kabel. Und serielle Kabel gibt es viele in allen möglichen Variationen, hauptsächlich in zwei Kategorien "direkt" und "Nullmodem" einzuteilen.
    Der Schaltplan und auch der Verdrahtungsplan gehen von einem Direktkabel aus. Ich habe aber nur Nullmodemkabel, daher sind bei meinem Aufbau wie man auf dem Bild der Platinenunterseite erkennen kann, die Anschlüsse an Pin 2 mit dem von Pin 3 vertauscht. Das muss natürlich beachtet werden entsprechend dem verwendeten Kabel, sonst spricht das XS1541 nie mit einem...


    PonyProg ist gerade gestorben für mich -- so ein Schrott!!


    Wenn ich schon eine Anleitung brauche, um ein einfaches Programm zu konfigurieren, ist es schon Mist.
    Das habe ich dann gemacht, die ersten Screenshots für die Doku erstellt und... die aktuelle Version 2.07c Beta Jan 6 2008 unterstützt den 644p nicht - das ist ja wohl ein schlechter Scherz!


    Ein bischen gegoogelt... es gibt wohl Patches, die dann je nach verwendeter Programmversion und verwendetem PC besser, schlechter oder gar nicht arbeiten.


    Avrdude gibt's auch für Windows. Eine funktionierende Binary zu finden, die dann auch noch aktuell ist, war so eine Sache...


    Ist zwar ein wenig mit Kanonen auf Spatzen geschossen, aber der Weg über den Download von WinAVR (ca. 22 MB) hat sich schließlich als praktikabel erwiesen:


    Also 1. WinAVR von der WinAVR-Download-Seite herunterladen und installieren. Die Installation ist ganz nach dem üblichem Schema und sollte keine Schwierigkeiten verursachen.


    Ein Neustart ist nicht erforderlich.


    Weiter gehts an der Konsole äh "Eingabeaufforderung" oder DOS-Prompt oder wie auch immer das gerade heisst: /Start/Ausführen.../ dann cmd tippen und die [Eingabetaste].


    Die weiteren Beispiele beziehen sich wie gehabt auf den "Einfach-ISP-Programmierer" am Parallel-Port, der zum STK200 kompatibel ist.


    Jetzt muss noch give_io installiert werden, um avrdude den Zugriff auf die Hardware zu erlauben. Dazu muss install_giveio.bat gestartet werden. In meinem Beispiel wechsele ich in das Verzeichnis, da bin aber im Pfad eingetragen wird, sollte das eigentlich nicht erforderlich sein:



    Jetzt kann wie im obigen Post geflasht und die Fuses gesetzt werden, nur dass eben /dev/parport0 durch lpt1 zu ersetzen ist.


    Beispiel um die Verbindung und den Status zu testen:


    Code
    1. avrdude -v -c stk200 -P lpt1 -p m644p


    Nach dem Aufspielen des Bootloaders und den Setzen der Fuses wird die Firmware aufgespielt - entweder über den MAX232 an einem seriellen Port wie z.B. COM1 oder über das LittleUSB.
    Das LittleUSB erscheint unter Windows als virtueller COM-Port, und dazu muss man erst einmal die Nummer ermitteln.
    Dazu wechselt man in der Systemsteuerung in Hardware / Gerätemanager und klappt dort Ports (COM & LPT) aus.
    Bei mir wird das LittleUSB als "Silicon Labs CP210x USB to UART Bridge (COM11) angezeigt.


    COM11 kann man aber nicht direkt als -P COM11 angeben, das klappt wohl nur bis COM9. Man beachte die besondere Schreibweise von COM11 als \\.\COM11:


    Code
    1. avrdude -v -c avr109 -P \\.\COM11 -b 115200 -p m644p -F -u -U flash:w:XS1541.hex:i


    Die Code-Zeilen kann man in dem Konsolen-Fenster nicht mit Strg-V einfügen. Mit Rechtsklick mit der Maus gefolgt von "Paste" bzw. "Einfügen"? klappts dann - mann muss also nicht alles abtippen.