Hallo Leser/in,
beim Xmega kaue ich gerade an EBI herum. Meine Frage: hat das schon mal
jemand erfolgreich in Betrieb genommen?
Die Initialisierung bei mir:
1 | #include "ebi_driver.h"
|
2 | ...
|
3 | //memory usage: 0x0000 - 0x0FFF internal I/O stuff
|
4 | // 0x1000 - 0x1FFF EEPROM
|
5 | // 0x2000 - 0x3FFF internal SRAM
|
6 | // **GAP**
|
7 | // 0x6000 - 0x6FFF FPGA, CS0 area
|
8 |
|
9 | #define MEM_ADDR 0x6000
|
10 | #define MEM(addr) ((uint8_t *) MEM_ADDR)[addr]
|
11 | ...
|
12 |
|
13 |
|
14 |
|
15 | PORTH.OUT = 0xFB; // active low = high value except ALE
|
16 | // normally: OVERRIDE OF IO WHEN EBI IS USED
|
17 |
|
18 |
|
19 | EBI_Enable( EBI_SDDATAW_8BIT_gc,
|
20 | EBI_LPCMODE_ALE1_gc,
|
21 | EBI_SRMODE_ALE1_gc,
|
22 | EBI_IFMODE_3PORT_gc );
|
23 |
|
24 |
|
25 |
|
26 | // Initialize LPC SRam
|
27 | EBI_EnableLPC(&EBI.CS0,
|
28 | EBI_CS_ASPACE_4KB_gc,
|
29 | (void*)&MEM(0),
|
30 | EBI_CS_SRWS_7CLK_gc);
|
Gewünscht: 3 Port Mode, Mux Adr/Daten (AD0..AD7) auf Port J, Port H für
Steuersignale, Port K für Adr A8..A15 das Ganze bei 0x6000 mit 4k
Boundary und 8Bit Daten. Stichwort SRAM im Datenblatt.
Ich habe fix an der Adresse 0x6000 einen anderen Chip, der gibt bei
besagter Adresse eine ID aus - mit einem Mega64 funktioniert das auch
alles wunderbar.
Wenn ich lesend darauf zugreife, so kommen die Steuersignale richtig,
aber ich kann nichts einlesen. Ebenso schreibend kommt CS0, ALE, WR etc
richtig; die Adressierung (das was ich am Oszi sehe) ist aber meines
Erachtens falsch, da Bit 13, Bit 14 (ab A0) in der Adrleitung High
werden müssten.
Freue mich über Antworten,
Gruß
Helmut