6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Sat Nov 23, 2024 7:50 am

All times are UTC




Post new topic Reply to topic  [ 178 posts ]  Go to page Previous  1 ... 7, 8, 9, 10, 11, 12  Next
Author Message
PostPosted: Tue Oct 17, 2023 3:58 pm 
Offline

Joined: Fri Mar 18, 2022 6:33 pm
Posts: 491
I've been working on putting together Blue August's I/O board. I actually finished the first construction stages a week or so ago, but then I had to leave town and didn't get a chance to do much testing. I haven't hooked up the serial port or keyboard circuit yet; I thought a good first step would be to get the VIAs working.
Attachment:
20231017_095949.jpg
20231017_095949.jpg [ 3.76 MiB | Viewed 10368 times ]
Attachment:
20231017_100024.jpg
20231017_100024.jpg [ 2.61 MiB | Viewed 10368 times ]
After some fussing with the glue logic the VIAs are working at 16MHz. The ALS520/521s are a bit slower than I'd hoped; the board only runs at 15MHz using them. But, after adding a bank of 1k pull-up resistors and switching out the ALS520 for an F521 I have working I/O ports. :D

I think I must be cutting it pretty fine in terms of VIA_CS timing, so I'm not sure how much margin I have for operating conditions. It's about 70ºF in my workshop. Maybe at some point I'll fire a hair-dryer at the board and see how long it takes before it starts crashing!

_________________
"The key is not to let the hardware sense any fear." - Radical Brad


Top
 Profile  
Reply with quote  
PostPosted: Tue Oct 17, 2023 4:49 pm 
Offline

Joined: Sat Oct 09, 2021 11:21 am
Posts: 718
Location: Texas
Do I see correctly that your VIA's are on a separate board connected with ribbon cables?

I am by no means an expert in going fast, but I figure that having something like that would increase noise or ringing? Even short cables can do that. [ Well, all cables/traces can do that I guess. ]

Was your goal to run the VIA's at that speed too? It's neat to see of course!

Maybe I missed it, but what is the "ALS520" vs. "F521"? Is this what you mean? (https://media.digikey.com/pdf/Data%20Sh ... 20,521.pdf)

Glad to see you are still working on this, good outcomes! :)

Chad


Top
 Profile  
Reply with quote  
PostPosted: Tue Oct 17, 2023 5:36 pm 
Offline

Joined: Fri Mar 18, 2022 6:33 pm
Posts: 491
Hi Chad!

sburrow wrote:
Do I see correctly that your VIA's are on a separate board connected with ribbon cables?
That's correct. The ACIA is on there too, but it's not doing anything yet.

Quote:
I am by no means an expert in going fast, but I figure that having something like that would increase noise or ringing? Even short cables can do that. [ Well, all cables/traces can do that I guess. ]
Not very much. I think this is partly because the kynar wire-wrap wire has such low impedance that you can basically ignore it, and partly because I have a robust ground return network. The ribbon cables are 20-wire cables, but only carry 10 signal wires. The other 10 wires are all GND return wires, so every signal wire is next to at least one (and usually two) ground wires, as recommended by the Primer. Unless a single run of wire starts getting into antenna territory (8 inches or so, IIRC) there's not much to worry about. There are a few places where I hit ~6 inches for individual wires that I was worried might cause some, but they all look OK on the scope.

Edit: Just to say that, if those long wires *had* been problematic, it's not too difficult to twist a ground wire along with the signal wire, which will usually clear things up. This is what I do with long wires on breadboards to get long-distance signal integrity.

Quote:
Was your goal to run the VIA's at that speed too? It's neat to see of course!
Yep, that was the whole point of the design: to run the VIAs off of the constant clock (at RAM speed) so that their timers aren't messed up when the CPU slows down for slow I/O (ROM, ACIA).

Quote:
Maybe I missed it, but what is the "ALS520" vs. "F521"? Is this what you mean? (https://media.digikey.com/pdf/Data%20Sh ... 20,521.pdf)
Yeah, except mine are TI parts. The first versions of this design (Peanutbutter-1, earlier Blue August tries) used HC688 for I/O decoding, which is far too slow for any kind of overclocking. The ALS520 has internal pullup resistors, which I thought might save me some soldering, but was also slightly too slow, so I ended up with an SN74F521.

_________________
"The key is not to let the hardware sense any fear." - Radical Brad


Top
 Profile  
Reply with quote  
PostPosted: Tue Oct 17, 2023 6:16 pm 
Offline

Joined: Fri Jul 09, 2021 10:12 pm
Posts: 741
Nice, very tidy looking boards too! Are the empty sockets related to the missing keyboard circuit, or something else?


Top
 Profile  
Reply with quote  
PostPosted: Tue Oct 17, 2023 8:08 pm 
Offline

Joined: Fri Mar 18, 2022 6:33 pm
Posts: 491
Thanks George! The 3 empty sockets on the top left are for the keyboard circuit: two `595 shift registers and a `14 hex inverter. The 2 empty sockets on the right are for a MAX232 and baud-rate generator oscillator can. The single already-populated socket on the right is an HC11 3-input AND gate that is managing IRQ\ sources.

_________________
"The key is not to let the hardware sense any fear." - Radical Brad


Top
 Profile  
Reply with quote  
PostPosted: Wed Oct 18, 2023 11:57 am 
Offline

Joined: Sat Oct 09, 2021 11:21 am
Posts: 718
Location: Texas
Paganini wrote:
as recommended by the Primer


Yes. It is THE Primer indeed :) Nowhere else have I seen such a detailed explanation than on Garth's Primer.

Cool! Glad everything is working so well. It'll be exciting to see what you can do with all these new capabilities on the new board!

Chad


Top
 Profile  
Reply with quote  
PostPosted: Mon Oct 23, 2023 8:31 pm 
Offline

Joined: Fri Mar 18, 2022 6:33 pm
Posts: 491
Continuing on with adding well tested and understood functionality from previous projects, I've adjusted PAGIMON to run on Blue August, and attached an LCD to the general I/O pins (Port A of VIA2). Encouragingly, it started right up first try!
Attachment:
File comment: Baby steps!
20231023_162223.jpg
20231023_162223.jpg [ 3.71 MiB | Viewed 10248 times ]
This makes Blue August interactive (or, it will do as soon as I cobble together a keyboard adapter) which will give me much more freedom in testing and troubleshooting future additions.

_________________
"The key is not to let the hardware sense any fear." - Radical Brad


Top
 Profile  
Reply with quote  
PostPosted: Wed Oct 25, 2023 11:38 am 
Offline

Joined: Sat Oct 09, 2021 11:21 am
Posts: 718
Location: Texas
Paganini wrote:
Continuing on with adding well tested and understood functionality from previous projects, I've adjusted PAGIMON to run on Blue August, and attached an LCD to the general I/O pins (Port A of VIA2). Encouragingly, it started right up first try!
Attachment:
20231023_162223.jpg
This makes Blue August interactive (or, it will do as soon as I cobble together a keyboard adapter) which will give me much more freedom in testing and troubleshooting future additions.


I love it when old code works right off without much modification. That's good news!

So if you are 'cobbling' things together, eventually you'll also add in your video circuitry, right? :)

Chad


Top
 Profile  
Reply with quote  
PostPosted: Wed Oct 25, 2023 1:32 pm 
Offline

Joined: Fri Mar 18, 2022 6:33 pm
Posts: 491
sburrow wrote:
So if you are 'cobbling' things together, eventually you'll also add in your video circuitry, right? :)


Yep! That will require a whole 3rd story board. :)

_________________
"The key is not to let the hardware sense any fear." - Radical Brad


Top
 Profile  
Reply with quote  
PostPosted: Wed Oct 25, 2023 2:00 pm 
Offline

Joined: Mon Jan 19, 2004 12:49 pm
Posts: 984
Location: Potsdam, DE
Three storeys? You'll need planning permission for that, then :mrgreen:


Top
 Profile  
Reply with quote  
PostPosted: Wed Oct 25, 2023 10:43 pm 
Offline

Joined: Fri Mar 18, 2022 6:33 pm
Posts: 491
Another mini-update! I finished up the keyboard circuit yesterday and today. The hardware worked fine immediately, but it took me a while to realize that the reason I wasn't reading any key-presses is that when I updated the firmware addresses for VIA #1 in my code I changed all of the Fs to 9s, instead of changing all of the As to 9s! ($7FA0 -> $7F90, not $79A0). Oops. :oops:

Sadly, as I've added functionality to the I/O board, I've come across some timing glitches and have had to slow down to 12.6MHz. The system doesn't crash at higher speeds (the main board still runs at 16MHz just fine all on its own), but I get some display errors. For example, I have a little test editor program that lets you type around on the LCD screen. It displays a message "Welcome to TE!" when you jump to it. At faster speeds the message isn't reliably displayed. Sometimes I get "lcome to TE!" or "e lcome to TE!" and so on. I'm not sure if this is the VIA occasionally not being selected by the rising edge of Ø2 and therefore just missing out on a character write, or if it's an LCD communication error. I'm inclined to think the first one, but I haven't investigated too closely yet. It definitely seems like a marginal timing issue.... some days it works better than others!

_________________
"The key is not to let the hardware sense any fear." - Radical Brad


Top
 Profile  
Reply with quote  
PostPosted: Wed Oct 25, 2023 11:58 pm 
Offline
User avatar

Joined: Thu May 28, 2009 9:46 pm
Posts: 8507
Location: Midwestern USA
Paganini wrote:
Sadly, as I've added functionality to the I/O board, I've come across some timing glitches and have had to slow down to 12.6MHz. The system doesn't crash at higher speeds (the main board still runs at 16MHz just fine all on its own), but I get some display errors.

Does the unit have a means to wait-state I/O accesses?

_________________
x86?  We ain't got no x86.  We don't NEED no stinking x86!


Top
 Profile  
Reply with quote  
PostPosted: Thu Oct 26, 2023 5:41 am 
Offline

Joined: Mon Jan 19, 2004 12:49 pm
Posts: 984
Location: Potsdam, DE
Is the start up delay on the LCD set in software, and if so, does the software know how fast it's running? It the initial pause on many LCD chipsets is insufficient, weird stuff happens...

Neil


Top
 Profile  
Reply with quote  
PostPosted: Thu Oct 26, 2023 1:32 pm 
Offline

Joined: Fri Mar 18, 2022 6:33 pm
Posts: 491
BigDumbDinosaur wrote:
Paganini wrote:
Sadly, as I've added functionality to the I/O board, I've come across some timing glitches and have had to slow down to 12.6MHz. The system doesn't crash at higher speeds (the main board still runs at 16MHz just fine all on its own), but I get some display errors.

Does the unit have a means to wait-state I/O accesses?


It does; but the VIAs run off of the fast clock. (That was the initial point of Jeff's clock stretcher, after all - to let the VIAs run at a constant fast clock so their timers are not interfered with, while the CPU slows down for slow I/O).

_________________
"The key is not to let the hardware sense any fear." - Radical Brad


Top
 Profile  
Reply with quote  
PostPosted: Thu Oct 26, 2023 1:41 pm 
Offline

Joined: Fri Mar 18, 2022 6:33 pm
Posts: 491
barnacle wrote:
Is the start up delay on the LCD set in software, and if so, does the software know how fast it's running? It the initial pause on many LCD chipsets is insufficient, weird stuff happens...


Yes, and sort of. I tuned the delay loop to be 1ms at 1MHz. You pass the number of ms you want to delay to the delay subroutine when you call it, and it will run the loop that many times. Then I defined a constant that is set to the system clock speed, so at higher frequencies the routine repeats the 1MHz delay more times. There's a little bit of overhead from the extra loop so that, e.g., at 16MHz a 100ms delay lasts just a bit longer than 100ms compared with running at 1MHz when the 100ms delay is fairly precise. But in no case is the delay *too short,* since the LCD data sheet says "wait at least X microseconds." :)

_________________
"The key is not to let the hardware sense any fear." - Radical Brad


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 178 posts ]  Go to page Previous  1 ... 7, 8, 9, 10, 11, 12  Next

All times are UTC


Who is online

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