Playstation 2 Controller an MCU

Microcontroller PIC und Atmel AVR

Microcontroller PIC und Atmel AVR

Moderator: Moderatorengruppe

Playstation 2 Controller an MCU

Neuer Beitragvon snipp am Donnerstag 8. Oktober 2015, 17:12

Hallo liebes Forum,

ich habe versucht einen PLaystation 2 (Ps2) Controller an einen Atmel Microcontroller anzuschließen. Genauer an das Atmel X-PRo 256RF2R2 Evaluation board.

Das ganze hab ich nach folgender Anleitung erstellt: http://store.curiousinventor.com/guides/ps2/

Soweit ich das sehen kann stimmt mein Code was die SPI Programmierung betrifft (siehe Scopes im Anhang)


Aber der controller antwortet nicht...
Ich habe an den Pullup von 10kohm gedacht für die data Leitung (im Scope pink) da der controller diese per open collector nur auf low ziehen kann.

Was ich in dem Zusammenhang nicht verstehe, ist dass er dies offensichtlich nicht tut.
Und viel merkwürdiger ist, dass die Spannung auf 0,7V abfällt sobalt die Dataleitung angeschlossen wird. Eigentlich sollte sie ja bei 3,3V halten.

Ich hoffe ihr habt eine Idee und könnt mir helfen :me:

=============================================================================================
Zum Vergleich einmal so wie es sein sollte von der Website oben:
Bild
Sie haben keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
snipp
Threadstarter
56835
Bronze Mitglied
 
Beiträge: 57
Registriert: Mittwoch 8. August 2012, 14:37
Postleitzahl: 00000
Land: Germany / Deutschland

Re: Playstation 2 Controller an MCU

Neuer Beitragvon anders am Freitag 9. Oktober 2015, 01:47

habe an den Pullup von 10kohm gedacht für die data Leitung (im Scope pink) da der controller diese per open collector nur auf low ziehen kann.
Hast du die 10k in der Schaltung mal nachgemessen und die Verbindung Anfang-Ende?
Das sieht aus, als wären die MISO-Impulse vorhanden, aber als wenn sie nur kapazitiv auf diese Leitung koppelten, also nach einer Unterbrechung.

Allerdings glaube ich mich zu erinnern, dass ich eine ähnliche Impulsform mal auf einer Datenleitung gesehen habe, bei der durch eine Schusseligkeit meinerseites der Leitungstreiber ausgebrannt war. :(
Zuletzt geändert von anders am Freitag 9. Oktober 2015, 01:51, insgesamt 2-mal geändert.
anders
56836
Moderator
 
Beiträge: 4719
Registriert: Freitag 28. Februar 2003, 13:46

Re: Playstation 2 Controller an MCU

Neuer Beitragvon snipp am Freitag 9. Oktober 2015, 03:56

Hallo,
ich bin mir nicht ganz sicher, wie du das meinst:
Hast du die 10k in der Schaltung mal nachgemessen und die Verbindung Anfang-Ende?


Ich habe überprüft, ob der Widerstand in Ordnung ist und die Leitungen keinen Bruch haben bzw. richtig angeschlossen sind.
Ich habe auch schon einen anderen Ps2 Controller versucht, bei dem aber genau das Gleiche, bloß das bei ihm die Miso Leitung auf 2,7 V hängt anstatt auf 3,3V.

Ich war auch schon am überlegen, ob das Chip Select Signal vielleicht nicht korrekt ankommt, da der Controller ja garnicht zu reagieren scheint, aber leider habe ich auch da nichts gefunden...
snipp
Threadstarter
56837
Bronze Mitglied
 
Beiträge: 57
Registriert: Mittwoch 8. August 2012, 14:37
Postleitzahl: 00000
Land: Germany / Deutschland

Re: Playstation 2 Controller an MCU

Neuer Beitragvon Ney am Freitag 9. Oktober 2015, 19:05

Das sieht nach einer starken Belastung aus. Mach mal einen Schaltplan
Ney
56840
Gold Mitglied
 
Beiträge: 342
Registriert: Sonntag 21. Dezember 2014, 12:49
Postleitzahl: 90453
Land: Germany / Deutschland

Re: Playstation 2 Controller an MCU

Neuer Beitragvon snipp am Montag 12. Oktober 2015, 04:38

Hallo,

hatte am Wochenende leider keine Zeit, daher erst jetzt die Skizze.
Habe nur das Wesentliche dargestellt. Wenn genaue Pins/Ports gefragt sind, einfach bescheid sagen.
Sie haben keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
snipp
Threadstarter
56843
Bronze Mitglied
 
Beiträge: 57
Registriert: Mittwoch 8. August 2012, 14:37
Postleitzahl: 00000
Land: Germany / Deutschland

Re: Playstation 2 Controller an MCU

Neuer Beitragvon Ney am Montag 12. Oktober 2015, 06:43

Hast du die Massen verbunden?
Ney
56845
Gold Mitglied
 
Beiträge: 342
Registriert: Sonntag 21. Dezember 2014, 12:49
Postleitzahl: 90453
Land: Germany / Deutschland

Re: Playstation 2 Controller an MCU

Neuer Beitragvon snipp am Montag 12. Oktober 2015, 06:51

Ja, die Massen sind alle verbunden, sollte der Übersicht halber symbolisch sein.
snipp
Threadstarter
56846
Bronze Mitglied
 
Beiträge: 57
Registriert: Mittwoch 8. August 2012, 14:37
Postleitzahl: 00000
Land: Germany / Deutschland

Re: Playstation 2 Controller an MCU

Neuer Beitragvon Ney am Montag 12. Oktober 2015, 07:07

Das hätte sein können, trotz Zeichnung. Mir ging's dabei um die Masse des externen Netzteils. Welche Spannung braucht eigentlich dein µC?
Bitte schau noch im Datenblatt des Kontrollers, ob MISO als Open Colletor konfiegueriert, oder bzw. konfigurierbar ist. Das gleiche gilt auch für den PS2-Controller
Ney
56847
Gold Mitglied
 
Beiträge: 342
Registriert: Sonntag 21. Dezember 2014, 12:49
Postleitzahl: 90453
Land: Germany / Deutschland

Re: Playstation 2 Controller an MCU

Neuer Beitragvon snipp am Montag 12. Oktober 2015, 07:20

Hallo, die Masse des Netzteils ist natürlich auch verbunden ;)

Die Datenleitung des Playstationcontrollers (MISO) ist definitiv ein Open Collector. Da er die Leitung nur auf LOW ziehen kann, ist der 10k Ohm Pullup erforderlich.

Zum MCU habe ich leider nichts gefunden nur soviel:
• MISO/PDO/PCINT3 – Port B, Bit 3
MISO: Master Data input, Slave Data output pin for SPI channel. When the SPI is
enabled as a master, this pin is configured as an input regardless of the setting of
DDB3. When the SPI is enabled as a slave, the data direction of this pin is controlled by
DDB3. When the pin is forced to be an input, the pull-up can still be controlled by the
PORTB3 bit.


Ich könnte also mal testweise den internen Pullup verwenden.
Zuletzt geändert von snipp am Montag 12. Oktober 2015, 07:21, insgesamt 1-mal geändert.
snipp
Threadstarter
56848
Bronze Mitglied
 
Beiträge: 57
Registriert: Mittwoch 8. August 2012, 14:37
Postleitzahl: 00000
Land: Germany / Deutschland

Re: Playstation 2 Controller an MCU

Neuer Beitragvon Ney am Montag 12. Oktober 2015, 07:53

Es ist so eine Sache mit dem internen Pullup. Das kann als Push-Pull Stufe dargestellt sein. Damit gibt es das Potential für Kurzschlüsse. Das ist das, was zu einer Belastung führt, welche dir die 3,3V-Spannung zum Zusammenbruch bringt. Die Frage ist auch, ob die beiden nicht etwa versuchen gleichzeitig das Potential nach unten zu ziehen. Fix in so einer Situation würde sich durch eine Push-Pull Konfiguration einen Kurzschluss ergeben
Ney
56849
Gold Mitglied
 
Beiträge: 342
Registriert: Sonntag 21. Dezember 2014, 12:49
Postleitzahl: 90453
Land: Germany / Deutschland

Re: Playstation 2 Controller an MCU

Neuer Beitragvon Ney am Montag 12. Oktober 2015, 08:24

Es gibt noch einige Dinge, die in der Konfiguration zu beachten sind:
When configured as a Slave, the SPI interface will remain sleeping with MISO tri-stated
as long as the SS
__
pin is driven high. In this state, software may update the contents of
the SPI Data Register, SPDR, but the data will not be shifted out by incoming clock
pulses on the SCK pin until the SS pin is driven low. As one byte has been completely
shifted, the end of Transmission Flag, SPIF is set. If the SPI Interrupt Enable bit, SPIE,
in the SPCR Register is set, an interrupt is requested. The Slave may continue to place
new data to be sent into SPDR before reading the incoming data. The last incoming
byte will be kept in the Buffer Register for later use.


22.3.1 Slave Mode
When the SPI is configured as a Slave, the Slave Select (SS
__
) pin is always input. When
SS
__
is held low, the SPI is activated, and MISO becomes an output if configured so by
the user. All other pins are inputs. When SS
__
is driven high, all pins are inputs, and the
SPI is passive, which means that it will not receive incoming data. Note that the SPI
logic will be reset once the SS
__
pin is driven high. The SS
__
pin is useful for packet/byte
synchronization to keep the slave bit counter synchronous with the master clock
generator. When the SS
__
pin is driven high, the SPI slave will immediately reset the send
and receive logic, and drop any partially received data in the Shift Register.
22.3.2 Master Mode
When the SPI is configured as a Master (MSTR in SPCR is set), the user can
determine the direction of the SS
__
pin. If SS
__
is configured as an output, the pin is a
general output pin which does not affect the SPI system. Typically, the pin will be
driving the SS
__
pin of the SPI Slave. If SS
__
is configured as an input, it must be held high
to ensure Master SPI operation. If the SS
__
pin is driven low by peripheral circuitry when
the SPI is configured as a Master with the SS
__
pin defined as an input, the SPI system
interprets this as another master selecting the SPI as a slave and starting to send data
to it. To avoid bus contention, the SPI system takes the following actions:
1. The MSTR bit in SPCR is cleared and the SPI system becomes a Slave. As a result
of the SPI becoming a Slave, the MOSI and SCK pins become inputs.
2. The SPIF Flag in SPSR is set, and if the SPI interrupt is enabled, and the I-bit in
SREG is set, the interrupt routine will be executed.
Thus, when interrupt-driven SPI transmission is used in Master mode, and there exists
a possibility that SS
__
is driven low, the interrupt should always check that the MSTR bit
is still set. If the MSTR bit has been cleared by a slave select, it must be set by the user
to re-enable SPI Master Mode
Ney
56850
Gold Mitglied
 
Beiträge: 342
Registriert: Sonntag 21. Dezember 2014, 12:49
Postleitzahl: 90453
Land: Germany / Deutschland

Re: Playstation 2 Controller an MCU

Neuer Beitragvon Ney am Montag 12. Oktober 2015, 08:31

Und...mir ist noch etwas eingefallen. Du könntest die MISO-Verbindung trennen und die jeweiligen MISO's auf 2 Kanäle aufnehmen. Die anderen 2 lässt du auf Clock und MOSI mit Trigger auf MOSI. Dann solltest du sehen, ob es Konflikte gibt
Ney
56851
Gold Mitglied
 
Beiträge: 342
Registriert: Sonntag 21. Dezember 2014, 12:49
Postleitzahl: 90453
Land: Germany / Deutschland

Re: Playstation 2 Controller an MCU

Neuer Beitragvon snipp am Montag 12. Oktober 2015, 10:19

Hallo,

Also der SS Pin wird bei mir definitiv als Ausgang gesetzt, aber ein anderer Pin wird als Chip Select verwendet, da der entsprechende SS-Pin leider in dem Board nicht über die Pinheader nach außen geführt wird.

Was das Push- Pull Verhältnis angeht, werde ich das nochmal überprüfen. Leider kann ich erst nächste Woche wieder ins Labor. Hab bis dahin leider keinen Zugang zu einem Oszi.

Ich werde dann deinen Vorschlag umsetzten mit dem Messen der Kanäle und dann ggf. nochmal einen Screen posten.
snipp
Threadstarter
56852
Bronze Mitglied
 
Beiträge: 57
Registriert: Mittwoch 8. August 2012, 14:37
Postleitzahl: 00000
Land: Germany / Deutschland

Re: Playstation 2 Controller an MCU

Neuer Beitragvon snipp am Montag 19. Oktober 2015, 14:36

Hallo,

ich habe nochmal alles probiert.
Sobald der Ps2 Controller mit dem Pullup verbunden wird, bricht die Spannung ein, egal ob der MCU mit dran hängt oder nicht ...
Der MCU zieht die Leitung übrigens nicht hoch, aber wäre ja ne Idee gewesen.


Ich habe keine Idee mehr, warum die Spannung einbricht bzw. der Ps2 Controller nicht antwortet. :/
snipp
Threadstarter
56889
Bronze Mitglied
 
Beiträge: 57
Registriert: Mittwoch 8. August 2012, 14:37
Postleitzahl: 00000
Land: Germany / Deutschland

Re: Playstation 2 Controller an MCU

Neuer Beitragvon derguteweka am Montag 19. Oktober 2015, 20:51

Moin,

snipp hat geschrieben:Der MCU zieht die Leitung übrigens nicht hoch, aber wäre ja ne Idee gewesen.

Nee, wenn 2 Ausgaenge aufeinander arbeiten, dass sieht dann anders aus. Da sieht man immer etwas Gewackel. Bei dir seh' ich ja lediglich das Uebersprechen der anderen Signale im Kabel.
snipp hat geschrieben:Ich habe keine Idee mehr, warum die Spannung einbricht bzw. der Ps2 Controller nicht antwortet. :/

Kriegt der Controller alle Spannungsversorgungen, die er braucht? Wenn z.B. der SPI-Slave im Controller keine Betriebsspannung kriegt, koennte da eine von Miso nach Vcc (die dann nicht anliegt) gehende Schutzdiode im Chip das leiten anfangen und damit die Leitung runterziehen.

Gruss
WK
derguteweka
56890
Moderator
 
Beiträge: 1048
Registriert: Freitag 18. August 2006, 15:47

Nächste

Zurück zu Atmel AVR Pic und C Control

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 12 Gäste