PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Pin-Nummer des Reset-Pins vom SPI-Header (Mega/Due) ?



Unregistriert
18.03.2015, 17:42
hallo,
meine SPI Geräte (u.a. TFT) brauchen eine definierte pin-Nummer für Reset, d.h. man muss den Resetpin im Programm angeben. Z.B. kann man angeben
#define RST_PIN 9 // oder 8 oder 44 oder was auch immer

- das Programm braucht also eine Angabe über die Pinnummer, sonst wird z.B. auf dem Display nichts angezeigt, oder man muss immer manuell den Hardware-Reset-Knopf am Arduino drücken.
Da ich aber sowieso den SPI-Header für alle Geräte verwenden will, möchte ich nun auch den reset-Anschluss am SPI-Header verwenden (ich habe vor, mir dafür eine Art SPI Hub für 3 oder 4 SPI-Pfostenstecker zu löten).

Wie kann jetzt ich den Treiber-Programmen mitteilen, dass der Reset- pin vom SPI Header genommen werden soll, d.h. welche Pinnummer soll man dafür per #define ... angeben?

Sisor
19.03.2015, 08:13
Ich glaube, du bist auf der falschen Fährte. Das Reset-Pin an den Arduinos sorgt für einen Neustart des Microcontrollers (auch das am ICSP).
Dein Programm verlangt ein freies Digital-Pin mit dem das Display neu gestartet wird, um so einen definierten Zustand zu garantieren.

Unregistriert
19.03.2015, 10:52
hallo,
danke!
Aber wofür ist der SPI-RES-Pin dann am SPI-Header da?
Normalerweise wird ja ein 6x Blockstecker drauf gesteckt, der zu einem 6x Blockstecker am SPI-Gerät führt, un da kann man weder einen Button drücken noch hat man sonstwie anschließend Zugriff auf diesen RES-Pin. Stattdessen hat jetzt das SPI-Gerät darüber die alleinige Kontrolle. Also wozu genau?

HeXPloreR
19.03.2015, 12:59
Hallo unregistriert,
im Normalfall benötigt der Prpgrammer AUCH den Reset-Pin vom Microcontroller um das Programm in den Speicher zu schreiben. Theoretisch könntest du den SPI-RES Pin am Programmer auch entfernen, dafür muss aber dann der RESET manuell per Jumper oder Taster hergestellt werden ... und da viele Schaltungen das nicht zur Verfügung stellen und es eben auch viel einfacher ist das Brennprogramm den Reset mit ausführen zu lassen wenn man brennen will, ist der da.

Im Normallfall wird der Reset also für den Neustart und dem Programmieren benötigt. Für den Reset des Displays gibt's du einen freien PIN von Microcontroller an, an diesem PIN MUSS dann die Resetleitung vom Display angeschlossen werden. Das Programm steuert jetzt damit diese Resetleitung vom Display.

Viele Grüße
Jörg

Unregistriert
19.03.2015, 14:42
hallo,
was meinst du mit "Programmer" und "Brennprogramm"? Ich verwende Sketch 1.5.8.
Es geht mir auch einzig und allein darum, keinen zusätzlichen Resetpin verwednen zu müssen (z.B. Pin 9), weil ich alle brauche.
Nachdem am SPi-Header aber doch ein resetpin dran ist, müsste man doch erwarten können, den entsprechend benutzen zu können.
Der könnte ja z.B die DPin Nummer 81 oder 77 haben, dann wär doch alles perfekt.
Aber wenn er schon mal drauf ist auf dem Mega/Due-SPI-Block, dann muss er doch auch sinnvoll eingesetzt werden können?!?

Sisor
19.03.2015, 19:17
Nachdem am SPi-Header aber doch ein resetpin dran ist, müsste man doch erwarten können, den entsprechend benutzen zu können.

Nein, das geht nicht. Das ICSP-ResetPin ist kein eigenständiger Digital-I/O. Es wird, wie von HeXPloreR schon erwähnt, fürs Programmieren via ICSP benötigt. Dafür ist der Block auch in erster Linie gedacht.

Unregistriert
19.03.2015, 19:20
aber wozu ist der Board-Reset-Pin dann überhaupt auf den SPI Header rausgeführt? was soll man dort damit anfangen ??

Sisor
19.03.2015, 19:39
Um den Microcontroller in den Programming-Mode zu bringen, muß das Reset-Pin auf Masse gezogen werden.

5Volt-Junkie
19.03.2015, 19:41
Du kannst dein Programm auf dein Mega über zwei Wege aufspielen: Über SPI (ISP) oder dank dem Bootloader, über die serielle Schnittstelle. Beide brauchen den Reset-Pin und der Controller hat nur einen.

Unregistriert
19.03.2015, 20:03
ich programmiere doch gar nicht damit, es ist ein SPI Header!
Auf dem Due ist der ICSP Header ja auch sowiso woanders, es ist ein reiner SPi-Anschluss. Also wozu braucht SPI diesen RES Pin?

Sisor
19.03.2015, 20:17
Der Due hat 2 ICSP-Header, von denen einer als 'SPI' bezeichnet wurde. Siehe hier (http://arduino.cc/en/pmwiki.php?n=Main/arduinoBoardDue). Der als 'SPI' kann zum Programmieren des ARM-Controllers verwendet werden, der 'ICSP' hängt am Atmel USB-Controller.

5Volt-Junkie
19.03.2015, 20:18
du nutzt zwar nicht den SPI-Header beim Programmieren, aber den Reset Pin davon. Weil dieser Reset-Pin mit dem USB-Seriell-Wandler verbunden ist. Und dieser Pin wird benutzt, sobald du ein Programm vom PC zum Controller überträgst. Der ICSP Header auf dem Due ist eine andere Baustelle. Das ist dafür da, um den USB-Seriell-Wandler (der auch ein Atmel Controller ist) zu programmieren.

Unregistriert
19.03.2015, 20:19
ja, ich weiß das mit dem Due, schrieb ich ja:
es geht um den reinen SPI Header (hinten).
Der ist ja nicht zum Programmieren, sonden NUR für SPI.
Trotzdem hat er auch einen RES-Pin.
Also wofür ist der dann?

5Volt-Junkie
19.03.2015, 20:25
weil SPI Schnittstelle auch auch als Programmierschnittstelle benutzt werden kann. Ob du das verwendest oder nicht, ist dem Controller egal.

Unregistriert
19.03.2015, 20:27
ja - für ICSP Betrieb ist das klar.
Mir geht es um den SPI-Betrieb!

Wozu braucht SPI den RES Pin auf dem Header - hat der für SPI überhaupt einen Nutzen?

5Volt-Junkie
19.03.2015, 20:45
SPI und ICSP teilen sich dieselben Pins des Controllers, nämlich MISO, MOSI, SCK. Nur beim Programmieren, braucht man noch den Reset-Pin, um den Controller in den Programmier-Modus zu versetzen. Der Controller kann alternativ mit einem Programmer (klick bitte kurz auf das Wort Programmer) programmiert werden.

Nachtrag: wenn einem die Pins des Controllers ausgehen, kann man mit einem Port Expander Abhilfe schaffen.

Nachtrag 2: https://www.roboternetz.de/community/threads/66321-Frage-zu-Pins-auf-ICSP-Header-%28Mega%29-bzw-SPI-Header-%28Due%29

@Sisor: ;)

Unregistriert
19.03.2015, 21:13
nach RES für ICSP hatte ich nicht gefragt, lassen wir das doch mal endlich raus hier !
Es geht mir nur darum, wofür man ihn für SPI brauchen kann, schließlich ist ja einer für SPI notwendig!

Also wenn der RES Pin für SPI auf dem Header völlig nutzlos ist, reicht mir die Anntwort " RES Pin ist für SPI auf dem Header völlig nutzlos ",
alles andere ist absolut unwichtig für meine Zwecke.

Also: ist der RES Pin für SPI auf dem Header tasächlich völlig nutzlos ?

5Volt-Junkie
19.03.2015, 22:16
hast du!


Aber wofür ist der SPI-RES-Pin dann am SPI-Header da?
Antwort: ICSP, sprich zum Programmieren.

Zur Ansteuerung deines Displays über SPI, ist er aber nicht verwendbar.

Sisor
19.03.2015, 22:38
Also: ist der RES Pin für SPI auf dem Header tasächlich völlig nutzlos ?
Ja, für SPI nutzlos.

Unregistriert
20.03.2015, 09:10
danke für das klärende Wort!
ja, du hast Recht, mit "am SPI Header" meinte ich aber natürlich "für SPI", denn nur darum ging es mir ja für meine SPI-Gerätschaften, und nicht etwa um "ICSP Programmierzwecke", da wusste ich ja noch gar nicht, was das sein soll.

Aber dass den Arduino-Konstrukteuren für den RES-Pin da kein wirklicher Nutzen als Reset-Pin für den SPI Betrieb eingefallen ist, wo man so etwas doch wirklich dringend braucht, ist dann schon wirklich traurig. :(