SidecarTridge TOS Emulator + Booster
Posted: 17 Dec 2024 10:30
Hi all,
As we move into 2025, I plan to make my gadgets booster- and accelerator-friendly. I’ve started with the TOS Emulator—because, well, why not?
The good news: it works perfectly out of the box at 8MHz and almost works at 16MHz. Unfortunately, it doesn’t work at 32MHz, but there will be more later. (By the way, the Booster works flawlessly with Exxos’ Fast TOS, though I occasionally see some random memory issues, which I suspect are my fault.)
Wiring Configurations:
8MHz (OK):
- SW wire to GND
- 32MHz wire open
- CE wire open
8MHz (OK):
- SW wire to GND
- 32MHz wire connected to U405 pin 4
- CE wire open
16MHz (OK):
- SW wire open
- 32MHz wire connected to U405 pin 4
- CE wire open
- (Odd crash occurs when enabling the Blitter.)
32MHz (KO):
- SW wire open
- 32MHz wire connected to U405 pin 4
- CE wire connected to CE of the TOS Emulator custom board (ROM Emulator)
Current Observations:
I’ve optimized the firmware to handle speeds below 40ns, but with no success. I suspect the issue might be the additional latency from the level shifters. However, with nothing active on the bus, I’m scratching my head trying to confirm this.
I’m also wondering if connecting both CE signals—one from the Booster and one from the Atari motherboard—could be causing interference. I hooked up a logic analyzer but couldn’t draw any conclusions: I see a single CE low at startup, but nothing happens—not even garbage data.
What I Know So Far:
I’ve reviewed the Booster development logbook, and using OE instead of CE should not pose any issues—the design and firmware support it.
My next steps would involve:
1. Breaking out the oscilloscope: Yeah, I know... I should start there...
2. Testing a more powerful RP235x microcontroller: The RP235x is twice faster than RP2040 but it has an ugly bug that impacts my designs.
3. Trying faster level shifters (74ACHT245 instead of the slower 74HCT245): I use the ACHT versions in the Multi-device, which is (was?) overkill, but due to size constraints I move to the more generally available HCT versions.
Before diving in, I want to confirm if I might be missing something obvious or doing something wrong. Any insights or suggestions would be greatly appreciated.
Some info about my stuff:
https://docs.sidecartridge.com/sidecartridge-tos/
https://docs.sidecartridge.com/sidecartridge-rom/
Merry Christmas to all!
Diego
One more thing!: I wanted to implement a digital switch (8Mhz/32Mhz) connecting the SW signal to one of the available microcontroller GPIOs.But first things first.
As we move into 2025, I plan to make my gadgets booster- and accelerator-friendly. I’ve started with the TOS Emulator—because, well, why not?
The good news: it works perfectly out of the box at 8MHz and almost works at 16MHz. Unfortunately, it doesn’t work at 32MHz, but there will be more later. (By the way, the Booster works flawlessly with Exxos’ Fast TOS, though I occasionally see some random memory issues, which I suspect are my fault.)
Wiring Configurations:
8MHz (OK):
- SW wire to GND
- 32MHz wire open
- CE wire open
8MHz (OK):
- SW wire to GND
- 32MHz wire connected to U405 pin 4
- CE wire open
16MHz (OK):
- SW wire open
- 32MHz wire connected to U405 pin 4
- CE wire open
- (Odd crash occurs when enabling the Blitter.)
32MHz (KO):
- SW wire open
- 32MHz wire connected to U405 pin 4
- CE wire connected to CE of the TOS Emulator custom board (ROM Emulator)
Current Observations:
I’ve optimized the firmware to handle speeds below 40ns, but with no success. I suspect the issue might be the additional latency from the level shifters. However, with nothing active on the bus, I’m scratching my head trying to confirm this.
I’m also wondering if connecting both CE signals—one from the Booster and one from the Atari motherboard—could be causing interference. I hooked up a logic analyzer but couldn’t draw any conclusions: I see a single CE low at startup, but nothing happens—not even garbage data.
What I Know So Far:
I’ve reviewed the Booster development logbook, and using OE instead of CE should not pose any issues—the design and firmware support it.
My next steps would involve:
1. Breaking out the oscilloscope: Yeah, I know... I should start there...
2. Testing a more powerful RP235x microcontroller: The RP235x is twice faster than RP2040 but it has an ugly bug that impacts my designs.
3. Trying faster level shifters (74ACHT245 instead of the slower 74HCT245): I use the ACHT versions in the Multi-device, which is (was?) overkill, but due to size constraints I move to the more generally available HCT versions.
Before diving in, I want to confirm if I might be missing something obvious or doing something wrong. Any insights or suggestions would be greatly appreciated.
Some info about my stuff:
https://docs.sidecartridge.com/sidecartridge-tos/
https://docs.sidecartridge.com/sidecartridge-rom/
Merry Christmas to all!
Diego
One more thing!: I wanted to implement a digital switch (8Mhz/32Mhz) connecting the SW signal to one of the available microcontroller GPIOs.But first things first.