-
-
Erfahrener Benutzer
Roboter Experte
SPI / ISP Probleme?
Hi,
ich plane mehrere Megas (u.A.) über SPI zu verbinden. Die ISP Schnittstelle greift nun ja auch genau auf diese zu. Wie kann ich nun sicherstellen, dass nur ein Controller programmiert wird und die anderen sich nicht davon stören lassen?
Gruß, CowZ
-
Erfahrener Benutzer
Roboter Genie
1. Nur die RESET-Leitung des zu programmierenden Controllers auf LOW ziehen
2. Dafür sorgen, dass bei den anderen Controllern nicht gegen deren Ausgänge getrieben wird.
-
Erfahrener Benutzer
Roboter Experte
1. versteh ich (ohmann... das hatte ich ganz vergessen, dass ich reset ja auch noch hab...)
2.) Was soll das bedeuten?
-
Erfahrener Benutzer
Roboter Genie
Wenn Du Nur einen Mega mit ISP Programmierst und ein anderer (weil nicht im Reset und ggfs. aber mit Spannung versorgt) als SPI Master arbeitet, treibt er seinen MOSI Ausgang und der ISP Programmer (weil der sich für den Master hält) ebenfalls. Damit treiben die beiden Ausgänge gegeneinander, was u.U. zu einem defekten MOSI Pin am AVR oder am ISP Programmer sorgen kann.
-
Erfahrener Benutzer
Roboter Experte
Ich hab schonmal den selben Fall gehabt. Die Lösung ist einfach...
Du verbindest die Controller ganz normal miteinander. Für jeden Controller hast zwei Programmierstecker. Jedoch verbindest du RESET sepperat. Ausserdem verbindest du die RESET-Leitung von Controller A mit einem Beliebigen Eingang von Controller B, und anders rum.
Wenn nun Controller A programmiert werden soll, wird ja RESET auf LOW gezogen. Der Controller B erfasst das an dem Eingang und schaltet (so lange RESET_A auf LOW ist) in eine Schleife, wo er den SPI geaktiviert, und alle PINS die damit zu tun haben als EINGANG scfhaltet. Damit ist sichergestellt dass nix schief geht...
-
Erfahrener Benutzer
Roboter Experte
Dieses Problem tritt aber nur bei der MOSI Leitung auf? Oder auch bei anderen (SCK?)? Sonst könnte ich bei einfach einen Jumper auf die MOSI Leitung packen, der zwischen programmieren und SPI wechselt. (Also den zu programmierenden Controller von MOSI abtrennt)
edit: was auch ne Idee wäre, ist einen Programmierstecker für alle Controller zuhaben. Den zu programmierenden Controller jumped man dann einfach Reset=low. Wobei man dann natürlich immernoch für die MOSI Leitung sorgen müsste.
-
Erfahrener Benutzer
Roboter Experte
Ich würd mich sicherheitshalber um die SCK Leitung auch kümmern.
Du kannst natürlich auch einen SPI-Stecker für beide benutzen, machst halt dann nen Jumper, der die Resetleitung des Programmers mit dem entsprechenden resetleitung des Controllers verbindet.
Ich würd den jumoer nicht direkt benutzen um den Controller auf low zu setzen. Alleine schon desswegen, weil man ja meistens gleich nach dem proggen gleich schaun will ob es geht, und da dauernd rumjumpern...
Bin mir auch nicht ganz sicher, aber um den AVR zu programmieren, ob es da genügt einfach RESET zu betätigen? da muss glaub ich etwas zeitlich zusammenpassen. Ich kann dir das aber jetzt nicht bestätigen....
EDIT:
Bild hier
-
Erfahrener Benutzer
Roboter Experte
wäre es nicht einfacher mit einem bootloader?
-
Erfahrener Benutzer
Roboter Experte
Wie soll das mit dem Bootloaderfunktionieren?
Mit dem Resetjumper... Mhh... doof... ich hab keinen Platz für die Resetleitungen (ich mach das mit Buchsenleisten)...
Kann aber auch gerne für jeden Controller einen ISP-Stecker haben, wär glaub ich sogar besser
-
Erfahrener Benutzer
Roboter Experte
Mal ne Frage, was hast du für ISP-Stecker? wenn du bevorzugst zwei von denen enzubauen, anstatt einen 3-Pol-Jumper, müssen die ziemlich klein sein?
Ich verwende 6-Pol Micromatch zB von Reichelt.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen