Verständnisfrage Logikanalysator / SPI

Gast #2529638
Lesenswert?
• ▲
▼
Hallo,

um ein besseres Verständnis für meine Projekte zu entwickeln, habe ich 
mir einen "Open Logic Sniffer" gekauft. Als Test habe ich 3 MAX7219 
kaskadiert und beobachte DIN (an allen 3 MAX7219: DIN1, DIN2, DIN3), /CS 
und CLK. Die MAX7219 sind an eine ATmega angeschlossen und steuern 
7-Segmentanzeigen.

Also, 3 x 16-Bit werden über DIN gesendet (DIN1). Diese kommen mit etwas 
Verzögerung bei DIN2 und DIN3 an. /CS geht nach dem letzten Bit auf High 
und dann wieder auf Low. Innerhalb einer Programmschleife passiert das 
7x. SCK passt auch bestens.

Was ich nicht verstehe, sind die Vorgänge bei T2 und T3 auf Kanal 0 
(DIN1), die nicht auf Kanal 2 und 3 (DIN2/3) zu sehen sind. Was könnte 
das sein?

Hier ein Teil des Codes (der wahrscheinlich nicht so hilfreich ist, da 
in BASCOM):

1
...
2
Call Max7291cmdval(&H02 , Sekunde1 , 0 , 0 , 0 , 0)
3
Call Max7291cmdval(&H01 , Sekunde2 , 0 , 0 , 0 , 0)
4
Call Max7291cmdval(&H04 , Minute1 , 0 , 0 , 0 , 0)
5
Call Max7291cmdval(&H03 , Minute2 , 0 , 0 , 0 , 0)
6
Call Max7291cmdval(0 , 0 , &H01 , Stunde1 , 0 , 0)
7
Call Max7291cmdval(0 , 0 , &H02 , Stunde2 , 0 , 0)
8
Call Max7291cmdval(0 , 0 , 0 , 0 , &H01 , Sekunde2)
9
...
10
Sub Max7291cmdval(byval Cmd1 As Byte , Byval Val1 As Byte , Byval Cmd2 As Byte , Byval Val2 As Byte , Byval Cmd3 As Byte , Byval Val3 As Byte)
11

12
   Local Cmdval1 As Word
13
   Local Cmdval2 As Word
14
   Local Cmdval3 As Word
15

16
   Cmdval1 = Makeint(val1 , Cmd1)
17
   Cmdval2 = Makeint(val2 , Cmd2)
18
   Cmdval3 = Makeint(val3 , Cmd3)
19

20
   Cs = 0
21

22
   Shiftout Din , Clk.4 , Cmdval3 , 1 , 16
23

24
   Shiftout Din , Clk.4 , Cmdval2 , 1 , 16
25

26
   Shiftout Din , Clk.4 , Cmdval1 , 1 , 16
27

28
   Cs = 1
29

30
End Sub
Angehängte Dateien:
Gast #2529695
Lesenswert?
• ▲
▼
>Was ich nicht verstehe, sind die Vorgänge bei T2 und T3 auf Kanal 0
>(DIN1), die nicht auf Kanal 2 und 3 (DIN2/3) zu sehen sind. Was könnte
>das sein?

CS geht high und das letzte gesendete Bit war eine 1. Die bleibt
bei deinem Chip dann halt einfach am Ausgang stehen. Oder der
Ausgang geht auf Tristate und dein Sniffer macht da ne 1 draus.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.