Hallo, ich habe einen Atmega16 und würde gerne über SPI ein externes Gerät ansteuern. Mit SPI habe ich noch nicht gearbeitet, deshalb hier meine Frage: Der Atmega16 hat ja lt. Datenblatt ein Master/Slave SPI Serial interface. Das würde ich gerne für die Kommunikation mit dem externen Gerät nutzen. Zum programmieren habe ich Atmels STK-600. Das STK-600 nutzt aber genau die Pins zum programmieren des Atmega16, die ich für SPI mit meinem externen Gerät brauche, also die MISO/MOSI Pins. Das ist ja dann irgendwie doppelt belegt - oder nicht? Wie mache ich das nun? Danke für Eure Hilfe...
Ganz normal verwenden. Die Doppelbelegung ist normal. Der Peripherie noch externe Pull Widerstände verpassen und es stören sich weder Programmer noch Peripherie dran.
Am sichersten ist es wenn du beim SPI-Programmieren (Flashen) deinen externen SPI-Teilnehmer abkoppelst. Falls derjenige sich aber korrekt verhält und nur dann Daten von sich gibt wenn er auch mit einem Chip Select aktiviert ist dann kannst du ihn während des Flashens auch dran lassen. (Chip Select mit Pullup versehen ist eine gute Idee damit beim Flashen nix passiert) Eventuell können Leitungslängen zum externen SPI-Teilnehmer noch beim Flashen stören ....
Hi, danke das ging ja schnell. Da ich nur einen Slave habe wollte ich dessen CS fest auf low legen. Aber das wäre ja dann nicht so gut wg. dem Flashen nicht wahr?
Hi, richtig, das ist schlecht. Viele SPI-Teilnehmer nutzen die CS-Leitung zusätzlich intern zur synchronisierung. Daher ist das sowieso schlecht. Den CS auf einen Pin vom µC und einen Pullup spendieren (Pin während des Programmiervorgangs hochohmig). Zur Sicherheit kann man auch noch Angstwiderstände in die Leitung zum Teilnehmer legen. Gruß, Daniel
Hallo Daniel, danke, dann hatte ich das ja schon richtig verstanden. Was sind denn bitte 'Angstwiderstände'?
mr.burns schrieb: > Da ich nur einen Slave habe wollte ich dessen CS fest auf low legen. Das ist grundsätzlich keine gute Idee, denn dein Slave weiss dann oft nicht wann "etwas los geht" oder wann "etwas zu Ende ist". Diesen zusätzlichen Pin solltest du auf jeden Fall spendieren.
Angstwiderstände sind Widerstände, die in die Signalleitung eingebaut sind. Sind meistens so 20 bis 100Ohm. Diese begrenzen im Falle einer Kollision die Ströme auf den Leitungen und schützen so die Bauteile. Auf der anderen Seite verlangsamen die aber auch die Flanken der übertragenen Signal, was bei hohen Frequenzen störend ist.
mr.burns schrieb: > Was sind denn bitte 'Angstwiderstände'? Längswiderstände (50...200 Ohm) zwischen den SPI Teilnehmern die zum einen den Strom begrenzen falls ein Buskonflikt auftritt (zwei Ausgänge treiben aufeinander), zum anderen einen Leitungsabschluss bewirken und damit Funktionsstörungen durch Reflexionen bei längeren Leitungen verhindern.
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.