Sign in

username:

password:



Not a member?

Search Comp.Arch.Embedded



Search tips

embedded by Keywords

68HC11 | 68HC12 | 8051 | 8052 | ARM | ARM7 | Asic | AT91 | AT91RM9200 | Atmel | AVR | AVRStudio | Bootloader | CFP | CompactFlash | Cygnal | Cypress | Dataflash | DSP | eCos | EEPROM | Embedded Linux | Emulator | Endian | Ethernet | Firewire | FPGA | Freescale | GCC | GNUARM | GSM | H8 | HDLC | I2C | Infineon | Interrupts | Java | JTAG | LCD | LED | LPC2000 | MCU | Microchip | MMC | MPLAB | MSP430 | PC104 | PCB | PCI | PCMCIA | PowerPC | Rabbit | RS232 | RS485 | RTOS | SBC | SDRAM | Sensor | SPI | STK500 | UART | UML | USART | USB | Verilog | VHDL | VxWorks | Xilinx

Ads

Discussion Groups

There are 6 messages in this thread.

You are currently looking at messages 0 to 6.

DMA in UART . - Sikandar - 02:31 17-07-06

HI,

I am using 16550 compatible UART. While this UART supports max speed of
about 11.5 Kbps which is connected to a V92 dialup  modem supporting
speeds upto 64Kbps .

I want to know the logic behind using  DMA inside the UART for
transmission to the FIFOs
Is this really required for such low speeds .


Regards in anticipation of replies,
Sikandar




Re: DMA in UART . - Grant Edwards - 09:51 17-07-06

On 2006-07-17, Sikandar <s...@gmail.com> wrote:

> I am using 16550 compatible UART. While this UART supports max
> speed of about 11.5 Kbps which is connected to a V92 dialup
> modem supporting speeds upto 64Kbps.
>
> I want to know the logic behind using DMA inside the UART for
> transmission to the FIFOs Is this really required for such low
> speeds.

There is no DMA inside 16550 UARTs.

-- 
Grant Edwards                   grante             Yow!  I'm into SOFTWARE!
                                  at               
                               visi.com            

Re: DMA in UART . - PeteS - 15:18 17-07-06

Grant Edwards wrote:
> On 2006-07-17, Sikandar <s...@gmail.com> wrote:
>
> > I am using 16550 compatible UART. While this UART supports max
> > speed of about 11.5 Kbps which is connected to a V92 dialup
> > modem supporting speeds upto 64Kbps.
> >
> > I want to know the logic behind using DMA inside the UART for
> > transmission to the FIFOs Is this really required for such low
> > speeds.
>
> There is no DMA inside 16550 UARTs.
>
> --
> Grant Edwards                   grante             Yow!  I'm into SOFTWARE!
>                                   at
>                                visi.com

There is a _highly_ misnamed DMA mode 1 and 2 in 16550 compliant UARTS,
which really refers to their FIFO buffering mode.

This is DMA in the sense the core has direct access to some memory, but
it's not system memory.

This mode uses 16 byte (normal) or 64 byte (certain devices,
non-standard) of FIFO available for each of the receiver and
transmitter, with interrupts based on the FIFO levels.

This mode would be used (at the relative low speed of the device) to
minimise the time in the interrupt handler. Serial interrupt handlers
are still rather instruction intensive (because the 16550 uses a
priority encoder, the device can have multiple interrupts pending and
all must be serviced before it will generate a new hardware level
interrupt).

So the obvious answer is the actual answer: to minimise the time
software has to take to fill the receive / transmit data buffers

Cheers

PeteS


Re: DMA in UART . - PeteS - 16:27 17-07-06

Sikandar wrote:
> HI,
>
> I am using 16550 compatible UART. While this UART supports max speed of
> about 11.5 Kbps which is connected to a V92 dialup  modem supporting
> speeds upto 64Kbps .
>
> I want to know the logic behind using  DMA inside the UART for
> transmission to the FIFOs
> Is this really required for such low speeds .
>
>
> Regards in anticipation of replies,
> Sikandar

Something in your post makes no sense: A 16550 UART supports well above
11.5 kb/s. Do you mean 115kb/s?

This depends on manufacturer and the clock used - I have devices rated
at 1Mb/s (both commercially and embedded in FPGAs)

Cheers

PeteS


Re: DMA in UART . - Sikandar - 03:27 18-07-06

PeteS wrote:
> Grant Edwards wrote:
> > On 2006-07-17, Sikandar <s...@gmail.com> wrote:
> >
> > > I am using 16550 compatible UART. While this UART supports max
> > > speed of about 11.5 Kbps which is connected to a V92 dialup
> > > modem supporting speeds upto 64Kbps.
> > >
> > > I want to know the logic behind using DMA inside the UART for
> > > transmission to the FIFOs Is this really required for such low
> > > speeds.
> >
> > There is no DMA inside 16550 UARTs.
> >
> > --
> > Grant Edwards                   grante             Yow!  I'm into SOFTWARE!
> >                                   at
> >                                visi.com
>
> There is a _highly_ misnamed DMA mode 1 and 2 in 16550 compliant UARTS,
> which really refers to their FIFO buffering mode.
>
> This is DMA in the sense the core has direct access to some memory, but
> it's not system memory.
>
> This mode uses 16 byte (normal) or 64 byte (certain devices,
> non-standard) of FIFO available for each of the receiver and
> transmitter, with interrupts based on the FIFO levels.
>
> This mode would be used (at the relative low speed of the device) to
> minimise the time in the interrupt handler. Serial interrupt handlers
> are still rather instruction intensive (because the 16550 uses a
> priority encoder, the device can have multiple interrupts pending and
> all must be serviced before it will generate a new hardware level
> interrupt).
>
> So the obvious answer is the actual answer: to minimise the time
> software has to take to fill the receive / transmit data buffers
>
> Cheers
>
> PeteS



What does Serial interrupt handlers  are still rather instruction
intensive  mean ?

So the work of DMA is to transfer data from some memory to the FIFOs
and
generate an interrupt (say after 1/4 or 3/4 of the 16k/ 64k FIFO buffer
  depending on the size is free/filled ) .In case if we dont use DMA it
means that an interrupt is generated for every byte of data  received
or transmitted .
Please correct me if wrong .

Regards,

Sikandar


Re: DMA in UART . - PeteS - 08:52 18-07-06

Sikandar wrote:
> PeteS wrote:
> > Grant Edwards wrote:
> > > On 2006-07-17, Sikandar <s...@gmail.com> wrote:
> > >
> > > > I am using 16550 compatible UART. While this UART supports max
> > > > speed of about 11.5 Kbps which is connected to a V92 dialup
> > > > modem supporting speeds upto 64Kbps.
> > > >
> > > > I want to know the logic behind using DMA inside the UART for
> > > > transmission to the FIFOs Is this really required for such low
> > > > speeds.
> > >
> > > There is no DMA inside 16550 UARTs.
> > >
> > > --
> > > Grant Edwards                   grante             Yow!  I'm into SOFTWARE!
> > >                                   at
> > >                                visi.com
> >
> > There is a _highly_ misnamed DMA mode 1 and 2 in 16550 compliant UARTS,
> > which really refers to their FIFO buffering mode.
> >
> > This is DMA in the sense the core has direct access to some memory, but
> > it's not system memory.
> >
> > This mode uses 16 byte (normal) or 64 byte (certain devices,
> > non-standard) of FIFO available for each of the receiver and
> > transmitter, with interrupts based on the FIFO levels.
> >
> > This mode would be used (at the relative low speed of the device) to
> > minimise the time in the interrupt handler. Serial interrupt handlers
> > are still rather instruction intensive (because the 16550 uses a
> > priority encoder, the device can have multiple interrupts pending and
> > all must be serviced before it will generate a new hardware level
> > interrupt).
> >
> > So the obvious answer is the actual answer: to minimise the time
> > software has to take to fill the receive / transmit data buffers
> >
> > Cheers
> >
> > PeteS
>
>
>
> What does Serial interrupt handlers  are still rather instruction
> intensive  mean ?
>
> So the work of DMA is to transfer data from some memory to the FIFOs
> and
> generate an interrupt (say after 1/4 or 3/4 of the 16k/ 64k FIFO buffer
>   depending on the size is free/filled ) .In case if we dont use DMA it
> means that an interrupt is generated for every byte of data  received
> or transmitted .
> Please correct me if wrong .
>
> Regards,
>
> Sikandar

Instruction intensive means the device may require a lot of
instructions to handle an interrupt. As to the operation of the device,
you are roughly correct.

I suggest reading the datasheet as it is all quite clear in there.

Typical datasheet available here:

http://www.semiconductors.philips.com/pip/SC16C550-05.html

I will note that if you intend to write code for hardware directly, you
have to have some understanding of the hardware. Get the datasheet
first, and then ask about the parts you don't understand.

Cheers

PeteS