PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ISP - Programmieranschlüsse als Ausgangsports benutzen?



Lorenz
12.07.2006, 15:26
Hallo,

ich habe hier einen Atmel AT90S2313 und möchte bei diesem die ISP Programmieranschlüsse, also MISO,MOSI uns SCK gerne auch als Ausgänge verwenden können. Sie sollen also wenn Reset auf high liegt zum programmieren dienen, sonst im normalen Betrieb sollen sie als normale Ausgänge fungieren.

Die besagten Pins sollen mit den Eingängen vom ULN28003A verbunden werden. Muss ich nun noch irgendwelche Widerstände vorsehen oder sonst etwas beachten?

Kann man die besagten Pins, hier Port PB5 - PB7 ganz normal über die Port Register ansteuern? Muss ich noch irgendwelche Fuse bits oder sonstigen Einstellungen verändern um die Ports nutzen zu können?


Lorenz

uwegw
12.07.2006, 15:34
Atmel empfiehlt, zwischen die Pins und die dort angeschlossenen Teile Widerstände zu schalten, und den ISP dann direkt am Pin. Spezielle Einstellungen müssen nciht getroffen werden.

SprinterSB
12.07.2006, 15:44
Je nachdem, welchen Progger du hast, empfiehlt es sich, Widerstände zwischen den Progger und die ISP-Pins zu machen. Sonst kommen sich womödlich der Progger und der AVR quer, weil die AVR-Ports auf OUT sind und die MOSI- und SCK-Leitung des Proggers (je nach Progger) ebenfalls.

Die Ports jannst du ansteuern wie "ganz normale" Ports

Lorenz
13.07.2006, 12:22
Also die zwei Antworten widersprechen sich jetzt irgendwie, oder? Einmal soll ich Widerstände zwischen den Programmieradapter und den Controller hängen, einmal zwischen den Controller und den ULN28003A. Wo gehören die jetzt hinn und welche Widerstände soll ich nehmen???

Als Programmieradapter benutze ich einen selber zusammengebauten Adapter für die Druckerschnitstelle des Computers (Sub-D). Auf dem Adapter gibt es nur ein paar Widerstände und einen Kondensator, sonst nichts.

uwegw
13.07.2006, 12:29
Als Programmieradapter benutze ich einen selber zusammengebauten Adapter für die Druckerschnitstelle des Computers (Sub-D). Auf dem Adapter gibt es nur ein paar Widerstände und einen Kondensator, sonst nichts.

Dann ist es problematisch, weil dann der ISP die Pins auf ein festes Potential zieht, solange er am PC angeschlossen ist, und dann sind die von SprinterSB vorgeschlagenen Widerstände am PC nötig, damit nichts abraucht.
Besser wäre ein ISP mit nem Buffer-IC (74HC244), dessen Ausgänge sich hochohmig schalten lassen.

PS: Appnote AVR42 http://atmel.com/dyn/resources/prod_documents/doc2521.pdf
Auch das Kapitel über die Stromversorgung sollte man mal gelesen haben.

shaun
13.07.2006, 12:41
Sowieso nur Adapter mit Tristate-Treiber drin! Beim der Zweitverwendung der ISP-Pins gibt's ja nur zwei Möglichkeiten: Controller-Ausgang oder Controller-Eingang. Im ersten Fall sorgt der Reset des ISP-Adapters vor dem Zugriff dafür, dass die Pins keine Ausgänge mehr sind, also bis auf korrekten ISP-Adapter keine Maßnahme erforderlich. Aber: Deine Beschaltung muss so ausgelegt sein, dass nichts ge- oder zerstört werden kann, egal, was da an den ISP-Pins passiert. Wenn also ein ULN dran hängt, der über ein Schütz den roten Knopf drückt, wäre das ein wenig fahrlässig. Im Fall von Controller-Eingängen muss Deine Beschaltung ganz sicher hochohmig werden, solange der ISP-Adapter den Reset low hält oder Du musst die besagten Widerstände in Reihe zu Deiner Beschaltung setzen. Der ISP-Stecker hängt in beiden Fällen direkt an den Controllerpins. Ich habe allerdings auch mal einen Umschalter für die ISP-Signale gebaut, auch wenn es ein Widerstand getan hätte, und zwar für einen ATmega64, dort liegen die ISP-Datenleitungen freundlicherweise auf RxD und TxD des 1. USARTs, und den brauchte ich. Wie gesagt, Widerstand am Ausgang des daran angeschlossenen RS485-Receivers hätte es auch getan, aber egal.