Page 4 of 4

How about an 8 Bit Internet Service?

Posted: Tue Oct 25, 2022 4:26 am
by BruceMcF


On 10/24/2022 at 9:51 PM, neutrino said:




It's a choice that does what is possible with the existing hardware. Adding a 6551 means more PCB area and the cost of another chip.



Reading is fundamental. Adding a 6551 definitely does not mean more PCB area, because the hardware design is moving from prototype to beta release. We will find out more details when the boards come back and they do a show and tell, but we do know that one option for a serial port is an expansion card. It is conceivable that another option is a User port bridge, but it is up in the air whether there will be a motherboard User Port. We know that the Proto #2 User Port will not be available, but the shift to the MCU for the PS/2 ports implies that three GPIO and four handshake lines of VIA#1 are probably unused., and at least the possibility of bringing some VIA#1 pins out was raised as a possibility by a team member on FB.

There has been no indication that I have heard of any of the MCU pins being voltage protected and brought out as part of a User Port, so if you have a post by one of the project team members that you are referring to for that, you should perhaps post the link to that in lieu of data sheet links.


How about an 8 Bit Internet Service?

Posted: Tue Oct 25, 2022 5:09 am
by neutrino


On 10/25/2022 at 5:00 AM, TomXP411 said:




I have written enough code for that chip (or a very close cousin) that I doubt this is possible. Soft serial on these processors simply isn't fast enough, and as I already said, there aren't enough GPIO pins for a full RS-232 connection anyway,



Sounds like the current MCU won't be able to do it then. Is there any reasonable footprint compatible MCU with higher speed or more serial hardware that could perhaps solve it?

Also asynchronous RS-232 can usually do with a 3-wire interface. No need for a full one with RTS, CTS, DTR, DSR etc.


On 10/25/2022 at 6:26 AM, BruceMcF said:




one option for a serial port is an expansion card.



If one goes the expansion card route then a 16550AFN can do the job at high speeds. The benefit is providing a serial port without too much additions.

 


On 10/25/2022 at 6:26 AM, BruceMcF said:




no indication that I have heard of any of the MCU pins being voltage protected



That has to be done externally by now. Many "X1541" style cables for connecting a C1541 to the parallel port on a PC shows how this can be done with zener diodes and resistors and +5V. Pins on motherboard then jack in a protection PCB with the proper external port.

 


How about an 8 Bit Internet Service?

Posted: Tue Oct 25, 2022 4:05 pm
by BruceMcF


On 10/25/2022 at 1:09 AM, neutrino said:




Sounds like the current MCU won't be able to do it then. Is there any reasonable footprint compatible MCU with higher speed or more serial hardware that could perhaps solve it?



You are shifting the goalposts here ... you started out talking about using the existing MCU on the basis that it was already there, and now you are taking about a hypothetical alternative board with a more expensive 8bit MCU. Note that a 32bit MCU is outside of the project scope.

 


On 10/25/2022 at 1:09 AM, neutrino said:




If one goes the expansion card route then a 16550AFN can do the job at high speeds. The benefit is providing a serial port without too much additions.



Yes, there are multiple serial expansion cards that might be developed. Someone adept at providing the support circuitry to support an 8080 bus chip on a 6502 bus and with the 6502 assembly language programming to provide the X16 drivers may well offer such a board, though a 6551 based board is may be slightly cheaper if it integrates directly onto the X16 bus and there is, of course, more legacy code for developing the drivers.

 


On 10/25/2022 at 1:09 AM, neutrino said:




That has to be done externally by now. Many "X1541" style cables for connecting a C1541 to the parallel port on a PC shows how this can be done with zener diodes and resistors and +5V. Pins on motherboard then jack in a protection PCB with the proper external port.



I was talking about a User port. If it requires a protection PCB to be used as a User Port, it is cheaper to integrate that protection onto the motherboard than to ship a protection PCB with the system in order to complete the User Port.

 

 

 


How about an 8 Bit Internet Service?

Posted: Tue Oct 25, 2022 5:00 pm
by TomXP411


On 10/24/2022 at 10:09 PM, neutrino said:




Also asynchronous RS-232 can usually do with a 3-wire interface. No need for a full one with RTS, CTS, DTR, DSR etc.



Absolutely there is. If you're going to implement a serial port, you do it right

You have no idea how many headaches I've encountered dealing with half-implemented serial ports on emulated retrocomputers. Even simple things like file transfers via XMODEM are a huge pain in the gluteus maximus when operating at higher speeds with no flow control. 

Also, how do you expect things like wireless modems to work without proper flow control? If the modem can't tell the computer to stop transmitting, you're going to get buffer overflows and all kinds of weird data loss. 

What you're proposing is a half-assed solution that will not work reliably. End of story. 


On 10/24/2022 at 10:09 PM, neutrino said:




If one goes the expansion card route then a 16550AFN can do the job at high speeds.



image.jpeg.bf75c318c59c749a7a2f1678791f8351.jpeg

You mean like what I've been telling you all along? Any change to the hardware at this point is going to be via expansion cards, including any sort of networking or serial interface. 


How about an 8 Bit Internet Service?

Posted: Tue Oct 25, 2022 7:01 pm
by kelli217

Yeah, there are a lot of (x)xx50 and (x)xx51 possibilities to put on an expansion card. We had a big discussion about whether or not the 6551 (specifically the 65C51) was a good choice. Apparently some of the more recent fab runs may have a problem with the TDRE flag, which was a bit particular even when working properly and required a delay.


How about an 8 Bit Internet Service?

Posted: Tue Oct 25, 2022 8:14 pm
by BruceMcF


On 10/25/2022 at 3:01 PM, kelli217 said:




Yeah, there are a lot of (x)xx50 and (x)xx51 possibilities to put on an expansion card. We had a big discussion about whether or not the 6551 (specifically the 65C51) was a good choice. Apparently some of the more recent fab runs may have a problem with the TDRE flag, which was a bit particular even when working properly and required a delay.



Quite.

The upside of the 6551 is the likely easy integration into the expansion slot, since it is built for a 65xx bus system. The disadvantage is that the TDRE flag is broken in the part in production, so there has to be a delay built into the transmit, and of course the length of delay depends on the baud rate. IMNHO it's not a killer bug, but it's definitely a nuisance. I haven't gone into the datasheet of a 16550 to see whether it does need more glue logic, but 80xx and 86xx chips on 65xx buses often do. Since both feature hardware queues, with full hardware flow control implemented, 115.2kbaud seems like it would be straightforward with either.

Contingent on the VIA#1 PB1 and PB2 being available, the VIA expansion board could well provide an accelerated version of the C64 9600baud "UP9600" User port serial interface, plus leaving a whole additional 8bit port of GPIO to play with in addition to several free GPIO in the port used by the hardware-assisted bit banged serial port. If it, conservatively, scales up 4x, that's 38.4kbaud, and since the C64 port could go faster if there was a common baud rate between 9600baud and 19.2kbaud, perhaps 57.6kbaud.

A MAX3107 I2C & Microwire/SPI compatible UART would be an option for the User Port if it includes PB0-2, CA1/2 and CB1/2. It would also work on the I2C channel if the VIA#1 is not available. It seems to me that 38.4kbaud over the I2C channel and 57.6kbaud over SPI may be feasible, though with more CPU time available for the terminal application if the SPI channel is used.


How about an 8 Bit Internet Service?

Posted: Tue Oct 25, 2022 8:17 pm
by Edmond D


On 10/24/2022 at 10:09 PM, neutrino said:




Also asynchronous RS-232 can usually do with a 3-wire interface. No need for a full one with RTS, CTS, DTR, DSR etc.



I worked on an embedded touch screen device with two serial ports in the industrial control world. One was fully implemented in hardware with a db25 connector, the second was just RX, TX and GND on a db9. One large customer needed a second serial port that was properly & fully implemented. Marketing/sales asked if it could just be done in software (which it couldn't) since redesigning the platform wasn't cost effective. 



Half-implemented solutions may work for the hobbyist, but fail at some point for others. I'm not advocating for an X16 that does everything for everyone everywhere (modern computers fail at this too.) Putting RS232 serial I/O on the motherboard isn't a priority to me or the designers, just like ethernet connectivity. Having an expansion card makes sense to me, and two wire or full implementations can be made for those who want/need them.  



This thread was about implementing an 8-bit internet service. Hardware is a part of that, then there is software. My point above should be that software only has so much ability if the Hardware isn't capable.



PS - Thanks for reading my ramblings.

 


How about an 8 Bit Internet Service?

Posted: Tue Oct 25, 2022 9:04 pm
by TomXP411


On 10/25/2022 at 1:14 PM, BruceMcF said:




Contingent on the VIA#1 PB1 and PB2 being available, the VIA expansion board could well provide an accelerated version of the C64 9600baud "UP9600" User port serial interface, plus leaving a whole additional 8bit port of GPIO to play with in addition to several free GPIO in the port used by the hardware-assisted bit banged serial port. If it, conservatively, scales up 4x, that's 38.4kbaud, and since the C64 port could go faster if there was a common baud rate between 9600baud and 19.2kbaud, perhaps 57.6kbaud.



I'd be down with using a 16550. I've done raw coding for the 16550 in C back in the day, and I even wrote my own terminal program (which really wasn't very good) for DOS. If someone designed a 16550 for the Commander, I'd be first in line to get one. I already have an RS-232 WiFi terminal adapter (aka "modem"), so I'd be all set to go. 


How about an 8 Bit Internet Service?

Posted: Wed Oct 26, 2022 12:16 am
by neutrino


On 10/25/2022 at 6:05 PM, BruceMcF said:




You are shifting the goalposts here ... you started out talking about using the existing MCU on the basis that it was already there,



Adding a MCU adds a significant cost. Changing from one model to another not so much.


On 10/25/2022 at 7:00 PM, TomXP411 said:




You have no idea how many headaches I've encountered dealing with half-implemented serial ports on emulated retrocomputers.



My 3-wire serial experience was more with Amiga and more powerful computers. So I guess for retrocomputers this is a big issue as they are in fact weaker..


On 10/25/2022 at 7:00 PM, TomXP411 said:




You mean like what I've been telling you all along? Any change to the hardware at this point is going to be via expansion cards,



Point being if it's the expansion card route there's no real restriction.


On 10/25/2022 at 9:01 PM, kelli217 said:




Yeah, there are a lot of (x)xx50 and (x)xx51 possibilities to put on an expansion card.



The 6551 might be of interest as it's supported by Novaterm etc. In the form of Turbo232 which is supported at 230 400 bit/s.


On 10/25/2022 at 9:01 PM, kelli217 said:




Apparently some of the more recent fab runs may have a problem with the TDRE flag,



Yikes, I hope there's a supply of 6551 as it seems supported and can do high speeds. Otherwise the other options is CPLD + PCB with DIL socket. Before the lockdowns etc I noticed that chinese chipfabs for simpler geometries could be had for a low enough price that a crowdsourcing would be within reach.

Is the TDRE flag bug present in any of the old chips?

 

UP9600 details:

https://www.pagetable.com/?p=1656

MAX3107:

https://www.maximintegrated.com/en/products/interface/controllers-expanders/MAX3107.html

https://pdfserv.maximintegrated.com/en/ds/MAX3107.pdf

Btw, Baud is the number of symbols modulated per second which can represent multiple bits using phase and amplitude encoding etc. While bit/s or bps is strictly the number of non-modulated bits transferred per second.

 


How about an 8 Bit Internet Service?

Posted: Wed Oct 26, 2022 3:28 am
by Wavicle

I can't find a supplier still making a 16550, but this TI chip is fairly similar and still being made: TL16C2552FNR Texas Instruments | Mouser