I turned off debugging (including any output to the USB serial port) and the reliability seems to have increased.
Anyway, I ran Norton disktest on both the virtual drives...
IMG_2894.jpeg
How the heck can I get a persistent read error at a specific block on a virtual drive?! It's not even that it's a place on in the file that's significant, the block contains drv=1, cyl=0, head=1, sectors 8, 9, 10 and 11 (of 16).
Re: General Stuff(tm)
Posted: 21 Jan 2023 14:10
by stephen_usher
Well, the virtual disks seem to be Mostly Harmless now... ;-)
Re: General Stuff(tm)
Posted: 21 Jan 2023 16:33
by rubber_jonnie
stephen_usher wrote: 21 Jan 2023 14:10
Well, the virtual disks seem to be Mostly Harmless now... ;-)
So is it working now?
Re: General Stuff(tm)
Posted: 21 Jan 2023 23:21
by stephen_usher
Well, it’s not bulletproof, I do still get corruption now and again.
Turning off all the debugging and output via the USB serial increased the reliability quite a bit, which is strange given that the computer should be essentially halted whilst the I/O wait pin is held low, which is what would be happening until the Pico releases it briefly.
What I need to investigate is the fact that quite often when it should be accessing the buffer (both A4 and A8 high) it’s accessing the latch (A4 low and A8 high). When I had the breadboard version I’d get spurious access to A4=0 and A8=0 instead and never what I’m seeing with this board. Similarly I’m never seeing 0/0. I don’t know if this is the real signal or the Pico mis-reading the pin.
Re: General Stuff(tm)
Posted: 22 Jan 2023 07:49
by rubber_jonnie
At least it's progress :)
I can't imagine the Pico would mis-read a pin, could there be some other reason?
Re: General Stuff(tm)
Posted: 22 Jan 2023 09:12
by stephen_usher
rubber_jonnie wrote: 22 Jan 2023 07:49
At least it's progress :)
I can't imagine the Pico would mis-read a pin, could there be some other reason?
That's what I'm going to look into today. I'll check if the 245 is correctly transferring the data from the 5V to the 3.3V bus. If that is then I'll look at the 373s which latch the addresses onto the bus.
Actually, I may swap the two 373s first as that's easy and quick.
Re: General Stuff(tm)
Posted: 22 Jan 2023 11:19
by stephen_usher
It's being mis-read by the Pico! The line is definitely always high when there's a buffer operation but often the Pico reads it as low for some reason.
Re: General Stuff(tm)
Posted: 22 Jan 2023 11:30
by stephen_usher
Just tried a different pin (GPIO16) as I had it spare and.. same thing. During the buffer read it's always high but the Pico is reporting low, but not all the time.
Re: General Stuff(tm)
Posted: 22 Jan 2023 13:31
by stephen_usher
OK, let's check this using a logic analyser, just to be totally sure...
Re: General Stuff(tm)
Posted: 22 Jan 2023 14:00
by stephen_usher
It's a good thing I did test with the logic analyser. Somehow the oscilloscope was missing the lows.
The LA output shows that, at least from the point of view of the card, latching the address from the main bus, the host is accessing the buffer at the wrong address for reading, some of the time. So, that can't be the source of the data corruption. Hmm...