6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Thu Nov 14, 2024 5:15 pm

All times are UTC




Post new topic Reply to topic  [ 12 posts ] 
Author Message
PostPosted: Sat May 04, 2024 10:26 am 
Offline

Joined: Wed Nov 16, 2011 9:39 am
Posts: 68
Hi again. Not sure if I should post in General or Hardware or not at all, but here goes :)

This week I received the PCBs for my 65C02 SBC design that has been in the works for several years (I am known for having long periods of hiatus). Being a complete novice at soldering, and not very confident in doing practical things in general, assembling the board was both a nerve-racking and interesting experience. Initially things went really slow but after a while I got the hang of it. There were some mishaps on the way but it actually did start on the first try. A very satisfying moment.

I call it the Jofmodore, a wordplay on my name and the maker of my favorite computers from when I was younger, and it is a pretty standard affair. Most of the design is based on Garth Wilson's excellent 6502 primer.

Enough talking, the specs are:

* 65C02 clocked at 3.6864 MHz
* 65C51 ACIA using the system clock as XTLI for 230400 baud (and to save board space)
* 65C22 VIA with two pinsockets for future experiments in expansion and for led-debugging
* 32 KB RAM (using an Alliance AS6C1008-55)
* 8 KB ROM (Microchip 28C64B)
* 4-layer board, a bit more costly but oh so nice when designing.

In parallel I have written an emulator in C so I can develop the BIOS and applications for it. The emulator has a rudimentary ACIA emulation over pseudoterminal. This way I already had a simple BIOS in place when the build was finished. The BIOS can do read and write from memory via terminal input but not much else at the moment.

Currently I am working on a simple protocol to transfer data to the board over serial. The pyserial library seems like a nice library so I might write a simple custom protocol for it.

Speaking of serial, the connector for the FTDI-cable was a terrible design decision (see images). It worked alright for the first few days but now the connection isn't very good. I need to rework that somehow to make it more sturdy.

I really like the choice of USB-B for power, feels very professional :) but in hindsight I question if it is really needed when you can get 5V over the FTDI-cable.

As I want it to become a "real" computer in the end, my intention longterm is to create some VGA graphics and audio synthesis for it as well. Already started thinking about a VGA circuit and how to interface with it with an external bus of some sorts.


Attachments:
IMG_9685.JPG
IMG_9685.JPG [ 683.13 KiB | Viewed 1440 times ]
IMG_9686.JPG
IMG_9686.JPG [ 861.34 KiB | Viewed 1440 times ]


Last edited by JohanFr on Sat May 04, 2024 10:34 am, edited 1 time in total.
Top
 Profile  
Reply with quote  
PostPosted: Sat May 04, 2024 10:31 am 
Offline

Joined: Wed Nov 16, 2011 9:39 am
Posts: 68
Oh and I hate machined pin-socket connectors. Already bent the legs on two 65C02s and one oscillator. Might switch to PLCC where applicable for my next board :)


Top
 Profile  
Reply with quote  
PostPosted: Sat May 04, 2024 11:56 am 
Offline
User avatar

Joined: Wed Feb 14, 2018 2:33 pm
Posts: 1485
Location: Scotland
Hello, welcome, etc.

Nice little board - Hope the software goes well. A simple monitor and EhBASIC ought to be trivial to implement, but you'll need more ROM for the far better (IMO) BBC Basic... (Or my TinyBasic - https://projects.drogon.net/gibl/ :-) )

I presume you're aware of the 65C21 Tx empty bug? The chip will always tell you it's sent that last byte, even when it hasn't ...

The USB power thing... I've found some USB serial interfaces (and PC USB host adapters!) are a little poor on their 5v supply - sometimes coming down to 4.8 ish - That appears to be an issue for my own '816 SBC and I only found out when powering it from my Laptop or the front-panel USB sockets on my PC - the rear panels ones, pcb mounted were ok... They're often powered via a polyfuse (self-resetting fuse) to prevent over current, rather than a decent USB power control IC found in better devices.

Cheers,

-Gordon

_________________
--
Gordon Henderson.
See my Ruby 6502 and 65816 SBC projects here: https://projects.drogon.net/ruby/


Top
 Profile  
Reply with quote  
PostPosted: Sat May 04, 2024 12:18 pm 
Offline

Joined: Wed Nov 16, 2011 9:39 am
Posts: 68
drogon wrote:
Hello, welcome, etc.

Nice little board - Hope the software goes well. A simple monitor and EhBASIC ought to be trivial to implement, but you'll need more ROM for the far better (IMO) BBC Basic... (Or my TinyBasic - https://projects.drogon.net/gibl/ :-) )

I presume you're aware of the 65C21 Tx empty bug? The chip will always tell you it's sent that last byte, even when it hasn't ...

The USB power thing... I've found some USB serial interfaces (and PC USB host adapters!) are a little poor on their 5v supply - sometimes coming down to 4.8 ish - That appears to be an issue for my own '816 SBC and I only found out when powering it from my Laptop or the front-panel USB sockets on my PC - the rear panels ones, pcb mounted were ok... They're often powered via a polyfuse (self-resetting fuse) to prevent over current, rather than a decent USB power control IC found in better devices.

Cheers,

-Gordon


I think my self introduction is long buried in the archives because before last week my previous post was in 2011 :)

As I have been lurking this forum for quite some time while designing the board I have picked up on the TX empty bug so I am currently using a sleep-loop after each character on TX. I don't mind and if I were to make some code in the future that could use those cycles for something else to gain performance I think it's easily computable. For RX I have implemented a IRQ-driven circular buffer as specified in the primer, seems to work well. I am mostly having troubles with the serial emulation in my emulator at the moment, the board itself seems to work well at 230400 bps. Long term, the serial interface is meant to be mostly a transport of code to the SBC (as soon as I get VGA in place).

I haven't checked the voltage coming from the cable but you are probably right. It's however convenient to only have to unplug one cable when pulling out the ROM from the SBC but perhaps it's safer to also use the Apple charger powered USB-cable for longer use.

I chose only 8K for now as I have plenty of those chips lying around. Basically (no pun intended) my current needs are primarily getting preassembled software onto the board without pulling the EEPROM. For future revisions I might switch to a 32KB togglable RAM/ROM scheme using an AT22V10C for address decoding as I have been successful in programming one with the TL866II+.

/Johan


Top
 Profile  
Reply with quote  
PostPosted: Sat May 04, 2024 1:22 pm 
Offline

Joined: Sat Nov 26, 2016 2:49 pm
Posts: 27
Location: Tejas
Nice build! Have you seen these (https://www.st.com/en/memories/m48z35.html)? Great fun if you'd like to have your RAM be persistent.


Top
 Profile  
Reply with quote  
PostPosted: Sat May 04, 2024 2:09 pm 
Offline

Joined: Tue Sep 03, 2002 12:58 pm
Posts: 336
JohanFr wrote:
Oh and I hate machined pin-socket connectors. Already bent the legs on two 65C02s and one oscillator.


There's a knack to getting chips into turned-pin sockets. The way I do it is to position the chip on the socket and press gently on the middle - not enough to push it in (or bend the pins), but enough that the pins will start to enter the holes when they're perfectly aligned. Then run a thumbnail down each side of the chip with a little bit of pressure to nudge the pins sideways. When a pin is ready to find its hole, you'll feel it pop into place. When they're all in, the whole chip will sink down, and it's ready to be pressed fully in. The key is to be gentle until every pin is perfectly aligned, and to let them tell you when they are.


Top
 Profile  
Reply with quote  
PostPosted: Sat May 04, 2024 3:10 pm 
Offline
User avatar

Joined: Fri Dec 12, 2008 10:40 pm
Posts: 1007
Location: Canada
DavidL wrote:
Nice build! Have you seen these (https://www.st.com/en/memories/m48z35.html)? Great fun if you'd like to have your RAM be persistent.


Nice, but not cheap. I'll add one to my next Digi-Key order to play with.

_________________
Bill


Top
 Profile  
Reply with quote  
PostPosted: Sat May 04, 2024 4:29 pm 
Offline

Joined: Wed Nov 16, 2011 9:39 am
Posts: 68
John West wrote:
JohanFr wrote:
Oh and I hate machined pin-socket connectors. Already bent the legs on two 65C02s and one oscillator.


There's a knack to getting chips into turned-pin sockets. The way I do it is to position the chip on the socket and press gently on the middle - not enough to push it in (or bend the pins), but enough that the pins will start to enter the holes when they're perfectly aligned. Then run a thumbnail down each side of the chip with a little bit of pressure to nudge the pins sideways. When a pin is ready to find its hole, you'll feel it pop into place. When they're all in, the whole chip will sink down, and it's ready to be pressed fully in. The key is to be gentle until every pin is perfectly aligned, and to let them tell you when they are.


Thank you, this is good advice. I think there is a tool that properly bends the legs of throughhole components to the right angle. Right now I am rolling the chips on the table to make them straightish. I feel there might be a lack of precision/uniformity in that process :)


Top
 Profile  
Reply with quote  
PostPosted: Sat May 04, 2024 4:47 pm 
Offline

Joined: Fri Mar 18, 2022 6:33 pm
Posts: 490
Nice looking board - very compact! I don't see a MAX232 on there anywhere; how are you managing the level translation for your serial connection?

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


Top
 Profile  
Reply with quote  
PostPosted: Sat May 04, 2024 4:59 pm 
Offline

Joined: Tue Sep 03, 2002 12:58 pm
Posts: 336
JohanFr wrote:
I think there is a tool that properly bends the legs of throughhole components to the right angle. Right now I am rolling the chips on the table to make them straightish.

There is such a tool. I have never used one. I have always used a table. With a little practice you can get them perfectly straight and parallel every time.
You can get tools for bending axial through-hole resistor leads as well. I've always used the end of a finger. Again, with a bit of practice you get used to how each spacing feels, and it's surprisingly accurate. Maybe my fingers happen to be exactly the right size.


Top
 Profile  
Reply with quote  
PostPosted: Sat May 04, 2024 5:12 pm 
Offline

Joined: Wed Nov 16, 2011 9:39 am
Posts: 68
Paganini wrote:
Nice looking board - very compact! I don't see a MAX232 on there anywhere; how are you managing the level translation for your serial connection?


Thanks! I managed to stay below 100x100 mm in size to save production cost. I am using an USB-to-5V FTDI-cable which is connected directly to the 65C51 via pinheaders (that's the connector I need to redesign as it doesn't make very good contact - the cable is connected in one of the photos).


Top
 Profile  
Reply with quote  
PostPosted: Sat May 04, 2024 7:19 pm 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8540
Location: Southern California
drogon wrote:
I presume you're aware of the 65C21 Tx empty bug?

er... '51, not '21.

Quote:
The USB power thing... I've found some USB serial interfaces (and PC USB host adapters!) are a little poor on their 5v supply - sometimes coming down to 4.8 ish - That appears to be an issue for my own '816 SBC and I only found out when powering it from my Laptop or the front-panel USB sockets on my PC - the rear panels ones, pcb mounted were ok... They're often powered via a polyfuse (self-resetting fuse) to prevent over current, rather than a decent USB power control IC found in better devices.

I'd say it's even worse than that.  When I designed a USB-powered circuit a few years ago to kick the voltage up to charge a trio of lithium batteries for 12V, I initially assumed that the USB port would give 5V at up to half amp; but even without plugging into a computer, just connecting a cable to a workbench power supply, I found that the resistance in the common, cheap, thin cables and connectors that the customer would probably be using had enough resistance to pull the voltage down substantially even well below that half-amp target.  I used a microcontroller to control the current and to monitor and balance the batteries' voltages and stop the charging when they're all at the right voltage.  Initially I powered the microcontroller off the USB.  What was happening though was that at half amp, the resistance in the cord and connectors pulled the voltage down so low the microcontroller would go into brown-out reset.  I had to limit the circuit's input current to a quarter of an amp.  (In the next revision, I powered the microcontroller from the battery side instead, off a regulator that brought the voltage down to 5V.)  If you only need 10 or 20mA, you'll be fine; but if you were to power an LCD backlight at 200 or 400mA, it'll pull the USB voltage way down.

_________________
http://WilsonMinesCo.com/ lots of 6502 resources
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?


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

All times are UTC


Who is online

Users browsing this forum: No registered users and 12 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: