Hi also ich hab hier ein problem. Ich hab nen Mega32 der auf 5V laeuft. An den hab ich via spannungsteiler (1.8k und 3k) nen Dataflash geschnallt. Ich benutze das "normale" SPI interface mit dem Unterschied das ich das Slave select mit Hand mache (PortB.2). Ich versuche nun schon seit stunden dem Ding irgendetwas zu entlocken aber es weigert sich beharrlich. Irgendwer vorlschaege? Chip: AT26DF081A Supply Voltage: 3.3V Mega Clock: 8 MHz SPI - Clock: 1 MHz Codeschnipsel fuer das SPI init SPCR=0x51; SPSR=0x00; Codeschnipsel zum lesen der Device ID (erstes Byte) PORTB.2=1; //von vorher - zieht CS auf High delay_ms(1); PORTB.2=0; // CS low spi(0x9F); // sended read device id x=spi(0xFF); // dummy byte hinterher um daten rauszusaugen PORTB.2=1; // CS zurueck auf high delay_ms(1); PORTC=x; und Port C bleibt dunkel (DDRC=0xFF) irgendwer ideen? Tobi
Muss man den Flash vielleicht irgendwie erst mit nem Befehl oder so initialisieren?
So wie ich das Datenblatt lese muss man ihm nur sagen wenn man was in ihn reinschreiben will (den write enable command) senden. So wie ich das lese kann ich das Statusregister bzw die device ID immer auslesen.
>An den hab ich via spannungsteiler (1.8k und 3k) nen Dataflash >geschnallt. Funktioniert das denn auch für die Rückrichtung (lesender Zugriff)? Oder reichen dem AVR die kleinen Pegel von 3.3 V oder weniger?
sie "sollten" reichen.. der mega erkennt alles was groesser 0.6*VCC ist als high
Dein Codeschnipsel ist wieder genau der Teil an dem man NICHT sehen kann ob das so ok ist. Viel, viel wichtiger: Die Konfiguration von DDRB, was steht in spi(), ist JTAG ausgeschaltet ?
ok habs.. das problem war das ich die kruecke mit ISP progge und SPI ja das gleiche ist - dadurch hat mir der programmer der noch connected war die info die zurueckkam plattgemacht. (eigentlich weiss ich das ja.. nur man denkt nie dran). Tobi
Hi um die Frage dennoch zu beantworten spi kommt mit codevision zusammen. DDRB war richtig konfiguriert. JTAG hab ich abgeschaltet gehabt. Danke fuer die Hilfe. Tobi
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.