Firefox6502 wrote:
Thanks for the heads up BDD. I have read up on the 65C51 bug. In the last 2 weeks I had changed my mind several times on which way to go, use a: 65C51, or an NXP UART, or even implement SPI which will open up a world of other chips (including UARTs)!
Some history which will help show you where my mind is/was at... initially when I first started reading up and designing my SBC, my 2 main requirements were:
1. Use only available/in production chips, i.e. no NOS chips
2. Use only DIP chips
Now these rules may or may not make sense to some of you hardware guys. But my background is software (i.e. programming) only, and I haven't designed anything serious with electronics. Plus I learnt electronics back in '91. So I figured, keep my first SBC design simple and use only "through hole" components. There will be bugs I fear. And I will have to diagnose these with my weak electronics skills.
Recently encountering the 65C51 bug and reading up about it, then reading comments about the 65C51's archaic design and architecture had got me re-thinking my second rule. I swayed which way to go, and had decided to stick with the 65C51. But your post has got me re-thinking it all over again. And I do like the idea of using a modern and working UART chip. So I will overcome my fear of SMD components, and look into implementing SPI and having SMD components in my SBC.
I like Daryl's SPI interface so will go with this. And GARTHWILSON did mention using SPI and the MAX3100 UART chip.
I agree on not pursuing the recent W65C51 for obvious reasons (I found the bug initially). I actually have over a dozen of them in DIP and PLCC format, but there's really no value in them at this stage. If, for some reason, you still want to use one, try and locate an older Rockwell R65C51-P4... I have a small quantity of these and while they're rated at 4MHz, they appear to work okay at 5MHz, but no more.
If you want to with DIP parts, you can likely find some NXP SCC2691 UARTs... I used these on my last SBC and it's a great single channel UART and rock solid, albeit CPU clock speeds are only good to 6MHz. If you're like most of us, the SBC you're working on may be your first, but highly unlikely it will be your last. Once you have a working system, you'll find things you like about it and probably more things you don't like about it... and that will have you looking to build the next one... with different features, some different hardware bits and such. It just happens.
So, I'd still vote for a simple system... DIP parts are fine, CPU clock speed reasonable and use it as a learning experience for both hardware and software. If you start writing a fair amount of assembler code for it, you'll likely be able to move much of it to your next SBC. In short, don't overthink your first SBC... once you have one working, you'll certainly change your mind on what you would like as your next one