??? 06/14/06 00:06 Read: times |
#118248 - careful about definitions ... Responding to: ???'s previous message |
Are you sure what was meant by "soft?"
An 805x core implemented in FPGA would be "soft" as would any of, say, 50 805x serial channels implemented in FPGA along with it. Now, anyone clever enough to implement their own 805x core in FPGA is clever enough to implement separate baud-rate generators from a common timebase, or from separate timebases, if that's what's called for, and that same clever person would be able to grok the notion of, optionally, of course, and based on a new SFR bit, making the clear of the transmit and receive interrupt bits automatic on write-to, or read-from the data register, which wastes a lot of time. Likewise, a soft UART could be equipped with double buffering, so there's a little time to service an interrupt, ... you get the idea. FPGA's have lots of logic, and they have lots of pins. While it might be clever to save a pin on the DIP-40 or PLCC-44 by using only the internal counter/timer as a BRG, it might actually be helpful not to do that, so you can set your MCU running at a rate precisely synchonized with an external process so you can rely on the system timing and avoid testing a bit in the tightest time-critical process without blowing the chance to use async comm rates. Async channels can be driven from a standard (not 11.0592 MHz or a harmonic thereof) baud-rate crystal oscillator, which can simply be divided down to 16x whatever baud rate you need, and that rate demuxed from the counter and routed to whatever UART wants it. If I were building a soft 805x in FPGA, one of the first things that would "go" is the inane relationship between the baud rate generation task and the system clock. There are so many more convenient clocks than 11.0592 MHz for general communication tasks. Just consider 24.576 MHz. You can squeeze nearly any standard RS232-compatible baud rate (except 110) out of that one with just a binary counter and, maybe, a one-digit stage of decimal counter. There are others that might work even better, but you get the idea. If you want to build-in something else, there are straightforward and standard ways of doing that as well. It's not the fastest way, and it's not the cheapest way, it may not even be the smallest way, but it will get you there, wherever "there" is. RE |