PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SPI ansteuerung Hilfe gesucht STV5730



sebastian.heyn
25.04.2005, 21:52
Hallo,

ich versuche einen STV5730 anzusteuern, habe mir dazu ein board bei elv besorgt welches den IC funktionierend drauf hat. Habe dann den Controller mit dem IC verbunden (vorher den controller von der elv platine entfernt) aber ich kriege dees ding ned zum laufen folgender code sollte funktionieren (den datenbereich habe ich für testzwecke von dem code von ulrich radig genommen) liegt es evtl an der einstellung für die SPI schnittstelle? mit mosi/miso war ich nicht sicher, aber keine von beiden läuft... oder lese ich den datenteil falsch aus?




$regfile = "m128def.dat"
$crystal = 16000000
$baud = 9600

Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = High , Phase = 0 , Clockrate = 128 , Noss = 0

Dim A(8) As Byte
Dim I As Byte
Dim I2 As Byte

Spiinit

Wait 1

I = 0

Restore Da1
'# initialisierung
Do
Read A(1)
Read A(2)
Spiout A(1) , 2
Incr I
Loop Until I = 24
'eine zeile hat 8 bytes, es werden immer 2 gleichzeitig gelesen,daher 6x4


'### Text der ausgegeben wird
Restore Da2

I = 0
Do
Read A(1)
Spiout A(1) , 1
Incr I
Loop Until I = 16


Do
nop
nop
nop
Loop

End

Da1:

Data &H30 , &H00 , &H30 , &H00 , &H00 , &HDB , &H10 , &H00
Data &H00 , &HCF , &H10 , &H4E , &H00 , &HD0 , &H15 , &H32
Data &H00 , &HCD , &H12 , &H01 , &H00 , &HCE , &H1B , &H95
Data &H00 , &HC0 , &H1F , &H90 , &H1F , &H90 , &H1F , &H80
Data &H1F , &H80 , &H1F , &H80 , &H1F , &H80 , &H1F , &H80
Data &H1F , &H80 , &H1F , &H80 , &H1F , &H80 , &H1F , &H80

Da2:

Data &H20 , &H35 , &H3B , &H32 , &H2C , &H31 , &H0B , &H0B
Data &H1D , &H2A , &H2D , &H32 , &H30 , &H0B , &H0B , &H0B
[/code]

Xeus
26.04.2005, 22:19
wie hast du den controller den angeschlossen?

sebastian.heyn
27.04.2005, 07:04
Der controller läuft einfandfrei. (Testoutput Uart)

PB0 (SS) --> CSN STV5730
PB1 (CLK) --> CLK STV5730
PB2/3 (DATA) --> DATA STV5730
+5V --> BAR STV5730

Die datenleitung habe ich immer wieder hin und hergesteckt, weil ich nicht sicher war, ob PB2 oder PB3 ausgang ist (MOSI/MISO)

(so wie die anschlüsse des vorhandenen -funktionierenden- controllers sind - BAR habe ich gemessen)

habe den code ein wenig verändert mit dem READ war ich nicht so sicher
Das auslesen des datenteils funktioniert jetzt zuverlässiger (UART output getestet)
Werde den mega128 mit auf arbeit nehmen und mal an den oszi hängen, um zu sehen ob an der spi schnittstelle überhaupt was rauskommt.





$regfile = "m128def.dat"
$crystal = 4000000 'internal 4MHz RC
$baud = 9600

Config Spi = Hard , Interrupt = On , Data Order = Msb , Master = Yes , Polarity = High , Phase = 0 , Clockrate = 128 , Noss = 0
'Config Spi = Soft , Dout = Portb.2 , Clock = Portb.1 , Ss = Portb.0
'Hier habe ich mal probiert, lief auch nicht!!

Dim A(2) As Byte
Dim I As Byte

Spiinit

Wait 1

I = 0
Do ' Initialisierung und SETUP (Je 2 bytes werden gesendet)
A(1) = Lookup(i , Da1)
Incr I
A(2) = Lookup(i , Da1)
Spiout A(1) , 2
Waitms 10
Incr I
Loop Until I = 48



I = 0
Do 'Textausgabe (je ein byte wird gesendet)
A(1) = Lookup(i , Da2)
Spiout A(1) , 1
Waitms 10
Incr I
Loop Until I = 16


Do
nop
nop
nop
Loop

End

Da1:

Data &H30 , &H00 , &H30 , &H00 , &H00 , &HDB , &H10 , &H00
Data &H00 , &HCF , &H10 , &H4E , &H00 , &HD0 , &H15 , &H32
Data &H00 , &HCD , &H12 , &H01 , &H00 , &HCE , &H1B , &H95
Data &H00 , &HC0 , &H1F , &H90 , &H1F , &H90 , &H1F , &H80
Data &H1F , &H80 , &H1F , &H80 , &H1F , &H80 , &H1F , &H80
Data &H1F , &H80 , &H1F , &H80 , &H1F , &H80 , &H1F , &H80

Da2:

Data &H20 , &H35 , &H3B , &H32 , &H2C , &H31 , &H0B , &H0B
Data &H1D , &H2A , &H2D , &H32 , &H30 , &H0B , &H0B , &H0B
[/code]

sebastian.heyn
27.04.2005, 18:02
Also: Phase=1 als einstellung bewirkt auf jeden fall eine initialisierung, aber ansonsten gibt er nur müll, gibts denn niemand mit erfahrung was diesen Baustein angeht?

Xeus
30.04.2005, 14:45
bist du dir auch sicher, dass du die fuses richtig gesetzt hast?

sebastian.heyn
02.05.2005, 09:04
Die fuses sind richtig gesetzt. Phase=0 war falsch. und dann noch RTFM fehler gemacht, grins.