AndrewP wrote:
A bit late to the party as it looks like you've got it working already.
Yea, I rewired the bread board and got it all working, going to tie it to a MAX232 and a 9-pin DSub for a "proper" serial port when I get a PCB made; but the serial USB cable I have does TTL levels, so the MAX232 wasn't required to check it.
Either way, I'm happy it works. I also have the interrupt routing through my 65C22 at the moment. I
THINK I know enough now (famous last words) to get it hooked back into the open drain interrupt directly on the 65C02. (Invert it, throw a diode and pull up resistor on there)
AndrewP wrote:
I'm intending to use the TL16C550D and finally received one a few days ago. And now I've got the
datasheet sitting next to me.
Whilst I intend to use it at 3.3V I notice the 16
C550 is rated at 5V VCC too.
At 5V:
V
IH = 3.5V
(from = 0.7 * VCC) V
IL = 1.5V
(from = 0.3 * VCC) V
OH = 4.0V
V
OL = 0.4V
And those values will work just fine with a 65
Cxx running at 5V.
Good to know for sure, those AC/DC charts is a bit of a mystery to me. I
think I kinda sorta understand them, but I have doubts in my mind that I'm ever reading them correctly. Notably because when I read them it seems like every IC shouldn't be able to work with every other IC, and that's clearly not correct.
AndrewP wrote:
If you do need to do 3.3V to 5V translation and know the direction (input or output) of the databus then a 74LVC4245, 74FCT4245 or similar will get the job done if pull resistors are too slow. You could also try an LSF0108 if you don't want to muck around with direction pins and aren't running at very high frequencies. (
Here is me complaining that an LSF0102 is rising to slowly at 25Mhz using a
(way to low) 330Ω pull-up).
I have a few 74LVC245s that I got from AdaFruit (I couldn't find them at Digikey or Mouser
), but haven't needed to use them JUST yet. The datasheet indicates they're pretty slow though, fine I would assume for GPIO pins off an Arduino, but not good for the 6/12MHz I am/want to run my 65C02 at.
Also, pull up resistors is a good question. I don't know how fast/slow those actually are. What are the general timing for these? Is it based on the value of the resistor? (E.g. 3.3K has X pull time, vs. 100K which has Y time?)
I'd ultimately like to put some on the data and address busses so I can start using the BE pin. Ultimate goal being to implement some sort of DMA controller, but also I have a few unmapped chunks of the memory space that'd like to have return some sort of predetermined value (zero) instead of a floated value, if the software happens to try and read from there. (I'm sure it will do it at some point when I invariably have a bug in my code)
Now that serial is more or less working, my next goal is to work on some USB peripherals for the system. Been look at various ICs for doing USB host controller stuff and most of those appear to be 3.3V, so I'll probably end up using a voltage translation IC for that. Some of the controllers appear to be 3.3V but with 5V tolerant inputs, which is nice. (A lot of them appear to use SPI or I2C which means I wouldn't need to wire a lot of pins for it)