Using an RA8876 (LCD controller) as a Hi-res graphics card?

General discussions or ideas about hardware.
Post Reply
keli
Posts: 97
Joined: Tue Aug 22, 2017 1:34 pm

Using an RA8876 (LCD controller) as a Hi-res graphics card?

Post by keli »

I recently found this Arduino shield that can achieve hi-res HDMI output: http://www.techtoys.com.hk/BoardsKits/H ... shield.htm



It works by using a smart LCD controller to generate the graphics and then another chip that encodes the RGB data into a HDMI signal.
The microcontroller connected tot he shield can send high level commands to the RA876 chip such as draw line, copy raster and render text, so the performance is not limited by the slow controller.

The RA8876 allows communicating with it through different means. The Arduino boards use SPI, but it also provides 8 and 16-bit parallel interfaces (6800 and 8080 bus protocols.) -- The makers of the shield even added a header for accessing these alternative communication interfaces.

So in theory, one could use the shield directly in combination with an Atari ST. In order to do that, one would have to create an additional board that:
  • Does address decoding for accessing the registers on the RA8876.
  • Contains level converting buffers for the data bus, as the RA8876 signals are 3.3V only.
  • Optional: I2C chip to talk to the HDMI converter, as otherwise the resolution is hardcoded at the default setting stored on the board's serial ROM.
  • Write a driver for fVDI to use the card.
The biggest challenges for a driver is that the frame buffer will not be directly mapped into the address space of the 68k processor. Everything will have to go through the registers of the RA8876, but then high level drawing operations can be implemented using only a few writes. (Set coordinates and color registers, then tell the RA8876 to draw a primitive, etc.) -- One could even think of this as "VDI implemented in hardware" ;)

The chip even has an internal blitter for copying data around on the board's SDRAM chip (and even from flash ROM.)
It has a mode where the operation is started, and the controller supplies the source data through the interface -- All shifting and palette lookups will be handled by the RA8876.

Is this something people would be interested in?
User avatar
Cyprian
Posts: 389
Joined: Fri Dec 22, 2017 9:16 am
Location: Poland

Re: Using an RA8876 (LCD controller) as a Hi-res graphics card?

Post by Cyprian »

keli wrote: Thu Aug 08, 2019 12:32 pm Everything will have to go through the registers of the RA8876, but then high level drawing operations can be implemented using only a few writes.
what about bitmap graphics? is it possible to push it somehow to the RA8876 RAM? and how fast?
Lynx I / Mega ST 1 / 7800 / Portfolio / Lynx II / Jaguar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
DDD HDD / AT Speed C16 / TF536 / SDrive / PAK68/3 / Lynx Multi Card / LDW Super 2000 / XCA12 / SkunkBoard / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
http://260ste.atari.org
keli
Posts: 97
Joined: Tue Aug 22, 2017 1:34 pm

Re: Using an RA8876 (LCD controller) as a Hi-res graphics card?

Post by keli »

Cyprian wrote: Fri Aug 09, 2019 5:54 pm what about bitmap graphics? is it possible to push it somehow to the RA8876 RAM? and how fast?
Yes you basically either set up a memory destination or a bitBlit operation with one source set to "MCU", and then just write consecutive words to the data register. The RA8876 increments the destination address automatically, so it should be possible to push data pretty fast.

Edit: I found a link to an API spec for the chip: http://www.raio.com.tw/data_raio/RA8876 ... .2_eng.pdf
User avatar
Cyprian
Posts: 389
Joined: Fri Dec 22, 2017 9:16 am
Location: Poland

Re: Using an RA8876 (LCD controller) as a Hi-res graphics card?

Post by Cyprian »

nice, we can use then the BLiTTER to copy data to the data register.
I have one concern about the price:
https://www.buydisplay.com/default/seri ... 76-for-due
$68 only for that module and probably should be added/buy an interface between ST and that module
Lynx I / Mega ST 1 / 7800 / Portfolio / Lynx II / Jaguar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
DDD HDD / AT Speed C16 / TF536 / SDrive / PAK68/3 / Lynx Multi Card / LDW Super 2000 / XCA12 / SkunkBoard / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
http://260ste.atari.org
keli
Posts: 97
Joined: Tue Aug 22, 2017 1:34 pm

Re: Using an RA8876 (LCD controller) as a Hi-res graphics card?

Post by keli »

Cyprian wrote: Sat Aug 10, 2019 10:11 pm nice, we can use then the BLiTTER to copy data to the data register.
I have one concern about the price:
https://www.buydisplay.com/default/seri ... 76-for-due
$68 only for that module and probably should be added/buy an interface between ST and that module
That's a different module that includes an LCD screen. The one I linked to is $49 and has a HDMI encoder instead.

And yes as I mentioned in the first post, someone needs to design an adapter board for the ST.
keli
Posts: 97
Joined: Tue Aug 22, 2017 1:34 pm

Re: Using an RA8876 (LCD controller) as a Hi-res graphics card?

Post by keli »

I've attached a schematic of what I have done so far.

I still need to add capacitors and a way to get power to the adapter board. (Which needs 3.3V as well as 5V)

... and then there is the issue of laying things out and soldering everything. Sadly my ST and soldering iron is in storage, as I don't have room for it at the moment. SIgh, some day I'll get myself a litte retro-lab :)

Note that I designed this as a board that can be plugged into the Mega ST extension port, but since that is basically the pinout of the 68000 it could also be the basis for an adapter board that piggibacks on top of the CPU.
Attachments
adapter_schematic.pdf
(274.05 KiB) Downloaded 224 times
Post Reply

Return to “HARDWARE DISCUSSIONS”