Hallo,
ich kenne zwar den SJA1000 nicht und habe nur kurz ins dessen Datenblatt
geschaut:
er hat ja wohl nur 256 Byte Adressbereich (A0-A7). Wenn Du ihn also an
das Memoryinterface des 8515 hängst und es nur einschaltest, dann taucht
er eben alle 256 Byte wieder von vorn auf, weil ja die oberen Adressen
nicht dekodiert werden.
Wenn weiter nichts an das Memoryinterface ran soll kannst Du den Port
von A8-A15 umprogrammieren und als normalen Port nutzen.
Die Zuordnung its in der Tabelle im Datenblatt des Mega8515, habe ich
jetzt nicht zur Hand.
Wenn das Timings des SJA1000 zum Mega8515 passt, kannst Du auch CS des
SJA an A8 legen, dann mußt Du es nicht getrennt schalten. Ein Zugriff
auf 0x0000,
ßx0200, 0x0400 usw. selektiert ihn dann über A8 = L.
Den Bereich von 0x0000 bis 0x025F kannst Du dazu nicht nutzen, da liegt
das interne Ram. Du kannst also erst ab 0x300 (getrennter CS-Pin) oder
ab 0x400 mit CS an A8 benutzen.
Nach dem Datenblatt ist die längste Wartezeit bei RD Low to Data Output,
das sollte also eigentlich auch bei 16MHz AVR-Takt und CS an A8 ohne
Wait States gehen.
Doch noch schnell das Datenblatt des des Mega8515 befragt:
In MCUCR nur SRE auf 1,
EMCUR kann komplett 0 bleiben, wenn der SJA als einziges am
Memoryinterface hängt.
XMM0, XMM1, XMM2 kannst Du entweder alle auf 1 setzen, dann nur 8 Bit
Adresse und CS muß zu Fuß gesteuert werden oder XMM2 und XMM1 auf 1 und
CS an A8, dann ist PC2..7 noch frei verfügbar.
PS: ich beziehe mich natürlich auf die Anschlußweise eines SJA1000 an
einen Mega8515, wenn ich den da dranlöten wollte.
Wie Deine Platine verdrahtet ist und ob es da Abweichungen gibt, mußt Du
wohl selbst rausfinden...
Gruß aus Berlin
Michael