Forum: Mikrocontroller und Digitale Elektronik Verständnisfrage Logikanalysator / SPI


von Sebastian (Gast)


Angehängte Dateien:

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

von holger (Gast)


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.

von Sebastian (Gast)


Lesenswert?

Jepp, das ist es. Vielen Dank!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.