SPI Schnittstelle bei ATMEL AT91SAM7X.

OP #811554
Lesenswert?
• ▲
▼
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!
Gast #811581
Lesenswert?
• ▲
▼
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.
Gast #811603
Lesenswert?
• ▲
▼
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.
Gast #811626
Lesenswert?
• ▲
▼
>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.
OP #811628
Lesenswert?
• ▲
▼
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.
Gast #811847
Lesenswert?
• ▲
▼
>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
Gast #812044
Lesenswert?
• ▲
▼
>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

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