BigDumbDinosaur wrote:
I can't speak for other members, but my time is sometimes more valuable to me than money. I can always earn more money if need be, but I can't "earn" more time. So I evaluate the amount of time that will be required to get a result as carefully as I evaluate the monetary cost. It's a bad habit I've acquired from 30-some years of self-employment.
I completely agree with you about the importance of the prioritization of one's time.
BigDumbDinosaur wrote:
I'm not familiar enough with the PIC assembly language to decide if working with it would be "fun" (comments I've read from others in the past suggest to me that "tedium" would be a better description). In any case, the monetary cost difference between the PIC and a 26C92 is sufficiently small that I would not consider the PIC as a substitute for the 26C92 (incidentally, I'm now using the 28L92, which has deeper FIFOs and faster overall bus timings).
I've worked with PIC processors for nearly a decade now and only very rarely do I use assembly language. 99% of my programming is done in C which I find about as much fun to program in as 6502 assembly language, albeit far more practical. Of course, YMMV.
BigDumbDinosaur wrote:
The handy thing about a real UART is that it works right out of the box and my time spent with it is limited to how long it takes to plug it into the socket. Ditto for the 53CF94 SCSI controller I use on POC's host adapter. Yes, I could bit-bang the bus as André Fachat did with his project (and my admiration for him for doing so is considerable—the SCSI bus protocol is complicated), but again it comes down to time vs. money. 'CF94s are available from bulk liquidators at a reasonable price and can drive the single-ended bus without requiring additional hardware other than biasing resistors.
I can see there is a great deal of skill and experience among the members of the forum and you all have my respect. From my point of view, once the PIC UART is programmed, it will become equivalent to a $3 off-the-shelf high-speed UART to me. I may be underestimating the amount of effort required to make it work (I often do), but it really doesn't seem like something that would require more than a few weekends to complete,.
BigDumbDinosaur wrote:
Ahem...all 26Cxx and 28Lxx Philips UARTs can be operated at a maximum speed of 921.6 Kbps, simultaneously on all channels, and assuming a 3.6464 MHz X1 clock.
Apologies. I did check a datasheet and it did say 230 kBaud. Of course I have never actually used one so I'll take your word that it will run at 921.6 kBps.
BigDumbDinosaur wrote:
As for whether the 6502 could stay with the IRQ onslaught that would result from high speed CBAT on any given UART channel, that would depend to some extent on which member of the 6502 family is being used and how well the ISR has been written. All 26Cxx and 28Lxx UARTs have both RxD and TxD FIFOs, which if correctly used, have to potential to keep the IRQ rate in check during CBAT. Also, the QUARTs and OCTARTs have an IRQ "bidding" feature, which makes it possible to determine which channel is interrupting without having to poll all channels looking for the IRQ source. Although I have not tested 921 Kbps on my POC unit, I have test 230 Kbps in loopback on both channels (using one of my servers to tap into the data stream for monitor purposes) and found that the 65C816 can easily handle that data rate with the Ø2 clock running as slowly as 2 MHz.
There will always be a soft spot in my heart for the 6502 thanks to the large amount of fun it afforded me a few decades ago. I hope I'm not committing blasphemy by saying I'm not a fan of the 65816, however. By the time the 65816 was ascendant, I had already switched to the 68000.
BigDumbDinosaur wrote:
In my designs, current consumption is generally not a consideration. I use a PC power supply to run POC, which means there is more than enough juice to run everything and maintain good voltage regulation. Incidentally, the 26C92 can be put into sleep mode when both channels are idle, at which time its quiescent current consumption is reduced to about 15 µA maximum.
I mentioned current consumption because you spoke of efficiency. Not sure if the PIC can get down to 15 uA in sleep mode offhand, but it probably wouldn't be much more than that.
BigDumbDinosaur wrote:
A PIC or other MCU isn't needed to implement SPI. The 65C22 can take care of it with some adroit programming. Or, one can use
Daryl's SPI adapter that is designed around a CPLD.
Nice work by Daryl and kudos to him for making it available to the community. However, IMHO, a CPLD is not the best tool for this job. It's more expensive than a PIC, not available in DIP format (e.g. not easy to breadboard with), and considerably less versatile when it comes to programmability. I'm sure the 6522 is a fine solution if your speed needs are modest. I have in mind to interface to some microSD cards with an SPI adapter and would prefer the 6502 bus to be the limiting factor on I/O rather than how fast I can bit bang a 6522.