HomeForumsWhat's newResources 
 
 
Weird behavior of register read on custom cartridge
cafe-alpha - Oct 8, 2015
 cafe-alpha Oct 8, 2015
I'm currently making a custom cartridge with a CPLD connected in a similar way as FT245RL in USB dev cart (= D0-D7 lines + few address lines + RD/WR0 connected to CPLD).
I implemented a (very) simple register I/O module in the CPLD, and the first 2 bytes of the register map return respectively 0x55 and 0xAA when read.

As only D0-D7 are connected, data on even address should return 0xFF. Hence, expected read contents is "FF 55 FF AA", but on some Saturns (*1), I get "55 55 AA AA" when read.

(*1) It works correctly on some test Saturn, but fail on other ... depends on Saturn/BIOS revision ?!?

Does somebody (Antime ?) have an idea about the origin of this problem ?
And is there a countermeasure (A-bus related setting) to get it working correctly everywhere ?

 antime Oct 8, 2015
The Saturn firmware version is irrelevant, I'm guessing timing variations. You could try playing with the A-bus wait state settings and see if that changes anything. A logic analyzer would be very helpful here.

 cafe-alpha Oct 9, 2015
OK, I will play with SCU setting registers
What's weird is that it works on some Saturns, and bug on others ... I will log SCU version in order to see if it depends on SCU version or not.

 cafe-alpha Oct 20, 2015
I tried behavior with some values for AREF and ASR0, and it surprisingly worked when setting theses registers both to 1 !
I tried some other values according to info in ST-097-R5-072694 document, without success. So the weird point remains, but at least it works