SPI für uC-->Flash konfigurieren

Gast #1181354
Lesenswert?
• ▲
▼
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
Gast #1181552
Lesenswert?
• ▲
▼
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.
Gast #1181588
Lesenswert?
• ▲
▼
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.
Gast #1181635
Lesenswert?
• ▲
▼
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
Gast #1182126
Lesenswert?
• ▲
▼
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
Gast #1182755
Lesenswert?
• ▲
▼
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?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren