View Single Post
Old 08 September 2021, 22:48   #35
saimo
Registered User
 
saimo's Avatar
 
Join Date: Aug 2010
Location: Italy
Posts: 787
Quote:
Originally Posted by Toni Wilen View Post
I can run the test this weekend (using floppy adapter)

I also have new logic analyzer (DSLogic U32Pro32) and scope (Siglent SDS2104X+) which both supports I2C decoding which should make it easy to see if there are any protocol errors.
That would be utterly cool!

Quote:
I'd like to have some explanation why some methods that you tried didn't work (but should have worked at least in theory)
One thing I did with this last rewrite was eliminating the longword accesses to $b80030 in order to read/write also $b80032 at the same time. The first versions (which did not work on real hardware) did access $b80030 and $b80032 separately (with byte reads/writes), but then, seeing what the kernel does by looking at the logs, I moved to longword accesses (although I never liked the inherent inefficiency: the direction for SCL needs to be always output and the direction for SDA needs to be input only when reading the ACKs or data) - I thought that the (Akiko-related) magic was changing data and direction at the same time. Given that such code worked on two real machines, that seemed to be right. Longword accesses work only under the assumption that the CPU has direct 32-bit access to Akiko registers, but I guess that's a given, otherwise C2P would be even worse; and that's indeed what can be seen in this schematics (address and data lines A(23:0) and D(31:0), respectively). However, before making this last rewrite, I decided to use word accesses, so now I write $b80032 only when strictly needed (which allows more efficient code) - after all, I really can't see why it should make any difference to access both registers at the same time.
Another thing I changed is SCL handling: at some point I had SCL preset to low (a bit difficult to explain in few words: basically, I was anticipating the first half of the clock), but I don't think it was a good idea (yet, if I remember correctly, that did work on some machines).

Quote:
But I am not sure if there is any easily accessible location to connect/solder required wires..
Luckily, the EEPROM area (just under Alice) is quite free from physical obstacles Check this picture out.
saimo is offline  
 
Page generated in 0.04589 seconds with 11 queries