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

All times are UTC




Post new topic Reply to topic  [ 8 posts ] 
Author Message
 Post subject: DIA, another TTL 6526
PostPosted: Tue May 19, 2020 8:48 am 
Offline
User avatar

Joined: Fri Nov 09, 2012 5:54 pm
Posts: 1431
First: thanks to daniMolina for investigating what a 6526 timer does.

The DIA (Discrete Interface Adapter) TTL 6526 isn't meant to be a "competition" to Dani's 74HCT6526 project.


Had some time at hands, so I did schematics and PCB layouts for what I think might be "a 20MHz TTL implementation of the 6526".
Not sure, if the timers are cycle exact, and shift register and TOD might be not too compatible to a real 6526 chip.
Point is, that we don't have a dissection of the 6526 silicon... yet.
// But I wanted to have this TTL 6526 stuff off my desk before trying to aim for the SID again.

I'm sort of retired, so somebody else (Drass) would have to build and to test that hardware.


We have three PCBs:
One PCB contains two 16 Bit timers and two 8 Bit I\O ports,
one PCB contains what I think should work as TOD. //It's also a "test balloon" for the carry chain of a hypothetical 100MHz TTL CPU.
and one PCB contains the bus interface, the shift register, and the rest.


Tried to group 8 resistors of the same value together, so one could solder precision DIP16 sockets into the PCBs and plug resistor networks into them.

We have a control signal PHICEN (with a 4k7 pullup resistor), which is a HIGH_active count enable for the two 16 Bit timers,
so one could run the timers at 1MHz in a 20MHz system for software compatibility reasons.

If there is a 0 to 1 transition on the /IRQ output, for speeding up the rising edge current is injected into /IRQ for one PHI2 cycle to reduce that ghost interrupt problem.
//One might want to tinker with the value of the related resistor.

Also, if port pins are configurated as outputs, current is injected into them on a 0 to 1 transition for one PHI2 cycle,
for disabling that feature just don't plug the two related resistor networks into the sockets.
//One might want to tinker with the values of these resistors, too.

By default, if a port pin is configurated as an output, the CPU reads from the port pins.
When closing the solder jumpers on the timers_ports PCB, the CPU reads from the data output latches instead,
what might be not exactly 6526 compatible, but increases the chances that something like "INC $DC00" still works at 20MHz.

Have fun.

Attachment:
DIA_TTL_6526.zip [593.69 KiB]
Downloaded 95 times


Attachment:
main_sr.png
main_sr.png [ 639.54 KiB | Viewed 1271 times ]

Attachment:
timers_ports.png
timers_ports.png [ 652.06 KiB | Viewed 1350 times ]

Attachment:
TOD.png
TOD.png [ 321.83 KiB | Viewed 1350 times ]


Edit:
A read from the status register clears the flags.
Maybe we should modify the design later to make sure that a read from the status register only clears the flags if PHICEN = HIGH...


Last edited by ttlworks on Mon Jul 13, 2020 5:29 am, edited 2 times in total.

Top
 Profile  
Reply with quote  
PostPosted: Tue May 19, 2020 2:07 pm 
Offline

Joined: Fri Mar 31, 2017 5:10 pm
Posts: 8
Location: Paris, France
Impressive :-)


Top
 Profile  
Reply with quote  
PostPosted: Tue May 19, 2020 4:01 pm 
Offline

Joined: Fri Jan 25, 2019 2:29 pm
Posts: 193
Location: Madrid, Spain
That is so beautiful!

And yes, I'm going to have plenty of fun with this. :)

Amazing work!


Top
 Profile  
Reply with quote  
PostPosted: Wed May 20, 2020 4:57 pm 
Offline
User avatar

Joined: Fri Dec 11, 2009 3:50 pm
Posts: 3367
Location: Ontario, Canada
This looks wonderful, Dieter. Would you be able to post the schematics as gif or png files, please? Not everyone is equipped with Eagle.

Quote:
If there is a 0 to 1 transition on the /IRQ output, for speeding up the rising edge current is injected into /IRQ for one PHI2 cycle to reduce that ghost interrupt problem.
//One might want to tinker with the value of the related resistor.

Also, if port pins are configurated as outputs, current is injected into them on a 0 to 1 transition for one PHI2 cycle
Cool. :)

I'm reminded of a related idea from Intel, although the objective was different. Some their chips feature a parallel port that's bidirectional, but they wanted to eliminate the associated Data Direction Register that we 65xx people are used to seeing. They wanted fewer registers, possibly because that meant the chip would need fewer address input pins -- I don't recall exactly. But the goal was to have a bidirectional port with only one location which the CPU could write to and read from.

They set it up so that when a read of the location occurred it would simply return the high or low state of the IO pins.

And when a write occurred, any bit written with a 0 would output a strong, low-impedance 0 on its pin. Any bit written with a 1 didn't output much of anything. But its pin would float high (0-to-1) because they'd included a weak pullup. In this state it could act as a (weak) output or as an input! Pretty clever, except 0-to-1 transitions would be rather slow. So they included a feature that sharpened 0-to-1 transitions by injecting extra current for one cycle only.

-- Jeff

_________________
In 1988 my 65C02 got six new registers and 44 new full-speed instructions!
https://laughtonelectronics.com/Arcana/ ... mmary.html


Top
 Profile  
Reply with quote  
PostPosted: Mon May 25, 2020 7:25 am 
Offline
User avatar

Joined: Fri Nov 09, 2012 5:54 pm
Posts: 1431
Jeff, sorry for the delay.

Schematics are looking a bit less beautiful.
Anyhow, schematics are only documentation for PCB layouts, pretty much like C is only documentation for machine code...

Adding monochrome PNG schematics as requested.

First: bus interface, shift register, etc:

Attachment:
main_sr1.png
main_sr1.png [ 21.87 KiB | Viewed 1173 times ]

Attachment:
main_sr2.png
main_sr2.png [ 24.68 KiB | Viewed 1173 times ]

Attachment:
main_sr3.png
main_sr3.png [ 18.83 KiB | Viewed 1173 times ]

Attachment:
main_sr4.png
main_sr4.png [ 21.59 KiB | Viewed 1173 times ]

Attachment:
main_sr5.png
main_sr5.png [ 18.3 KiB | Viewed 1173 times ]

Attachment:
main_sr6.png
main_sr6.png [ 8.46 KiB | Viewed 1173 times ]

Attachment:
main_sr7.png
main_sr7.png [ 18.42 KiB | Viewed 1173 times ]

Attachment:
main_sr8.png
main_sr8.png [ 16.27 KiB | Viewed 1173 times ]

Attachment:
main_sr9.png
main_sr9.png [ 8.04 KiB | Viewed 1173 times ]

Attachment:
main_sr10.png
main_sr10.png [ 6.91 KiB | Viewed 1173 times ]


Top
 Profile  
Reply with quote  
PostPosted: Mon May 25, 2020 7:29 am 
Offline
User avatar

Joined: Fri Nov 09, 2012 5:54 pm
Posts: 1431
Second: timers and I\O ports:

Attachment:
timers_ports1.png
timers_ports1.png [ 29.68 KiB | Viewed 1172 times ]

Attachment:
timers_ports2.png
timers_ports2.png [ 17.31 KiB | Viewed 1172 times ]

Attachment:
timers_ports3.png
timers_ports3.png [ 17.52 KiB | Viewed 1172 times ]

Attachment:
timers_ports4.png
timers_ports4.png [ 14.92 KiB | Viewed 1172 times ]

Attachment:
timers_ports5.png
timers_ports5.png [ 13.93 KiB | Viewed 1172 times ]

Attachment:
timers_ports6.png
timers_ports6.png [ 14.99 KiB | Viewed 1172 times ]

Attachment:
timers_ports7.png
timers_ports7.png [ 17.05 KiB | Viewed 1172 times ]

Attachment:
timers_ports8.png
timers_ports8.png [ 14.17 KiB | Viewed 1172 times ]

Attachment:
timers_ports9.png
timers_ports9.png [ 21.37 KiB | Viewed 1172 times ]

Attachment:
timers_ports10.png
timers_ports10.png [ 21.22 KiB | Viewed 1172 times ]

Attachment:
timers_ports11.png
timers_ports11.png [ 10.03 KiB | Viewed 1172 times ]

Attachment:
timers_ports12.png
timers_ports12.png [ 8.33 KiB | Viewed 1172 times ]


Top
 Profile  
Reply with quote  
PostPosted: Mon May 25, 2020 7:33 am 
Offline
User avatar

Joined: Fri Nov 09, 2012 5:54 pm
Posts: 1431
Third: what might (or might not) work as TOD:

Attachment:
tod1.png
tod1.png [ 12.05 KiB | Viewed 1171 times ]

Attachment:
tod2.png
tod2.png [ 19.12 KiB | Viewed 1171 times ]

Attachment:
tod3.png
tod3.png [ 11.85 KiB | Viewed 1171 times ]

Attachment:
tod4.png
tod4.png [ 10.49 KiB | Viewed 1171 times ]

Attachment:
tod5.png
tod5.png [ 8.31 KiB | Viewed 1171 times ]

Attachment:
tod6.png
tod6.png [ 8.81 KiB | Viewed 1171 times ]

Attachment:
tod7.png
tod7.png [ 13.04 KiB | Viewed 1171 times ]

Attachment:
tod8.png
tod8.png [ 14.62 KiB | Viewed 1171 times ]

Attachment:
tod9.png
tod9.png [ 16.53 KiB | Viewed 1171 times ]

Attachment:
tod10.png
tod10.png [ 7.71 KiB | Viewed 1171 times ]

Attachment:
tod11.png
tod11.png [ 5.8 KiB | Viewed 1171 times ]


Top
 Profile  
Reply with quote  
PostPosted: Wed May 27, 2020 6:10 am 
Offline
User avatar

Joined: Fri Nov 09, 2012 5:54 pm
Posts: 1431
Project abandoned due to 2014/40/EU.


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

All times are UTC


Who is online

Users browsing this forum: Google [Bot] and 73 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