12 DMA 2015 www

background image

1

Podstawy techniki

mikroprocesorowej

ETEW006

DMA

Andrzej Stępień

Katedra Metrologii Elektronicznej i Fotonicznej

Transmisja danych z układu I/O do pamięci

DREQx

DACKx

IOR#

MCU

HRQ

HOLDA

MEMR#

Memory

(pami

ęć

)

Address Bus

(magistrala adresowa)

Data Bus

(magistrala danych)

MEMW#

IOW#

DMA

MEMW#

(MEMory Write
zapis pami

ę

ci)

IOR#

(Input/Output Read
odczyt układu I/O)

I/O

(układ)

CPU wysyła

sygnał do układu I/O o gotowo

ś

ci odczytu danych

urz

ą

dzenie I/O

umieszcza dane na magistrali danych i sygnalizuje ten fakt

CPU zapisuje

przesyłane dane w wewn

ę

trznym rejestrze i sygnalizuje

układowi I/O zako

ń

czenie odczytu

CPU wysyła

adres (magistrala adresowa) i dane (magistrala danych)
do pami

ę

ci

CPU sygnalizuje

pami

ę

ci gotowo

ść

zapisu danych

pami

ęć

zapisuje

dane w swojej wewn

ę

trznej strukturze

Programowa transmisja danych

pamięć

układ I/O

[1#2]

DREQx

DACKx

IOR#

HRQ

HOLDA

MEMR#

Memory

(pami

ęć

)

MEMW#

IOW#

CPU

magistrala adresowa: adres układu I/O

sygnał gotowo

ś

ci odczytu

IOR#

, transmisji danych z układu I/O

układ I/O

magistrala danych: dane gotowe do transmisji

CPU

wpis danych do rejestru Rn

koniec sygnału gotowo

ś

ci

IOR#

DMA

MEMW#

(MEMory Write
zapis do pami

ę

ci)

IOR#

(Input/Output Read
odczyt układu I/O)

I/O

(układ)

MCU

Address Bus

(magistrala adresowa)

Data Bus

(magistrala danych)

rejestr Rn jako
element pomocniczy

DREQx

DACKx

IOR#

HRQ

HOLDA

MEMR#

Memory

(pami

ęć

)

MEMW#

IOW#

DMA

MEMW#

(MEMory Write
zapis do pami

ę

ci)

IOR#

(Input/Output Read
odczyt układu I/O)

I/O

(układ)

MCU

Address Bus

(magistrala adresowa)

Data Bus

(magistrala danych)

Mem CS#

MEMW#

wpis

danych

Data

clock

wpis
danych

Programowa transmisja danych

pamięć

układ I/O

[2#2]

CPU

magistrala adresowa: adres komórki pami

ę

ci

MEMW#

: sygnał gotowo

ś

ci zapisu do pami

ę

ci,

transmisja danych do pami

ę

ci

CPU

magistrala danych: zawarto

ść

rejestru Rx

koniec sygnału gotowo

ś

ci

MEMW#

wpis danych do pami

ę

ci:

zboczem

sygnału

MEMW#

zboczem

sygnału taktuj

ą

cego

Mem Add

Transmisja danych z układu I/O do pamięci

DREQx

DACKx

IOR#

HRQ

HOLDA

MEMR#

Memory

(pami

ęć

)

MEMW#

IOW#

DMA

MEMW#

(MEMory Write
zapis pami

ę

ci)

IOR#

(Input/Output Read
odczyt układu I/O)

I/O

(układ)

CPU

magistrala adresowa: adres układu I/O

IOR#

: sygnał gotowo

ś

ci odczytu danych z układu I/O

układ I/O

magistrala danych: dane gotowe do transmisji

CPU

wpis danych do rejestru Rx

koniec sygnału gotowo

ś

ci

IOR#

CPU

magistrala adresowa: adres komórki pami

ę

ci

MEMW#

: sygnał gotowo

ś

ci zapisu do pami

ę

ci,

transmisja danych do pami

ę

ci

CPU

magistrala danych: zawarto

ść

rejestru Rx

koniec sygnału gotowo

ś

ci

MEMW#

Address Bus

(magistrala adresowa)

MCU

Data Bus

(magistrala danych)

powtórzenie
cyklu
przesłania

Transmisja danych w PC

Programowy transfer

512 bajtów z urz

ą

dzenia o adresie 0x380 do bufora w pami

ę

ci RAM:

przeslij_dane:

mov

bx, bufor

; adres pami

ę

ci RAM

mov

cx, 512

; liczba transmitowanych bajtów

mov

dx, 380h

; adres portu

loop:

in

al, dx

; odczyt zawarto

ś

ci portu

mov

[bx], al

; wpis do pami

ę

ci RAM

inc

bx

; przygotowanie do kolejnego wpisu

dec

cx

; dekrementacja liczby przesłanych bajtów

jnz

loop

; zamkni

ę

cie p

ę

tli przesła

ń

ELEC 464 : MICROCOMPUTER SYSTEM DESIGN.

1996/97 WINTER SESSION TERM 1

background image

2

Cortex-M0

Transmisja bloku danych

[1#2]

Programowy transfer 10 słów – 149 cykli maszynowych:

unsigned int i

;

unsigned int tab1[]

= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

unsigned int tab2[10]

;

for(

i=0; i<11; i++

)

tab2[

i

]

=

tab1[

i

]

;

www.keil.com

→ µµµµ

Vision v.4.70

Cortex-M0

Transmisja bloku danych

[2#2]

for(

i=0; i<11; i++

)

tab2[

i

]

=

tab1[

i

]

;

//

149 cykli maszynowych

www.keil.com

→ µµµµ

Vision v.4.70

0x0000030C 2400

MOVS

r4, #0x00

; i = 0

0x0000030E E006 B

0x0000031E

0x00000310

00A0 LSLS

r0, r4, #2

; r0

r4 << 2 (ofset)

0x00000312

A90A ADD

r1, sp, #0x28

; r1

adres tab1[0] (baza)

0x00000314

5808

LDR

r0, [r1, r0]

; r0

(r1 + r0)

0x00000316

00A1 LSLS

r1, r4, #2

; r0

r4 << 2 (ofset)

0x00000318

466A MOV

r2, sp

; r2

adres tab2[0] (baza)

0x0000031A 5050

STR

r0, [r2, r1]

; (r0)

(r2 + r1)

0x0000031C 1C64 ADDS

r4, r4, #1

; i++

0x0000031E 2C0B CMP

r4, #0x0B

; 0x0B = 11

0x00000320

D3F6 BCC

0x00000310

; je

ś

li mniejsze to skok

Cortex-M0 (LPC1114) / Cortex-M0+ (STM32L053)

STM32 Microcontrollers

CPU Transfer or DMA Transfer

http://www.embedds.com/

using-direct-memory-access-dma-in-stm23-projects

544

µ

s je

ś

li kopiowanie z udziałem CPU

214

µ

s je

ś

li kopiowanie z udziałem DMA

Kopiowanie 800 słów 32-bitowych

(STM32VLDiscovery – ST32F100RB MCU,

Cortex-M3,

pojedynczy, 7-kanałowy kontroler DMA)

DMA

(Direct Memory Access)

tryb bezpo

ś

redniego dost

ę

pu do pami

ę

ci

z pomini

ę

ciem jednostki

centralnej

(CPU)

w trakcie wymiany danych

przewa

ż

nie jako

transfer

(wymiana)

danych

mi

ę

dzy układami we/wy

(nap

ę

dy FDD, pami

ę

ci masowe HDD, karty d

ź

wi

ę

kowe, bufory

kontrolerów portów szeregowych, szybkie przetworniki A/C i C/A itp.),
a pami

ę

ci

ą

komputera / systemu procesorowego

redukcja energii

niezb

ę

dnej przy przesyle danych

Kontroler DMA

Kontroler DMA

sprz

ę

towa realizacja funkcji transmisji danych do pami

ę

ci :

uaktywnienie urz

ą

dzenia wej

ś

ciowego

pobranie danych z urz

ą

dzenia wej

ś

ciowego

wpis danych do pami

ę

ci RAM

inkrementacja adresu pami

ę

ci RAM

dekrementacja liczby przesyłanych bajtów

okre

ś

lenie ko

ń

ca transmisji danych

W

komputerach PC kontroler DMA

przesyła:

dane z urz

ą

dzenia wej

ś

ciowego do pami

ę

ci RAM w czasie

jednego

cyklu

maszynowego (brak mapowania urz

ą

dze

ń

we/wy w przestrzeni pami

ę

ci)

dane z pami

ę

ci RAM o adresie addr1 do pami

ę

ci RAM o adresie addr2 w

czasie

dwóch

cykli maszynowych (mapowanie urz

ą

dze

ń

we/wy w

przestrzeni pami

ę

ci)

Kontroler DMA

Sygnały

DREQx

(Dma REQuest)

DACKx#

(DMA ACKnowledge)

HRQ

(Hold ReQuest)

HOLDA

(HOLD Acknowledge)

MEMR#

(MEMory Read)

MEMW#

(MEMory Write)

IOR#

(Input/Output Read)

IOW#

(Input/Output Write)

DREQx

DACKx

IOR#

MCU

HRQ

HOLDA

MEMR#

Memory

(pami

ęć

)

Address Bus

(magistrala adresowa)

Data Bus

(magistrala danych)

MEMW#

IOW#

DMA

(kontroler)

I/O

(układ)

background image

3

Kontroler DMA - rejestry

DREQx

DACKx

IOR#

MCU

HRQ

HOLDA

MEMR#

Memory

(pami

ęć

)

Address Bus

(magistrala adresowa)

Data Bus

(magistrala danych)

MEMW#

IOW#

DMA

(kontroler)

rejestr

ź

ródłowy

(source address)

, inkrementowany lub dekrementowany

rejestr docelowy

(destination address)

, inkrementowany lub

dekrementowany

rejestr powtórze

ń

(transfer count)

rejestr inicjalizuj

ą

cy tryb DMA

(trigger source(s)

I/O

(układ)

Inicjalizacja trybu DMA

[1#2]

1.

DREQx

(

DMA Request

)

żą

danie dost

ę

pu do trybu DMA

2.

HRQ

(

Hold Request

) – ’zawieszenie’ procesora (wstrzymanie dost

ę

pu

procesora do magistral), ’zawieszenie ’ sterowania pami

ę

ci i układów I/O

3.

HOLDA

(

HOLD Acknowledge

) – akceptacja CPU kontrolera DMA o pocz

ą

tku

lub ko

ń

cu ’zawieszenia’ procesora

4.

DACKx#

(

DMA Acknowledge

) – potwierdzenie

żą

dania dost

ę

pu DMA

DREQx

DACKx

IOR#

MCU

HRQ

HOLDA

MEMR#

Memory

(pami

ęć

)

Address Bus

(magistrala adresowa)

Data Bus

(magistrala danych)

MEMW#

IOW#

DMA

(kontroler)

I/O

(układ)

Inicjalizacja trybu DMA

[2#2]

DREQx

DACKx

IOR#

MCU

HRQ

HOLDA

MEMR#

Memory

(pami

ęć

)

Address Bus

(magistrala adresowa)

Data Bus

(magistrala danych)

MEMW#

IOW#

DMA

(kontroler)

I/O

(układ)

DREQ (

DMA Request

):

żą

danie transferu danych

HRQ/HOLDRQ (

Hold Request

):

żą

danie zwolnienia magistral

HOLDA (

HOLD Acknowledge

): potwierdzenie zwolnienia magistral

DACK (

DMA Acknowledge

): potwierdzenie otwarcia kanału DMA

sterowanie przesłaniem bloku danych: pami

ęć

układ I/O

nieaktywny HOLD i ACK: zamkni

ę

cie kanału DMA po zako

ń

czonej transmisji

bloku danych lub nieaktywnym DREQ

Typy transmisji DMA

wielokrotna, z powtórzeniami (

Burst Mode

)

z wykradaniem cykli

(Cycle stealing mode)

Jest mo

ż

liwe jednoczesne

u

ż

ycie

tylko 1

kanału DMA

je

ś

li mikrokontroler ma

1

magistral

ę

adresów i danych

pojedyncza

(Single Transfer)

blokowa

(Block Transfer)

blokowa z przeplotem dost

ę

pu CPU (

Burst-Block Transfer

)

pojedyncza z powtórzeniem

(Repeated Single Transfer)

blokowa z powtórzeniem

(Repeated Block Transfer)

’rozrzu

ć

-zbierz’

(

Scatter-Gather Transfers)

Tryby DMA

Pojedynczy, blokowy, z przeplotem

Tryb pojedynczy

(Single Transfer)

:

na ka

ż

de

żą

danie wykonywany jest pojedynczy transfer danych

kontroler DMA zwi

ę

ksza lub zmniejsza adres o liczb

ę

transferowanych

bajtów (1 lub 2 lub 4 bajty)

transfer danych (DMA) odcina CPU od magistral

Tryb blokowy

(Block Transfer)

:

na

żą

danie transferowany jest blok danych

DMA ko

ń

czy prac

ę

po transmisji całego bloku danych

kontroler DMA odcina CPU od magistral na czas transferu bloku danych

Tryb blokowy z przeplotem

(Burst-Block Transfer)

:

podobie

ń

stwo do trybu blokowego ale z przeplotem dost

ę

pu DMA i CPU

do magistral

zmniejsza wydajno

ść

o 20% ale CPU nie jest odcinane od magistral na

czas transmisji DMA

tryb ko

ń

czony po transmisji całego bloku danych

Ganier CJ: What is Direct Memory Access (DMA) ?

http://cnx.org

Tryb pojedynczy

(Single Transfer)

:

na ka

ż

de

żą

danie wykonywany jest pojedynczy transfer danych

kontroler DMA zwi

ę

ksza lub zmniejsza adres o liczb

ę

transferowanych

bajtów (1 lub 2 lub 4 bajty)

transfer danych (DMA) odcina CPU od magistral

Tryb blokowy

(Block Transfer)

:

na

żą

danie transferowany jest blok danych

DMA ko

ń

czy prac

ę

po transmisji całego bloku danych

transfer odcina CPU od magistral na czas transferu bloku danych

Tryb pojedynczy z powtórzeniem

(Repeated Single Transfer)

analogicznie jak tryb pojedynczy ale nie jest blokowany do mamentu
zako

ń

czenia transmisji wszystkich danych (bloku danych)

Tryby DMA

Pojedynczy z powtórzeniem

background image

4

Tryby DMA

Transfer Scatter-Gather

dotyczy procesu zbierania danych

(gathering data from)

i rozproszenia-

rozrzucania danych

(scattering data into)

(

http://en.wikipedia.org/wiki/Vectored_I/O - "Scatter-Gather" (dosł.: rozrzu

ć

-zbierz

)

technika transferu nieci

ą

głych bloków danych jako seria małych

spójnych, ci

ą

głych bloków danych

(

http://www.latticesemi.com/products/intellectualproperty/ipcores/scatter-

gatherdirectmemor/index.cfm

)

procedura DMA, Scatter-Gather (dosł.: „rozrzu

ć

-zbierz”), pozwalaj

ą

ca

przenosi

ć

dane do wielu obszarów pami

ę

ci w pojedynczym transferze;

pod wzgl

ę

dem skutków jest to równowa

ż

ne poł

ą

czeniu ła

ń

cuchowemu

kilku transferów, jednak jest wyra

ź

nie szybsze

(

http://pl.wikipedia.org/wiki/DMA

)

Tryby DMA

Buforowanie Ping-Pong

Galda M.: Audio Output Options for Kinetis.

Using DMA and PWM, DAC, or I2S Audio Bus. Freescale Semi. AN4369, 02/2012

dwa niezale

ż

ne bufory napełniane naprzemiennie danymi, np. próbkami audio

po
opró

ż

nieniu

jednego
bufora,
odwrócenie
ról

realizacja
przez
przeł

ą

czanie

wska

ź

ników

(adresów)
buforów

Figure 1. Audio input-output data processing stream

Tryby DMA

Transfer z w

ykradaniem cykli

SH7211 Group. Data Transfer between

On-chip RAM Areas with DMAC (Cycle-Stealing Mode). Renesas, March 2008

CPU nie ma dost

ę

pu do magistral w trakcie DMA, np. wykonuje program

z wewn

ę

trznej pami

ę

ci podr

ę

cznej (cache); kontroler DMA zawiesza

dost

ę

p CPU do magistral

kontroler DMA przejmuje kontrol

ę

nad magistralami tylko je

ś

li CPU nie

korzysta z magistral; wykrada cykle

(Cycle stealing mode)

CPU decyduje o momencie transferu danych przez DMA

transfer DMA ulega spowolnieniu ale CPU i DMA maj

ą

dost

ę

p do

magistral

Tryby DMA

wg Cypress Semiconductor

Anu M. D.: An Introduction to DMA

Cypress Semiconductor Corp. March 2012

kontroler DMA

(DMA controller - DMAC)

nadzoruje transfer danych bez

udziału CPU; CPU programuje kontroler DMA

typy transferów przy du

ż

ej liczbie danych:

punkt – punkt

(Point-to-Point)

punkt – tablica

(Point-to-Array)

tablica – punkt

(Array-to-Point)

tablica – tablica

(Array-to-Array)

podwójne, przemienne buforowanie

(Ping Pong Buffering)

po

ka

ż

dym

transferze

licznik transferów jest
dekrementowany o 1

(burst count)

transfer

jest

ko

ń

czony

je

ś

li

licznik transferów

osi

ą

ga warto

ść

0

DMA Operations

Example 1: Point-to-Point Transfer

Anu M. D.: An Introduction to DMA

Cypress Semiconductor Corp. March 2012

Fig. 1

sygnał ko

ń

ca konwersji (

E

nd

o

f

C

onversion) przetwornika wymusza

żą

danie

transmisji DMA (

DMA request

)

układ

DMA

odczytuje dane z przetwornika ADC i wpisuje do rejestrów

przetwornika

DAC

w ka

ż

dym cyklu

żą

dania DMA (on each

DMA request

)

DMA Operations

Example 2: Point-to-Array Transfer

Anu M. D.: An Introduction to DMA

Cypress Semiconductor Corp. March 2012

kontroler

DMA zapisuje 2-batowy

wynik konwersji przetwornika

ADC do

bufora w pami

ę

ci

RAM

po ka

ż

dorazowym wyst

ą

pieniu

żą

dania transmisji

wska

ź

nik bufora pami

ę

ci RAM

jest

inkrementowany

po ka

ż

dorazowym

transferze danych

Po

przesłaniu zaprogramowanej liczby wyników przetwarzania układ

DMA

sygnalizuje zako

ń

czenie transferu danych

Fig. 3

background image

5

DMA Operations

Example 3: Array-to-Point Transfer

Anu M. D.: An Introduction to DMA

Cypress Semiconductor Corp. March 2012

przetwornik DAC jest periodycznie aktualizowany

warto

ś

ciami zapisanymi

w pami

ę

ci Flash (lookup table)

na wyj

ś

ciu przetwornika

DAC

tworzony jest

sygnał sinusoidalny

żą

danie transmisji DMA

jest

periodycznie wymuszane przez licznik

(sygnał zegarowy)

cz

ę

stotliwo

ść

żą

da

ń

transmisji DMA
(DMA trigger
clock)
oraz
wielko

ść

tablicy

w pami

ę

ci

Flash decyduj

ą

o parametrach
sinusoidy.

Fig. 5

DMA Operations

Example 4: Array-to-Array Transfer

Anu M. D.: An Introduction to DMA

Cypress Semiconductor Corp. March 2012

w pami

ę

ci

RAM

jest tworzona kopia tablicy z pami

ę

ci

Flash

(8-bytowe dane)

z wykorzystaniem transferu DMA (from memory to Memory)

transfer jest wymuszany przez CPU

(CPU request)

koniec
transferu

jest

sygnalizowany
przez sygnał

NRQ

, który

uruchamia
przerwanie
ISR_DMADone

i

wy

ś

wietla

zawarto

ść

pami

ę

ci

RAM

na

LCD

Fig. 7

DMA Operations

Example 5: Ping-Pong Buffer

[1#2]

Anu M. D.: An Introduction to DMA

Cypress Semiconductor Corp. March 2012

Fig. 10

wyniki przetwarzania przetwornika ADC dane s

ą

zapisywane w buforze 1 w

pami

ę

ci RAM (RAM Buffer 1)

po
zapełnieniu
bufora 1
(RAM Buffer
1)
, dane s

ą

zapisywane
w buforze 2
(RAM Buffer
2)

DMA Operations

Example 5: Ping-Pong Buffer

[2#2]

Anu M. D.: An Introduction to DMA

Cypress Semiconductor Corp. March 2012

Fig. 13

naprzemienne wykorzystanie
dwóch kanałów DMA

PC DMA Channels 0..3

http://www.pcguide.com/

DMA0

– reserved for use by the internal Dynamic RAM refresh circuitry
– used only for system memory on almost all PCs and not available for

use by peripherals

DMA1

– "low" DMA channel, normally taken by the sound card (one must be

chosen from DMAs 1, 2 or 3, while the other can be any free DMA
channel)

– also a popular choice for many other peripherals

DMA2

– used on virtually every PC for the floppy disk controller

DMA3

– normally the only one free on the first controller (DMAs 0 to 3) when you

are using a sound card

– one of the most common uses of this channel is by ECP parallel ports,

which require a DMA channel unlike other parallel port modes

– on very old XT systems, DMA channel 3 is used by the hard disk drive

PC DMA Channels 4..7

DMA4

– reserved for cascade the two DMA controllers on systems with a 16-

bit ISA bus. It is not available for use by peripherals

DMA5

– "high" DMA channel for sound card
– other Common Uses: SCSI host adapters, network cards

DMA6

– normally open and available for use by peripherals
– one of the least used channels in the system and is an alternative

location for the "high" sound card DMA channel or other devices

DMA7

– normally open and available for use by peripherals
– one of the least used channels in the system and is an alternative

location for the "high" sound card DMA channel or other devices

http://www.pcguide.com/

background image

6

MSP430x4xx

DMA Controller Features

kontroler DMA

(

direct memory access

) przesyła dane z jednego adresu

do innego, bez interwencji jednostki centralnej procesora (

CPU

), w całym

zakresie adresów; np. kontroler DMA mo

ż

e zapisywa

ć

wyniki

przetwarzania przetwornika ADC12 do pami

ę

ci RAM

kontroler DMA

zwi

ę

ksza wydajno

ść

układów peryferyjnych

wykorzystanie transferu

DMA redukuje pobór mocy

przez mikrokontroler

przez wprowadzenie CPU w tryb redukcji

mocy (

low-power mode

), np. u

ś

pienia (

sleep mode

), bez konieczno

ś

ci

zmiany trybu pracy przy transmisji danych do/z układów peryferyjnych

MSP430x4xx Family. User’s Guide.

Mixed Signal Products. Texas Instruments, 2007, SLAU056G

MSP430x4xx

DMA Controller

zapis danych w pami

ę

ci RAM w trybie

DMA

:

ź

ródłem danych jest

12-bitowy przetwornik ADC12

,

12-bitowy przetwornik DAC12

w trybie 8- lub 12-bitowym,

ź

ródłem danych lub układem docelowym jest

USART0

(

kontroler standardu

I2C-Bus, zgodny ze standardem Philips I

2

C, wersja 2.1

)

w trybie podstawowym (

standard mode, 100 kbps

MAX

) lub szybkim (

fast

mode, 400 kbps

MAX

),

adresowanie 7-bitowe lub 10-bitowe,

praca w trybie master lub slave,

dwa dedykowane kanały DMA obsługuj

ą

ce 16-bitowy transfer I

2

C

automatyczny transfer danych do pami

ę

ci Flash

– transfer DMA bez

udziału CPU, niezale

ż

nie od wybranego trybu redukcji mocy (

low-power

modes

)

MSP430x4xx Family. User’s Guide.

Mixed Signal Products. Texas Instruments, 2007, SLAU056G

MSP430x4xx

DMA Controller

Block Diagram

up to three independent
transfer channels

configurable DMA channel
priorities
only 2 MCLK clock cycles

byte or word and mixed
byte/word transfer capability

block sizes up to 65535 bytes
or words

configurable transfer trigger
selections
selectable edge or level-
triggered transfer

four addressing modes

single, block, or burst-block
transfer modes

Inicjalizacja

transferu DMA

Wyzwalanie zboczem lub poziomem

transfer DMA

nie jest

przerywany

przez kontroler

przerwa

ń

procesora

MSP430x4xx

Tryby adresowania DMA

oba stałe adresy

stały adres – adresy bufora

adresy bufora 1 –
– adresy bufora 2

adresy bufora – stały adres

4 tryby adresowania

ka

ż

dy kanał DMA programowany niezale

ż

nie

Transfer:
– byte-to-byte,

– word-to-word,

– byte-to-word,
– lub word-to-byte

STM32L053

Direct Memory Access

RM0367. Reference manual. Ultra-low-power STM32L0x3

advanced ARM

®

-based 32-bit MCUs. STMicroelectronics, April 2014

do 7 niezale

ż

nych, programowalnych kanałów DMA (

requests

)

sprz

ę

towe lub programowe wyzwalanie ka

ż

dego kanału DMA

programowalne 4 poziomy priorytetów transferów DMA (

very high, high,

medium, low priorities

)

niezale

ż

ne

ź

ródło (

source

) / przeznaczenie (

destination

), typ transferu (

byte

,

half word, word

); prawidłowy sposób adresowania (so

urce/destination

addresses must be aligned on the data size

)

wsparcie realizacji bufora kołowego (circular buffer)

3 znaczniki (

DMA Half Transfer, DMA Transfer complete and DMA Transfer

Error

); logiczny OR dla pojedynczego przerwania ka

ż

dego z kanałów DMA

transfery: memory-to-memory, peripheral-to-memory oraz memory-to-
peripheral i peripheral-to-peripheral transfers (

access to Flash, SRAM, APB

and AHB peripherals as source and destination

)

2-bajtowa liczba transmitowanych danych (

maksymalnie 65535 transferów

)

STM32 Microcontrollers

Direct Memory Access

http://www.embedds.com/

using-direct-memory-access-dma-in-stm23-projects

Core

ARMv7-M

Ibus

Dbus

System

DMA

AHB

B

u

s

m

a

tr

ix

Peripherals

Peripherals

do

14 kanałów DMA

(

single unit

) w procesorach ST32

mało

(

Low

) i

ś

rednio

(

Medium

) zło

ż

onych

dwa kontrolery DMA

z maksymalnie

12

niezale

ż

nymi

kanałami

w

procesorach ST32

bardzo

(

High

) zło

ż

onych

Flash

RAM

APB1

APB2

background image

7

STM32L053

DMA Transfer

RM0367. Reference manual. Ultra-low-power STM32L0x3

advanced ARM

®

-based 32-bit MCUs. STMicroelectronics, April 2014

odczyt

danych z rejestrów układów peryferyjnych lub komórki pami

ę

ci

adresowanej wewn

ę

trznym rejestrem adresowym

adres pocz

ą

tkowy pierwszego transferu DMA

w rejestrze:

-

DMA_CPARx

(

peripheral base address of the data register from/to

which the data will be read/written

)

- or

DMA_CMARx

(

memory base address area from/to which

the data will be read/written

)

dekrementacja 16-bitowego rejestru licznikowego

(

DMA_CNDTRx –

DMA channel x number of data register

) po ka

ż

dym transferze danych

(

post-decrementing

)

STM32L053

DMA Channel x Configuration Register DMA_CCRx

[1#3]

RM0367. Reference manual. Ultra-low-power STM32L0x3

advanced ARM

®

-based 32-bit MCUs. STMicroelectronics, April 2014

31:15

Reserved

14

MEM2MEM: Memory to memory mode

(

bit set & cleared by software

)

0: Memory to memory mode disabled
1: Memory to memory mode enabled

13:12

PL[1:0]: Channel priority level

(

bits set & cleared by software

)

00: Low

01: Medium

10: High

11: Very high

11:10

MSIZE[1:0]: Memory size

(

bits set & cleared by software

)

00: 8-bits

01: 16-bits

10: 32-bits

11: Reserved

9:8

PSIZE[1:0]: Peripheral size

(

bits set & cleared by software

)

00: 8-bits

01: 16-bits

10: 32-bits

11: Reserved

7

MINC: Memory increment mode

(

bit set & cleared by so

ftware)

0: Memory increment mode disabled
1: Memory increment mode enabled

STM32L053

DMA Channel x Configuration Register DMA_CCRx

[2#3]

RM0367. Reference manual. Ultra-low-power STM32L0x3

advanced ARM

®

-based 32-bit MCUs. STMicroelectronics, April 2014

6

PINC: Peripheral increment mode

(

bit set & cleared by software

)

0: Peripheral increment mode disabled
1: Peripheral increment mode enabled

5

CIRC: Circular mode

(

bit set & cleared by software

)

0: Circular mode disabled
1: Circular mode enabled

4

DIR: Data transfer direction

(

bit set & cleared by software

)

0: Read from peripheral
1: Read from memory

3

TEIE: Transfer error interrupt enable

(

bit set & cleared by software

)

0: TE interrupt disabled
1: TE interrupt enabled

2

HTIE: Half transfer interrupt enable

(

bit set & cleared by software

)

0: HT interrupt disabled
1: HT interrupt enabled

STM32L053

DMA Channel x Configuration Register DMA_CCRx

[3#3]

RM0367. Reference manual. Ultra-low-power STM32L0x3

advanced ARM

®

-based 32-bit MCUs. STMicroelectronics, April 2014

1

TCIE: Transfer complete interrupt enable

(

bit set & cleared by software

)

0: TC interrupt disabled
1: TC interrupt enabled

0

EN: Channel enable

(

bit set & cleared by software

)

0: Channel disabled
1: Channel enabled

STM32L053

Circular and Memory-to-memory mode

RM0367. Reference manual. Ultra-low-power STM32L0x3

advanced ARM

®

-based 32-bit MCUs. STMicroelectronics, April 2014

tryb bufora kołowego

(

Circular mode

) do obsługi buforów kołowych (handle

circular buffers) np. skanowanie przetwornika ADC

odblokowanie trybu bitem CIRC (

Circular mode

) w rejestrze DMA_CCRx (

DMA

Channel x Configuration Register

)

ą

czenie trybu automatycznie uaktualnia liczb

ę

transferów programowan

ą

w

trakcie programowania kontrolera DMA

Memory-to-memory mode

– transfer DMA nie musi by

ć

aktywowany przez

urz

ą

dzenie peryferyjne

ustawienie bitu MEM2MEM (

Memory to memory mode

) w rejestrze

DMA_CCRx (

DMA Channel x Configuration Register

), rozpoczyna transfer

DMA po ustawieniu bitu EN (

Channel enable

) w rejestrze DMA_CCRx

transfer jest ko

ń

czony je

ś

li zwarto

ść

rejestru DMA_CNDTRx (

DMA channel x

number of data register

) jest równa 0

tryb Memory-to-Memory mo

ż

e by

ć

u

ż

yty równolegle z trybem bufora kołowego

STM32L053

Error management

RM0367. Reference manual. Ultra-low-power STM32L0x3

advanced ARM

®

-based 32-bit MCUs. STMicroelectronics, April 2014

kontroler DMA

generuje

ą

d

przy próbie

odczytu/zapisu z obszaru

zarezerwowanego

ą

d transmisji automatycznie blokuje kanał DMA

(

disabled

) i kasuje

bit

EN = 0

(

Channel enable

) we wła

ś

ciwym dla tego kanału rejestrze

konfiguracyjnym

DMA_CCRx

(

DMA Channel x Configuration Register

)

ą

d transmisji wywołuje przerwanie

, ustawiany jest znacznik

TEIF = 1

(

Channel x transfer error flag

) w rejestrze DMA_IFR (

DMA Interrupt

Requests Register

)

je

ś

li odblokowane jest maskowanie przerwania, bit

TEIE = 1

(

Transfer error interrupt enable

), we wła

ś

ciwym dla tego kanału

rejestrze konfiguracyjnym

DMA_CCRx

(

DMA Channel x Configuration

Register

)

background image

8

STM32L053

DMA Request

RM0367. Reference manual. Ultra-low-power STM32L0x3

advanced ARM

®

-based 32-bit MCUs. STMicroelectronics, April 2014, tab. 43

Request

Peri-

Channel

number

pherals

1

2

3

4

5

6

7

0

ADC

ADC

ADC

1

SPI1

SPI1

SPI1

_RX

_TX

2

SPI2

SPI2

SPI2

SPI2

SPI2

_RX

_TX

_RX

_TX

3

USART1

USART1

USART

USART1 USART1

_TX

_RX

_TX

_RX

4

USART2

USART2 USART2

USART2

USART2

_TX

_RX

_RX

_TX

5

LPUART1

LPUART1 LPUART1

LPUART1 LPUART1

_TX

_RX

_RX

_TX

6

I2C1

I2C1

I2C1

I2C1

I2C1_RX

_TX

_RX

_TX

_TX

7

I2C2

I2C2

I2C2

_TX

_RX

8

TIM2

TIM2

TIM2

TIM2

TIM2

TIM2

TIM2_CH2

_CH3

_UP

_CH2

_CH4

_CH1

TIM2_CH4

9

TIM6_UP

TIM6/DAC

/DAC_Ch1

_Ch1

11

AES

AES

AES

AES

AES

_IN

_OUT

_OUT

_IN

Universal Synchronous / Asynchronous Receiver / Transmitter

Inter-integrated Circuit (I2C) interface

Analog-to-Digital Converter

Low-Power Universal Asynchronous Receiver / Transmitter

Serial peripheral interface/ inter-IC sound

general-purpose TIMer 2

Advanced Encryption Standard hardware accelerator

basic TIMer 6

Digital-to-Analog Converter

STM32L053

DMA Request

RM0367. Reference manual. Ultra-low-power STM32L0x3

advanced ARM

®

-based 32-bit MCUs. STMicroelectronics, April 2014, tab. 43

Request

Peri-

Channel

number

pherals

1

2

3

4

5

6

7

0

ADC

ADC

ADC

1

SPI1

SPI1

SPI1

_RX

_TX

2

SPI2

SPI2

SPI2

SPI2

SPI2

_RX

_TX

_RX

_TX

3

USART1

USART1

USART

USART1 USART1

_TX

_RX

_TX

_RX

4

USART2

USART2 USART2

USART2

USART2

_TX

_RX

_RX

_TX

5

LPUART1

LPUART1 LPUART1

LPUART1 LPUART1

_TX

_RX

_RX

_TX

6

I2C1

I2C1

I2C1

I2C1

I2C1_RX

_TX

_RX

_TX

_TX

7

I2C2

I2C2

I2C2

_TX

_RX

8

TIM2

TIM2

TIM2

TIM2

TIM2

TIM2

TIM2_CH2

_CH3

_UP

_CH2

_CH4

_CH1

TIM2_CH4

9

TIM6_UP

TIM6/DAC

/DAC_Ch1

_Ch1

11

AES

AES

AES

AES

AES

_IN

_OUT

_OUT

_IN

STM32L053

DMA Channel configuration procedure

[1#2]

RM0367. Reference manual. Ultra-low-power STM32L0x3

advanced ARM

®

-based 32-bit MCUs. STMicroelectronics, April 2014

zaprogramuj:

1.

adres pobieranych

(

source

)

danych z wybranego układu

peryferyjnego

w rejestrze

DMA_CPARx

(

DMA peripheral base address

of the data register from/to which the data will be read/written

); dane

mog

ą

by

ć

tak

ż

e pobierane z pami

ę

ci

2.

adres wysyłanych

(

destination

)

danych w pami

ę

ci

w rejestrze

DMA_CMARx

(

DMA memory base address area from/to which the data

will be read/written

); dane mog

ą

by

ć

tak

ż

e wysyłane do wybranego

układu peryferyjnego

3.

liczb

ę

przesyłanych danych

w rejestrze

DMA_CNDTRx

(

DMA number

of data to be transferred (0 up to 65535) register

); po ka

ż

dym transferze

danych warto

ść

tego rejestru b

ę

dzie dekrementowana

STM32L053

DMA Channel configuration procedure

[2#2]

RM0367. Reference manual. Ultra-low-power STM32L0x3

advanced ARM

®

-based 32-bit MCUs. STMicroelectronics, April 2014

zaprogramuj:

4.

priorytet wybranego kanału

, bity

PL[1:0]

(

channel priority level

) w

rejestrze DMA_CCRx (

DMA Channel x Configuration Register

)

5.

−−−−

kierunek

transferu danych (

data transfer direction

)

−−−−

transfer w

trybie bufora kołowego

(

circular mode

)

−−−−

tryb inkrementacji

dla układu peryferyjnego / pami

ę

ci (

peripheral &

memory incremented mode

)

−−−−

rozmiar

transmitowanych danych (

peripheral & memory data size

)

−−−−

typ przerwania

po połowie lub całym bloku transmitowanych danych

(

interrupt after half and/or full transfer

) w rejestrze DMA_CCRx

(

DMA Channel x Configuration Register

)

uaktywnij

kanał

DMA

, bit

ENABLE = 1

w rejestrze DMA_CCRx (

DMA

Channel x Configuration Register

)

NXP LPC17xx

AN10878 Migrating to the LPC1700 series.
NXP Semiconductors, App Note, Rev. 01 - 6 October 2009

Multilayer AHB Bus Matrix

Multilayer interconnect

system

allows

simultaneous operation:

CPU execution from
on-chip flash

Ethernet DMA

USB DMA

General Purpose DMA

– simultaneous access to

be spread over three
separate SRAMs with no
contention between those
functions

Problemy i pytania

1. Jaki jest powód wprowadzenie trybu DMA ?

2. Jak opisa

ć

działanie trybu DMA ?

3. Jaki jest udział jednostki centralnej (CPU) w trybie DMA ?

4. Jakie sygnały steruj

ą

kontrolerem DMA ?

5. Jakie typy operacji s

ą

mo

ż

liwe w trybie DMA ?

6. Na czym polega tryb ‘Single Transfer’ ?

7. Na czym polega tryb ‘Block Transfer’ ?

8. Na czym polega tryb ‘Burst-Block Transfer’ ?

Na czym polega tryb ‘Scatter-Gather Transfer’ ?

Jakie s

ą

ż

nice przy wymianie danych typu: ‘Point-to-Point’ i ‘Point-to-Array’ ?

Jakie s

ą

ż

nice przy wymianie danych typu: ‘Array-to-Point’ i ‘Array-to-Array’ ?

Na czym polega operacja typu ‘Ping Pong Buffering’ ?

Jakie układy peryferyjne mikrokontrolerów wykorzystuj

ą

tryb DMA (przykłady) ?

Ile kanałów DMA mo

ż

e równocze

ś

nie transmitowa

ć

dane ?

Czy tryb DMA sprzyja redukcji mocy w mikrokontrolerach ?


Wyszukiwarka

Podobne podstrony:
9 Liczniki 2015 www
10 Serial Interface 2015 www
Dokument 12.01.2015, weterynaria, 5 rok semestr 1, choroby ptaków
13 Power 2015 www
12 01 2015 r Działalność prasowo informacyjna w Policjiid351
12 01 2015 r Komunikowanie masoweid353
12 01 2015 r Informacje medialne w Policjiid352
Spraw.Zesp.IP.12.04.2015, Documents, ip, sprawozdania
ptaki-cwiczenia-12.01.2015-poprawiona, weterynaria, 5 rok semestr 1, choroby ptaków
10. Wykład z teorii literatury - 12.01.2015, Teoria literatury, Notatki z wykładu dr hab. Skubaczews
4 Typy instrukcji Tryby adresowania 2015 www (1)
3 Przetw danych Typy proces 2015 www (1)
7 Stos 2015 www
choroby pasożytnicze (12.01.2015), Weterynaria, Choroby ptaków
Lokalny program rewitalizacji osiedla „Stara Kolonia” w Brzeszczach 2005 2015 www old brzeszcze pl
6 Pamieci ROM RAM 2015 www
11 Przetworniki 2015 www
2 Architektura 2015 www

więcej podobnych podstron