|
Облако тегов |
|
|
Arduino, Circuit Cellar, CQ Amateur Radio, Elektor, Everyday Practical Electronics, Raspberry Pi, антенна, аудио, видео, Журнал, Измерения, Микроконтроллеры, Микросхемы, микроэлектроника, Программирование, Радіоаматор, Радио, Радио (жур.), Радиоаматор, Радиоконструктор, Радиолюбитель, радиолюбителю, Радиомир, радиосвязь, радиоэлектроника, ремонт, Ремонт и Сервис, робототехника, Связь, Серия Ремонт, справочник, схема, Схемотехника, Схемы, Телевидение, Телевизоры, усилитель, Электрик, Электроника, Электротехника
Показать все теги
|
|
|
|
|
|
Авторские права | |
|
Все книги на сайте представлены исключительно в ознакомительных целях!
Авторам, желающим внести поправки, просим связаться с администрацией.
Администрация
|
|
|
|
|
|
|
|
Микроэлектроника, Программирование: Mikrokontrolery AT91SAM7 w przykadach
|
|
|
Просмотров: 2109 добавил: MIHAIL62 30-05-2013, 14:14
|
|
Название: Mikrokontrolery AT91SAM7 w przykadach
Автор: Brzoza-Woch Robert
Издательство: BTC
Год: 2009
Страниц: 362
Язык: Польский
|
Ksika jest kompleksowym podrcznikiem ilustrujcym szerok gam zagadnie zwizanych z przygotowywaniem aplikacji w jzyku C dla 32-bitowych mikrokontrolerw z rodziny AT91SAM7 firmy Atmel. Dziki zastosowaniu zunifikowanego rdzenia ARM7TDMI w prezentowanych mikrokontrolerach, przykady zaprezentowane w ksice mog by pomocne take konstruktorom i programistom przygotowujcym aplikacje dla innych mikrokontrolerw wyposaonych w rdzenie z rodziny ARM7.
Ksika jest przeznaczona dla uczniw, studentw uczelni technicznych oraz inynierw zainteresowanych wspczesnymi trendami w technice cyfrowej, a take poznaniem narzdzi uatwiajcych lub umoliwiajcych budowanie urzdze elektronicznych wyposaonych w nowoczesne mikrokontrolery.
Spis treci
Wstp 13
1. Podstawy 15
1.1. Co oznacza ARM? 16
1.2. S AM7 - mikrokontrolery z rdzeniem ARM 17
1.3. A RM7TDMI - to warto wiedzie 17
1.3.1. Architektura von Neumanna 17
1.3.2. Wyrwnanie 18
1.3.3 Little-endian kontra big-endian 18
1.4. Jak to dziaa? 19
1.4.1. Mikrokontroler a mikroprocesor 19
1.4.2. Rejestry mikroprocesora 20
1.4.3. Rejestry oglnego przeznaczenia i prowadzenie oblicze 20
1.4.4. Licznik programu 21
1.4.5. Rejestr statusowy 21
1.4.6. Stos 22
1.5. Rdze ARM7TDMI 23
1.5.1. Wyjtki i przerwania 23
1.5.2. Poziomy uprzywilejowania 25
1.5.3. Tryb ARM i tryb Thumb 26
1.5.4. Rejestry statusowe w rdzeniu ARM 27
1.5.5. Pozostae rejestry rdzenia ARM 28
1.5.6. Rejestry a wyjtki 29
1.5.7. Kontroler przerwa w SAM7 31
2. Krtka powtrka z jzyka C 33
2.1. Wstp 34
2.2. Zaoenia 34
2.3. Stosujmy jednolite typy zmiennych 35
2.4. Uywanie modyfikatorw (qualifiers)\ static, volatile i extern 35
2.4.1. Zmienne volatile - „ulotne" 35
2.4.2. Zmienne static - „statyczne" 36
2.4.3. Deklaracje zmiennych i funkcji extern - „zewntrzne" 37
2.4.4. Modyfikator static zastosowany do funkcji 37
2.5. Struktury danych 38
2.5.1. Krtki wstp dla nowicjuszy 38
2.5.2. Co zyskujemy, czyli najprostsze zastosowania 39
2.5.3. Tworzenie struktur danych 39
2.5.4. Wyrwnanie - odsona druga 40
2.6. Wskaniki 44
2.6.1. Co to jest wskanik? 45
2.6.2. Tworzenie wskanikw 45
2.6.3. Uzyskiwanie adresw zmiennych i funkcji 46
2.6.4. Zapis i odczyt danych za pomoc wskanikw 48
2.6.5. Wskaniki do struktur 49
2.6.6. Wskaniki i tablice 49
2.6.7. Wskaniki a problem wyrwnania 51
3. Strategia 53
3.1. Dobieramy SAM-a do naszego projektu 54
3.1.1. Porwnanie wybranych modeli SAM7 54
3.1.2. Przenono kodu pomidzy mikrokontrolerami SAM7 56
3.1.3. Przenono na inne mikrokontrolery firmy Atmel 57
3.2. Dobre nawyki 57
3.2.1. Podzia na moduy 58
3.2.2. Dobry kod sam si komentuje 59
3.3. Testowanie i debugging 62
3.3.1. Sposb najprostszy - dioda LED 62
3.3.2. Sposb wydajny - port szeregowy UART 63
3.3.3. Sposb dokadny - interfejs JTAG 63
3.3.4. Wybr metody 64
3.3.5. Algorytm postpowania 65
3.3.6. Testowanie dugoterminowe 65
3.4. Wybr rodowiska programistycznego i narzdzi 66
3.4.1. rodowiska komercyjne 66
3.4.2. Pakiety darmowe 67
3.5. Nie wszystko trzeba umie - wykorzystanie gotowych
fragmentw programu 68
3.5.1. Biblioteki w jzyku C 69
3.5.2. Fragmenty kodu realizujce specyficzne zadania 69
4. Zaczynamy 71
4.1. Jak podczy SAM7? 72
4.1.1. Najoglniej 72
4.1.2. Zasilanie 73
4.1.3. rda sygnau zegarowego 74
4.1.4. JTAG 75
4.1.5. Interfejs USB 76
4.1.6. Podsumowanie i uwagi 77
4.2. Software 79
4.2.1. Podstawa: edytor, kompilator, programator 79
4.2.2. Konfiguracja portu LPT 82
4.2.3. Pierwsza kompilacja 82
4.2.4. Instalacja AT91-ISP i aktywacja bootloadera SAM-BA 85
4.2.4.1. Instalacja na komputerze PC 85
4.2.4.2. Aktywacja bootloadera SAM-BA w mikrokontrolerze 85
4.2.5. Przygotowanie SAM7X i SAM7XC do pracy i programowanie
za pomoc SAM-BA 86
4.3. Problemy 87
4.3.1. Brak portu LPT 87
4.3.2. Nie dziaaj narzdzia kompilacji 89
4.3.3. Wywoywanie polece 90
5. Omwienie pierwszego projektu 91
5.1. Dostp do ukadw peryferyj nych 92
5.1.1. Do czego zmierzamy? 92
5.1.2. Potrzebne informacje 92
5.1.3. Pierwsze podejcie (bezpos'redni wpis do pamici) 93
5.1.4. Czy mona bardziej przejrzys'cie? (bezporednie adresy rejestrw) 94
5.1.5. Definicje bitw 95
5.1.6. Zadbajmy o przenos'no kodu! (zastosowanie adresw bazowych) 97
5.2. Omwienie plikw projektu Blink_SAM7XC 101
5.2.1. main.c 101
5.2.1.1. Funkcjamain 101
5.2.1.2. Funkcja init 102
5.2.2. board.h 102
5.2.3. Makefile 104
5.2.3.1. Wybr typu mikrokontrolera 104
5.2.3.2. Dodawanie nowych plikw projktu 105
5.2.3.3. Zmiana poziomu optymalizacji 105
5.2.4. Linker scripts - pliki .Id 106
5.2.4.1. Omwienie najistotniejszego fragmentu 106
5.2.4.2. Podzia pamici na sekcje 107
5.2.4.3. Nazwy plikw .Id 107
5.2.5. Pliki startowe - oglnie 107
6. Kontroler PIO czyli port uniwersalnych wej/wyj cyfrowych 109
6.1. Wstp 110
6.2. Wczenie sygnau zegarowego kontrolera PIO 110
6.3. Konfiguracja jako wyjs'cie: miganie diod LED 111
6.3.1. Pierwszy sposb generowania sygnau wyjs'ciowego (SODR, CODR) 111
6.3.2. Drugi sposb sterowania sygnau wyjciowego (ODSR) 112
6.3.3. Przykad do skompilowania 114
6.3.4. Rejestry komplementarne 115
6.4. Praca jako wejcie cyfrowe: odczyt stanu przyciskw 116
6.4.1. Sposb najprostszy 116
6.4.2. Program demonstracyjny 117
6.4.3. Dalsze usprawnienia odczytu 117
6.5. Obsuga popularnych wywietlaczy LCD 2x16 znakw 118
6.5.1. Hardware 118
6.5.2. Sposb sterowania wyprowadzeniami PIO 119
6.5.3. Realizacja praktyczna 120
6.5.4. Programowy interfejs wywietlacza 122
6.6. Interfejs 1-Wire 123
6.6.1. Hardware 123
6.6.2. Konfiguracja PIO 124
6.6.3. Funkcje wyszego poziomu (z pliku one_wire.c) 126
6.6.4. Funkcje obsugi termometru DS18B20 127
6.7. Przerwanie od kontrolera PIO 127
6.7.1. Wstp dla niewtajemniczonych 128
6.7.2. Przykadowy program 129
6.7.3. Konfiguracja kontrolera przerwa AIC 129
6.7.4. Konfiguracja ukadu PIO 130
6.7.5. Funkcja obsugi przerwania PIO 131
6.7.6. Dla dociekliwych: jak to jest naprawd? 133
7. Najprostsza komunikacja szeregowa przez DBGU
oraz elementy interfejsu USART 135
7.1. Wstp 136
7.1.1. Co to jest i do czego suy jednostka DBGU? 136
7.1.2. DBGU a typowy port szeregowy 136
7.2. Sposb podczenia 136
7.2.1. Hardware 137
7.2.2. Brak portu COM 138
7.3. Konfiguracja komputera PC 139
7.4. Najprostsze funkcje obsugi portu szeregowego ukadu DBGU 140
7.4.1. Przejcie kontroli nad wyprowadzeniami przez ukad peryferyjny 140
7.4.2. Zastosowanie definicji bitw kontrolera PIO z plikw nagwkowych Atmela 142
7.4.3. Konfiguracja rejestrw portu DBGU 143
7.4.4. Ostateczna posta funkcji inicjalizujcej 146
7.4.5. Wysyanie znaku przez port szeregowy 147
7.4.6. Wysyanie znaku dla bardziej dociekliwych 148
7.4.7. Odbieranie danych 149
7.5. Funkcje wyszego poziomu 150
7.5.1. Pisanie tekstw 150
7.5.2. Wywietlanie liczb 150
7.5.3. Wywietlanie obszarw pamici na terminalu 151
7.5.4. Odczyt danych wprowadzonych przez uytkownika 152
7.5.5. Funkcje dostpu do przestrzeni adresowej 152
7.5.6. Przykad zastosowania funkcji debug_menu 153
7.6. Port szeregowy w DBGU a prawdziwy USART 155
7.6.1. Modyfikacja wywoania funkcji inicjalizujcej 155
7.6.2. Uzupenienie jednego pola bitowego w Mode Register 156
7.6.3. Jeszcze tylko przeczenie wtyczki 156
7.6.4. Podsumowanie 157
8. Zaawansowane sposoby komunikacji szeregowej przez USART 159
8.1. Wstp 160
8.2. Zastosowanie systemu przerwa do moduu USART 160
8.2.1. Program przykadowy 160
8.2.2. Inicjalizacja portu szeregowego do pracy z przerwaniami 161
8.2.3. Funkcja obsugi przerwania od ukadu USART 164
8.2.4. Wysyanie danych w funkcji obsugi przerwania 165
8.3. Bezporedni dostp do pamici, czyli DMA 168
8.3.1. Co to jest DMA oraz po co si to stosuje? 168
8.3.2. Implementacja DMA w mikrokontrolerach SAM7 168
8.3.3. Najprostszy przykad transferw DMA 170
8.3.4. Funkcja inicjalizujca USART 172
8.3.5. Najprostsza realizacja wysyania danych przez DMA 172
8.3.6. O tych rejestrach take warto wiedzie (wysyanie) 173
8.3.7. Najprostsza realizacja odbioru danych przez DMA 175
8.3.8. O tym take warto wiedzie (odbir) 176
8.4. Poczenie transferw DMA i ukadu przerwa 176
8.4.1. Program przykadowy i cel dziaa 177
8.4.2. Komunikacja szeregowa z handshakingiem - jak si to podcza? 180
8.4.3. Dziaanie sygnaw RTS i CTS 181
8.4.4. Timeout w odbiorniku - sposb na zrnicowan liczb danych wejs'ciowych 181
8.4.5. Funkcja inicjalizujca 182
8.4.6. Odbir danych 186
8.4.7. Wysyanie danych 190
8.5. Podsumowanie 191
8.5.1. Gdzie nie sprawdzi si DMA i przerwania 191
8.5.2. Nie tylko USART 191
9. SPI - dziaanie i zastosowania 193
9.1. Wstp 194
9.1.1. Jak to dziaa, do czego suy i czym si charakteryzuje? 194
9.2. Hardware 194
9.2.1. Poczenie fizyczne 195
9.2.2. Sygnay elektryczne 196
9.3. Obsuga interfejsu SPI 197
9.3.1. Kilka sw o programie testowym 197
9.3.2. Inicjalizacja SPI: najpierw oglna 197
9.3.3. Inicjalizacja poszczeglnych kanaw SPI 200
9.3.4. Przebieg transmisji danych 206
9.3.5. Funkcja wysyajca i odbierajca pojedynczy znak 209
9.3.6. Funkcja transmitujca dane w trybie DMA 210
9.3.7. Praktyczne uwagi na temat transferw danych 214
9.4. Obsuga wywietlacza graficznego do telefonu Nokia 3310 216
9.4.1. Sposb podczenia 216
9.4.2. Program przykadowy 217
9.4.2. Niskopoziomowa inicjalizacja wys'wietlacza 217
9.4.3. Jak to dziaa, czyli organizacja przepywu danych 219
9.4.4. Omwienie najwaniejszych funkcji obsugi wys'wietlacza 220
9.5. Obsuga karty SD 221
9.5.1. Podczenie karty do mikrokontrolera 221
9.5.2. Program przykadowy zamiast teorii 222
9.5.3. Krtko o inicjalizacji interfejsu SPI dla karty 224
9.5.4. Funkcje obsugi karty SD 225
9.6. Podobny interfejs - SSC 226
10. System plikw FAT 227
10.1. Wstp 228
10.1.1. Co zyskamy? 228
10.1.2. W jaki sposb zaimplementujemy obsug systemu plikw? 228
10.1.3. O bibliotece FatFs 228
10.2. Zastosowanie FatFs w projekcie 229
10.2.1. Pliki, moduy i funkcje... czyli ktrdy pyn dane 229
10.2.2. Doczenie funkcji obsugi karty SD do biblioteki FatFs 229
10.3. Obsuga biblioteki FatFs - minimum teorii 231
10.3.1. Program przykadowy FAT_Test 232
10.3.2. Idea dziaania 232
10.3.3. Otwieranie pliku 233
10.3.4. Odczyt danych z pliku 235
10.3.5. Filepointer 237
10.3.6. Zapis danych do pliku 238
10.3.7. Inne funkcje FatFs 239
10.4. Funkcje narzdziowe fs_tools.c 240
10.5. Projekt przykadowy: rejestrator temperatury 241
10.6. Projekt przykadowy: prawie jak animacja 242
10.6.1. Przygotowania 242
10.6.2. Dziaanie programu przykadowego 242
10.6.3. Format BMP w praktyce 242
10.6.4. Wys'wietlanie obrazu 245
10.6.5. Inne zastosowania 246
11. Przetwornik ADC 247
11.1. Przyspieszony kurs dla pocztkujcych 248
11.2. Najprostszy przykad z ADC w SAM7 249
11.2.1. Sprzt 249
11.2.2. Program przykadowy 250
11.2.3. Odczyt ADC w najprostszym wydaniu 251
11.2.4. Konfiguracja timingu ADC 253
11.3. Prbkowanie sygnau 255
11.3.1. Przyspieszony kurs: jak szybko prbkowa? 255
11.3.2. Program przykadowy 257
11.3.3. Konfiguracja ADC 258
11.3.4. Inicjalizacja ukadu Timer Counter dla ADC 259
11.3.5. Funkcja obsugi przerwania 262
11.4. Dyktafon cyfrowy - poczenie ADC, DMA i elementw
techniki analogowej 262
11.4.1. Hardware 263
11.4.2. Projekt Peak_Level_Meter - tester mikrofonu 265
11.4.3. Obsuga dyktafonu 265
11.4.4. Co si dzieje w programie? 266
11.4.5. Inicjalizacja ADC do pracy w trybie DMA 267
11.4.6. Podwjne buforowanie w praktyce - funkcja adcDtnaBufferSwap 268
11.4.7. Format pliku WAVE - minimum teorii 269
11.4.8. Zapis dwiku do formatu WAVE w projekcie dyktafonu 273
12. Generator PWM 277
12.1. Zo konieczne, czyli troch teorii 278
12.1.1. Co to jest PWM? 278
12.1.2. Przykad zastosowania: regulacja jasnoci wiecenia diod LED 278
12.1.3. Skadowa staa sygnau PWM 279
12.1.4. Jak uzyska warto skadowej staej z przebiegu PWM? 280
12.2. Kontroler PWM w SAM7 281
12.2.1. Typowy generator PWM 281
12.2.3. Dostp do rejestrw kontrolera PWM 283
12.3. Zastosowanie PWM do regulacji jasnoci podwietlenia
wywietlacza LCD 284
12.3.1. Hardware 285
12.3.2. Dziaanie programu przykadowego 285
12.3.2. Inicjalizacja kontrolera PWM 285
12.3.4. Ustawianie wspczynnika wypenienia 287
12.4. Odtwarzacz plikw dwikowych 288
12.4.1. Obsuga i dziaanie odtwarzacza 288
12.4.2. Hardware - znowu analogwka 289
12.4.3. Inicjalizacja kontrolera PWM i ukadu Timer Counter 290
12.4.4. Odczyt plikw WAVE 293
12.5. Podsumowanie i pomysy 293
13. USB od podstaw 295
13.1. Wstp 296
13.2. USB-jak zacz? 296
13.2.1. Wiadomoci oglne 296
13.2.2. Od bitu do pakietu 297
13.2.3. Endpoint i pip 299
13.3. Transfery danych 301
13.3.1. Control Transfers 301
13.3.2. Bulk Transfers 305
13.3.3. Isochronous Transfers 307
13.3.4. lnterrupt Transfers 308
13.4. Programowa realizacja transferw danych 309
13.4.1. Ping-pong, czyli Dual-Bank 309
13.4.2. Obsuga transferw kontrolnych 309
13.4.2.1. Setup Stage 309
13.4.2.2. Data Stage i Status Stage 312
13.4.3. Pakiety ZLP i STALL w transferach kontrolnych 315
13.4.3.1. Wysyanie pakietu ZLP 315
13.4.3.2. Wysyanie pakietu STALL 315
13.4.4. Transfery Data OUT do endpointw z atrybutem Dual-Bank 316
13.4.5. Transfery Data IN z endpointw z atrybutem Dual-Bank 318
13.5. Tre transferw kontrolnych 320
13.5.1. Pakiet SETUP pod lup 321
13.5.2. zego da host i co z tym zrobi? 322
13.5.2.1. Przykady da dla wszystkich klas 322
13.5.2.2. Przykady da specyficznych dla klasy CDC 325
13.6. Deskryptory 326
13.6.1. Model urzdzenia USB 327
13.6.2. Oglnie o deskryptorach 327
13.6.3. Device Descptor 328
13.6.4. Configuration Descriptor 329
13.6.5. Interface Descriptor 330
13.6.6. Endpoint Descriptor 330
13.7. Projekt przykadowy - przejs'ciwka USB-RS232 331
13.7.1. Funkcjonalno 332
13.7.2. Program gwny 332
13.7.3. Funkcje odpowiedzialne za transfery USB 333
13.7.4. Zastosowanie kodu z przykadu USB2Serial 335
13.8. Projekt przykadowy - czytnik kart SD z interfejsem USB 336
13.8.1. Funkcjonalno 336
13.8.2. Zarys dziaania 336
13.8.3. Obsuga interfejsu USB 338
13.8.4. Jak przenie kod obsugi MSD do wasnego projektu? 339
13.8.5. Program przykadowy - kolejna odsona rejestratora temperatury 341
14. Deser: szyfrowanie danych 343
14.1. Wstp 344
14.2. AES w przykadzie 344
14.2.1. Obsuga programu przykadowego 344
14.2.2. Pokaz pierwszy: szyfrowanie i deszyfrowanie bufora z danymi 345
14.2.3. Pokaz drugi: rne klucze 345
14.2.4. Pokaz trzeci: same zera 346
14.3. Obsuga moduu kryptograficznego AES 346
14.3.1. Szyfrowanie i deszyfrowanie 347
14.3.2. Ustawianie klucza 348
14.4. Co jeszcze warto wiedzie o module AES? 348
14.4.1. Kontrola pracy moduu AES 349
14.4.2. Wybr trybu szyfrowania 350
14.4.3. Zabezpieczenia 353
14.5. Przykad praktyczny - szyfrator kart SD 353
14.5.1. Dziaanie programu 353
14.5.2. Realizacja szyfrowania 354
14.6. Co warto wiedzie oraz czsto zadawane pytania 355
14.6.1. Zastosowania szyfrowania danych 355
14.6.2. Gdzie jest klucz? 356
Dodatek. ZL28ARM - zestaw uruchomieniowy
z mikrokontrolerem AT91SAM7XC 357
Literatur
Ключевые теги: Mikrokontrolery, AT91SAM7
|
|
Содержание Оглавление
|
|
|
|
|
Другие новости по теме:
|
|
|
|
|
|
|
|
|
Информация |
|
|
|
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации. |
|
|
|
|
|
|
|