robodriver
16.12.2007, 11:17
Hallo leute,
ich saß jetzt ziemlich lange an einem Problem, was sich scheinbar nicht lösen lies. Jetzt habe ich nach sehr langem suchen zumindest die Fehlerursache gefunden. Nur leider weiß ich nicht wie ich ihn beseitigen kann. Ich hoffe ihr könnt mir weiter helfen.
Ich habe an 4 Pins eines AVRs einen CMOS-Baustein 4028 (BCD Decoder)angeschlossen. Mein Programm sieht wie folgt aus:
$regfile = "m8def.dat"
$crystal = 8000000
'DDR = &B76543210 ; 0=Eingang ; 1=Ausgang
Ddrb = &B00000111
Ddrd = &B1111001
Ddrc = &B00000000
Portc = &B00000000
Portb = &B00000100
Portd = &B00000101
Config Sda = Portc.4 'Data-Line für I2C-Bus
Config Scl = Portc.5 'Tackt für I2C-Bus
Config Adc = Single , Prescaler = Auto
Declare Sub Ir_vl_an
On Twi Data_empfang
Start Adc
'Enable Int0
Enable Interrupts
Ir_vl_an
Do
Loop
Sub Ir_vl_an
'IR-Diode vorne links anschalten
Portd.4 = 1
Portd.5 = 0
Portd.6 = 1
Portd.7 = 0
Return
End Sub
So weit klappt das eigentlich auch fast.
Wenn ich die Spannungen an den Pins messe kommt folgendes heraus:
Portd.4 = 5V
Portd.5 = 0V
Portd.6 = 5V
Portd.7 = 0,5V
Und die 0,5V am Portd.7 hat mein CMOS offensichtlich als "1" erkannt.
Nun bin ich mal noch auf die Idee gekommen nach schwingungen zu schaun (Freuqenzmessung am Multimeter) Und wie ich feststellte: Portd.4-6 haben 0 HZ und Portd.7 hat etwa 50HZ und manchmal 500 HZ.
Meine Eingangsspannung steht bei 0HZ, ist geglättet und sauber.
Ich habe auch mal versucht einen anderen Controller zu verwenden. Jedoch komme ich auch da auf exakt das gleiche Ergebniss.
Von den Leiterbahnen her habe ich alles durchgemessen, da gib es keinerlei Fehlverbindungen. Und auch sonst gibt es auf der Platine keine weiteren Frequenzen (Außer dem 8MHz Quarz)
Hat irgendwer eine Idee woher diese Taktung an dem Pin herkommen könnte?
Hoffe ihr wisst noch was, denn ich bin mit meinen Ideen am Ende :(
Gruß Robodriver
ich saß jetzt ziemlich lange an einem Problem, was sich scheinbar nicht lösen lies. Jetzt habe ich nach sehr langem suchen zumindest die Fehlerursache gefunden. Nur leider weiß ich nicht wie ich ihn beseitigen kann. Ich hoffe ihr könnt mir weiter helfen.
Ich habe an 4 Pins eines AVRs einen CMOS-Baustein 4028 (BCD Decoder)angeschlossen. Mein Programm sieht wie folgt aus:
$regfile = "m8def.dat"
$crystal = 8000000
'DDR = &B76543210 ; 0=Eingang ; 1=Ausgang
Ddrb = &B00000111
Ddrd = &B1111001
Ddrc = &B00000000
Portc = &B00000000
Portb = &B00000100
Portd = &B00000101
Config Sda = Portc.4 'Data-Line für I2C-Bus
Config Scl = Portc.5 'Tackt für I2C-Bus
Config Adc = Single , Prescaler = Auto
Declare Sub Ir_vl_an
On Twi Data_empfang
Start Adc
'Enable Int0
Enable Interrupts
Ir_vl_an
Do
Loop
Sub Ir_vl_an
'IR-Diode vorne links anschalten
Portd.4 = 1
Portd.5 = 0
Portd.6 = 1
Portd.7 = 0
Return
End Sub
So weit klappt das eigentlich auch fast.
Wenn ich die Spannungen an den Pins messe kommt folgendes heraus:
Portd.4 = 5V
Portd.5 = 0V
Portd.6 = 5V
Portd.7 = 0,5V
Und die 0,5V am Portd.7 hat mein CMOS offensichtlich als "1" erkannt.
Nun bin ich mal noch auf die Idee gekommen nach schwingungen zu schaun (Freuqenzmessung am Multimeter) Und wie ich feststellte: Portd.4-6 haben 0 HZ und Portd.7 hat etwa 50HZ und manchmal 500 HZ.
Meine Eingangsspannung steht bei 0HZ, ist geglättet und sauber.
Ich habe auch mal versucht einen anderen Controller zu verwenden. Jedoch komme ich auch da auf exakt das gleiche Ergebniss.
Von den Leiterbahnen her habe ich alles durchgemessen, da gib es keinerlei Fehlverbindungen. Und auch sonst gibt es auf der Platine keine weiteren Frequenzen (Außer dem 8MHz Quarz)
Hat irgendwer eine Idee woher diese Taktung an dem Pin herkommen könnte?
Hoffe ihr wisst noch was, denn ich bin mit meinen Ideen am Ende :(
Gruß Robodriver