Gast
#730272
Hi! ich habe hier ein Board mit einem Atmel SAM9 drauf und SDRAM (16MB, 32Bit). Es ist kein Entwicklungsbord,ein bekannter hatte noch welche und da hab ich eins zum spielen abstauben können. Er meint Hardwareseitig sei alles in Ordnung. Jetzt hab ich mich direkt mal ran gemacht und ist soweit auch gut schnell ABER: Wenn ich in der Software das SDRAM auf 16Bit stelle und ein Array of Byte/Short/Int anlege, das von 1..200 beschreibe (also index [1]=2,[2]=3..) und mir das im Debugger anschaue, habe ich auch immer genau exakt diese Werte im SDRAM stehen. Wenn ich jetzt auf 32Bit stelle, habe ich irgendwie matsch. Short Werte sind statt (0x20000000)=0001 (0x20000001)=0002 (0x20000001)=0003 (16Bit) (0x20000000)=0001 (0x20000001)=0001 (0x20000002)=0002 (0x20000003)=0002 also an Index [0] ist bei 16Bit die 1, bei 32Bit auch. An Index [1] ist bei 16Bit die 2 (korrekterweise), bei 32Bit aber wieder [0]. Es ist bei 32Bit immer doppelt vorhanden. Byte Werte sind ganz komisch angeordnet, Integer Werte stimmen aber... Wenn ich ein kleines Blink PRogramm ins SDRAM lade, dann läuft das aber... Ist vielleicht bei der Konfig was falsch? (Column=8, Rows=12, Bank=4, CAS=2, Bus=32Bit, TWR=2, TRC=7, TRP=2, TRCD=2, TRAS=5, TXSR=8). Refresh Counter = 207 Takt ist 118MHz intern und MCK = CPU / 4 also 29MHz (testweise). 29MHz dann auch SDRAM Clock. 2 von den RAM Bausteinen sind drauf: http://fp.cse.wustl.edu/cse362/Datasheets/sdram.pdf Beschaltung ist so wie im Datenblatt vom SAM9 als Beispiel angegeben. Danke!