Hallo Leute! Ich experimentiere hier im Mom mit zwei Atmega 8 und tausche zwischen den beiden über SPI Daten aus. Das Problem was ich habe, wenn ich an einem der beiden µC ein neues Programm aufspielen will, muss ich immer den SPI zu dem zweiten µC trennen. Sonst funktioniert es nicht. Gibt es da ein Trick, damit ich das nicht immer trennen muss? LG Christian
Habe es jetzt nicht ausprobiert. Aber was passiert, wenn du die Resetleitung auftrennst und während dem Programmieren den andern uC auf Reset hälst?
Ich habe das mit einem Jumper in der CLK-Leitung gelöst. Guest schrieb: > Aber was passiert, wenn du die > Resetleitung auftrennst und während dem Programmieren den andern uC auf > Reset hälst? Beim Programmieren wird der uC im Reset gehalten. Nur dann ist Programmieren möglich. Deshalb müsste man den uC, den man nicht programmieren will, nicht im Reset halten. Aber dann würde er unter Umständen das SPI treiben. Also über CLK machen.
Naja, um genau zu sein: Beide µC im Reset halten, aber nur den programmierten mit CLK versorgen. Ansonsten treibt der andere immer noch MOSI.
Danke für die schnellen Antworten. Wenn ich beide auf Reset halte, überträgt der auf beide das Programm. Ich hab also dann auf beiden µC das gleiche Programm... Das mit dem clk funktioniert aber auch iwi nicht so ganz. Wenn ich den clk unterbreche, wird die Übertragung mit Fehlermeldung abgebrochen. Lege ich beide µC auf Reset und unterbreche den clk, wird das Programm übertragen. Leider sind die beiden µC danach so durcheinander, das ich die Spannungsversorgung kurz unterbrechen muss. Ist das, dass Ende vom Lied? LG
Christian Betzen schrieb: > Ist das, dass Ende vom Lied? Nö. Nimm einen Vierfach 2:1 Analogmultiplexer wie FST3257 (Fairchild) 74CBT3257 (TI) 74FST3257 (ON) Wenn Reset auf Low gezogen wird, schaltet der Multiplexer die Prozessorpins auf den ISP-Stecker. Bei Reset auf Hi schaltet der Multiplexer die Pins auf die restliche Schaltung. Das funktioniert immer. fchk
Alles klar! Danke für die ausführliche Antwort. Werd mir bei Gelegenheit mal so n Multiplexer bestellen und es ausprobieren.... Danke....
Christian Betzen schrieb: > Danke für die ausführliche Antwort. Werd mir bei Gelegenheit mal so n > Multiplexer bestellen und es ausprobieren.... für jeden AVR einen. Besser ist das.
Hey, das SPI-Interface hat noch eine vierte Verbindung, mit welcher der Master einen von mehreren Slaves am Bus auswählt, meist als !CS gekennzeichnet, d.h. der Slave ist aktiv, wenn das Signal low ist. Ist der Slave inaktiv, schaltet er seine PINs als Eingang und stört den Bus nicht weiter. Das sollte schon mal den einen µC (Slave) schützen. Der andere, also der Master, müsste seine PINs als Eingang schalten, wenn er grad nichts senden will. Zum Proggen wird dann der entsprechende µC über seinen !Reset ausgewählt und für den normalen Datenaustausch, der SPI am Master aktiviert und dem Slave über !CS mitgeteillt, dass Daten für ihn kommen. So sollte es funktionieren, ob's das tut hab ich noch nicht probiert.
Hi! > das SPI-Interface hat noch eine vierte Verbindung, mit welcher der > Master einen von mehreren Slaves am Bus auswählt. Ne, funktioniert nur bei einem der beiden µC alles sehr experimentell. Die Sache mit dem Multiplexer gefällt mir. Alternativ kann man bestimmt noch was mit nem 4066 CMOS IC machen. Sowas hab ich da, ich werds mal versuchen. LG
Christian Betzen schrieb: > Wenn ich den clk unterbreche, wird die Übertragung mit Fehlermeldung > abgebrochen. Hast du was anderes erwartet? Du musst den CLK natürlich mit dem uC verbinden, den du programmieren möchtest. Und beide ins reset ziehen, damit die Leitung frei wird.
Hi! Ich habe jetzt die Pins SCK, MISO, MOSI über ein 4066 getrennt. Die Eingänge des ICs schalte ich über Reset. Wird also eins der beiden µC programmiert, werden die Eingänge über Reset nach GND gezogen und damit die beinden µCs voneinander getrennt. Funktioniert einwandfrei.... LG
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.