auto-eng
28.10.2008, 21:59
Hallo, Hilfe
ich versuche einen optischen Maussensor an einen Atmega 644 anzuschließen. Leider bekomme ich keine Kommunikation zustande!
Dazu habe ich eine billige Maus auseinander genommen und die Platine soweit zurecht geschnitten, dass nur noch die Bauteile, die laut Datenblatt für die Ansteuerung des Sensorchips notwendig sind, übrig bleiben (Platzgründe).
Es handelt sich nicht um den bekannten ADNS-2610 Sensorchip sondern über einen (chinesischen?) MSC-12085, der aber beinahe genau so aussieht und fast die gleiche Beschaltung hat, wie im Datenblatt vom 2610.
Angeschlossen über ein 60cm 4adriges Kabel an ein Atmega Board. Bei Stromanschluss erwacht der Sensor, bzw die LED zum Leben (d.h. Helligkeitsanpassung wie bei einer Maus funktioniert wohl.)
Programmieren tue ich in BASCOM wie folgt:
' write byte 1 #1000 0000
Write_byte = &H04
Ddr_sdio = 1
Port_sck = 0
Port_sdio = 1
Port_sck = 1
Waitus 1
Port_sck = 0
Port_sdio = Write_byte.6
Port_sck = 1
Waitus 1
Port_sck = 0
Port_sdio = Write_byte.5
Port_sck = 1
Waitus 1
Port_sck = 0
Port_sdio = Write_byte.4
Port_sck = 1
Waitus 1
Port_sck = 0
Port_sdio = Write_byte.3
Port_sck = 1
Waitus 1
Port_sck = 0
Port_sdio = Write_byte.2
Port_sck = 1
Waitus 1
Port_sck = 0
Port_sdio = Write_byte.1
Port_sck = 1
Waitus 1
Port_sck = 0
Port_sdio = Write_byte.0
Port_sck = 1
Waitus 1
Ddr_sdio = 0
Port_sdio = 0
' read byte 2
Waitus 250
Port_sck = 0
Waitus 1
Port_sck = 1
Data_byte.7 = Pin_sdio
Port_sck = 0
Waitus 1
Port_sck = 1
Data_byte.6 = Pin_sdio
Port_sck = 0
Waitus 1
Port_sck = 1
Data_byte.5 = Pin_sdio
Port_sck = 0
Waitus 1
Port_sck = 1
Data_byte.4 = Pin_sdio
Port_sck = 0
Waitus 1
Port_sck = 1
Data_byte.3 = Pin_sdio
Port_sck = 0
Waitus 1
Port_sck = 1
Data_byte.2 = Pin_sdio
Port_sck = 0
Waitus 1
Port_sck = 1
Data_byte.1 = Pin_sdio
Port_sck = 0
Waitus 1
Port_sck = 1
Data_byte.0 = Pin_sdio
Print "Byte: " ; Data_byte
Ich erhalte allerdings immer nur Nullen!!!
Hat jemand eine Idee, wie man so eine Schaltung debuggen kann (ohne Oszi)?
ich versuche einen optischen Maussensor an einen Atmega 644 anzuschließen. Leider bekomme ich keine Kommunikation zustande!
Dazu habe ich eine billige Maus auseinander genommen und die Platine soweit zurecht geschnitten, dass nur noch die Bauteile, die laut Datenblatt für die Ansteuerung des Sensorchips notwendig sind, übrig bleiben (Platzgründe).
Es handelt sich nicht um den bekannten ADNS-2610 Sensorchip sondern über einen (chinesischen?) MSC-12085, der aber beinahe genau so aussieht und fast die gleiche Beschaltung hat, wie im Datenblatt vom 2610.
Angeschlossen über ein 60cm 4adriges Kabel an ein Atmega Board. Bei Stromanschluss erwacht der Sensor, bzw die LED zum Leben (d.h. Helligkeitsanpassung wie bei einer Maus funktioniert wohl.)
Programmieren tue ich in BASCOM wie folgt:
' write byte 1 #1000 0000
Write_byte = &H04
Ddr_sdio = 1
Port_sck = 0
Port_sdio = 1
Port_sck = 1
Waitus 1
Port_sck = 0
Port_sdio = Write_byte.6
Port_sck = 1
Waitus 1
Port_sck = 0
Port_sdio = Write_byte.5
Port_sck = 1
Waitus 1
Port_sck = 0
Port_sdio = Write_byte.4
Port_sck = 1
Waitus 1
Port_sck = 0
Port_sdio = Write_byte.3
Port_sck = 1
Waitus 1
Port_sck = 0
Port_sdio = Write_byte.2
Port_sck = 1
Waitus 1
Port_sck = 0
Port_sdio = Write_byte.1
Port_sck = 1
Waitus 1
Port_sck = 0
Port_sdio = Write_byte.0
Port_sck = 1
Waitus 1
Ddr_sdio = 0
Port_sdio = 0
' read byte 2
Waitus 250
Port_sck = 0
Waitus 1
Port_sck = 1
Data_byte.7 = Pin_sdio
Port_sck = 0
Waitus 1
Port_sck = 1
Data_byte.6 = Pin_sdio
Port_sck = 0
Waitus 1
Port_sck = 1
Data_byte.5 = Pin_sdio
Port_sck = 0
Waitus 1
Port_sck = 1
Data_byte.4 = Pin_sdio
Port_sck = 0
Waitus 1
Port_sck = 1
Data_byte.3 = Pin_sdio
Port_sck = 0
Waitus 1
Port_sck = 1
Data_byte.2 = Pin_sdio
Port_sck = 0
Waitus 1
Port_sck = 1
Data_byte.1 = Pin_sdio
Port_sck = 0
Waitus 1
Port_sck = 1
Data_byte.0 = Pin_sdio
Print "Byte: " ; Data_byte
Ich erhalte allerdings immer nur Nullen!!!
Hat jemand eine Idee, wie man so eine Schaltung debuggen kann (ohne Oszi)?