Hey,
ich hab mal eine kurze Frage.
Ich entwickel gerade einen Schaltplan für ein Projekt in dem zwei
Atmega16 sind. Diese sollen per SPI miteinander kommunizieren.
Nun ist meine Frage ob ich einen ISP Stecker für beide nehmen kann indem
ich einfach den Reset Pin per Schalter auswähle? Oder brauch ich
wirklich zwei? Das Problem ist denk ich das durch die
Spannungsversorgung des ISP Steckers das ganze Board ja versorgt wird
und es evtl Probleme geben kann, weil der andere ja auch empfängt und
ein Raspberry Pi auch noch dranhängt :-/
Danke für eure Hilfe.
Lg Niine
Hallo
Prinzipiell kannst du "einfach" den Reset per Dip-Schalter umschalten.
Du musst nur berücksichtigen, dass sich während der Programmierung alle
anderen SPI Teilnehmer passiv verhalten müssen. Soll heißen, keiner darf
aktiv die SPI Leitungen "treiben". Das soll ja dein Programmer tun.
Das lässt sich mit einem zusätzlichen Eingang auf dem Reset des anderen
Controller lösen.
So kannst du den anderen Teilnehmern auch mitteilen, dass sie auf die
Daten während der Programmierung nicht zu reagieren brauchen.
Mit einem Bootloader könnte man das Ganze sicherlich auch eleganter
lösen, aber wie oben beschrieben funktioniert es jedenfalls.
Gruß
SuperPCFan
Niine schrieb:> Ich entwickel gerade einen Schaltplan für ein Projekt in dem zwei> Atmega16 sind. Diese sollen per SPI miteinander kommunizieren.>> Nun ist meine Frage ob ich einen ISP Stecker für beide nehmen kann indem> ich einfach den Reset Pin per Schalter auswähle?
Nein.
> Oder brauch ich> wirklich zwei?
Nein.
Was du brauchst, ist ein Dreiebenen-Schalter. Und zwar völlig unabhängig
davon, ob es nun eine oder zwei Programmierbuchsen gibt. Dies
entscheidet nur noch darüber, ob es ein einfacher Dreiebenen-Schalter
tut oder ob du sogar einen Dreiebenen-_Um_Schalter benötigst.
Das Problem ist nämlich, daß für die Kommunikation MOSI und MISO der
beiden µC "über Kreuz" verbunden sein müssen, zum Programmieren dürfen
sie das aber nicht sein, sondern an die Programmierbuchse müssen sie
immer auf dieselbe Weise geführt werden.
Ich hatte das Problem auch schon gelegentlich und hab's mit einer Buchse
und einem 3x3-Stiftfeld gelöst, auf dem ich drei (zur Senkung der
Fehlerquote zusammengeklebte) Jumper umstecke.
c-hater schrieb:> Das Problem ist nämlich, daß für die Kommunikation MOSI und MISO der> beiden µC "über Kreuz" verbunden sein müssen, zum Programmieren dürfen> sie das aber nicht sein
Korrektur: Das beschriebene Problem ist nicht dein Problem. Das ist nur
ein Problem, wenn man die Kombination aus einen Mega und einen Tiny
benutzt oder zwei Tinys.
Aber trotzdem brauchst du zumindest einen Zwei-Ebenen-Schalter, um den
Ausgang des jeweils gerade nicht zu programmierenden µC zuverlässig vom
Programmierbus abzutrennen. Den einfach fest auf Reset zu ziehen
funktioniert nicht, dann dann würden ja wieder zwei µC auf die Anfragen
des Programmers antworten.
Überleg dir mal, ob es wirklich notwendig ist, zwei Controller auf einem
Board zu haben. Meistens schafft man sich damit mehr Probleme, als daß
es nützt. Fängt ja schon beim Flashen an.
mfg.
Thomas Eckmann schrieb:> Überleg dir mal, ob es wirklich notwendig ist, zwei Controller auf> einem> Board zu haben. Meistens schafft man sich damit mehr Probleme, als daß> es nützt. Fängt ja schon beim Flashen an.>> mfg.
Ja, ich denke schon. Der eine ist Zeitkritisch und der andere kann
langsamer arbeiten und mit dem Raspberry arbeiten. Und es ist eine gute
Möglichkeit mich etwas zu steigern.
Der Tipp mit den Stufenschalter ist gut. Ich stell mir also einen
Schalter vor der 3 Positionen hat (uC 1, uC 2, Kommunikation) und je 5
Kontakte schalten kann. Allerdings finde ich nirgends einen.
Hat da jmd von euch einen Tipp zu dem vorgestellten Bauteil?
Vielen Dank, lg Niine
Hey,
oh an einfache Jumper habe ich noch garnicht gedacht. Die Stufenschalter
sind mir zu groß. Ich mach das mit den Jumpern. Danke euch allen!
Lg Niine
Niine schrieb:> oh an einfache Jumper habe ich noch garnicht gedacht.
Dann hast du mein Posting definitiv nicht bis zum Ende gelesen.
Da hatte ich nämlich beschrieben, daß ich das genau so gemacht habe. 3x3
Stiftfeld und 3 zusammengeklebte Jumper darauf. Ersetzt auf kleiner
Fläche einen Dreiebenen-Umschalter.
Bloß das Handling ist etwas weniger komfortabel ;o)
Ni schrieb:> Ja, ich denke schon. Der eine ist Zeitkritisch und der andere kann> langsamer arbeiten und mit dem Raspberry arbeiten. Und es ist eine gute> Möglichkeit mich etwas zu steigern.
Gesteigert hast du dich, wenn das auf einem Controller läuft.
Viel schlimmer ist aber, daß du den falschen gelobt hast:
c-hater schrieb:> Niine schrieb:>>> oh an einfache Jumper habe ich noch garnicht gedacht.>> Dann hast du mein Posting definitiv nicht bis zum Ende gelesen.>> Da hatte ich nämlich beschrieben, daß ich das genau so gemacht habe. 3x3> Stiftfeld und 3 zusammengeklebte Jumper darauf. Ersetzt auf kleiner> Fläche einen Dreiebenen-Umschalter.
mfg.