Hallo alle zusammen !
Ich versuche nun schon seit ca. 2 Wochen ein EEPROM 25LC256 von Microchip zu beschreiben. Verwenden dazu möchte ich Bascom
Der Programmablauf ist
1. Schreibschutz entfernen
spiout schreibschutz_aus lt. Datenblatt, 1 (0000 0110)
2. Schreibe Messwert
spiout schreiben lt. Datenblatt ,1 (0000 0010)
spiout adresse_hi,1
spiout adresse_lo,1
spiout messwert_rein
3. Lese Messwert
spiout lesen lt. Datenblatt ,1 (0000 0011)
spiout adresse_hi,1
spiout adresse_lo,1
spiin messwert_raus
Als MCU verwende ich einen Atmega32 und betreibe den Baustein 25LC256 an den ports
portb.7 = SCL
portb.6 = MISO
portb.5= MOSI
portb.4 = SS
und es funktioniert nicht. Ausgelesen wird in 95% der Fälle der Wert 255, manchmal 0 und hin und wieder Werte wie 241 u.dgl.
Schön langsam weiß ich nicht mehr was ich noch alles versuchen soll. Mit i2c war die ganze Angelegenheit super simpel und funktioniert auch, dennoch will ich einfach wissen wie man ein Eeprom mit spi anspricht.
Die Schaltung besteht eigentlich nur aus den folgenden Verbindungen:
portb.7 ==> SCK
pinb.6 <== SO
portb.5 ==> SI
portb.4 ==> CS
zusätzlich noch +5V an VCC, WP und HOLD
und GND an VSS
laut Datenblatt sind keine PULL-UP Widerstände erforderlich, hab auch schon versucht cs mit 10K an +5V zu hängen - hat aber auch nichts gebracht.
Meinen Bascom-code habe ich angehängt.
Muß man irgendwelche fuse-bits setzen damit spi funktioniert. Wenn ich übrigens spi-hard versuche wird nicht mal mehr der Wert 255 empfangen.
Falls irgendjehmand Ahnung hat wie man in Bascom per spi externe Bausteine anspricht ersuche ich höflichst um Tips.
lg,
köbsi
Ich versuche nun schon seit ca. 2 Wochen ein EEPROM 25LC256 von Microchip zu beschreiben. Verwenden dazu möchte ich Bascom
Der Programmablauf ist
1. Schreibschutz entfernen
spiout schreibschutz_aus lt. Datenblatt, 1 (0000 0110)
2. Schreibe Messwert
spiout schreiben lt. Datenblatt ,1 (0000 0010)
spiout adresse_hi,1
spiout adresse_lo,1
spiout messwert_rein
3. Lese Messwert
spiout lesen lt. Datenblatt ,1 (0000 0011)
spiout adresse_hi,1
spiout adresse_lo,1
spiin messwert_raus
Als MCU verwende ich einen Atmega32 und betreibe den Baustein 25LC256 an den ports
portb.7 = SCL
portb.6 = MISO
portb.5= MOSI
portb.4 = SS
und es funktioniert nicht. Ausgelesen wird in 95% der Fälle der Wert 255, manchmal 0 und hin und wieder Werte wie 241 u.dgl.
Schön langsam weiß ich nicht mehr was ich noch alles versuchen soll. Mit i2c war die ganze Angelegenheit super simpel und funktioniert auch, dennoch will ich einfach wissen wie man ein Eeprom mit spi anspricht.
Die Schaltung besteht eigentlich nur aus den folgenden Verbindungen:
portb.7 ==> SCK
pinb.6 <== SO
portb.5 ==> SI
portb.4 ==> CS
zusätzlich noch +5V an VCC, WP und HOLD
und GND an VSS
laut Datenblatt sind keine PULL-UP Widerstände erforderlich, hab auch schon versucht cs mit 10K an +5V zu hängen - hat aber auch nichts gebracht.
Meinen Bascom-code habe ich angehängt.
Muß man irgendwelche fuse-bits setzen damit spi funktioniert. Wenn ich übrigens spi-hard versuche wird nicht mal mehr der Wert 255 empfangen.
Falls irgendjehmand Ahnung hat wie man in Bascom per spi externe Bausteine anspricht ersuche ich höflichst um Tips.
lg,
köbsi