Forum: Mikrocontroller und Digitale Elektronik Kabellänge AVR Programmierung


von Kurt B. (kurt-b)


Lesenswert?

Hallo,

AT-Tiny 4313,  abgesetzte MOSI MISO Reset Takt.

Wie weit (geschirmtes Kabel 0.25 nicht verdrillt) kann man den 
Prog-Adapter (DAMES-AVR)
absetzen?

10, 20 50 m.

Oder geht beim 4313 auch ein Bootloader?  (über BASCOM)



Kurt

von Klaus W. (mfgkw)


Lesenswert?

Sätze verständlich ganz lesbar geschreibt?

Falls du die maximale Kabellänge wissen willst: 10, 20 oder 50 m wird 
sicher zuviel sein.

Wenn die Treiber mitspielen, ist 0.5...1 m realistisch, alles darüber 
wird schon nur noch bei Vollmond gehen.

Mit einem bootloader und RS232 geht natürlich deutlich mehr, hängt aber 
schwer von den Treibern und vor allem von der Baudrate ab.

von ich (Gast)


Lesenswert?

Ich hab mir auch ein Programmierkabel mit 3 Metern gemacht aus 
Flachbandleitung. Keine Probleme. Aber gefühlsmäßig würde ich auch nicht 
mehr als 5 Meter sagen. Hab aber die Grenze, wo es nicht mehr geht, noch 
nicht selbst ermittelt. Ich kann also nur für meine 3 Meter die Hand ins 
Feuer legen.

von ich (Gast)


Lesenswert?

Hängt bestimmt auch vom Programmiergerät ab, denke ich. Ich habe hier 
das AVRISP-mkII.

von Kurt B. (kurt-b)


Lesenswert?

Klaus Wachtler schrieb:
> Sätze verständlich ganz lesbar geschreibt?

Soll ja auch keine Schönschreibübung sein.

>
> Falls du die maximale Kabellänge wissen willst: 10, 20 oder 50 m wird
> sicher zuviel sein.
>

OK damit ists erledigt.

>
> Mit einem Bootloader und RS232 geht natürlich deutlich mehr, hängt aber
> schwer von den Treibern und vor allem von der Baudrate ab.

Die Baudrate kann ich auf 2400 setzen, auch runter bis 300.
RS232 ist nicht, muss mit "TTL" 3V gehen.

Ich weiss aber nicht ob da der 4313 unter BASCOM mitmacht.



Kurt

von Klaus W. (mfgkw)


Lesenswert?

Kurt Bindl schrieb:
> RS232 ist nicht, muss mit "TTL" 3V gehen.

Dann kannst du deine 50m auch knicken.
RS232 und RS485 gibt es nicht aus Versehen.

von Kurt B. (kurt-b)


Lesenswert?

Klaus Wachtler schrieb:
> Kurt Bindl schrieb:
>> RS232 ist nicht, muss mit "TTL" 3V gehen.
>
> Dann kannst du deine 50m auch knicken.
> RS232 und RS485 gibt es nicht aus Versehen.

Naja gut, es sind in dieser Anwendung max 20 m.

Ich -fürchte- mich aber auch nicht davor auch 100 m bei 3 V zu machen, 
müssen nur entsprechende Stromtreiber und Abschlusswiderstände hin und 
halt langsam genug gehen.
Es muss ja dann nur in eine Richtung gehen und da spielen dann 
Laufzeiten auch keine Rolle mehr.

Die eigentliche Entscheidung, ob mit MISO MOSI.. ist aber gefallen.



Kurt

von ich (Gast)


Lesenswert?

Kurt Bindl schrieb:
> Ich -fürchte- mich aber auch nicht davor auch 100 m bei 3 V zu machen,
> müssen nur entsprechende Stromtreiber und Abschlusswiderstände hin und
> halt langsam genug gehen.
> Es muss ja dann nur in eine Richtung gehen und da spielen dann
> Laufzeiten auch keine Rolle mehr.
>
> Die eigentliche Entscheidung, ob mit MISO MOSI.. ist aber gefallen.
>
> Kurt

Ich denke, beim Programmieren muß es in beide Richtungen gehen, nicht 
nur in eine.
Und was für eine Entscheidung ist jetzt gefallen?

von Der (Gast)


Lesenswert?

Kurt Bindl schrieb:
> Ich -fürchte- mich aber auch nicht davor auch 100 m bei 3 V zu machen,

Rein aus Interesse: Bei welcher Anwendung muss man einen Controller 100m 
entfernt flashen?

von Martin V. (oldmax)


Lesenswert?

Hi
Nun, wenn du einen Controller flasht, der eine Tanksäule oder einen 
Gasbehälter steuert...., das Wort für die eNeSAi hab ich mal vermieden.
Gruß oldmax

von ich (Gast)


Lesenswert?

Dafür muß man doch den µC nicht flashen. Der hat doch Timer :-)

von Martin V. (oldmax)


Lesenswert?

Hi
Ja, geht vielleicht auch, aber wenn einer tanken will, möchte er es ja 
nicht erst später... und so ist der Entwickler schon gefragt, das die 
Software auch sofort den Kunden bedient. Aber beim Flashen tankt ja 
keiner... hoffentlich.....
Gruß oldmax

von Ma (Gast)


Lesenswert?

ISP ist ja auch nix anderes wie SPI... Wenn ich damit über so eine 
Strecke gehen müsste, würde ich entweder was optisches (SFHxxx) oder 
LVDS probieren.

von Klaus W. (mfgkw)


Lesenswert?

Nachdem das, was er vorhat, eh nicht geht, schon mal eine Anregung zur 
Lösung:
http://www.idealo.de/preisvergleich/OffersOfProduct/1890442_-rs232-extender-ueber-cat-5-1000m-dc-52101-digitus.html

von Peter (Gast)


Lesenswert?

Sowas wie bootloader habt ihr schonmal gehört?

Was ist das für ein absolut hirnrissiger Blödsinn was ihr da von euch 
gebt? ISP über 1m ich wünsche euch viel Spaß. Habt ihr das je irgendwo 
bei einem prof. Produkt gesehen? Seid ihr schlauer als jahrelang 
erfahrene Ingenieure? Die Frage ist natürlich rhetorisch gemeint.

von Klaus W. (mfgkw)


Lesenswert?

Wer ist "ihr"?
Außer dem TO will das doch eigentlich keiner?

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?


von Conny G. (conny_g)


Lesenswert?

Ich habe ab und zu mal ein 0,5m ISP-Kabel in Verwendung, hatte aber 
einmal große Probleme damit, als ich es an einer Schaltung mit Funkmodul 
hängen lies um ständig neue Firmware einspielen zu können während dem 
Entwickeln:

Das 0,5m Flachbandkabel ist eine hervorragende Antenne und schleuste mir 
grobe Störungen von 0,5V Amplitude in die Schaltung ein.
Kostete mich ein paar Stunden rätseln, warum das Funkmodul plötzlich 
nicht mehr will bis ich die Ursache gefunden hatte...
Das Programmieren funktionierte weiterhin, aber die Schaltung wollte 
nicht mehr richtig.

Mit einem geschirmten Kabel (Cat 5) könnte das besser gehen.

von Kurt B. (kurt-b)


Lesenswert?

ich schrieb:
> Kurt Bindl schrieb:
>> Ich -fürchte- mich aber auch nicht davor auch 100 m bei 3 V zu machen,
>> müssen nur entsprechende Stromtreiber und Abschlusswiderstände hin und
>> halt langsam genug gehen.
>> Es muss ja dann nur in eine Richtung gehen und da spielen dann
>> Laufzeiten auch keine Rolle mehr.
>>
>> Die eigentliche Entscheidung, ob mit MISO MOSI.. ist aber gefallen.
>>
>> Kurt
>
> Ich denke, beim Programmieren muß es in beide Richtungen gehen, nicht
> nur in eine.
> Und was für eine Entscheidung ist jetzt gefallen?


Die Entscheidung dass ich nicht übers lange Kabel versuchen werde da den 
AVR zu progen.

Der AVR ist, versehen mit einer Progschnittstelle, in einem IP68 Gehäuse 
verbaut.
Das was er da drin anstellt wird über das Kabel zu einer Auswerteeinheit 
übertagen.

Da ich mich ja kenne, weiss dass "immer noch etwas besser sein könnte" 
will ich natürlich Zugriff auf den AVR haben.

Um an die Schnittstelle auf der Platine zu kommen muss allerdings die 
Box geöffnet werden.
Diese ist aber aus gutem Grunde am Kabel dran und IP68, denn sie ist 
unter Wasser.

Also bleibt entweder es sein zu lassen, oder die Möglichkeit über 
Bootloader übrig.

Und bei dem weiss ich noch nicht ob er bei diesem AVR (4313) und unter 
BASCOM realisierbar ist.

Natürlich könnte ich eine Rutine in Assembler einfügen, aber da müsste 
ich mich erst wieder reinfinden.

Kurt

von ich (Gast)


Lesenswert?

Okay, die Erläuterung ist nachvollziehbar.
Aber betreffs Bascom und Bootlader kann ich dir leider nicht 
weiterhelfen. Vielleicht liest noch jemand mit hier, der sich besser 
auskennt...

von Falk B. (falk)


Lesenswert?

@Kurt Bindl (kurt-b)

>Der AVR ist, versehen mit einer Progschnittstelle, in einem IP68 Gehäuse
>verbaut.
>Das was er da drin anstellt wird über das Kabel zu einer Auswerteeinheit
>übertagen.

Die Übertragung läuft sinnvollerweise NICHT mit TTL Pegeln sondern 
RS232, RS485 oder was auch immer.
Und damit ist das Problem rein logischer Natur. Bootloader mit BASCOM.

von Stefan (Gast)


Lesenswert?

Oder ein ISP Programmer mit UART "Eingang", daran eine RS485 oder 
Ethernet Adapter.
1
PC o---RS232/RS485----------RS485/UART----AVR(mit Bootloader)---o
2
3
PC o---RS232/RS485----------RS485/RS232----ISP-Programmer--AVR(ohne Bootloader)---o
4
5
PC o---RS232/Ethernet----------Ethernet/UART----AVR(mit Bootloader)---o
6
7
PC o---RS232/Ethernet----------Ethernet/RS232----ISP-Programmer--AVR(ohne Bootloader)---o

von Kurt B. (kurt-b)


Lesenswert?

Stefan schrieb:
> Oder ein ISP Programmer mit UART "Eingang", daran eine RS485 oder
> Ethernet Adapter.PC o---RS232/RS485----------RS485/UART----AVR(mit
> Bootloader)---o
>
> PC o---RS232/RS485----------RS485/RS232----ISP-Programmer--AVR(ohne
> Bootloader)---o
>
> PC o---RS232/Ethernet----------Ethernet/UART----AVR(mit Bootloader)---o
>
> PC
> o---RS232/Ethernet----------Ethernet/RS232----ISP-Programmer--AVR(ohne
> Bootloader)---o



Laptop o---USB/TTL----------TTL--AVR (mit Bootloader)

Das Zielsystem wird mit Batterien versorgt, der Lapy steht im Freiem 
unterm Regenschirm.

Wies ausschaut habe ich für den Bootlader nur einen Draht (natürlich 
auch Masse) zur Verfügung, ausserdem muss ich mit "TTL", also kleiner 
Spannung (2,2V am AVR) noch zurechtkommen.


Eine andere Frage:

Gibt es einen FED der bei -2V Gate  30 mA sauber durchschaltet oder soll 
ich einen BC327 nehmen (will den hohen Basisstrom und die 0.2V CE 
vermeiden).



Kurt

von Klaus W. (mfgkw)


Lesenswert?

Sehe schon, daß du bei deinen großen Entfernungen und kleinen Spannungen 
armdicke Kabel zum Flashen brauchst, sonst geht zuviel im Kabel 
verloren.

Irgendwie zweifle ich an deinem Realitätssinn.
Aber zumindest kann man dir nicht Wankelmut vorwerfen :-)

von Gerhard W. (gerhard86)


Lesenswert?

Kurt Bindl schrieb:
> Gibt es einen FET der bei -2V Gate  30 mA sauber durchschaltet oder soll
> ich einen BC327 nehmen (will den hohen Basisstrom und die 0.2V CE
> vermeiden).

Parametrische Suche der Hersteller oder zB von Farnell benutzen, aber 
auf Anhieb würde mir der PMV65XP einfallen....

von Wolfgang (Gast)


Lesenswert?

Kurt Bindl schrieb:
> Wie weit (geschirmtes Kabel 0.25 nicht verdrillt) kann man den
> Prog-Adapter (DAMES-AVR) absetzen?

Ohne einen Link zu einer aussagekräftigen Beschreibung deines 
Prog-Adapters ist das schwierig. Zum programmieren über ein langes und 
dann noch geschirmtes Kabel mit möglicherweise vergleichsweise hoher 
Kapazität muss man sich die Signale ansehen und ggf. mit der 
Programmiergeschwindigkeit runter gehen. Besser wäre ein Bootloader, bei 
dem du zusätzlich selbst für eine robustere Datenübertragung sorgen 
kannst.

von Kurt B. (kurt-b)


Lesenswert?

Klaus Wachtler schrieb:
> Sehe schon, daß du bei deinen großen Entfernungen und kleinen
> Spannungen
> armdicke Kabel zum Flashen brauchst, sonst geht zuviel im Kabel
> verloren.
>

Hallo Klaus, in der Kabelstärke sehe ich kein Problem, je dünner desto 
besser, desto geringer die Kapazität zum Schirm.

Das -Problem- ist nicht der Spannungsabfall wegen der Länge, sondern das 
Verhalten des Pulses.


> Irgendwie zweifle ich an deinem Realitätssinn.
> Aber zumindest kann man dir nicht Wankelmut vorwerfen :-)

Zumindest etwas das du mir nicht absprichst.
Mein R-Sinn sagt mir dass es mehrere Gründe gibt warum die ISP nicht 
anwendbar ist.

- es müssten die drei Signale an beiden Leitungsenden Z-mäßig 
abgeschlossen werden, das heisst das sowohl auf der Progerseite als auch 
auf der Zielsystemseite entsprechende Widerstände und 
Signalaufpoppelschaltungen vorhanden sein müssten.

- es sind weitere Leitungen notwendig die im Kabel nicht drin sind.


Dieser Aufwand ist mir zu hoch, noch dazu ich nicht weis ob nicht doch 
Laufzeitprobleme auftreten könnten, sowie die Platine auch nicht mehr 
passen würde.


Es bleibt nur der Bootloader übrig denn auf der Zielseite ist der RxD 
unbenutzt.


Die V24 ist auch nicht brauchbar denn sie beschert mir die gleichen 
Probleme.

Die Überlegung geht in diese Richtung:

Serielles Signal verwenden, nicht V24 sondern ein Stromsignal.
Am Ziel_AVR wird ein "Z-Widerstand" gesetzt der die Leitung abschliesst.
Ein Reihenwiderstand zum RxD stellt sicher dass der AVR nicht 
geschrottet wird weil seine Schutzdioden den Strom übernehmen der ev. zu 
viel angeliefert wird, denn es müssen ja mindestens die Spannungen über 
dem Abschlusswiderstand erreicht werden damit der AVR auch 1sen sicher 
erkennt.

Beim Proger ist dann nur eine Umsetzung von V24 auf ein passendes 
Stromsignal notwendig.

Ich denke da an ca 20 mA, das lässt an einem Abschlusswiderstand von 
z.B. 200 Ohm eine Spannung von 4 V abfallen.
Das müsste für den UART reichen.

Ich muss mich allerdings erst mal mit dem Bootloader anfreunden (oder er 
mit mir).


Hallo Gerhard, dank für den Tip, schaut gut aus!



Kurt

von Conny G. (conny_g)


Lesenswert?

Nächst kompliziertere Variante könnte sein:

über Deine beschriebene Übertragung das .hex auf einen Flash-Chip oder 
eine SD-Karte laden und dann den AVR neu booten, der kuckt beim Boot 
nach neuer Firmware auf der SD-Karte und lädt sie per Bootloader, dann 
nochmal Reboot fertig.

Der Vorteil wäre, dass Du das Programmiersignal nicht Realtime übers 
Kabel bringen musst, sondern Du kannst die Signalgeschwindigkeit so 
fahren, dass Du beliebige Distanzen überbrücken kannst. Könntest dann 
sogar mit 9.600 Baud die Firmware übermitteln.
Das Protokoll evtl. noch blockweise mit Prüfsummen, dann geht 100%ig 
nichts schief.

Sowas in der Richtung überlege ich gerade mit meinen Funkschaltungen zu 
machen: über die langsame und eher unzuverlässige Funkverbindung nach 
und nach die neue Firmware rübernudeln mit Prüfsumme und ggf. 
Wiederholung des Pakets.
Dann ist die auf SD... und so weiter, wie oben.

Bootloader FAQ:
http://blog.schicks.net/wp-content/uploads/2009/09/bootloader_faq.pdf

Vg,
Conny

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Naja nur 2 poliges Kabal is etwas doof, 3 polig sollts schon sein für 
RS485.
2V direkt asymetrisch durchjagen über ne lange Distanz, naja eher 
nicht...

Dann mach eben nen Bootloader über Funk, das RFM70 geht bis 1,9V runter.
Dann sollte anstatt dem Tiny2313 allerdings eher nen Mega88 rein.

von Kurt B. (kurt-b)


Lesenswert?

Martin Wende schrieb:
> Naja nur 2 poliges Kabal is etwas doof, 3 polig sollts schon sein
> für
> RS485.

Ich kann nicht RS485, geht nicht weil: Kein -Strom- beim Zielsystem, 
kein Platz auf der Platine (ist schon festgelegt), und soll bis 1.8 V 
gehen.


> 2V direkt asymetrisch durchjagen über ne lange Distanz, naja eher
> nicht...

Darum will ich ja "Strom" nehmen, da kann ich dann auch 20V draufgeben 
wenn der R_leitung zu gross sein sollte.


> Dann mach eben nen Bootloader über Funk, das RFM70 geht bis 1,9V runter.

Geht nicht weil der beim Zielsystem sein muss (Blechdose und unter 
Wasser).


> Dann sollte anstatt dem Tiny2313 allerdings eher nen Mega88 rein.

Heisst das  das das mit dem Bootloader sonst nicht hinhaut?

Jetzt lass ich erst mal das alles ein wenig sinken, wie heissts so 
schön:
Kommt Zeit kommt Rat, Zeit ist gekommen, das Rad aber nicht mehr.



Kurt

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Na der tiny4313 hat keine Bootloadersektion.
Mit ein paar Klimmzügen kann der schon Bootloaden, aber eben Aufwand.
Der Mega88 hat wiederrum eine.

Also ne Stromschleife legen und im Zielgerät is nurnochn Optokoppler?
Könnte klappen.
Da kannste dann direkt UART drüberjagen für einen UART Bootloader.
Hast dann eben nur keinen Rückkanal.

von Kurt B. (kurt-b)


Lesenswert?

Martin Wende schrieb:
> Na der tiny4313 hat keine Bootloadersektion.
> Mit ein paar Klimmzügen kann der schon Bootloaden, aber eben Aufwand.
> Der Mega88 hat wiederrum eine.

Leider passt der nicht auf die Platine, und extra komplett umschmeissen 
will ich auch nicht.

>
> Also ne Stromschleife legen und im Zielgerät is nurnochn Optokoppler?
> Könnte klappen.

Ja das würde gehen, ich hab nun zwei Widerstände auf meiner Platine 
reingesetzt, schauma was draus wird.


> Da kannste dann direkt UART drüberjagen für einen UART Bootloader.
> Hast dann eben nur keinen Rückkanal.

Es wird ja eh nur der TxD benutzt, das wäre dann egal.


Kurt

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.