Forum: Mikrocontroller und Digitale Elektronik Arduino DUE: 1.8V am SPI chip select


von Frank F. (frank_f49)


Lesenswert?

Hallo,

da halte  ich meinen Oszitastkopf an den chip select pin von meinem
Arduino DUE  SPI port und sehe:  1.8V liegen  im HIGH state an.

Dieser Pin war bei der Messung nur  vom Oszi belastet, es hing
kein anderer IC dran.

Wenn ich nun  SPI  nicht enable  und stattdessen

digitalWrite(chip_select_pin,HIGH)  mache
dann messe  ich  3,3V.

What the fuck ....

Kann man  das  mit  den 1.8V  irgendwie auf  3.3V ändern?

von Sebastian E. (sbe_15)


Lesenswert?

Da du mit einem Oszi misst, nehme ich an, dass der Pin konstant 1.8V hat 
und nicht zwischen 0 und 3.3V toggled.

Ideen:
- Mal 10k o.ä. gegen Masse dranhängen um zu schauen, ob der Pin nicht 
evtl. floatet.
- Mal in den Arduino Code schauen, was die "SPI Library" da genau mit 
dem Pin macht.

von Felix F. (wiesel8)


Lesenswert?

Laut Arduino-Forum läuft der Prozessor intern mit 1,8V. Wenn du jetzt 
auch den internen PullUp nutz, könnte ich mir gut vorstellen, das auch 
nur diese anliegen.

mfg

von Sebastian E. (sbe_15)


Lesenswert?

Felix F. schrieb:
> Laut Arduino-Forum läuft der Prozessor intern mit 1,8V. Wenn du jetzt
> auch den internen PullUp nutz, könnte ich mir gut vorstellen, das auch
> nur diese anliegen.

Soweit ich das sehe, läuft der Prozessor-Kern auf 1.8V. Laut Schaltplan 
sind die VDDIOx-Pins aber mit 3.3V versorgt, von daher sollte an den 
I/Os der High-Pegel auch 3.3V sein...

Wenn der Pin auch mit Belastrung 1.8V hat, miss am besten mal die 
3.3V-Versorgung nach (sollte auf der Arduino-Pinleiste liegen)

von STM Apprentice (Gast)


Lesenswert?

Ich nehme an

Frank F. schrieb:
> Kann man  das  mit  den 1.8V  irgendwie auf  3.3V ändern?

Vermutlich floatet der CS immer weil er vom Arduino Framework
nicht angesteuert wird und damit auf Input steht.

Ich meine mich zu erinnern dass beim Due ich (selbst) die SPI
nicht so konfigurieren konnte dass die SPI Maschine den CS
so steuert dass sie mehrere Bytes (auf einen CS Zyklus) übertragen
konnte. Da blieb für mich ein Fragezeichen übrig. Deshalb steuerte
ich den CS immer "von Hand" weil es die SPI Maschine für mich
nicht tat.

von STM Apprentice (Gast)


Lesenswert?

Frank F. schrieb:
> da halte  ich meinen Oszitastkopf an den chip select pin von meinem
> Arduino DUE  SPI port und sehe:  1.8V liegen  im HIGH state an.

Welchen Pin genau meinst du mit "chip select pin" ?

von Frank F. (frank_f49)


Lesenswert?

chip select 1.8V HIGH, 0V LOW , ( clock, mosi, miso  3.3V HIGH, 0V LOW)

Chip select  floatet nicht, der toggelt schon wann er soll,
ich habe  die  1.8V auch an
einem Pufferkondensator  in der Schaltung gefunden.

von STM Apprentice (Gast)


Lesenswert?

Zitat aus der Arduino.cc Site

----------------------------------------------------
Note about Slave Select (SS) pin on AVR based boards

All AVR based boards have an SS pin that is useful
when they act as a slave controlled by an external
master. Since this library supports only master mode,
this pin should be set always as OUTPUT otherwise the
SPI interface could be put automatically into slave
mode by hardware, rendering the library inoperative.

It is, however, possible to use any pin as the Slave
Select (SS) for the devices. For example, the Arduino
Ethernet shield uses pin 4 to control the SPI
connection to the on-board SD card, and pin 10 to
control the connection to the Ethernet controller.
----------------------------------------------------

Wenn man sich dann ein SPI Beispiel anschaut dann wird
dort auch der gewünschte SS Pin extra dafür als Output
konfiguriert. Woher sollte auch das SPI Framework wissen
welchen Pin es für den SS verwenden soll?
SPI.Begin() gibt das ja nicht her.

https://www.arduino.cc/en/Tutorial/BarometricPressureSensor

von STM Apprentice (Gast)


Lesenswert?

Frank F. schrieb:
> ich habe  die  1.8V auch an
> einem Pufferkondensator  in der Schaltung gefunden.

Da misst du nur die Core-Spannung des Prozessors, das ist OK.

Die I/O Spannung 3.3V kannst du sicherlich an einem anderen
Kondensator messen.

von Frank F. (frank_f49)


Lesenswert?

>>Woher sollte auch das SPI Framework wissen
>>welchen Pin es für den SS verwenden soll?
>>SPI.Begin() gibt das ja nicht her.

Bein Due  heisst es daher

SPI.Begin(slave_select_pin)
https://www.arduino.cc/en/Reference/DueExtendedSPI


Interressanterweise  gibt  es  hier

https://www.arduino.cc/en/uploads/Main/arduino-Due-schematic.pdf

keinen  1.8V Regler.
Das wäre schon das zweite board  dass kaputt ist,
das erste board pfeift und hat  einen krassen Ripple
auf  3.3V

: Bearbeitet durch User
von STM Apprentice (Gast)


Lesenswert?

Frank F. schrieb:
> Interressanterweise  gibt  es  hier
>
> https://www.arduino.cc/en/uploads/Main/arduino-Due-schematic.pdf
>
> keinen  1.8V Regler.

Die erzeugt sich der Prozessor intern selbst.

von Marco H. (damarco)


Angehängte Dateien:

Lesenswert?

Mal eine Frage wie hast du das gemessen? Mach mal Screenshot vom Ozzi. 
Ich stell mal meinen rein ewt. fällt dir schon was auf ....

von Marco H. (damarco)


Angehängte Dateien:

Lesenswert?

und jemand schon eine Idee ? Na dann noch eine Hilfe ...

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
Noch kein Account? Hier anmelden.