Weird problem with a 16550

For discussing the 65xx hardware itself or electronics projects.
User avatar
BigDumbDinosaur
Posts: 9428
Joined: 28 May 2009
Location: Midwestern USA (JB Pritzker’s dystopia)
Contact:

Re: Weird problem with a 16550

Post by BigDumbDinosaur »

Yuri wrote:
BigDumbDinosaur wrote:
Also conspicuous by its absence is any definition for RAM.  Is there no RAM in this system?  Also, it would be very helpful if you posted a full schematic, not bits and pieces.
RAM is the lower 32K of the 64K address space, and is controlled directly by the A15 line. I'll draw up a full schematic; lost the previous one.

You’ve got a timing skew problem with that arrangement.  You should use the GAL to generate all chip selects so timing is consistent for all devices:

Code: Select all

FIELD addr = [A15..10];

RAM = addr['h'0xxx..7xxx];
x86?  We ain't got no x86.  We don't NEED no stinking x86!
User avatar
Yuri
Posts: 372
Joined: 28 Feb 2023
Location: Texas

Re: Weird problem with a 16550

Post by Yuri »

BigDumbDinosaur wrote:
Yuri wrote:
BigDumbDinosaur wrote:
Also conspicuous by its absence is any definition for RAM.  Is there no RAM in this system?  Also, it would be very helpful if you posted a full schematic, not bits and pieces.
RAM is the lower 32K of the 64K address space, and is controlled directly by the A15 line. I'll draw up a full schematic; lost the previous one.

You’ve got a timing skew problem with that arrangement.  You should use the GAL to generate all chip selects so timing is consistent for all devices:

Code: Select all

FIELD addr = [A15..10];

RAM = addr['h'0xxx..7xxx];
I don't doubt that there's a skew there, and the plan has always been to replace this breadboard with a PCB with a 1508 to do all the address decoding.

Be that as it may however, I would think that if I am manually pulsing the clock and MANUALLY sending the write signal to the 16C550; presuming the skew isn't on the order of seconds, I doubt that's the issue here.

Again, everything works perfectly, just the UART throws a tantrum with whatever it's receiving from the 65816, and ONLY when I use the 65816. If I put the 6502 back in, it works flawlessly.

The VIA works fine, the RAM is working fine, the LCD works fine, the ROM is working fine; ONLY the 16C550C is having an issue. A 6551 does not have a problem, a SC26C92 has no issues.

I'm tempted to throw it behind the VIA and see what it does with that. =P

Schematic attached as promised without and with PLD version.

I omitted the bypass caps, but they are in fact there.
Attachments
6502 Breadboard.pdf
(382.34 KiB) Downloaded 32 times
User avatar
Yuri
Posts: 372
Joined: 28 Feb 2023
Location: Texas

Re: Weird problem with a 16550

Post by Yuri »

I noticed a couple of things I forgot to add/change in the schematic. Fixed here.
Attachments
6502 Breadboard Corrected.pdf
(382.28 KiB) Downloaded 36 times
plasmo
Posts: 1273
Joined: 21 Dec 2018
Location: Albuquerque NM USA

Re: Weird problem with a 16550

Post by plasmo »

If you plan to use 1508, then logic can all go into 1508 and you only need to connect RAM, ROM, 16550, 6522, and 6502/65816. You can switch between 6502 or 65816 by reprogramming the 1508. I think you’ve enough experiences with the breadboard to go straight to pc board with 1508 and fix whatever problems you may encounter via reprogramming of 1508. Bring out unused 1508 pins to jumper pads to help you with debugging and making design changes as needed.
Bill
User avatar
BigDumbDinosaur
Posts: 9428
Joined: 28 May 2009
Location: Midwestern USA (JB Pritzker’s dystopia)
Contact:

Re: Weird problem with a 16550

Post by BigDumbDinosaur »

plasmo wrote:
If you plan to use 1508, then logic can all go into 1508 and you only need to connect RAM, ROM, 16550, 6522, and 6502/65816...Bring out unused 1508 pins to jumper pads to help you with debugging and making design changes as needed.

The 1508 is gross overkill for this project.  With the little bit of logic he has, even the 1504 would be overkill.  At least the 1504 comes in a smaller package.
x86?  We ain't got no x86.  We don't NEED no stinking x86!
plasmo
Posts: 1273
Joined: 21 Dec 2018
Location: Albuquerque NM USA

Re: Weird problem with a 16550

Post by plasmo »

Yep, I agree 1508 is overkill, but it can offer significant diagnostic and reconfiguration capabilities—even an UART in case 16550 didn’t work.

Edit: Looking at my own designs, 1508 enables significant simplification so 6522, 16550, ROM are removed and the remaining hardware is just 6502, fast RAM, and a mass storage that runs 25Mhz or faster.
User avatar
Yuri
Posts: 372
Joined: 28 Feb 2023
Location: Texas

Re: Weird problem with a 16550

Post by Yuri »

plasmo wrote:
Yep, I agree 1508 is overkill, but it can offer significant diagnostic and reconfiguration capabilities—even an UART in case 16550 didn’t work.

Edit: Looking at my own designs, 1508 enables significant simplification so 6522, 16550, ROM are removed and the remaining hardware is just 6502, fast RAM, and a mass storage that runs 25Mhz or faster.
I have no doubt a 1508 in the context of this breadboard project would be crazy overkill.

Those extra pins would be handy for some other ideas I had in mind for using the CPLD. If I were just using it purely for decode logic, I could get away with a 1502 actually.

I'll post that in a different thread when I get a chance.
Post Reply