kramann.info
© Guido Kramann

Login: Passwort:










Mikrocontroller
1 Einfuehrung
..1.1 Entwicklungsgeschichtliches
..1.2 Maschinensprache
..1.3 Assemblerbeispiel
..1.4 Sprachwahl
..1.5 Praxis
....1.5.1 Digital_IO
....1.5.2 Byteoperationen
....1.5.3 AVR_Studio
....1.5.4 Testboard
....1.5.5 Aufgaben
....1.5.6 Do_it_yourself
......1.5.6.1 Ampel
......1.5.6.2 Programmierer
..1.6 Literatur
..1.7 Programmierer
....1.7.1 Bauverlauf
....1.7.2 KurzreferenzLow
....1.7.2 Kurzreferenz_16PU
..1.8 Uebung1
..1.9 BoardAtHome
....1.9.1 Software
....1.9.2 Hardware
....1.9.3 Knoppix
....1.9.4 Aufbau
....1.9.5 LED
2 Oszillator
..2.1 Assembler
..2.2 Interner_RC
..2.3 Quarz
..2.4 Taktgenerator
3 DigitalIO
..3.1 Elektrische_Eigenschaften
..3.2 Pullup_Widerstaende
..3.3 Bitmasken_Eingang
..3.4 Bitmasken_Ausgang
..3.5 Tic_Tac_Toe
....3.5.1 DuoLEDs
....3.5.2 Schaltplan
....3.5.3 Spielfeld
....3.5.4 Anwahl
....3.5.5 Kontrolle
..3.6 Laboruebung2
..3.7 Laboruebung2_alt
4 PWM
..4.1 Prinzip
..4.2 Nutzen
..4.3 Generierung
..4.4 Programmierung
..4.5 Servos
..4.7 Laboruebung3
..4.8 LoesungUE3
..4.9 Uebung6
5 LichtKlangKugeln
..5.1 LED
..5.2 RGB
..5.3 Sensoren
..5.4 lautsprecher
..5.5 tonerzeugung
6 UART
..6.1 Bussysteme
..6.2 UART
..6.3 RS232
..6.4 Hardware
..6.5 Senden
..6.6 Hyperterminal
..6.7 Empfangen
..6.8 Broadcast
..6.9 Uebung4
7 Infrarot
..7.1 schalten
..7.2 seriell
..7.3 Uebung
8 OOP
..8.1 Probleme
..8.2 Konzept
..8.3 Statisch
..8.4 Datentypen
..8.5 RS232
....8.5.1 Prozedural
....8.5.2 Analyse
....8.5.3 Umsetzung
....8.5.4 Vererbung
....8.5.5 Statisch
....8.5.6 Performance
..8.6 Fahrzeug
9 ADW
..9.1 ADW
..9.2 Zaehler
10 Peripherie
..10.1 RS232Menue
..10.2 ASCIIDisplay
..10.3 Tastenmatrix
..10.4 Schrittmotor
..10.5 Zaehler
..10.6 Uebung7
11 SPI
..11.1 Testanordnung
..11.2 Register
..11.3 Test1
..11.4 Test2_Interrupt
..11.5 Test3_2Slaves
..11.6 Laboruebung
12 EEPROM
13 I2C
..13.1 MasterSendByte
..13.2 MasterSend2Bytes
..13.3 MasterReceiveByte
..13.4 MasterReceive2Bytes
14 Anwendungen
..14.1 Mechatroniklabor
....14.1.1 Biegelinie
....14.1.2 Ausbruchsicherung
....14.1.3 Einachser
....14.1.4 AV
....14.1.5 Vierradlenkung
....14.1.6 Kommunikation
..14.2 Sinuserzeugung
....14.2.1 Variante1
....14.2.2 Variante2
....14.2.3 Variante3
....14.2.4 Variante4
..14.3 Laboruebung8
..14.4 Loesung_Ue8
..14.5 SPI_Nachtrag
20 Xubuntu
kramann.info
© Guido Kramann

Login: Passwort:




Peripherie 3b: Bussysteme - SPI

  • SPI steht für Serial Peripheral Interface, also Serielle Peripherie Schnittstelle.
  • Der SPI-BUs wird eingesetzt, um Mikrocontroller untereinander oder andere Peripherie, wie LCD-Treiber, RAM-Bausteine, Sensor-Modul etc. mit einem Mikrocontroller über eine kurze Distanz hinweg zu verbinden.
  • Während die RS232-Schnittstelle nur Übertragungsgeschwindigkeiten um die 100kHz erreicht, sind mittels SPI Übertragungsraten von einigen MHz möglich.
  • Der SPI-Bus arbeitet synchron.
  • Einer der miteinander verbundenen Bausteine wird als Master definiert und liefert einen Takt, der an die anderen Bausteine über den Anschluß SCK (Serial Clock) weiter gereicht wird.
  • Synchron mit diesem Takt werden Daten vom Master an die Slave-Bausteine als serieller Bitstrom übertragen. Dies geschieht über die Leitung MOSI (Master Out Slave In).
  • Gleichzeitig mit dem gleichen Takt synchronisiert kann ein Datenstrom von einem Slave zu dem Master stattfinden. Dies geschieht über den Anschluß MISO (Master In Slave Out).
  • Damit hat der SPI-Bus die so genannte full duplex-Eigenschaft. Es kann also völlig gleichzeitig gesendet und empfangen werden.
  • In der Regel wird immer ein Byte seriell übertragen.
  • Neben den drei Anschlüssen SCK, MOSI, MISO gibt es noch digitale Leitungen von dem Master zu jedem Slave, mit dem der Master einen Slave-Baustein anwählen kann. Diese Leitung wird SS, CS oder STE genannt (Slave Select, Chip Select oder Slave Transmit Enable).
  • Ein Slave-Baustein ist ausgewählt, wenn der SS/CS/STE-Eingang auf Low geht.
  • Beim ATmega32 ist dieser Pin mit SS und einem darüber stehenden Balken bezeichnet (verg. Datenblatt "Pinkonfiguration"). Der Balken besagt, dass dieser Eingang invertierend arbeitet. Wie gesagt, wird ein Slave angewählt, wenn er auf Low geht.
  • Arbeitet ein Baustein als Master, können beliebige digitale Ausgänge benutzt werden, um die Slave-Select Leitungen zu bilden.
  • Pro Slave benötigt man beim Master logischerweise einen digitalen Ausgang / ein Bit.
  • Die SPI-Schnittstelle wird auch für das Schreiben des Programm-Flash-Speichers über das USB-Programmiergerät AVRISP verwendet. Dabei wird der zu programmierende Baustein zum Slave und die CS-Leitung ist an den Reset angeschlossen.
  • Das folgende Schaubild zeigt eine Anordnung mit einem Master und zwei Slave-Bausteinen.
  • Über die Leitungen CS1 und CS2 kann der Master auswählen, ob er gerade mit Slave1 oder Slave2 kommunizieren will.
  • Wie oben bereits beschrieben, kann bei der Anwahl eines Slaves dann gleichzeitig ein Byte vom Master an diesen gesendet und eines empfangen werden.
BILDBESCHREIBUNG

Bild 0-1: Typische Busanordnung für SPI, ein Master mit zwei Slave-Bausteinen.