Page 1 of 2

GPIO ports on SXB boards..

Posted: Tue Nov 27, 2018 3:42 pm
by Collen
Hello,

just a quick question, is there a easy way to use
my sensors for the arduino/raspberry on the SXB/QBR boards of WDC ?

or put it in other words, how can i use those sensors on a W65Cxxx system.
seen a lot of ports on them, but missing the modern GPIO, SPI and I2C ...

just need a pointer, the rest i will figure out..
Thx... !

Re: GPIO ports on SXB boards..

Posted: Tue Nov 27, 2018 4:51 pm
by whartung
Collen wrote:
Hello,

just a quick question, is there a easy way to use
my sensors for the arduino/raspberry on the SXB/QBR boards of WDC ?

or put it in other words, how can i use those sensors on a W65Cxxx system.
seen a lot of ports on them, but missing the modern GPIO, SPI and I2C ...

just need a pointer, the rest i will figure out..
Thx... !
Well, the WDC boards DO have "GPIO", those are just the available ports from the VIA or the uControllers themselves (depending on which board and CPU you're using).

Out of the box, they don't support SPI or I2C, but there's a thread here on "bit banging" SPI (which isn't that hard to do). You can also do this for I2C, there are several examples on the 'net that could be easily adapted to 65xx.

Finally there's also dedicated chips that handle the 8 bit <-> SPI/I2C conversion.

But, natively, the boards do not support either.

Re: GPIO ports on SXB boards..

Posted: Tue Nov 27, 2018 5:24 pm
by drogon
Collen wrote:
Hello,

just a quick question, is there a easy way to use
my sensors for the arduino/raspberry on the SXB/QBR boards of WDC ?

or put it in other words, how can i use those sensors on a W65Cxxx system.
seen a lot of ports on them, but missing the modern GPIO, SPI and I2C ...

just need a pointer, the rest i will figure out..
Thx... !
If your board can talk to the Pi via serial then, yes, you can use the Pi's GPIO, including SPI, I2C, etc. from - well, anything that can talk serial.

The down-side is that you have to write code on the Pi to handle the comms.

So if, for example, you wrote a C program on the Pi using the wiringPi library, then you read in a command byte - e.g. digitalWrite, read in a pin byte, then a value byte - you execute the digitalWrite() then go back and wait for more. If you used the wiringPi extensions, then you can use all the devices that wiringPi directly supports, or add your own into it using existing devices as templates.

I understand that other GPIO libraries exist for the Pi, but I write/maintain wiringPi, so it's what I'd use...

-Gordon

Re: GPIO ports on SXB boards..

Posted: Tue Nov 27, 2018 7:36 pm
by Collen
whartung wrote:
Well, the WDC boards DO have "GPIO", those are just the available ports from the VIA or the uControllers themselves (depending on which board and CPU you're using).

Out of the box, they don't support SPI or I2C, but there's a thread here on "bit banging" SPI (which isn't that hard to do). You can also do this for I2C, there are several examples on the 'net that could be easily adapted to 65xx.

Finally there's also dedicated chips that handle the 8 bit <-> SPI/I2C conversion.

But, natively, the boards do not support either.
Ah, thx that makes more sense to me..
so basicly i can use the via ports (j3) on the W65C02SXB and W65C816SXB for GPIO
but how about the W65C134SXB and W65C265SXB (and not to forget the mensch computer) ?
they don't have a VIA w65c22... but they do have I/O ports (j3/j4/j5)

also isn't the via only 0 or 1 ?!
you can't read (lets say) a temperature from a sensor that way...

Cheers, Collen

Re: GPIO ports on SXB boards..

Posted: Tue Nov 27, 2018 9:00 pm
by GARTHWILSON
Collen wrote:
but how about the W65C134SXB and W65C265SXB (and not to forget the mensch computer) ?
they don't have a VIA w65c22... but they do have I/O ports (j3/j4/j5)

also isn't the via only 0 or 1 ?!
you can't read (lets say) a temperature from a sensor that way
The '134 and '265 do have a lot of I/O, but unfortunately no A/D converters. You can see what I put on my 65c02 workbench computer for A/D at http://wilsonminesco.com/6502primer/potpourri.html#ADC . This converter (the MAX153) is much faster than what's on most microcontrollers. This page (the circuit potpourri page) of the 6502 primer shows a lot more interfacing, primarily things you can do with the 65c22. Many of those things have links to sample code. These are all things I've done on my 65c02 workbench computer.

Re: GPIO ports on SXB boards..

Posted: Tue Nov 27, 2018 10:17 pm
by whartung
Collen wrote:
Ah, thx that makes more sense to me..
so basicly i can use the via ports (j3) on the W65C02SXB and W65C816SXB for GPIO
but how about the W65C134SXB and W65C265SXB (and not to forget the mensch computer) ?
they don't have a VIA w65c22... but they do have I/O ports (j3/j4/j5)
The W65C265SXB (I can't speak to the 134) has a LOT of ports available. 7, I think.

HOWEVER, depending on how you configure the CPU, many of those ports get used up for other things. The Pi does the same thing.

For example, some of the ports on the 256 are used for the on board UART. Also, if you wish to address external memory, a bunch of the ports get used for the Address and Data bus. It's actually a shame the 256 can't be configure to use a 16 bit address bus instead of the full 24 bit one to free up a port.

In the end, if you're using external memory, and the serial ports, there's only 1 full port, and parts of another I think, available for generic applications. It's another shame that the 256 doesn't have any on board flash, but was designed to have a ROM masked in to it at production for your "custom code". Great if that's your application, not so much for one off uses like hobbyists.
Quote:
also isn't the via only 0 or 1 ?!
you can't read (lets say) a temperature from a sensor that way...
Correct. If you have access to an analog temperature sensor, you would need an Analog to Digital (A/D) Converter. These take analog values (voltages) and turn them in to bits for something like a VIA/GPIO. Speaking of SPI, there are A/D converters that you can interface with via SPI.

We have this thread semi-dedicated to W65C265SXB.

Re: GPIO ports on SXB boards..

Posted: Wed Nov 28, 2018 3:54 pm
by Collen
Hmm... getting there.. :D

so for most sensors you'll need a ADC to convert the sensor analog data
to digital data for the SXB boards.

1 thing still confuses me, do i hook the ADC up to the data ports (J1 - Xbus134)
or do i use one of the P4X/P5X/P6X connectors (J3/J4/J5) ?

coz using the J1, Xbus makes it a lot harder, but with the PxX connectors
i can use there simple address ($DF2x range)

why is this so much harder than an ATmega or Pi where u can use 1 data wire ?
(sorry for being such a newbie)

Thx Collen.

Re: GPIO ports on SXB boards..

Posted: Wed Nov 28, 2018 4:17 pm
by drogon
Collen wrote:
Hmm... getting there.. :D

so for most sensors you'll need a ADC to convert the sensor analog data
to digital data for the SXB boards.

1 thing still confuses me, do i hook the ADC up to the data ports (J1 - Xbus134)
or do i use one of the P4X/P5X/P6X connectors (J3/J4/J5) ?

coz using the J1, Xbus makes it a lot harder, but with the PxX connectors
i can use there simple address ($DF2x range)

why is this so much harder than an ATmega or Pi where u can use 1 data wire ?
(sorry for being such a newbie)

Thx Collen.
So why not use 1-wire? You just have to write the code for it. All you need is one pin and the ability to change that pin from input to output and back again.

Someone wrote the 1-wire code for the Arduino and Pi systems - you now have the opportunity to have your name set in stone as the person who wrote the 1-wire code for the 6502. Think of it as an opportunity.

The timing constraints are well inside that of a 6502 - the shortest time you need to pulse the line low for is in the order of 6µS.

I'd suggest using a Pi or Arduino to get the 1-wire devices address though - the address-tree traverse code can be somewhat complex.

(I've written 1-wire driver code from scratch in the past, but you can get the sources of the Arduino 1-wire library to give you an idea)

For a generic ADC - you need an 8-bit port and a few bits of signalling for device select and read/write. If the device is fast enough and can have direct access to the 65xx's address+data lines (I'm really not familiar with these SXB systems), then you can memory map it into the system.

Or implement SPI or I2C (SPI is easier) and use one of the many SPI ADCs that exist.

-Gordon

Re: GPIO ports on SXB boards..

Posted: Wed Nov 28, 2018 7:47 pm
by GARTHWILSON
I fixed a typo in my post above, "unfortunately to A/D converters" to "unfortunately no A/D converters." Big difference.

I get the feeling that we have not been very clear so far about the simplicity and incredible options afforded SPI and I²C. There are at least hundreds, if not thousands, of ICs available with these interfaces; so it's definitely beneficial to learn to use them. I tried to make a somewhat concise description of the various serial interfaces at viewtopic.php?p=7606#p7606 . Looking at it again, I think I should go back and further improve it. Have a look though. There are quite a few links there also which will be helpful.

Re: GPIO ports on SXB boards.

Posted: Wed Nov 28, 2018 8:04 pm
by DerTrueForce
If you have a parallel ADC, I'd say use any port with 8 bits for the data pins, and then another port (but not necessarily all of it) for the rest of the control signals. You aren't required to use the special pin functions of most microcontrollers; you can usually switch them over to GPIO. I would, for this purpose. I wouldn't want to mess around with adapting that if I don't have to.

I would be more inclined to use SPI, but you will have to bit-bang that. It is possible to do, and if you do that in a subroutine or two(essentially making a small library), you can reuse it for whatever other SPI device you happen to use.

Re: GPIO ports on SXB boards..

Posted: Wed Nov 28, 2018 10:21 pm
by whartung
Collen wrote:
1 thing still confuses me, do i hook the ADC up to the data ports (J1 - Xbus134)
or do i use one of the P4X/P5X/P6X connectors (J3/J4/J5) ?
If you're just using the onboard, 576 bytes of RAM, and the ROM monitor, you use P0-P3 with impunity, just have to make sure they're configured properly.

As a general rule, the P4 port is pretty much universally available to be used in most any configuration, so you might want to use that one instead. You shouldn't have to do anything to configure it.

$00DF24 is the data direction register for P4, and $00DF20 is the data register.

Re: GPIO ports on SXB boards..

Posted: Thu Nov 29, 2018 9:35 pm
by Collen
Thank you all, it makes much more sense to me now.

The 1 wire explanation from Gordon, gives me a nice direction.
also the ADC clarification, Wilson and Whartung gave is clear.
Guess SPI would do the trick for more things i have in mind.

for only 1 sensor, the P4 port will do for now, but i'll try to get SPI done
(need to do some more research on that,,, on to the topic link.)

the SBX boards look good, in terms of what you can achieve with them
good thing i learned how to code the 6510 as a kid... :)

Greets, Collen's Business Machines.... :lol:

Re: GPIO ports on SXB boards..

Posted: Sat Dec 01, 2018 11:55 am
by handyandy
Not sure if this is any help but the 65c265 does do pulse width measurement on one pin and has two separate tone generator pins. WDC doesn't offer much help beyond a basic description of the function except to mention that it's beyond the scope of its documentation. Its intended use is (or was) in telephone communications. The pins appear to be ADC and DAC in nature.

Cheers,
Andy

Re: GPIO ports on SXB boards..

Posted: Wed Dec 12, 2018 10:50 am
by Collen
drogon wrote:

The timing constraints are well inside that of a 6502 - the shortest time you need to pulse the line low for is in the order of 6µS.

-Gordon
Still some questions, how many micro/nano seconds is 1 cycle ? (let say a NOP, the rest i can calculate)

also are the I/O ports protected or can they handle a bit bang ? (output a bit/pulse, while a bit/pulse is coming in)
if i shorten them because the timing is off, do i wreck my SXB board ?

and finally (little less important), i can't find info on power consumption off the SXB boards.
Only the standard 5V. (no watt, amps ect).

Thx.. Collen.

Re: GPIO ports on SXB boards..

Posted: Wed Dec 12, 2018 11:53 am
by Chromatix
If your clock speed is 1MHz, then 1 cycle is 1µs or 1000ns. At higher clock speeds, each cycle takes proportionately less time. A standard NOP ($EA opcode) takes 2 cycles.