Hallo, Ich bin Grade dabei ein Flash SST25VF016B an einen ATMEGA88 zu betreiben. Das ganze lief erst recht gut aber hat dann schlagartig den Geist aufgegeben, habe die Schaltung 2 mal neu aufgebaut alle Bauteile ausgetauscht. Ich versuche erstmal nur die Seriennummer auszulesen , wiegesagt hat alles wunderbar geklappt. Habe das Flash folgendermaßen angeschlossen: CE -> PB1(+Pullup 10k) SO -> MISO SI -> MOSI WP -> VCC HOLD -> VCC SCK -> SCK Brauche da eine Anstoß einzige Idee die ich habe ist das evtl. mein Programmer USBprog mir mit den 5V den Flash zerstört . da die ja an selben SPI-BUS sind . Flash kann max 3.6V Danke hoffe jemand kann mir helfen, wie gesagt das ganze ging vorher, hängt jetzt beim lesen..
Aeh, ja. Die Spannung ... Da sollte man allenfalls einen Levelkonverter zwischenschalten. Du hast in echter Kamikatze Manier einfach mal probiert ? Ja. das kann man machen...
Tja. Ich weiss es nicht, aber wenn die Teile nur 3.6V koennen... weshalb wuerde der Hersteller eine so niedrige Spannung anschreiben wenn mehr drinliegen wuerde ? Um die Entwickler zu knechten ?
Habe den Controller jetzt ohne Flash(Neues Flash) Programmiert, ihn ca 20 mal Resetet einmal habe ich die richtigen Registerwerte bekommen. Ich verstehe das alles nicht irgend eine Idee was ich falsch mache Schaltung wird mit 16mhz betrieben
Ja, Da scheint noch was anderes nicht gut zu sein. Wie schaut es mit den Messmitteln aus ? Sind die Spannungen nicht gut ? Sind die signale nicht gut ?
Momentan schlecht. habe den Quarz getauscht, und einen 1uf Keramik Kondensator diereckt an das VSS/VDD vom Flash habe jetzt bemerkt wenn ich das Flash mit den Finger berühre empfängt er etwas aber nur Schrott, andernfalls macht er nichts erhängt halt immer beim lesen.
juhuu lalalala... heute schmeiss ich ne Party! Also CE auf PB2 muss als Ausgang definiert werden auch wenn ich PB1 verwende .. keine Ahnung warum jemand Ahnung wo das im Datenblatt steht . es geht ! .. alle meine Flashs sind trotz überdosis nicht gestorben. Hier die abgeänderte SpiINIT [code] void SPI_MasterInit(void) { /* Set MOSI and SCK output, && SS all others input */ DDR_SPI = (1<<DD_MOSI)|(1<<DD_SCK)|(1<<PB1)|(1<<PB2); Flash_Disable(); for(unsigned char a=0;a<200;a++){ nop(); //#define nop() _asm__ __volatile_ ("nop" ::) }; //Wartennn /* Enable SPI, Master, set clock rate fck/2 */ SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPI2X); } [code/]
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.