Arduino - sklep
Forbot.pl Strona Główna » Tagi » lpc1114
Tematy oznaczone jako lpc1114
Tytuł / treść wątku  Wyświetleń  Odpowiedzi 

[Kurs] Programowanie ARM LPC1114 cz.1 - wstęp


Witam,
chciałbym wszystkich zachęcić do lektury nowego kursu programowania procesorów ARM.
Niestety podczas pisania kursu okazało się, że producent płytek ewaluacyjnych zakończył ich produkcję. Nie pozostało nic innego, jak wybrać inny zestaw ewaluacyjny i przygotować kolejny kurs, oparty na nowych - dostępnych płytkach. Wybór padł na relatywnie tanie zestawy ZL32ARM. Są one dostępne w sklepie Kamami, więcej na stronie producenta. Dla użytkowników Diody płytki te dostępne są w specjalnej, promocyjnej cenie - szczegóły poście Treker'a poniżej.

Opis zestawu
Zamontowany na płytce procesor jak i obsługę darmowego kompilatora LPCXpresso opisywałem już w jednym z moich poprzednich artykułów. Kurs zaprojektowany jest jako rozszerzenie poprzedniej wersji kursu. Zachęcam więc do przeczytania jego poprzedniej wersji przed lekturą nowej odsłony. Ponieważ nowa płytka ma mniej elementów niż zastosowana poprzednio, postanowiłem przykłady oprzeć na budowie prostego robota typu LineFollower - w końcu Dioda jest stroną o robotyce ;) Robot jest ...
33055 2

[Programowanie] Tani ARM - LPC1114


Tani ARM - lpc1114

Wstęp

W artykule chciałbym przedstawić rodzinę tanich mikrokontrolerów firmy NXP.
Większość osób słyszało już o rdzeniu Cortex-M3. Jest to nowsza, pod wieloma względami udoskonalona wersja rdzenia ARM7TDMI. Znacznie mniej znana jest rodzina tanich mikrokontrolerów o rdzeniu Cortex-M0.

Cortex-M0 zostały opracowane jako konkurencja dla obecnie stosowanych mikrokontrolerów 8-bitowych. Wobec podwyżki cen układów AVR warto zainteresować się nowym rdzeniem.
Firma NXP jako jedna z pierwszych zaprezentowała mikrokontrolery z rdzeniem Cortex-M0. Są to mikrokontrolery oznaczone jako LPC-111x.

Parametry mikrokontrolerów LPC-111x:
• prędkość do 50 MHz
• do 32 kB pamięci Flash
• do 8kB pamięci RAM
• wbudowany generator RC
• wbudowany watchdog
• sprzętowa obsługa I2C, SPI, UART
• 10-bitowy przetwornik ADC
• nowy interfejs programowania - SWD
• możliwość programowania przez UART (RS-232)[br ...
14974 17

[Kurs] Programowanie ARM LPC1114 cz.2 - porty I/O


Zobacz: Poprzednia część kursu!
Programowanie ARM lpc1114 cz.2 - porty I/O

Porty wejścia-wyjścia są niewątpliwie najważniejszymi układami peryferyjnymi każdego procesora. W poprzedniej wersji kursu opisywałem dokładnie ich działanie. Teraz skoncentruję się nad zmianami w nowym mikrokontrolerze. Podobnie jak poprzednio, najważniejsza jest umiejętność korzystania z dokumentacji procesora. Całą dokumentację znajdziemy na stronie producenta. Najciekawszy jest dokument nazwany „User Manual” (co ciekawe Datasheet to jedynie ogólny opis procesora). Link do dokumentacji: http://ics.nxp.com/support/documents/microcontrollers/pdf/user.manual.lpc11xx.lpc11cxx.pdf

Podobnie jak poprzednio, w dokumentacji możemy znaleźć rozmieszczenie pinów procesora:
:: ::

W procesorze LPC2114 porty I/O były 32-bitowe. Nowy procesor ma również 32-bitowe porty, jednak każdy port ma maksymalnie 12 pinów. Ułatwia to adresowani linii procesora.
Dostępne są 4 porty::: • PORT0
• PORT1
• PORT2
• PORT3 ::Piny oznakowywane są jako: PIO0_0, PIO0_1, itd. PIOx to numer portu, a część po podkreśleniu ...
9958 2

[Kurs] Programowanie ARM LPC1114 cz.3 - zegary i przerwania


Poprzednia część kursu.
[Kurs] Programowanie ARM lpc1114 cz.3 - zegary i przerwania

Na początek dobra wiadomość. Rdzenie Cortex mają znacznie poprawioną obsługę przerwań w porównaniu do starszej rodziny ARM7TDMI. Inżynierowie firmy ARM wzięli sobie do serca krytykę poprzednich procesorów i dodali do rdzenia znacznie poprawioną obsługę przerwań. Przed lekturą tego artykułu zachęcam do przeczytania piątej części poprzedniego kursu, w której poruszona została pokrewna tematyka.

Najpierw zajmiemy się przerwaniami od układów licznikowych, tzw. timerów. Procesor lpc1114 jest wyposażony w 5 timerów. Dwa są 16-bitowe, dwa 32-bitowe oraz jeden specjalny, który ma rozdzielczość 24-bitów. Rejestry 16 i 32 bitowe są to liczniki tzw. ogólnego zastosowania. Oferują bogatą funkcjonalność, w szczególności mogą działać jako PWM. Ostatni timer (SysTick timer) ma specjalne zastosowanie - służy do zapewniania podstawy czasu. Jest to bardzo wygodne rozwiązanie dla każdego projektanta systemu.

Timer systemowy
Najpierw musimy ...
7342 0

[Kurs] Programowanie ARM LPC1114 cz.4 - PWM


Poprzednia część kursu.
[Kurs] Programowanie ARM lpc1114 cz.4 - PWM

Programowy PWM

Podobnie jak w poprzednim kursie przygotujemy programowe sterowanie jasnością diod. Mamy do dyspozycji tylko 2 diody, ale to wystarczy do nauki.
W pliku program11.zip znajdziemy kod programu. W poprzednim kursi znajdziemy sporo informacji o PWM: http://www.forbot.pl/forum/topics20/kurs-programowania-arm-cz7-pwm-vt3926.htm
Wykorzystamy timer jak w poprzednim przykładzie, ale zmienimy częstotliwość wywoływania procedury przerwania. Tym razem będziemy wywoływać ją co 100us. Wystarczy zmienić wartość rejestrów MR0 oraz PR.

W procedurze obsługi przerwania wywołamy procedurę pomocniczą pwm_proc(). Działa ona tak jak opisywana dokładnie w poprzedniej edycji kursu - realizuje programowy PWM na liniach podłączonych do diod LED1 i LED2.
Działanie PWM zostało już opisane w poprzednim kursie.
Warto zwrócić na nową funkcję delay() - pozwala ona na odczekiwanie przez zadany czas (parametrem jest opóźnienie w jednostkach 10ms).
Nieco mylące ...
6787 0

[Kurs] Programowanie ARM LPC1114 cz.7 - Czujniki odbiciowe


Poprzednia część kursu.
[Kurs] Programowanie ARM lpc1114 cz.7 - Czujniki odbiciowe

W poprzednich częściach kursu poznaliśmy już możliwości procesora niezbędne do zbudowania prostego robota.
Potrafimy sterować silnikami, odczytywać poziom napięcia za pomocą przetwornika analogowo-cyfrowego.
Tym razem wykorzystamy poznaną wiedzę do wykrywania linii, które jest podstawą do budowy naszego linefollowera.

W pierwszej części kursu pojawił się schemat płytki z czujnikami odbiciowymi. Zastosowałem czujniki TCRT5000. Warto w kilku słowach omówić ich działanie.
Każdy czujnik składa się z 2 elementów:
1) diody oświetlającej podłoże
2) fototranzystora wykrywającego światło odbite od podłoża
Fotodioda i fototranzystor pracuje w podczerwieni, jeśli chcemy sprawdzić, czy dioda działa prawidłowo można wykorzystać aparat bez filtru. Większość telefonów wyposażonych jest właśnie w takie aparaty.

:: ::
Niestety czujniki użyte w moim robocie zostały wymontowane z poprzednich konstrukcji. Jak widać działają nie najlepiej. Zdjęcie ...
5608 2

[Kurs] Programowanie ARM LPC1114 cz.5 - RS-232


Poprzednia część kursu.
[Kurs] Programowanie ARM lpc1114 cz.5 - RS-232

W poprzedniej wersji kursu komunikacja przez RS-232 została opisana dla procesora LPC-2114. Nowy procesor działa bardzo podobnie i w artykule opiszę jedynie różnice między układami. Zachęcam, więc najpierw do przeczytania poprzedniego kursu:
• tutaj znajdziemy opis komunikacji
• biblioteka standardowa (printf)
• bootloader
Nowy procesor posiada jeden moduł UART, zamiast jak LPC2114 dwa. Pozwala to na obsługę jednego połączenia RS-232.

Część o komunikacji poprzez RS232 prawie bez zmian odnosi się do nowego procesora.
Biblioteka standardowa powoduje ogromne wydłużenie kodu, więc nie polecam jej stosowania. Niestety darmowy kompilator, jakim jest gcc nie najlepiej sobie z tym radzi.
Odcinek o bootloaderze jest w pełni aktualny na nowym procesorze. Tutaj też znajdziemy bootloader, jego działanie jest identyczne jak poprzednio.

Na początek inicjalizujemy moduł UART odpowiedzialny za komunikację ...
5605 1

[Kurs] Programowanie ARM LPC1114 cz.6 - ADC


Poprzednia część kursu.
[Kurs] Programowanie ARM lpc1114 cz.6 - ADC

W tym odcinku zajmiemy się działaniem przetwornika analogowo-cyfrowego (ang. Analog-to-Digital Converter). Mikrokontroler lpc1114 jest wyposażony w jeden, 10-bitowy przetwornik.
Wejście przetwornika podłączone jest przez multiplekser do 8 wejść procesora. Możemy wybrać, sygnał z którego wejścia chcemy odczytać.
• AD0 - P0.11
• AD1 - P1.0
• AD2 - P1.1
• AD3 - P1.2
• AD4 - P1.3
• AD5 - P1.4
• AD6 - P1.10
• AD7 - P1.11

Na płytce ZL32ARM znajdziemy potencjometr P1 podłączony do pinu P0.11, czyli kanału AD0 przetwornika A/C.
Obracając potencjometrem możemy zmieniać napięcie podawane na wejście przetwornika.
Przetwornik zmienia napięcie na liczby. Jak wiemy przetwornik jest 10-bitowy. Oznacza to, że pozwala na odczyt 2^10, czyli 1024 poziomów napięcia. Są one reprezentowane jako ...
5425 0

Popularny LCD HD44780 na ARM LPC1114


Witam,

Niedawno przesiadłem się z mikrokontrolerów AVR na ARM. Kupiłem popularną płytkę od Kamami z programatorem i lpc1114. Nauczyłem się sterować diodami i joystick-iem, jednak nie mogę obsłużyć zwykłego wyświetlacza LCD. Problem jest w dobraniu odpowiedniej biblioteki. Znalazłem inne, do innych procesorów, (nawet z serii LPC - ale innych), ale do mojego nie. Ponadto, znalazłem gotowe programy na lpc1114 sterujące wyświetlaczem od nokii 3310. Jednak mi zależy bardzo na tym, wyżej wspomnianym. Jeżeli ktoś wskazałby mi miejsce, gdzie taką bibliotekę do znajdę, byłbym bardzo wdzięczny. Ewentualnie, może ktoś poradzi jak zmodyfikować posiadaną przeze mnie bibliotekę pod mój procesor?

Pozdrawiam
2692 11

ZL32ARM (LPC1114) i KamodBTM-222


Witam wszystkich,

Jestem początkujący zarówno w sprzętowym C jak i w platformach ARM. Kupiłem wstępny zestaw ewaluacyjny ZL32ARM do nauki, oraz moduł bluetooth KamodBTM-222. Skonfigurowałem UART , który bez problemu działa. Jednak nie potrafię obsłużyć modułu. Znalazłem przykładowe programy, ale na AVR. Czy mógłby mi ktoś pomóc w jakikolwiek sposób?
1552 6

[c] Problem z IAP - NXP LPC1114


Witam,
Czy któremuś z forumowiczów udało się uruchomić IAP na lpc1114? Próbuje zapisać do pamięci flash tablicę 8bajtów ale jak na razie bez efektów. Głównie bazuje na kodzie spod strony http://knowledgebase.nxp.com/showthread.php?t=158 . Jeśli, któryś z forumowiczów posiada doświadczenie w tym temacie, proszę o pomoc.

Pozdrawiam
1546 1

[Kurs] Programowanie ARM LPC1114 cz.5 - RS-232


Poprzednia część kursu.
[Kurs] Programowanie ARM lpc1114 cz.5 - RS-232

W poprzedniej wersji kursu komunikacja przez RS-232 została opisana dla procesora LPC-2114. Nowy procesor działa bardzo podobnie i w artykule opiszę jedynie różnice między układami. Zachęcam, więc najpierw do przeczytania poprzedniego kursu:
• tutaj znajdziemy opis komunikacji - http://www.forbot.pl/forum/topics20/kurs-programowania-arm-cz9-rs-232-vt4102.htm
• biblioteka standardowa (printf) - http://www.forbot.pl/forum/topics20/kurs-programowania-arm-cz10-rs-232-cd-vt4130.htm
• bootloader - http://www.forbot.pl/forum/topics20/kurs-programowania-arm-cz11-rs-232-cd-2-bootloader-vt4392.htm

Nowy procesor posiada jeden moduł UART, zamiast jak LPC2114 dwa. Pozwala to na obsługę jednego połączenia RS-232.

Część o komunikacji poprzez RS232 prawie bez zmian odnosi się do nowego procesora.
Biblioteka standardowa powoduje ogromne wydłużenie kodu, więc nie polecam jej stosowania. Niestety darmowy kompilator, jakim jest gcc nie najlepiej sobie z tym radzi.
Odcinek o bootloaderze jest w pełni aktualny na nowym procesorze. Tutaj też znajdziemy bootloader, jego działanie jest identyczne jak poprzednio.

...
1471 0

[C] Problem z enkoderem inkrementalnym na LPC1114 na zestawie uruchomieniowym ZL32ARM


Witam,

otóż uwidziało mi się ostatnio pobawić enkoderem optycznym wyprutym z drukarki. Stwierdziłem ze kod napisze na przerwaniach z GPIO (żeby nie zamulać procą ciągłym sprawdzaniem stanu)

Umyślało mi się przerwania wyzwalać na oba zbocza.

Z racji ze debugger Keil'a nie bardzo radzi sibie z symulowaniem tychże przerwań, w celu sprawdzenia jak działają, napisałem krótka obsługę przerwań zapalającą diodę w zależności
od kanału z którego system przyjmuje przerwania. Jak dotad działało, wraz z odpalaniem, kolejnego kanału, następowała zmiana świecenia się diodek zestawu. Kod obsługi przerwania poniżej:




::

__irq void PIOINT3_IRQHandler(void){


if(LPC_GPIO3 -> MIS == mENCODER_CHNLL_A){
LedCtrl(LED1);
LPC_GPIO3 -> IC = mENCODER_CHNLL_A;
}
else if(LPC_GPIO3 -> MIS == mENCODER_CHNLL_B){
LedCtrl(LED2);
LPC_GPIO3 -> IC = mENCODER_CHNLL_B;[br ...
1333 2

[LPC1114] uruchomienie TIMERA 16B - problem (rozwiązany)


Cześć, jestem nowy, ale mam już pewne doświadczenie z AVR-ami. Teraz chce się nauczyć ARM-ów. Zacząłem od lpc1114.

Mam problem z uruchomieniem układu sterującego diodą za pomocą TIMER-a 16B0. Nie wiem czy problem leży w inicjalizacji timera czy w obsłudze przerwania... Poniżej jest kod. Będę wdzięczny za pomoc i ewentualne sugestie.

:: #include "LPC11xx.h"

void TIMER16_0_IRQHandler(void)
{
static int bit = 0;

if (bit == 1)
{
LPC_GPIO0->DATA |= (1<<6); // set pin 6
bit = 0;
}
else
{
LPC_GPIO0->DATA &= ~(1<<6); // clear pin 6
bit = 1;
}
LPC_TMR16B0->IR = 0x1f; // clear interrupt flag
}

int main(void)
{
LPC_GPIO0->DIR |= (1<<6);

LPC_SYSCON->SYSAHBCLKCTRL |= 0x80; // CT16B0 clock enable
LPC_TMR16B0->TCR = 2; // ...
1267 0

LPC1114 i ADXL345 problem z odczytem


witam!
Od jakiegoś czasu bawię się modułem IMU gy-80:



schemat:


podłączam go do płytki z mikrokontrolerem lpc1114 , a dokładniej:

http://www.kamami.pl/dl/litecomplpc1114.pdf

moduł IMU jak i płytka z mikrokontrolerem zasilane są z portu USB napięciem 5V ponieważ posiadają one własne stabilizatory 3,3V, moduł posiada również translator napięć I2C z 3,3V na 5V teoretycznie mogło by to sprawiać problemy, ponieważ mikrokontroler chodzi pod napięciem 3,3v lecz komunikacja z magnetometrem oraz barometrem działa bez problemu.
Problematyczne okazało się uruchomienie akcelerometru, ponieważ odczytywana wartośći z reejstrów w których powinny znajdować się wyniku pomiarów ciągle równe są zero.Wszystkie odczyty wysyłam przez przejsciówke UART do aplikacji stworzonej w labview lub ostatnio do terminala (Hercules)ale w obu wypadkach odczytywane wyniki równe są 0.Odczytywanie sygnatury działa bez problemu, więc połączenia jak i sam układ wydaje się sprawny.Męczę się ...
640 0

LPC1114 trudne początki- błąd...


Witam,
na co dzień programuję uC AVR. Postanowiłem trochę poćwiczyć sobie ARM. Zakupiłem książkę M.Sawicki P.Wujek "Mikrokontrolery LPC1100 PIERWSZE KROKI" oraz zesatw startowy z płytką i uC.
Miganie diodami, joystic przerobiłem i chcę skorzystać z wyświtlacza od noki 3310. Jednak kompilator wyrzuca mi błąd: " fatal error: rt_misc.h: No such file or directory".
Nie mam pojęci gdzie szukać błędu i pomocy. Dodam, że działam z tym wszytskim jeden dzień.
Program do wyświetlacza ściągnąłem gotowy z internetu. Gotowy wkład .hex działa jak należy po wgraniu do porcka, ale chciałem sobie poćwiczyć i napotykam na w/w błąd. Pozdrawiam i czekam na pomoc
148 8


Powered by phpBB modified by Przemo © 2003 phpBB Group
Polityka prywatności