-         

Ergebnis 1 bis 3 von 3

Thema: SPI "visualisiert"

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.11.2005
    Ort
    QTH: JO43BC
    Alter
    49
    Beiträge
    112

    SPI "visualisiert"

    Anzeige

    Tachjen,

    hab mal spasseshalber etwas mit dem SPI-Bus rumhantiert. Wollte demnaechst damit mal den MCP2515 (CAN-Controller) etwas naeher untersuchen.
    Auf einem ATMega16 habe ich einfach frei Schnauze einige Pins von Port D als SPI deklariert und mal nen Zweikanal-Oszi drangehangen:

    http://www.speckmann.de/images/spi.jpg

    Auf Kanal 1 (Pind.0) haengt Clock. Hier sieht man sehr gut die 8 Takte. Auf Kanal 2 (Pind.1) sind die Signale von MOSI (DOut) sichtbar. Hier wird unterdessen ein Byte rausgeschoben. Und zwar dezimal die 151. Auch das kann man sehr gut erkennen. Von Rechts nach Links zaehlend ist Bit 1, 2, 4, 16 und 128 auf High, zusammen 151. Passt also wunderbar.
    SPI arbeitet ja wie ein Schieberegister. Das DatenByte wird dabei bitweise auf MOSI "herausgeschoben".

    Hier noch mal der Codeschnipsel dazu:

    --------------------------------
    $regfile = "m16def.dat"
    $crystal = 16000000

    Config Spi = Soft , Din = Pind.2 , Dout = Pind.1 , Ss = None , Clock = Pind.0

    Dim X As Byte
    Dim Y As Byte

    X = 151
    Spiinit

    Do
    Waitms 1
    Y = Spimove(x)
    Loop

    End
    --------------------------------

    Ich hatte gerade Langeweile und vielleicht dient es ja dem einen oder anderen etwas zum Verstaendnis :)

  2. #2
    Erfahrener Benutzer Roboter Experte Avatar von Rage_Empire
    Registriert seit
    10.03.2005
    Ort
    Pforzheim
    Beiträge
    710
    Warum stellst du es nicht ins Download-Verzeichnis? So wird man es mit Sicherheit irgendwann nicht mehr finden...nur so ein Tip.

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    27.02.2004
    Beiträge
    39
    Hallo,

    ich beschäftige mich von der Schule aus mit dem SPI-Bus und versuche gerade zwei Atmegas miteinander komunizieren zu lassen. Klappt auch ganz gut (Master-Slave).
    Nun mein Problem, welches eher ein Verständnisproblem ist.
    Ich will nun ein bereitgestelltes Funkmodul über SPI ansteuern. Das Funkmodul schickt gewisse Anfragebytes, welche der Prozessor beantworten muss(Initzialisieren). Das Funkmodul generiert den Clock beim Senden, mein Atmega 32 ist auf Hard eigestellt. Normalerweise generiert ja der Master den Clock (in meinem Fall ja der Atmega), kann ich trotzdem Daten empfangen? Obwohl der Atmega für die zeit eigentlich Slave ist und den Clock nicht generieren darf?
    Also auf den Punkt: Wenn ich den Befehl Spiin benutze, generiert der Atmega dann ein Clock?
    Ich hoffe ich habe mein Problem deutlich erklärt, wäre klasse, wenn jemand kurz was dazu sagen könnte, da es sehr wichtig ist

    schon mal danke im vorraus

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •