6545 CRT Controller design

Dec 17, 2004 18 Replies

I trying to add a video display to a 6502 based computer I built and wish to use 6545 CRT controller chip.



I would like to use Transparent Addressing (PH1/PH2 Interleave) mode. But have not found a schematic example of this on-line.



I think there was something published in a Synertek application note, but I don't have it. There may also be details in CRT Controller Handbook (by Gerry Kane) - published inn 1980.



Anybody have sample schematic of 6545 using Transparent Addressing (PH1/PH2 Interleave) mode???


Thanks


That'll be because something that old won't be found online most likely.

Why did you want to build a 6502 based computer btw ?

Graham

Isn't that the trick where the 6545 is clocked with the same clock as the

6502, but then inverted? So the two chips can share the same memories without the need of arbitration?

With (color!) graphic LCD displays showing up in all kind of consumer devices- cordless (not cell) phones, $200 inkjet printers, etc., that may change. Depending on your definitions of "small" and "graphics", of course.

Best regards, Spehro Pefhany

"it's the network..." "The Journey is the reward" speff@interlog.com Info for manufacturers: http://www.trexon.com Embedded software/hardware/analog Info for designers: http://www.speff.com

...snip ......

There is a quite a bit of 6502 based info online.

formatting link

But not a lot of detail about 6545 schematics.

I have already built a 6502 SBC computer and am using 6551 ASIC with RS232 port and terminal program on PC to communicate. Building video & keyboard interface will free me from need of a peecee.

I have no specific need for another 6502 based computer (I have about a dozen Vic-20s).

My purposes of 6502 based project are as follows;

(1) Learn about older technology (fundamentals still apply to new stuff) (2) Use spare parts from "junk box" (3) Keep hobby costs down

Although I have info on CRT controller with AVR, my preference is for ware based projects vs software (PIC) based projects

I have

Thanks for feedback.

My understanding of the Transparent Addressing (PH1/PH2 Interleave) mode, is that I will not need to use address mux to deal with memory contention issues.

Video ram R/W should be clocked from 01 source generated from 6502 CPU. (inverse of 02 clock)

I believe that in this mode, video memory is addressed though registers settings in 6545 and video memory does not occupy address space of CPU.

This should only require minimal use of 6502 address space for the

6545 chip select decode & register select.

Maybe i'm all wrong on this.

Thanks, you may over estimate my level of competence.

Brian

I did this with a 6845 and 6809 twenty years ago. You need an address mux to select which of the uP or 6845 addresses goes to the ram plus a little bit of logic to make sure the uP and 6845 are operating with the correct phase.

It's rather simple, so you should be able to design it yourself.

Regards, Allan

Looks like EVERYBODY designed the Dragon 32/ Tandy Color Computer...

Paul Burke

Try searching

formatting link
for schematics of Commodore computers. If I remember correctly, some these use the 6545.

snip...

Thanks for the links.

I went to that site earlier this week and sent an e-mail to the contact address, but have not heard back yet.

I missed the other 6502 project diagrams, I'll have another look.

Thanks again.

I did it around 1985 too with 6809 and 6845. I took a 16K block of static memory and switched the address lines between the microprocessor address lines and the 6845 address lines.

The MPU clock was 1 MHz, so I got out 8 bits for display every microsec. The sequence was : switch RAM address lines to 6845, output enable RAM, wait until RAM has good data then clock data byte into a parallel load shift register. The shift register has an 8MHz clock, and clocks the data out serially. The serial data is the video output. I ran the whole thing off a

16 MHz crystal and produced all the signals I needed with shift registers and counters. Nowadays, a PAL etc would do the logic.

I may have used too many parts, but I did calculate all the setup and propagation times carefully. It is magic - write a byte into RAM and dots appear on screen.

It is a great exercise in logic design, if you are interested, but nowadays, if I wanted to get a micro going, I would put on a serial port and use a PC as a terminal. In fact, I would use a chip like the AVR AtMega64 which has the serial port on board ! Its fairly rare that you want a small micro to do graphics.

Roger

Yes, see:

formatting link
formatting link

Some diagrams are missing due to limited web space but you can get them on request. The text is there though, and easier to read than scanned sheets.

The interleave technique is also used in the 6502 computer project elsewhere on the site. You might find that interesting.

It isn't complicated. Just use a multiplexer for the address lines, and transparent latches for the data bus.

I recommend using 14.318... MHz as your master crystal, because they are cheap and when the character rate is 1.79 MHz this make a 40 character display fill a TV screen nicely. The BBC micro ran at 2 MHz but the display area narrowed leaving wide margins either side. They moved to 1.79 MHz timing for their later Electron.

K.

BTW I also have a scan of an Elektor CRTC board design, circa 1982. Let me know if you would like that.

Ha! Mine was almost the same (which should be a hint to the OP), except that the MPU + 6845 clock was 1.875MHz (I had the 'B' version parts). I only had 2k video ram (in a 6116; the 6264 was too expensive). Every 533ns I read 8 bits out of the ram and passed them to the 2716 character generator rom that produced the 8 bit line for the 74ls166 shift register, which clocked at 15MHz.

This was all done with one '74 dual ff (to sync the 6845 and 6809), one '166 shift register (for the video), one '163 (or 161) counter (to time the loads into the '166), and one gate package (might have been an '00). There were three '157 for the address mux.

There was a '374 to latch the data from the video ram, to give the character generator more setup time. In those days, eproms were very slow (~450ns) and I had to generate a new video byte every 533ns.

This produced an 80x25 display with PAL line and frame rates.

In my case, write a byte to ram and a character appeared on the screen.

.... once I had designed the font, converted the characters to hex in my head then typed them into the eprom programmer.

Oh, ay. And you try and tell the young people of today that, and they won't believe you!

Ditto.

Regards, Allan

The spam filter is set to delete everything except known contacts and messages with certain keywords like "Acorn" or "6502", etc. try again with

6502 in the title.

It was a little different. Instead of 74xx157 multiplexers for the video ram address, it used a crude hack with a tristate buffer (for the 6809 address) and resistors (for the 6845 address).

Regards, Allan.

.... or was the crude hack more like series resistors on the data lines from the video ram, instead of a tristate buffer. (I used a '245 for this in my design.)

Regards, Allan

I gather you can do it by programing the chip. The third bit of register R8 does the setting. You should set it to 1 and there you have your transparent mode. assuming you know how to program it. It shouldn't be hard figuring out how to connect the chip in transparent mode. I'd guess instead of being connected to the video circuits as in the Memory interleaving mode a connection would be made only to the system bus. The microprocessor unit shouldn't have any direct access to the video display ram.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required