Forum: Mikrocontroller und Digitale Elektronik STM32F4: SPI: MISO Flanken zeigen komisches Verhalten


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Daniel V. (voda) Benutzerseite


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Guten Morgen liebes Forum,

Zur Zeit versuche ich die Bilddaten eines ADNS3090-Sensors auszulesen. 
Meine Daten auf der MISO zeigen ein komisches Verhalten. Laut Datenblatt 
ist der SPI-Modus 3. Das Auslesen der Chip-ID klappt auch wunderbar.

Hier mein Code:
1
/*SPI-Initialisierung*/
2
//ADNS3090_NSS_LOW;
3
4
SPI_I2S_DeInit(SPI2);
5
SPI_InitTypeDef SPI_Init_ADNS3090;
6
SPI_Init_ADNS3090.SPI_Direction         = SPI_Direction_2Lines_FullDuplex;
7
SPI_Init_ADNS3090.SPI_DataSize          = SPI_DataSize_16b;          
8
SPI_Init_ADNS3090.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_16;  
9
SPI_Init_ADNS3090.SPI_CPHA              = SPI_CPHA_2Edge;      
10
SPI_Init_ADNS3090.SPI_CPOL              = SPI_CPOL_High;        
11
SPI_Init_ADNS3090.SPI_CRCPolynomial     = 0;
12
SPI_Init_ADNS3090.SPI_FirstBit          = SPI_FirstBit_MSB;  
13
SPI_Init_ADNS3090.SPI_Mode              = SPI_Mode_Master;
14
SPI_Init_ADNS3090.SPI_NSS               = SPI_NSS_Soft;
15
SPI_Init(SPI2, &SPI_Init_ADNS3090);
16
SPI_Cmd(SPI2, ENABLE);  
17
[c]
18
19
und die Funktion:
20
[c]
21
void adns3090_FrameCapure_Config(void)
22
{
23
 ADNS3090_NSS_LOW;
24
    adns3090_Write(SPI2, ADNS3090_FRAME_CAPTURE, 0x83);
25
 ADNS3090_NSS_HIGH;
26
 delay_nms(1510/1000); 
27
}

Kurze Funktionsbeschreibung:
Um den Inhalt des Frame-Register (0x13) auszulesen, muss der Wert 0x83 
in dieses Register geschrieben werden. Die Writefunktion wird mit MSB=1 
aktiviert. Also: 0x80&0x13 als Adresse und 0x83 als Wert = 0b10010011 
0b10000011. Das liegt auch auf dem Bus. Aber warum verhält sich die 
Antwort vom Sensors, also die Flanken so komisch (fast schon kapazitiv)?


Danke und Gruß
Daniel

von Lothar M. (lkmiller) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Daniel V. schrieb:
> Aber warum verhält sich die Antwort vom Sensors, also die Flanken so
> komisch (fast schon kapazitiv)?
Welche Linie in deinen Screenshots meinst du?

Weil die MISO-Leitung nach dem Deselektieren aller Slaves hochohmig ist, 
wird sie dann langsam auf irgendeinen Pegel einpendeln, wenn nicht z.B. 
ein Pullup für einen definierten Zustand sorgt.

von Daniel V. (voda) Benutzerseite


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Lothar M. schrieb:

> Weil die MISO-Leitung nach dem Deselektieren aller Slaves hochohmig ist,
> wird sie dann langsam auf irgendeinen Pegel einpendeln, wenn nicht z.B.
> ein Pullup für einen definierten Zustand sorgt.

Ohh, sorry. Ich meine natürlich das Rosa-Signal. Pullups sind aktiviert.

Signale:
NSS  -> Kanal 1 (ge)
CLK  -> Kanal 2 (bl)
MISO -> Kanal 3 (rt)
MOSI -> Kanal 4 (dunkel-bl)

Danke und Gruß
Daniel

: Bearbeitet durch User
von hp-freund (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Daniel V. schrieb:
> Das Auslesen der Chip-ID klappt auch wunderbar.

Dann mach doch mal ein Oszi Bild davon.


In deinem Beispiel lässt Du dem ADNS3090 weder die Zeit zu antworten, 
noch gibst Du ihm die erforderlichen Takte dazu.
Was soll er damit machen?

von hp-freund (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Habe das Datenblatt noch mal angesehen, der Befehl kann R/W sein.
Also nehme ich meinen Beitrag zurück.

von Daniel V. (voda) Benutzerseite


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Keiner mehr eine Idee? Schaltungsfehler? Dabei habe ich mich an die 
Vorlage im Datenblatt (bis auf den Spannungsteiler bei Reset und NPD, da 
die Spannung 3,3V beträgt) gehalten.

Danke und Gruß
Daniel

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.