Forum: Mikrocontroller und Digitale Elektronik AVR abfrage ob Programmer angeschlossen?


von nichts (Gast)


Lesenswert?

Hallo an Alle,

ich möchte an einem Mega128 abfragen ob ein ISP-Programmer
angeschlossen ist.
Es sollen keinerlei Daten übertragen werden.
Es geht nur darum, festzustellen ob der µC schon einmal
an einem Programmer hing.

D.h. wird der µC gestartet während ein Programmer inaktiv am
ISP hängt soll dies Registriert werden.

Irgendwie steh ich grade auf dem Schlauch bezüglich einer Lösung.
Verwende den Atmel MKII.

Hat jemand einen Ansatz oder ne Idee wie das Lösbar ist?

Grüße und Danke

von Klaus (Gast)


Lesenswert?

Schreibe bitte zunächst mal auf, für welches Problem das die Lösung sein 
soll.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

nichts schrieb:
> D.h. wird der µC gestartet während ein Programmer inaktiv am
> ISP hängt soll dies Registriert werden.

Sieh Dir an, an welchen Pins des µC der "Programmer" angeschlossen ist 
und welche Signalpegel im Ruhezustand vorliegen, und ob die sich vom 
Zustand ohne angeschlossenen "Programmer" unterscheiden.

Tun sie es, weißt Du, was Du zu tun hast.

Und der tiefere Sinn des ganzen?

von holger (Gast)


Lesenswert?

>D.h. wird der µC gestartet während ein Programmer inaktiv am
>ISP hängt soll dies Registriert werden.

Das geht aber nicht weil der Programmer seine Leitungen
hochohmig schaltet. Selbst auf Anfragen von der MCU würde der nicht
ein Stück reagieren.

von Philipp K. (philipp_k59)


Lesenswert?

Also kein Plan was man damit vorhaben könnte..

man könnte GND oder "5V" des Programmers mit Diode auf einen Port 
führen.. so das nur von der Programmerseite 5V anliegen..



5vProg|--*-|>|-->5V Kreis
         |
         |------>Pin Registrierung

von Axel S. (a-za-z0-9)


Lesenswert?

nichts schrieb:
> ich möchte an einem Mega128 abfragen ob ein ISP-Programmer
> angeschlossen ist.

> Es geht nur darum, festzustellen ob der µC schon einmal
> an einem Programmer hing.

Das sind aber zwei ganz verschiedene Dinge.

> D.h. wird der µC gestartet während ein Programmer inaktiv am
> ISP hängt soll dies Registriert werden.

Das geht nicht. Denn ein inaktiver Programmieradapter will ja nicht 
bemerkt werden können. Er wird also alle Pins an denen er hängt (Reset, 
MISO, MOSI, SCK) tunlichst in Ruhe lassen.

> Hat jemand einen Ansatz oder ne Idee wie das Lösbar ist?

Z.B. mit einem Schaltkontakt der bei eingesteckten ISP-Stecker 
geschlossen wird. Aber rein elektrisch geht es nicht.

von Wonko (Gast)


Lesenswert?

Philipp K. schrieb:
> man könnte GND oder "5V" des Programmers mit Diode auf einen Port
> führen.. so das nur von der Programmerseite 5V anliegen..

Der MKII liefert keine 5Volt, er benutzt den Vcc-Pin um die 
Betriebsspannung zu erkennen und sich anzupassen.
Und GND für den Programmer über eine Diode führen dürfte beim 
Programmieren lustige Ergebnisse bringen.

von Axel S. (a-za-z0-9)


Lesenswert?

Philipp K. schrieb:
> man könnte GND oder "5V" des Programmers mit Diode auf einen Port
> führen.. so das nur von der Programmerseite 5V anliegen.

Wenn das ein AVR ISP MK2 ist, dann scheidet das aus. Denn dieser ISP- 
Adapter speist das Target nicht über den Vcc Anschluß, sondern will im 
Gegensatz seine Ausgangstreiber vom Target versorgt haben.

von Philipp K. (philipp_k59)


Lesenswert?

Axel S. schrieb:
> Wenn das ein AVR ISP MK2 ist, dann scheidet das aus.

Achso okay den kenne ich nicht..

Wenn das nur intern für eigene Sachen sein muss könnte man beim 10 Pin 
ISP Stecker die auf GND gelegten freien Pins an den Pin ziehen und 
diesen mit Pullup versehen.. oder sogar von 2 Pins das GND wegnehmen und 
nur eine Brücke machen die dann den Pin auf 5V bringt.

von nichts (Gast)


Lesenswert?

vielen lieben Dank für eure Hilfe.

Der Sinn dahinter ist zu Prüfen ob die Software auf dem µC gelesen
wurde. Und / oder ob sie wieder geschrieben wurde.

Z.B. ist die Software für 100 Starts freigeschaltet, danach muss
ein code für den weiteren Betrieb eingegeben werden.
Findige Tüftler lesen die Software aus so lange das Gerät noch 
funktioniert,
nachdem die 100 Starts verbraucht sind liest er die Software erneut aus
und vergleicht Sie. Somit findet er eventuell die Variable die er 
verändern
muss damit das Gerät wieder funktioniert.
Wenn er die Software mit der Variablen die die Starts aufzeichnet 
rücksetzt
und dann wieder einspielt kann ich das nicht verifizieren.

Ja, der MKII wird vom Target gespeist.

Hmm, das wird dann eher nicht zu realisieren sein.

von nichts (Gast)


Lesenswert?

Höchstens es gibt ne möglichkeit zu Prüfen ob der µC über den ISP
RESET abgeschaltet wurde.

von Ulrich F. (Gast)


Lesenswert?

> Z.B. ist die Software für 100 Starts freigeschaltet,
(und danach muss wieder bezahlt werden)
Das finde ich voll Schei*e.




> Findige Tüftler lesen die Software aus so lange
> das Gerät noch funktioniert,
Schon von den Lock Fuses/Bits gehört?

von noch weniger (Gast)


Lesenswert?

Du solltest dich erstens in die Controller einarbeiten (Stichwort 
Fusebits) und zweitens bisal die grauen Zellen anstrengen wie man den 
Counter intelligenter gestalten kann (Stichwort Prüfsumme).
Andernfalls gehört es dir nicht anders als das man das Ding hackt.

von Marc H. (marchorby)


Lesenswert?

nichts schrieb:
> Z.B. ist die Software für 100 Starts freigeschaltet, danach muss
> ein code für den weiteren Betrieb eingegeben werden.

Das Problem ist eher deine Selbstüberschätzung das dein Programm so toll 
ist das du es sperren musst und nicht einmal weist das der AVR Lock und 
Fusebits hat!

Du beschäftigst dich zu sehr damit den Nutzer einzuschränken als ihm 
eine funktionsfähige und eventuell fasst fehlerfreie Hardware hin 
zulegen...

von Peter D. (peda)


Lesenswert?

nichts schrieb:
> Findige Tüftler lesen die Software aus so lange das Gerät noch
> funktioniert

Daß die AVRs Lockbits haben, hast Du wohl im Datenblatt überlesen?

von peterfido (Gast)


Lesenswert?

nichts schrieb:
> Es geht nur darum, festzustellen ob der µC schon einmal
> an einem Programmer hing.

Wenn ein Programm drauf ist, dann hing er schon mal an einem Programmer.

Gegen Auslesen gibt es Lock-Bits, falls das noch nicht erwähnt wurde :)

von Axel S. (a-za-z0-9)


Lesenswert?

nichts schrieb:

> Der Sinn dahinter ist zu Prüfen ob die Software auf dem µC gelesen
> wurde. Und / oder ob sie wieder geschrieben wurde.
>
> Z.B. ist die Software für 100 Starts freigeschaltet, danach muss
> ein code für den weiteren Betrieb eingegeben werden.

Ach so. Schwachsinn also. Und dafür erwartest du Hilfe?

[x] geh weg!

EOD

von Der holde Molger (Gast)


Lesenswert?

nichts schrieb:
> Wenn er die Software mit der Variablen die die Starts aufzeichnet
> rücksetzt
> und dann wieder einspielt kann ich das nicht verifizieren.

Ganz davon ab, dass die Fuse-Bits bereits genannt wurden hast du einen 
massiven Denkfehler. Wenn deinem Gegenüber soviel daran liegt deine 
Software ohne Freischaltung zu nutzen wird er sie auslesen, 
disassemblieren und dann die Prüfung des Counters vollständig entfernen. 
Danach muss er sich nie wieder darum kümmern, dass der Counter 
zurückgesetzt wird.

von nichts (Gast)


Lesenswert?

Also Leute,

jetzt kommt mal runter.

Es geht hier nicht um bezahlen oder abzocke.
Es geht rein darum dass jemand etwas umsonst bekommt
und es bei gefallen dann kaufen kann.
Desweiteren geht es auch darum dass manche user an der Software
rumfroschen und wenn das Teil dann zerschossen ist einen Garantiefall
anmelden etc..
Heist also, wenn Fehler auftreten und Software manipuliert wurde
ist Garantie im A.sch.
Was gabz normal ist.

Fusebits wären OK. Kommt aber aufgrund dessen dass es häufig 
Softwareupdates
zwecks individueller erweiterungen etc.. gibt nicht in Frage.
Ist dann zu Aufwändig.
Es gibt bei manchen Aufgaben diverse Kriterien warum Fuse- und Lockbits
ungeeignet sind.
Aber bevor wir uns hier die Finger wund schreiben und jedes kleinste
Detail bis ins letzte Ausdiskutiert haben lass ichs lieber.


Hier Basht manch einer gleich mit dem Hammer drauf.
Sieht so aus als wären einige hier ziemlich mies gelaunt und
doch sehr überheblich.
Kommt hier irgendwie ziemlich häufig vor.

Schade hier

von Karl H. (kbuchegg)


Lesenswert?

nichts schrieb:

> Heist also, wenn Fehler auftreten und Software manipuliert wurde
> ist Garantie im A.sch.

Das wiederrum lässt sich leicht feststellen, wenn keine Lockbits gesetzt 
sind. Dann muss er den µC einschicken, ihr lest die SW aus und wenn die 
nicht Bit für Bit mit dem übereinstimmt, was drinn stehen sollte, dann 
ist es eben kein Garantiefall.

> Fusebits wären OK. Kommt aber aufgrund dessen dass es häufig
> Softwareupdatestelle
> zwecks individueller erweiterungen etc.. gibt nicht in Frage.
> Ist dann zu Aufwändig.

Was ist da zu aufwändig?
Das man vor dem Brennen den µC löscht und nach dem Brennen die Lockbits 
wieder setzt? Das dauert in Summe keine 30 Sekunden. In Relation zur 
Erstellung des UPdates sind das Peanauts, die sich im übrigen mit einem 
Batch File, welches den Update mittels Commandline-Aufruf von avrdude 
erledigt, problemlos automatisieren lässt.
Und wenn ihr Updates per Bootloader einspielt, dann sind die Lockbits 
sowieso kein Thema.

> Es gibt bei manchen Aufgaben diverse Kriterien warum Fuse- und Lockbits
> ungeeignet sind.

Nö. Gibt es nicht.
Es gibt nur Entwickler, die in Wirklichkeit nichts können.
Dein ganzer Beitrag schreit förmlich danach, dass du da dazu gehörst.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

nichts schrieb:
> Fusebits wären OK. Kommt aber aufgrund dessen dass es häufig
> Softwareupdates zwecks individueller erweiterungen etc.. gibt
> nicht in Frage.
Was hat ein Softwareupdate mit einem Fusebit zu tun?

> Es gibt bei manchen Aufgaben diverse Kriterien warum Fuse- und Lockbits
> ungeeignet sind.
Ja, so lange das Ding beim Entwickler auf dem Schreibtisch liegt...

> Es gibt bei manchen Aufgaben diverse Kriterien warum Fuse- und Lockbits
> ungeeignet sind.
Kannst du mal ein Beispiel für diese Aufgaben mit ihren speziellen 
Kriterien bringen. Mir will da irgendwie nichts einfallen...

von Der holde Molger (Gast)


Lesenswert?

nichts schrieb:
> Fusebits wären OK. Kommt aber aufgrund dessen dass es häufig
> Softwareupdates
> zwecks individueller erweiterungen etc.. gibt nicht in Frage.
> Ist dann zu Aufwändig.

Funktionsweise von Fusebits verstanden? Dass der Mega128 
Self-Programming unterstützt ist bekannt?

nichts schrieb:
> Es gibt bei manchen Aufgaben diverse Kriterien warum Fuse- und Lockbits
> ungeeignet sind.

Dann nenne sie uns. Ich sehe aktuell keinen einzigen Grund warum die für 
dich ungeeignet sind. Das was du machen möchtest ist kein Voodoo sondern 
in der Regel Standardanforderung vieler Kunden um z.B. ihr IP zu 
schützen.

nichts schrieb:
> Aber bevor wir uns hier die Finger wund schreiben und jedes kleinste
> Detail bis ins letzte Ausdiskutiert haben lass ichs lieber.

So ein Verhalten lieben wir hier im Forum besonders.

von Peter D. (peda)


Lesenswert?

nichts schrieb:
> Kommt aber aufgrund dessen dass es häufig
> Softwareupdates
> zwecks individueller erweiterungen etc.. gibt nicht in Frage.
> Ist dann zu Aufwändig.

Ohne irgendwelchen Aufwand geht es nicht.
Zum Update nimmt man einfach einen Bootloader, der das File 
entschlüsselt und in den User-Flash brennt.

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.