webbuddah
31.01.2007, 12:51
hallo,
ich setze mich seit geraumer zeit, mit einem kumpel, mit dem thema µC auseinander und eignen uns das ganze wissen langsam aber sicher an. unser ziel ist es, einen durch blitzschlag geschädigten verstärker wieder funktionstüchtig zu bekommen. so wie es ausschaut scheint nur der controller des verstärkers defekt zu sein. also wollen wir diesen (nat. nur im beschränkten funktionsumfang) durch einen atmega8 ersetzen.
wir haben bisher eine input-wahl über einen dreh-encoder realisiert und stehen jetzt vor einer hürde, die sich uns als richtige wand entgegen stellt. es geht um die ansteuerung des analogen input-switch LC78211.
nun wollten wir gern wissen, ob wir das datenblatt richtig ausgewertet und die ansteuerung richtig umgesetzt haben. vorallem, ob wir die spi-programmierung verstanden haben. das problem ist, dass weder die spi-steuerung, noch eine ablaufsteuerung (ohne irgendwelche programmierung, nur ein zeit-ablaufplan zum testen) funktionieren. wo liegt unser (denk-)fehler ?
SPI-Code
$regfile = "m8def.dat"
$crystal = 8000000
Config Spi = Hard , Master = Yes , Polarity = Low , Phase = 0 , Clockrate = 64 , Noss = 1
Dim A As Byte
Dim B As Byte
Config Portd.6 = Output //chipenable
Spiinit
A = &B0101 //adressierung
B = &B11111111 //alle eingänge durchschalten
Spiout A , 1
Portd.6 = 1
Spiout B , 1
Portd.6 = 0
End
die ablaufsteuerung:
$regfile = "m8def.dat"
$crystal = 8000000
Config Portd.7 = Output
Config Portd.6 = Output
Config Portd.5 = Output
Dim W As Byte
D Alias Portd.5 //data-pin
E Alias Portd.6 //chipenable
C Alias Portd.7 //clock
W = 2
E = 0
C = 0
D = 0
Waitus W
C = 1
Waitus W
C = 0
D = 1
Waitus W
C = 1
Waitus W
C = 0
D = 0
Waitus W
C = 1
Waitus W
C = 0
D = 1
Waitus W
C = 1
Waitus W
C = 0
D = 1
Waitus W
E = 1
Waitus W
C = 1
Waitus W
C = 0
Waitus W
C = 1
Waitus W
C = 0
Waitus W
C = 1
Waitus W
C = 0
Waitus W
C = 1
Waitus W
C = 0
Waitus W
C = 1
Waitus W
C = 0
Waitus W
C = 1
Waitus W
C = 0
Waitus W
C = 1
Waitus W
C = 0
Waitus W
C = 1
Waitus W
C = 0
E = 0
D = 0
End
wären für hilfe sehr dankbar. es kann ja auch sein, dass der lc78211 kaputt ist, da machen wir uns ja verrückt :)! wie könnte man die funktion des switches testen?
grüße
webbi
ich setze mich seit geraumer zeit, mit einem kumpel, mit dem thema µC auseinander und eignen uns das ganze wissen langsam aber sicher an. unser ziel ist es, einen durch blitzschlag geschädigten verstärker wieder funktionstüchtig zu bekommen. so wie es ausschaut scheint nur der controller des verstärkers defekt zu sein. also wollen wir diesen (nat. nur im beschränkten funktionsumfang) durch einen atmega8 ersetzen.
wir haben bisher eine input-wahl über einen dreh-encoder realisiert und stehen jetzt vor einer hürde, die sich uns als richtige wand entgegen stellt. es geht um die ansteuerung des analogen input-switch LC78211.
nun wollten wir gern wissen, ob wir das datenblatt richtig ausgewertet und die ansteuerung richtig umgesetzt haben. vorallem, ob wir die spi-programmierung verstanden haben. das problem ist, dass weder die spi-steuerung, noch eine ablaufsteuerung (ohne irgendwelche programmierung, nur ein zeit-ablaufplan zum testen) funktionieren. wo liegt unser (denk-)fehler ?
SPI-Code
$regfile = "m8def.dat"
$crystal = 8000000
Config Spi = Hard , Master = Yes , Polarity = Low , Phase = 0 , Clockrate = 64 , Noss = 1
Dim A As Byte
Dim B As Byte
Config Portd.6 = Output //chipenable
Spiinit
A = &B0101 //adressierung
B = &B11111111 //alle eingänge durchschalten
Spiout A , 1
Portd.6 = 1
Spiout B , 1
Portd.6 = 0
End
die ablaufsteuerung:
$regfile = "m8def.dat"
$crystal = 8000000
Config Portd.7 = Output
Config Portd.6 = Output
Config Portd.5 = Output
Dim W As Byte
D Alias Portd.5 //data-pin
E Alias Portd.6 //chipenable
C Alias Portd.7 //clock
W = 2
E = 0
C = 0
D = 0
Waitus W
C = 1
Waitus W
C = 0
D = 1
Waitus W
C = 1
Waitus W
C = 0
D = 0
Waitus W
C = 1
Waitus W
C = 0
D = 1
Waitus W
C = 1
Waitus W
C = 0
D = 1
Waitus W
E = 1
Waitus W
C = 1
Waitus W
C = 0
Waitus W
C = 1
Waitus W
C = 0
Waitus W
C = 1
Waitus W
C = 0
Waitus W
C = 1
Waitus W
C = 0
Waitus W
C = 1
Waitus W
C = 0
Waitus W
C = 1
Waitus W
C = 0
Waitus W
C = 1
Waitus W
C = 0
Waitus W
C = 1
Waitus W
C = 0
E = 0
D = 0
End
wären für hilfe sehr dankbar. es kann ja auch sein, dass der lc78211 kaputt ist, da machen wir uns ja verrückt :)! wie könnte man die funktion des switches testen?
grüße
webbi