hallo, ich habe eine hama 128mb und eine kingstorm128mb. mit diesen werten unten betreibe ich eine kingstorm-karte die funktioniert wunderbar. wenn ich eine hama-karte einlege funktioniert die erst, wenn ich bei cmd(5) den wert von &hff auf "0" ändere. und das curiose ist alle werte werden mit 2 multipliziert. wenn ich den datenwert 65 eingebe wird 130 in den sector reingeschrieben und wenn ich zb den wert 35 eingebe steht inder hama-karte der wert 70 drin. weiss nicht mehr weiter. idle-mode: Cmd(0) = &H40 Cmd(1) = 0 Cmd(2) = 0 Cmd(3) = 0 Cmd(4) = 0 Cmd(5) = &H95 init: Cmd(0) = &H41 Cmd(1) = 0 Cmd(2) = 0 Cmd(3) = 0 Cmd(4) = 0 Cmd(5) = &Hff schreiben : cmd(0)=&h58 cmd(1)=0 cmd(2)=0 cmd(3)=0 cmd(4)=0 cmd(5)=&hff lesen: cmd(0)=&h51 cmd(1)=0 cmd(2)=0 cmd(3)=0 cmd(4)=0 cmd(5)=&hff
> und das curiose ist alle werte werden mit 2 multipliziert.
Das wuerde mich vermuten lassen das du bei der Programmierung des
Treibers
das Datenblatt der Karte nicht aufmerksam genugt studiert hast und dich
nicht genau an das Timing haelst. (alle Daten um 1Bit verschoben)
Oder du verwendest den Treiber den jemand anderer geschrieben hat ohne
ihn zu verstehen. Auch nicht gut.
Mit das erste was ich in meinen Anwendungen mache ist es den CRC
einzuschalten. Kann ich nur weiterempfehlen. So bekommt man wenigstens
ein winziges Minimum an Datensicherheit.
Olaf
wie wird dann das timing am pc für die karte bereitgestellt? da laufen alle karten wunderbar ohne störung, nur nicht am microboard.
Ich hatte auch mit einer Hama-Karte Probleme. Über 20 andere Karten liefen ohne Probleme. Ich habe dann eine Weile rumgemessen und habe festgestellt, dass sich die Hama-Karte nicht exakt an die Timings hält. Ich empfehle Dir, die Timings der Karte großzügig zu handhaben. Ob Dein Problem, dass Du alles um ein Bit geshiftet bekommst, damit zutun hat, kann ich Dir mit den wenigen Infos von Dir leider nicht sagen.
hallo, dein tip ist der entscheidenden : timing grosszügig handhaben !!! hatte jetzt die karte gestestet mit : fastavr-basic, winavr-c und bascom. und natürlich das langsamste bzw das ungenauste in den zeitbefehlen, dieses bascom funktioniert. nur winavr-c und fastavr , dieses haben ein sehr genaues timing, hier funktionieren nicht alle karten. wo muss man denn nun das timing grosszügig halten? mfg
dieses sind die shift in fastavrbasic , shift_i = shiftin und shift_o ist shiftout, mit der kingstorm-karte geht es: Sub shift_i() $Asm ldi r24,0x08 _Si2: clc sbi PORTB,3 sbic PINB,2 sec rol zl cbi PORTB,3 dec r24 brne _Si2 sts din,zl $EndAsm End Sub Sub shift_o() $Asm lds zl,dout ldi r24,0x08 _So22: rol zl brcc _So11 sbi PORTB,1 rjmp _So33 _So11: cbi PORTB,1 _So33: sbi PORTB,3 dec r24 cbi PORTB,3 brne _So22 cbi PORTB,1 $EndAsm End Sub
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.