Forum: Mikrocontroller und Digitale Elektronik Was geht schneller als ISP?


von emax (Gast)


Lesenswert?

Hallo!

Die Laderei mit ISP geht zwar unter Linux ganz problemlos, dauert mir
aber zu lange. Etwa 1:50 Min. für 5,5 Kb...

Gibts was Schnelleres? OHNE extra Bootloader (kein Platz).

Brauche ich dazu ein neues/anderes Kabel? z.Zt habe ich nur ein
selbstgebasteltes Printerport-Kabel, mit ein paar 220Ohm Widerständen
und fertig.

Also, weiss was?

e.

von Jörg Wunsch (Gast)


Lesenswert?

Aktuelles avrdude benutzt?  Das ist um einiges schneller geworden als
vorherigen Versionen (dank Jan-Hinnerk's Arbeit).

Was für ein Prozessor?  Ich schreibe 3 KB in 4,7 Sekunden auf einen
ATmega128.  Ein nicht seitenweise beschreibbarer Controller (also
kleiner als ATmega) wird allerdings länger brauchen.  Ist auch simpel
am Parallelport, allerdings ein 74x367 dazwischen.  OS ist FreeBSD,
aber die Parallelportansteuerung zwischen Linux' parport(4) und
FreeBSD's ppi(4) dürfte sich nicht drastisch unterscheiden.

Ansonsten: parallele Programmierung dürfte schneller sein, erfordert
aber ein separates Programmiergerät.

von emax (Gast)


Lesenswert?

Ja, sorry, der Prozessor: AT90s8535, eben exakt das AVRCtrl-Board.

Seitenweise beschreibbar - kenn die AVR-Details noch nicht genug, keine
Ahnung...

Avrdude - nein, bis jetzt nicht benutzt, benutze "isp". Geht avrdude
auch mit dem einfachen Kabel, was ich hab?

Wie gesagt: mit "isp" 1 Minute 50 Sekunden fuer 5,5Kb

e.

von Matthias (Gast)


Lesenswert?

Hi

nimm AVRDude. Das dürfte um einiges (ich schätze mal mind. Faktor 5)
schneller sein als isp (was immer das ist). AVRDude sollte mit jedem
parallen Kabel klarkommen. Evtl. mußt du die avrdude.conf anpassen aber
das dürfe einem Linux-Nutzer ja nicht fremd sein ;-)

Matthias

von emax (Gast)


Lesenswert?

Danke, ich werds versuchen.

Aber nicht mehr heute abend, bin im Moment viel mehr dabei, endlich
V1.5 meiner AVR-Demo fertigzustellen (das ist alles so eine Art selbst
auferlegte Uebung unm den AVR und den avr-gcc besser kennen zu
lernen).

Habe nun auch einen DCF-77 Dekoder eingebaut, der auch schon was tut.
Muss es noch testen, und wasserdicht machen.

Dann wird avrdude probiert.

Danke und bis denne
e.

von Jörg Wunsch (Gast)


Lesenswert?

Die alten AT90xxx MCUs sind noch nicht seitenweise beschreibbar,
d. h. für jedes Byte muß einzeln gewartet werden, bis es geschrieben
ist.  Habe gerade keinen derartigen Controller greifbar, um zu testen,
wie schnell avrdude damit ist.

von emax (Gast)


Lesenswert?

Bin ich gespannt.Jou, bin gespannt.

von Matthias (Gast)


Lesenswert?

Hi

ein 2313 (der ist ja auch nur byteweise beschreibbar) wird in unter 10s
voll (2k) beschrieben. Also sollten die 5,5k max. 25s benötigen.

Matthias

von Sebastian Wille (Gast)


Lesenswert?

Hi,

also erstmal bedeutet ISP "In-System-Programming". Also der serielle
Programmiermodus. Diesen Modus verwendet PonyProg, AVRDude, Yapp usw.

Nimmt man den original Atmel-Programmer und das AVRStudio läuft alles
wie geschmiert. Zum kompletten Auslesen des Mega128 mit PonyProg
brauchte ich über 10 Minuten, mit dem Atmel-Programmer (bzw. dem
STK500) und dem AVRStudio nur einige Sekunden!

Der Atmel-Programmer kostet bei www.tec-shop.de übrigens nur 50 Euro.

Sebastian

von Jörg Wunsch (Gast)


Lesenswert?

Naja, vom miserablen Ponyprog mußt Du nicht auf eine generelle
Untauglichkeit der Methode schließen.  ,,Wenige Sekunden'' ist schon
ein bißchen übertrieben.

Ich brauche mit avrdude über die parallele Schnittstelle 180 s für die
128 KB eines ATmega128 (unter FreeBSD, könnte sein, daß der direkte
Zugriff unter Windows sogar noch schneller wäre), mit einem AVR ISP
brauche ich 75 s.  AVaRICE kann leider nicht in eine Datei lesen, so
ich das daß via JTAG ICE jetzt nicht vergleichen kann.

,,Nur'' EUR 50 ist auch gut :-), wenn man als Vergleich einen EUR 5
Programmer hat.  Es gibt natürlich gute Gründe, warum man dennoch
STK500 Protokoll Programmer haben will.  Zuallererst wäre da der Fall
zu nennen, daß man mit einer seriellen Schnittstelle geplagt ist, die
am USB hängt...  Kostet übrigens bei allen möglichen Versendern so um
die EUR 50 (Reichelt 48, Segor 54).

von Sebastian Wille (Gast)


Lesenswert?

Hi Jörg,

also PonyProg hat auf jeden Fall über 10 Minuten gebraucht - ich habe
es interessehalber mal gestoppt. Liegt vielleicht auch an meinem
seriellen Programmer.

Für ca. 30KB für meinen Mega128 brauche ich so 8-10 Sekunden. Schalte
ich die Vertifizierung ein, dann eben die doppelte Zeit.

50 Euro sind natürlich auch 50 Euro - aber so schnell wie's jetzt
gegenüber Pony geht, war's mir das allemal wert. Das spart jede Menge
Nerven.

Sebastian

von Jörg Wunsch (Gast)


Lesenswert?

Habe eben nochmal ausprobiert: via JTAG ICE und AVaRICE komme ich auf
40 s Schreibzeit für einen vollen ATmega128.  Kann man also offenbar
auch benutzen. ;-)

von emax (Gast)


Lesenswert?

Vor lauter Doku lesen komme ich nicht mehr zum arbeiten.

Hat den irgendeiner eine auf den AVRCtrl abgestimme avrdude.conf?

Dann spar ich mir diesesmal ausnahmsweise die ganze Leserei...

von emax (Gast)


Lesenswert?

Also ich komm da nicht weiter.

Welchen Programmer muss ich denn einstellen, wenn ich nur das
Programmierkabel vom Parallelport habe, das an die AVR-Pins SCK/MI/MO
geht?

Wer weiss es?

von Jörg Wunsch (Gast)


Lesenswert?

Hängt von Deinem Kabel ab. ;-)  Es gibt ziemlich viele Varianten, wie
man das verdrahten kann...  Der Parallelport hat 14 Ausgänge und 6
Eingänge, ISP braucht 3 Ausgänge und 1 Eingang.  Kombinatorik war nie
meine große Stärke :), ich würde das anderen überlassen auszurechnen,
wie viele mögliche Verdrahtungskombinationen es dafür gibt. ;-)

von emax (Gast)


Lesenswert?

Na die Belegung stammt von dieser Site hier...

Printer Port        ATMEL
Pin:6 (D4)          RESET
Pin:7 (D5)          MOSI
Pin:8 (D6)          SCK
Pin:10 (ACK)        MISO
Pin:20 (GND)        GND

von emax (Gast)


Lesenswert?

Also vermurtlich muesste das in avrdude.conf etwa so aussehen:

programmer
  id    = "mnpk";
  desc  = "Mikrocontroller.Net Programmier-Kabel";
  type  = par;
  vcc   =  ?????????????
  reset = 6;
  sck   = 8;
  mosi  = 7;
  miso  = 10;

Was ist allerdings mit Pin20, GND, braucht der keinen Eintrag? Was muss
ich bei "vcc" eintragen?

von emax (Gast)


Lesenswert?

Ach ja: wenn die Ausgänge auf die Ausgänge abgebildet werden, und die
Eingänge auf die Eingänge dann sind es 6552 Verdrahtungsmöglichkeiten.


Nur so am Rande ;-)

von Jörg Wunsch (Gast)


Lesenswert?

Ja, war doch gar nicht so schwer, den Eintrag fürs avrdude.conf
rauszufinden, nicht wahr? ;-)

Gib dem Teil noch einen etwas einleuchtendere Namen (mir fällt aber
auch gerade keiner ein) und reiche das danach als Patch bei

https://savannah.nongnu.org/patch/?group=avrdude

ein.

vcc mußt Du nur angeben, wenn Dein Programmieradapter aus einem oder
mehreren Pins sein Vcc gewinnen will (bei mehreren werden die dann in
der Regel mit Schottky-Dioden entkoppelt).  Damit kann man einen
74x367 als Puffer versorgen oder gar einen kompletten kleinen AVR.

Masse mußt Du nicht angeben, da man die Masse-Pins ohnehin nicht
softwaremäßig zuweisen kann. ;-)

von emax (Gast)


Lesenswert?

Danke Jörg, werds versuchen.
e.

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.