piclist 2000\05\29\102422a >
Thread: Microcontroller with 4 USARTs and 40 pins
face picon face BY : Byron A Jeff email (remove spam text)

On Sun, May 28, 2000 at 09:38:33PM -0400, Bob Ammerman wrote:
> There are some good ideas here, but you have moved the data movement problem
> from SERIAL<->PIC to be PIC<->PIC. You're still going to need some hefty
> horsepower to do the PIC<->PIC transfers. Remember, the main processor has
> to handle all channels at once. MIDI waits for no man (nor PIC) :-)

This is true to a point but you can gain a few advantages:

1) Many of the mid level PICs have hardware support for such transfers. A
16F87X could use its hardware USART or I2C module to do the transfers thus
eliminating the high powered need for software bit banging from the main
PIC. And while the auxillary PICs are stuck with the software bit banging
problem, their function is limited to a single channel. Thus you gain an
advantage because the aux processors are not trying to do everything in the
system for all channels, just limited functionality for a single channel.

2) Intelligent buffering can mitigate quite a few of the tight timing
contraints in the PIC to PIC transfers. In short the main processor can dump
events that it knows is going out to the intelligent UART before the actual
moment the event needs to be played. This happens often in a multichannel
MIDI situation because the primary usage is as a multitrack MIDI recorded
where the sequencer plays some or all of the prerecorded MIDI tracks while
the musician adds the next track to the sequence. The timing sequences of
the prerecorded tracks are known apriori and can be scheduled accordingly.

3) Compression can be utilized in the PIC to PIC transfer whereas with a
straight UART the exact data stream that's required for the end unit must
be sent to the UART. For example each event in the MIDI stream encodes a 4
bit channel number. However if an intelligent UART knows that it's only
going to output 1 channel, or possibly two because of a a keyboard split,
then the channel information isn't required at all in the PIC to PIC
transfer, potentially saving a ton of bits. Another example is that typically
in MIDI streams a NOTE OFF events is generated by sending a NOTE ON event
with a volume of 0, requiring 2 to 3 bytes in the actual MIDI data stream.
However we could easily compress a note off event into a single BIT in the
PIC to PIC stream, having the Intelligent MIDI UART (IMU) do the proper
expansion on output.

4) The potential of direct IMU to IMU communication can potentially alleviate
the latency caused on the real time streams that are being recorded. See
typically the controller generating the real time stream and the one playing
that realtime stream are not on the same IMU. For example I generate my
MIDI events using my Yamaha digital piano, but those events are played on
my Alesis Nanosynth or my old Roland MT32. So the transfer sequence is
Input IMU -> main processor -> Output IMU. This would require a low latency
main processor to turn the events around quickly. However if instead the
transfer can be Input IMU -> main processor and Output IMU, then the Output
IMU would get the event with lower latency and the main processor could
take more time recording the event because it's not obligated to turn the
event around to the IMU.

MIDI streams have structure. This structure can be exploited by an IMU
type system. But it requires something more than a dumb UART. This would be
the exact reason I'd look to a software periperal.

> Bob Ammerman
> RAm Systems
> (high function, high performance, low level software)
> {Original Message removed}

In reply to: <002601bfc912$21d58960$b59b9cd1@ramdell>; from RAMMERMAN@PRODIGY.NET on Sun, May 28, 2000 at 09:38:33PM -0400
See also: www.piclist.com/techref/io/serials.htm?key=usart
Reply You must be a member of the piclist mailing list (not only a www.piclist.com member) to post to the piclist. This form requires JavaScript and a browser/email client that can handle form mailto: posts.
Subject (change) Microcontroller with 4 USARTs and 40 pins

month overview.

new search...