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
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?
>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.
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
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.
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.
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.
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.
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.
> 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?
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.
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...
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?
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 :)
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
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.
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
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.
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...
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.
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.