Atom Lite+

 

So I was going through my sam stuff and found my Atom lite+ project files again. PCB production is much cheaper nowadays and I'm thinking of doing a new revision with an actual solder mask and silkscreening :)

Since PCB's come in multiples I'll have a few extra spares If there's any interest I could get some parts and build a few.

When I've build and proof tested this new revision I'll also put it up on GitHub for people to build their own.

 

This is time to implement SuperAtom:
As AtomClassic but, instead of alternately reading/writing from/to &F6 and &F7 can used flip-flop circuit, which reset write to &F5. For read or write can be used fast routine as with AtomLite. 
Order of reading bytes from word can be selectable with jumper or switch.
In 8-bit mode will be read byte by byte.

actually I have an idea for your 'SuperAtom' :D (don't have a project name yet)

  •  1MB battery backuped SRAM. Also addressable in ROM areas.
  • 2KB Dual port RAM one side uncontended access for Z80 other side access for ATMEGA4809 MCU.
  • ATMEGA MCU interfacing with (Micro)SD-Card (Z80 LDIRs data to/from Dual port RAM)
  • ATMEGA MCU interfacing to 16-bit stereo DAC (TDA1543) (burst player LDIRs to Dual Port RAM)
  • ATMEGA MCU as bootrom (Z80 boots preloaded code from Dual port RAM to load in a new SAM ROM)
  • ATMEGA interfacing with RTC (also through DUAL port RAM)

I like to use only 5V DIP chips but It may be a tight fit as I wan't to build it into an original SAM Case (I'm sitting on a bunch of them I got from Nev Young years ago). If it doesn't fit or the interface needs additional addressbus / databus buffering. I'd probably go all out with SMD and 3.3V logic.

I'm still in design phase so it will be a while before I have a working prototype. Until then, just treat it as an 'crazy' idea for now :)

In reply to by Mr.Blinky

 

Minus:
-It's not faster than AtomLite.
-Not compatible with AtomClassic or AtomLite or Trinity.
-No IDE (HDD, CD, IDE/CF, IDE/SD)

Plus:
-Fast RAM instead ROM
-16-bit stereo sample player with minimal CPU load
-? Programmable fast co-processor.
-? Change the palette register per 4T (79 colors per line).

It's some as Symbiote with eZ80 processor from Colin Piggot.

 

> -It's not faster than AtomLite.

I think it can be faster then AtomLite. There are some neat instructions that can be used like CP (HL) for busy checks, could even use the stack to load data. Also data is read from /written to fast RAM and the code will also be in fast RAM. Only delays when accessing internal RAM.

-Not compatible with AtomClassic or AtomLite

You've got a point there. It's Feature vs compatibility. If I change my mind and value the latter more I'll probaby change the design AtomLite++ :)

>-? Programmable fast co-processor.

A lot is possible with the extra processor but I'd like to keep it as an simple IO processor for storage and sound. If I wanted to add a  power full co processor I'd probably would go for the new RP2040 but I think everything would become too un SAM-ish with such an powerful processor.

>-? Change the palette register per 4T (79 colors per line).

Maybe I missed a new descovery. But I don't see a way to do that.

>-It's some as Symbiote with eZ80 processor from Colin Piggot

Need to read up on that.

In reply to by Mr.Blinky

"Maybe I missed a new descovery. But I don't see a way to do that."

Data transfer via DMA (6 MHz) from FastRAM to the palette register &F8 runs at speed 1Byte / 8T.
The DMA setting is R3T+W3T.
It's 48 color changes per scanline as Spectrum512 on AtariST.
ASIC allows write to ports &F8-&FF once every 4T.
My mistake, ASIC allows write to ports &F8-&FF once every 8T.

Setting the palette register per 4T is just my assumption.
But I don't know if your design will allow this. That's why the question mark.

My design doesn't use DMA. The MCU communicates through a dual port RAM.

The main reason I want to use a dual port RAM is that on powerup/reset the MCU can keep the Z80 in reset and load bootloader code inro  this RAM and upon completion reset is released and Z80 boots the bootloader code in the dual port RAM which loads the 'ROM' from MCU flash or SD-Card.

Communication with the SD-Card / DAC also is done through ther dual port RAM to simplify address decoding.