Hallo kennt sich jemand aus mit der Einbindung eines uCs mit einem Flash? LPC2129 at45db... Bin ganz neu auf diesem Gebiet und weiß nicht genau wie man da am besten vorgeht. Hab bis jetzt nur mal die umschaltung von GPIO auf SPI hinbekommen. Wäree echt sehr dankbar wenn mir da jemand weiterhelfen könnte.Was bräuchtet ihr denn noch für Details? Grüße
ja genau, hat mir aber mit meinem wenigen wissen, nicht arg viel weitergeholfen
Der SPI bringt wenig, denn nach 8 clockzyklen kommt schon der Interrupt. Und der Interrupt muss die Register saven, push/pop und dergleichen. Da kann man die Leitungen auch gleich von Hand bewegen. Wie die Leitungen wackeln muessen steht ja im datenblatt.
Du meinst sicher interrupt bringt bei einem spi Master nichts? der lpc schafft eine spi clock bis 30mhz. Wird schwierig das mit gpio zu machen. steff: Was läuft denn überhaupt an deinem Programm? hört sich so an als bräuchtest du keine spi Hilfe sondern einen Crashkurs über µc.
les über einen smbus verschiedene Werte(Temperatur,Spannung usw.) aus einem Überwachungsbaustein. Diese Werte sollen in einem Flash abgelegt werden. Könntest du mir evtl sagen wie man da am besten vorgeht? Sonst funktioniert ja alles, weiß nur nicht wie ich am besten bei dem SPI vorgeh und ihnm erstmal konfiguriere Wäre nett wenn du mir weiterhelfen könntest
Hat mir keinen wenigstens einen kleinen Tipp, wie man da vorgeht? Hab mir schon mehrere Beispiele angeschaut um das grundprinzip bisschen zu verstehen, aber kann das trotzdem nicht für meine Anwendungen umsetzen. Mit was fange ich denn am besten an?Die Initialisierung steht soweit. bräuchte nur noch die funktionen fürs lesen und schreiben. Ist das das ähnliche Prinzip wie beim I2C? grüße
Mir ist offen gestanden nicht klar worin eigentlich dein Problem liegt. Bist du noch mit dem SPI zugange? Lesen und Schreiben sind ja jeweils nur Zweizeiler. Bei dem at45db im geposteten Code geht es um die Funktionen at45_readBlock(), at45_writeBlock() und at45_doSomeWork(). Gut, das mit dem doSomeWork() ist etwas seltsam. Es geht aber auch mit nur einem Aufruf:
1 | void at45_writeBlock_sync(uint32_t addr, const uint8_t* src, uint16_t length) |
2 | {
|
3 | at45_writeBlock(addr, src, length); |
4 | while (!at45_doSomeWork()); |
5 | }
|
Ein readBlock_sync() gibt es schon. Wenn dir der Code zu kompliziert ist, welche Art von Hilfe stellst du dir dann vor?
Hallo let, Die lese und schreib routinen hab ich soweit hinbekommen. Hab das genaue Problem in einem anderen thread hoffentlich genauer beschreiben.
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.