Forum: Mikrocontroller und Digitale Elektronik Arduino SPI Selbstgespräch


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 Sam S. (freaky0815)


Bewertung
0 lesenswert
nicht lesenswert
Hallo miteinander

Bin etwas mit dem SPI-Bus am spielen, habe jedoch nur ein 3.3 V LCD 
welches ich mit meinem Arduino UNO noch nicht betreiben kann.

Wollte dennoch mal schauen, ob ich SPI richtig einstellen kann.

Da ich kein Oszilloskop zur Hand habe möchte ich den Interrupt vom 
Arduino nutzen, um zu schauen ob wenigstens die Anzahl der gesendeten 
1er Bits richtig sind.

Nun zur ersten Frage. Warum zähle ich am MOSI-Pin keine ansteigenden 
Flanken, während am MISO-Pin 50 steigende Flanken pro Loop gezählt 
werden? SCL gibt wie erwartet 8 steigende Flanken aus.

Zweite Frage: Wäre es möglich den MOSI direkt mit dem MISO zu verbinden 
um wenigstens einen Device vorzutäuschen?

Vielen Dank für Hinweise ;-) Und Gruss,
Freak
1
#include <SPI.h>
2
3
#define intPin 0
4
#define ssPin 10
5
6
volatile int shoot=0;
7
8
void setup(){
9
  Serial.begin(9600);
10
  pinMode(ssPin, OUTPUT);
11
  digitalWrite(ssPin, HIGH);
12
  SPI.begin();
13
  SPI.setDataMode(1);
14
  SPI.setClockDivider(SPI_CLOCK_DIV128); 
15
  SPI.setBitOrder(MSBFIRST);
16
  attachInterrupt(intPin,fun,RISING);
17
}
18
19
void loop(){
20
  digitalWrite(ssPin,LOW);
21
  SPI.transfer(0xF0);
22
  digitalWrite(ssPin,HIGH);
23
  delay(1000);
24
  Serial.println(shoot);
25
  shoot = 0;
26
}
27
28
void fun(){
29
  shoot += 1;
30
}

von holger (Gast)


Bewertung
0 lesenswert
nicht lesenswert
>Da ich kein Oszilloskop zur Hand habe möchte ich den Interrupt vom
>Arduino nutzen, um zu schauen ob wenigstens die Anzahl der gesendeten
>1er Bits richtig sind.

Was für ein Unsinn;)

>Zweite Frage: Wäre es möglich den MOSI direkt mit dem MISO zu verbinden
>um wenigstens einen Device vorzutäuschen?

Ja, dann bekommst du das zurück was du gesendet hast.

von hp-freund (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Habe keine Ahnung von Ardu*.
Lass den doch einfach mit 3,3V laufen, dann kannst Du ohne Pegelwandler 
dein LCD bedienen. Nur eben langsamer.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Bewertung
0 lesenswert
nicht lesenswert
hp-freund schrieb:
> Lass den doch einfach mit 3,3V laufen, dann kannst Du ohne Pegelwandler
> dein LCD bedienen. Nur eben langsamer.

Musst du nicht mal. Mit Spannungsteilern ist das kein Problem, denn es 
geht sicher nur in Richtung LCD und nicht zurück. 1k/2k2 könnte da gut 
klappen.

von hp-freund (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Matthias S. schrieb:
> Mit Spannungsteilern

Habe ich bewusst vermieden. Vor kurzem hatten wir einen Beitrag über die 
Signalformen verschiedener Pegelwandler. LCD werden meist mit mehreren 
MHz gefüttert, da kann es neue Probleme geben.

von hp-freund (Gast)


Bewertung
0 lesenswert
nicht lesenswert

von Sam S. (freaky0815)


Bewertung
0 lesenswert
nicht lesenswert
Bin hier in den Bergen und hab nur den Arduino und das LCD einige 
Jumpers und einen 220 ohm Widerstand. Zuhause liegt der Logic Level 
Converter.

Hat jemand eine Antwort auf Frage 1?

Bitte keine Hinweise, wie ich mit Draht oder Bleistift einen 
Spannungsteiler bauen könnte ;-)

hp-freund schrieb:
> Lass den doch einfach mit 3,3V laufen, dann kannst Du ohne Pegelwandler
> dein LCD bedienen. Nur eben langsamer.

Geht leider nicht. Stromversorgung kommt von Laptop und der Logik-Pegel 
des Arduino ist 5V.

: Bearbeitet durch User
von holger (Gast)


Bewertung
0 lesenswert
nicht lesenswert
>Hat jemand eine Antwort auf Frage 1?

Du hast Schrott gezählt.
SPI.transfer(0xF0); hat im besten Fall eine steigende Flanke.

von holger (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Nachtrag:

>SPI.transfer(0xF0); hat im besten Fall eine steigende Flanke.

Auf SCL natürlich 8;)

von Sam S. (freaky0815)


Bewertung
0 lesenswert
nicht lesenswert
holger schrieb:
> Auf SCL natürlich 8;)

Richtig :). Da das alles korrekt ist kannst du mir sicher erklären, 
warum nur 1 auf MOSI gelesen wird? Steh aufm Schlauch.

von Sam S. (freaky0815)


Bewertung
0 lesenswert
nicht lesenswert
Ok habs gerafft.... Ich n00b ;)

 ____
_|     |______

: Bearbeitet durch User
von Logi Kana Lysator (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Sam S. schrieb:
> ____
> _|     |______


   ___
 _|   |______

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.