6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Sun Nov 24, 2024 1:43 am

All times are UTC




Post new topic Reply to topic  [ 7 posts ] 
Author Message
PostPosted: Sun Apr 19, 2015 5:41 pm 
Offline
User avatar

Joined: Sun Sep 08, 2013 10:24 am
Posts: 740
Location: A missile silo somewhere under southern England
While I wait for the rest of the parts to try my hand at RS232, I've been thinking about displays.
I've now got an LCD to work, but I'm more interested in getting output on a monitor.
Is this overly complex to do? If not, I'm thinking of mapping one of the banks of RAM in my current design to 32KB of dual port SRAM
(two of these). I then will be able to allow by the CPU and the video circuitry to talk to the RAM at the same time. Not sure what ICs will do the trip for video circuitry though.
Another way would be to do what the BBC Micro does and use an octal bus transceiver (use a 74AC245 instead of an LS one) to isolate the RAM from the bus and then have the video circuitry access to RAM on the low part of PHI2.


Top
 Profile  
Reply with quote  
 Post subject: Re: VGA
PostPosted: Sun Apr 19, 2015 8:04 pm 
Offline
User avatar

Joined: Sun Oct 13, 2013 2:58 pm
Posts: 491
Location: Switzerland
Hi banedon,

As mentioned here (the post contains the schematic) http://forum.6502.org/viewtopic.php?f=12&t=3097&p=37400&hilit=vga+controller#p37400 I have already done a VGA text display using a IDT7134 4kbyte dual-port RAM and a ATMEGA1248P as video controller. As you can see the glue-logic only consists of a 74HC166 and a 74HC573 (no AC needed in fact). The AVR MCU is slightly over clocked but so far I have not seen any issues.

I also use this controller to boot-strap my ROM-less SBC. Reset of the 65xx SBC is controlled by the AVR MCU (Line /RES Pin 3 on PORTD). The AVR MCU can also write to the DP-RAM and after a reset on the 65xx side the decoder maps the DP-RAM to the top memory ($Fxxx) and some lower RAM ($400 to $BFF in my case, but this is not important, it just must be below the ROM region) this is done via a R-S-Latch that is cleared by /RES. The AVR loads a small boot-loader into the DPRAM and then releases /RES. The boot-loader is a small program that communicates via the DP RAM with the AVR. The AVR then sends a ROM image to the 65xx. During this stage the upper region is write enabled, so the 65xx loads it's own ROM image. Once the ROM image has been transferred the AVR signals to the 65xx to continue. Continue means set the R-S-Latch to activate the ROM image and disable DP-RAM at $Fxxx and then the 65xx executes a JMP ($FFFC) to start the normal reset procedure of the 65xx ROM-Image.

By the way the IDT7007 is a 32kbyte dual-port RAM in the same package as the IDT7006. So you will need only one.

cheers

Peter


Top
 Profile  
Reply with quote  
PostPosted: Tue Apr 21, 2015 9:12 pm 
Offline
User avatar

Joined: Sun Sep 08, 2013 10:24 am
Posts: 740
Location: A missile silo somewhere under southern England
Thanks for the advice, Peter.
I've had a look on Farnell's & Mousers' websites and cannot seem to find an ATMEGA1248P. It looks like a 16bit uC? If so I'm not sure that I'll be able to program one of those. I have an AVR Dragon, but I've read somewhere that there amy be a restriction on 32/16bit devices. Might be the software though.


Top
 Profile  
Reply with quote  
PostPosted: Wed Apr 22, 2015 5:28 am 
Offline
User avatar

Joined: Sun Oct 13, 2013 2:58 pm
Posts: 491
Location: Switzerland
Hi banedon, it's a ATMega1284P http://www.atmel.com/devices/atmega1284p.aspx, a simple 8-bit MCU. I took this one because of it's large Flash so I could place all the different character ROMs and the default 65xx ROM image, a total of 30kbyte, into it. Should be supported by the AVR Dragon as are all the 8-bit MCUs of ATMEL at least it is in the list http://www.atmel.com/tools/avrdragon.aspx?tab=devices of the supported MCUs.


Top
 Profile  
Reply with quote  
PostPosted: Wed Apr 22, 2015 5:41 pm 
Offline
User avatar

Joined: Sun Sep 08, 2013 10:24 am
Posts: 740
Location: A missile silo somewhere under southern England
Cheers. I cannot seem to find that one anywhere to purchase.
BTW did you have to create your own fonts or did you get a pack or something similar?


Top
 Profile  
Reply with quote  
PostPosted: Wed Apr 22, 2015 7:38 pm 
Offline
User avatar

Joined: Sun Oct 13, 2013 2:58 pm
Posts: 491
Location: Switzerland
Really, I can't believe that. This is a most common AVR MCU. Mouser has it and on ebay several sellers have it e.g. http://www.ebay.co.uk/itm/MCU-8BIT-AVR-128K-FLASH-40PDIP-Part-ATMEGA1284P-PU-/271422978490?pt=LH_DefaultDomain_3&hash=item3f3211f9ba, just search for "ATMEGA1284P".

I took the font from an Apple IIe character ROM (at the end I want to make the current project to look like an Apple IIe but on a much smaller footprint). You can also take the CGA character ROM as 8bit did for his video terminal. As the character display interrupt service routine has a very tight timing I keep several versions of the CGROM in Flash. One for 80-column display, two for 40-column display, one for the left and one for the right half of the character and then I have two sets which are inverted for a range of 64 characters so I can have these characters flash on the screen, this gives a total of 18 copies of the basically same CG ROM.


Top
 Profile  
Reply with quote  
PostPosted: Wed Apr 22, 2015 8:09 pm 
Offline
User avatar

Joined: Sun Sep 08, 2013 10:24 am
Posts: 740
Location: A missile silo somewhere under southern England
cbscpe wrote:
Really, I can't believe that. This is a most common AVR MCU. Mouser has it and on ebay several sellers have it e.g. http://www.ebay.co.uk/itm/MCU-8BIT-AVR-128K-FLASH-40PDIP-Part-ATMEGA1284P-PU-/271422978490?pt=LH_DefaultDomain_3&hash=item3f3211f9ba, just search for "ATMEGA1284P".

I took the font from an Apple IIe character ROM (at the end I want to make the current project to look like an Apple IIe but on a much smaller footprint). You can also take the CGA character ROM as 8bit did for his video terminal. As the character display interrupt service routine has a very tight timing I keep several versions of the CGROM in Flash. One for 80-column display, two for 40-column display, one for the left and one for the right half of the character and then I have two sets which are inverted for a range of 64 characters so I can have these characters flash on the screen, this gives a total of 18 copies of the basically same CG ROM.

I honestly did look, but obviously not close enough. I was checking on farnell and mouser and at the time mouser came back with nothing at all. Oh well.
Thanks for the advice on the character rom - I'll see if I can grab a copy somewhere, although I might go for the one in the BBC Micro's SAA5050 chip if I can get at it. Or I could just straight out use the SAA5050.


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 7 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 51 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron