Hallo Leute, ich habe eine Frage zur SPI Schnittstelle von ATMEL AT91SAM7X... Serie. Ist es möglich eine PAGE WRITE SEQUENZ bei EEPROM mit diesem Controller zu realisieren? Das heißt nach dem die CS runer auf LOW geht, praktisch ein unendlich langes Datenpaket mit maximal 8MHz zu senden, ohne dass die CS Leitung zwischen durch auf HIGH geht (auch wenn nur für eine Takperidode) bzw. Pausen auf der CLK Leitung entstehen. Das Problem bei einigen Mikrokontrollern ist, dass die SPI Framegröße meist begrenzt ist (8-32 Bit). Nach dem eine Datenpaket gesendet wurde, geht die CS Leitung automatisch auf HIGH und CLK wird angehalten. Man kann also höchstens einen Takt später wieder mit nächsten Paket beginnen. Beim Ansteuern von einigen EEPROMS ist ein solchen Verlhalten unzulässig. Man kan dsicherlich über I/O Pins eigenes Protokoll machne, doch ob die Frequenzen von 8 Mhz erreichbar sind, ist fraglich!! Danke im Vorauß für die Hilfe!
na wenn es Dein Eprom mitmacht: Steuere CS über ein anderes Pin. per SPI kannst Du ohnehin immer nur Byte für BYte 'rauslassen.. Also Pin rücksetzen (1 Takt) -> soviele Bytes rauslassen, wie in die Page passen -> Pin setzen (1 Takt) - sollte zeitlich unkritisch sein, weil der Eprom danach ohnehin Zeit braucht für seinen Page-Write-cycle. "Unbegrenzt mit 8MHz schreiben" wird wohl nicht uneingeschränkt gelten.
Also das wäre mit sicherheit eine Lösung. Doch wie sieht die CLK Leitung nach eine Paket aus? Entsteht da bei ATMEL eine 1 Clock breite Lücke?
höchstwahrscheinlich gibt es so eine Lücke (Du brauchst ja Zeit, um per SPIF festzustellen, daß 1 Byte 'raus ist, und dann mußt Du das nächste ins SPDR nachladen). Sollte dem EPROM aber nichts ausmachen, der wartet geduldig aufs nächste Clock.
>na wenn es Dein Eprom mitmacht: Steuere CS über ein anderes Pin. per SPI >kannst Du ohnehin immer nur Byte für BYte 'rauslassen.. Also Pin >rücksetzen (1 Takt) -> soviele Bytes rauslassen, wie in die Page passen >-> Pin setzen (1 Takt) - sollte zeitlich unkritisch sein, weil der Eprom >danach ohnehin Zeit braucht für seinen Page-Write-cycle. "Unbegrenzt mit >8MHz schreiben" wird wohl nicht uneingeschränkt gelten. nixwisser.... der Name ist Programm. Natürlich geht das. Suche im Datenblatt man nach 'CSAAT', mit dem Bit kannst du in der SPI-Unit bewirken, dass CS nach dem Transfer von 8..10 Bits aktiv bleibt.
Was passiert aber wenn ich während des Transfers Daten in SPDR nachlade? Bei 50 MHz Taktfrequenz hat der Prozessor 6 Takte um etwas parallel zu machen. Es ist in Atmel Datenblatt etwas schwamig beschrieben, aber theoretisch ist genug Zeit um die Daten in den Schieberegsiter zu transferieren und neuen SPI Frame zu satrte ohne, dass CLK anhält. Sorry, dass ich so blöd fragen muss. Hätte normalerweise einfach nachgemessen und ausprobiert, doch ich muss bevor ich mir ei Board kauf speziel dieses Detail wissen.
Das kann ich nicht genau sagen, aber üblicherweise überträgt man größere Datenmengen mit Hilfe des DMA-Controllers.
>Ist DMA-Transfer deterministisch?
was verstehtst du im zusammenhang mit dma-transfer unter
deterministisch?
du kannst mit dem pdc (so heißt der dma controller beim at91) bis zu
64kbyte große datenblöcke an die peripherie übergeben und diese kümmert
sich um die ausgabe auf der gewünschten schnittstelle.
gruss
gerhard
Ich meine damit, dass ich vorhersehen möchte was die SPI schnittstelle in jedem Prozessortakt macht um die Werte Zeitlich zuordnen zu können. Ist es bei DMA möglich?
>Ist es möglich eine PAGE WRITE SEQUENZ bei EEPROM mit diesem Controller >zu realisieren? >Ich meine damit, dass ich vorhersehen möchte was die SPI schnittstelle >in jedem Prozessortakt macht um die Werte Zeitlich zuordnen zu können. >Ist es bei DMA möglich? welchen zusammenhang haben deine beiden o.a. Aussagen? was ist deine problemstellung? gruss gerhard
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.