Mikrokontroler ATMEL z serii AT91

Shared by: zaelani91
-
Stats
views:
8
posted:
4/29/2011
language:
Polish
pages:
4
Document Sample
scope of work template
							U.I. INFO-KAM A.Zeja www.infokam.kielce.pl

   Mikrokontroler ATMEL z serii AT91SAM7S

draft 25.04.2006

PIT-Zegar systemowy

Do realizacji zegara systemowego wykorzystamy PIT (ang. Periodic Interval Timer)

Parametry programowania PIT:
Okres:
MCK = 47 923 200 Hz 0,0209 µs lub 50 Cykli na 1µs
MCK/16=2 995 200Hz czyli 0,3387 µs
20-bitowy licznik CPIV zlicza od 0 do wartości PIV ustawianej w rejestrze PIT_MR

trafiamy z przerwaniem w            1µs - PIV = 3
                                    1ms - PIV = 3000




KaŜde osiągnięcie wartości PIV powoduje zwiększenie wartości licznika PICNT , wyzerowanie
licznika PIV oraz ustawiany jest bit PITS w rejestrze statusu PIT_SR .
JeŜeli w rejestrze statusu PIT_SR zezwolono na przerwania (bit PITIEN ) - zbocze narastające
PITS sygnalizuje przerwanie.

Wpisanie nowej wartości PIV nie powoduje zerowania oraz restartu licznika.

Kiedy wartości liczników PIV oraz PICNT zostaną odczytane z rejestru PIT_PIVR licznik
przepełnienia PICNT jest zerowany oraz PITS jest zerowany - sekwencja powinna być
wykorzystana do potwierdzenia przyjęcia przerwania i wykonania procedury obsługi

Istnieje drugi rejestr umoŜliwiający odczytanie zawartości PIV oraz PICNT bez zmiany wartości
PICNT oraz PITS : PIT_PIIVR
U.I. INFO-KAM A.Zeja www.infokam.kielce.pl

   Mikrokontroler ATMEL z serii AT91SAM7S

Obsługa modułu UART




Szybkość transmisji danych




Chcemy osiągnąć 115200
MCK = 47923200
BaudRate =MCK /(CD *16)              CD = MCK /(BaudRate*16)
U.I. INFO-KAM A.Zeja www.infokam.kielce.pl

    Mikrokontroler ATMEL z serii AT91SAM7S


MCK                       BaudRate              CD              Błąd
47923200             16                230400        13                 0
47923200             16                115200        26                 0




SPI

void spi_init(void)
{
/* disable and reset */
spi->SPI_CR = AT91C_SPI_SPIDIS | AT91C_SPI_SWRST; //Disable and reset

AT91F_SPI_CfgPMC(); /* enable clock */

spi->SPI_MR = ((0xb <<16) | (32 << 24) | AT91C_SPI_MSTR | /* Master */
AT91C_SPI_PS_VARIABLE );
/* VAriable periheral (== 1) */ // Czyli SPI Będziemy wybierać urządzenie zewnętrzne podczas
wpisywania słowa do transmisji

AT91F_SPI_CfgCs(spi, 0,
AT91C_SPI_CPOL |
(AT91C_SPI_BITS & AT91C_SPI_BITS_12) | // 12 bitów
(AT91C_SPI_SCBR & (CS_BAUD << 8)) |
(AT91C_SPI_DLYBS & (128 << 16)) |
(AT91C_SPI_DLYBCT & (0 << 24))
);
// Drugi kanal
AT91F_SPI_CfgCs(spi, 1,
AT91C_SPI_CPOL |
(AT91C_SPI_BITS & AT91C_SPI_BITS_12) | // 12 bitów
(AT91C_SPI_SCBR & (CS_BAUD << 8)) |
(AT91C_SPI_DLYBS & (128 << 16)) |
(AT91C_SPI_DLYBCT & (0 << 24))
);


AT91F_PIO_CfgPeriph( AT91C_BASE_PIOA, // PIO controller base address
((unsigned int) AT91C_PA11_NPCS0 ) |// Peripheral A
((unsigned int) AT91C_PA31_NPCS1 ) |
((unsigned int) AT91C_PA13_MOSI ) |
((unsigned int) AT91C_PA12_MISO ) |
((unsigned int) AT91C_PA14_SPCK ),0);// ((unsigned int) AT91C_PA9_NPCS1 ) );


AT91F_PDC_Open(spi_pdc);
AT91F_SPI_Enable(spi);

}
U.I. INFO-KAM A.Zeja www.infokam.kielce.pl

   Mikrokontroler ATMEL z serii AT91SAM7S

						
Related docs
Other docs by zaelani91
PLC omron training basic
Views: 80  |  Downloads: 0
zelio tutorial (PDF)
Views: 149  |  Downloads: 0
matlab
Views: 42  |  Downloads: 1
control loops
Views: 1  |  Downloads: 0
zelio training (PDF)
Views: 27  |  Downloads: 0
modul pelatihan AVR
Views: 46  |  Downloads: 0
jenis PLC
Views: 1223  |  Downloads: 11
tutorial PID control
Views: 85  |  Downloads: 0
jobsheet mikrokontroler
Views: 264  |  Downloads: 7
PLC training
Views: 11  |  Downloads: 0