Moduł z prockiem LPC2378
W ramach robienia porządków na dysku i ganiania
duchów przeszłości, natrafiłem w zakamarkach pamięci
na moduł ethernetowy z prockiem LPC2378. Jest to
bardzo wiekowa konstrukcja, pochodzi z czasów,
gdzie nie znałem innych procków z obsługą sieci (dzisiaj pewnie
zrobiłbym to inaczej, niemiej jest jak jest, takie były czasy).
Nawet poniższy tekst pochodzi sprzed kilku lathttps://www.youtube.com/watch?v=HSvaocTnazY
Poniższy moduł, będący aplikacją mikrokontrolera z rodziny ARM wraz z interfejsem umożliwiającym przyłączenie do sieci ethernet, powstał jako eksperyment z zastosowaniem elementów interfejsu sieciowego (do transmisji z prędkością 100 Mb). Generalnie może służyć do „ćwiczenia” aplikacji sieciowych z ewentualną możliwością wykorzystania go później jako gotowego elementu do zabudowy (w tym celu ma wyprowadzone możliwie dużo pinów na złącza modułu). Schemat blokowy przedstawia następujący rysunek: Poszczególne elementy blokowe mają następujący schemat ideowy. Część procesorowa zawiera mikrokontroler LPC2378 wraz z niezbędnymi elementami towarzyszącymi (układ generacji sygnału reset, obwody generacji sygnału zegarowego dla procesora, interfejs do przyłączenia programatora). Do budowy interfejsu ethernetowego wykorzystany jest układ obsługi warstwy fizycznej DP83848, który jest „napędzany” sygnałem zegarowym o częstotliwości 50MHz (pracuje w połączeniu z mikrokontrolerem ARM w oparciu o interfejs RMII). Sam układ DP83848 może pracować z podłączeniem MII lub RMII, jednak z racji, że procek umie tylko gadać po RMII, więc taki jest zastosowany sprzęg (odwieczny problem, by się dogadać to konieczne jest osiągnięcie konsensusu). Do komunikacji szeregowej wykorzystano UART0 (z czterech istniejących w mikrokontrolerze LPC2378). Cały moduł jest zasilany ze źródła napięcia o wartości 5V (moduł zawiera w sobie stabilizator LDO o napięciu wyjściowym 3,3V niezbędnym do zasilenia wszystkich komponentów modułu).
Do powyższego schematu zaprojektowana jest płyta PCB, której rysunki są następujące.Strona TOP Strona BOTTOM Rozmieszczenie elementów Rozmieszczenie istotnych elementów na płycie PCB jest następujące. W module są wyprowadzone punkty pomiarowe dla napięć 5V i 3,3V. Dodatkowo na potencjale GND (oznaczone jako GNDS) znajdują się punkty pomiarowe (do przyłączenia przykładowo oscyloskopu, woltomierza itp.). Z założenia, moduł przeznaczony jest jako urządzenie, do którego mogą być przyłączone inne urządzenia poprzez RS232. Z tego powodu port szeregowy jest wyprowadzony w identyczny sposób jak w komputerach PC. Implikuje to, że do połączenia z komputerem należy użyć przewodu zakończonego złączami damskimi i przewód powinien mieć skrzyżowane linie RxD i TxD.
[ETHM] - Moduł ethernetowy z procesorem LPC2378
[ETHM] - Moduł ethernetowy z procesorem LPC2378
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse
Re: [ETHM] - Moduł ethernetowy z procesorem LPC2378
Dobra robota
Mój elektroniczny blog -> https://www.msalamon.pl
Re: [ETHM] - Moduł ethernetowy z procesorem LPC2378
Interfejs programujący mikrokontrolery
z rodziny LPC2000 (ARM)
w trybie IAP
W ramach wygarniania staroci z dysków i różnych pudełek,
mój własny interfejs do programowania procków z rodziny LPC200.
Rozwiązanie również jest wiekowe jak wyżej opisany moduł.
Klasyka wiecznie młodahttps://www.youtube.com/watch?v=Fnc4T26NslA
Na ostatniej fotce wyżej, do modułu ethernetowego przypięty jest
mały interfejs programujący, więc niejako w komplecie...
Mikrokontrolery ARM z rodziny LPC200 mogą być programowane1 na kilka sposobów. Jedną z najprostszych możliwości jest ładowanie kodu programu poprzez interfejs szeregowy. Uruchamiając program FLASHMAGIC przeznaczony do ładowania kodu programu do mikrokontrolerów produkowanych przez firmę NXP, poprzez prezentowany interfejs tworzony jest kanał komunikacyjny pomiędzy programem FLASHMAGIC uruchomianym w komputerze PC a ... no właśnie. Mikrokontrolery ARM mają wbudowany specjalny program (bootloader), z którym realizowana będzie komunikacja. Program ten po uruchomieniu mikrokontrolera2 testuje odpowiednią linię i ewentualnie przechodzi do nawiązania komunikacji z programem FLASHMAGIC. Testowaną linią jest sygnał zewnętrznego przerwania EINT1 (w mikrokontrolerach LPC213x jest to pin 41). Jeżeli stan tej linii odpowiada logicznemu zeru, to program bootloader próbuje nawiązać połączenie z programem ładującym poprzez kanał transmisji szeregowej UART0. Z powyższego łatwo wywnioskować, że do komunikacji niezbędne są następujące linie:
Schemat w pełni autonomicznego interfejsu programującego przedstawia rysunek Odpowiadająca schematowi płytka PCB ma następujące rozmieszczenie elementów. Interfejs został opracowany w taki sposób, by można było go użyć dla dużej grupy mikrokontrolerów LPC20000. Niektóre modele mikrokontrolerów tolerują na swoich wyprowadzeniach sygnały o poziomach napięciowych odpowiadających układom logicznym zasilanych ze źródła napięcia o wartości 5V. Inne modele mikrokontrolerów dopuszczają sygnały w amplitudzie napięcia 3,3V. Do określenia standardu napięciowego służy zworka J802. Rysunki poszczególnych warstw płytki PCB są następujące: Do połączenia z systemem docelowym przewidziane jest złącze P802. Czasami może okazać się przydatna funkcja RESET dla docelowego systemu (przycisk SW802).
Istotnym elementem interfejsu jest sterowanie sygnałem SELCET. Do tego służy przycisk SW801 lub zworka J801. W systemie docelowym, do współpracy z interfejsem programującym, można zaproponować kilka rozwiązań. Najbardziej funkcjonalny wariant przedstawia schemat.
Koncepcja opiera się o zastosowanie multipleksera, którego zadaniem jest przyłączenie do mikrokontrolera na czas programowania sygnałów programujących i po zakończeniu programowania przełączenie ich do układów aplikacji. Samym przełączeniem steruje sygnał SELECT. W środowisku mikrokontrolera sygnał sterujący wyborem wejść (wejście A, B, C układu U102) jest wstępnie spolaryzowany do stanu logicznej jedynki co jednocześnie łączy wybrane (EINT1, RXD1 i TXD1) wyprowadzenia mikrokontrolera ze środowiskiem cyfrowym urządzenia. Podanie na to wejście sygnału logicznego zera (wymuszonego przez przycisk SW801 lub zworka J801) łączy wyprowadzenia mikrokontrolera z interfejsem programującym. Wysterowanie sygnału SELECT w interfejsie programującym może być zrealizowane na stałe (założona zworka na J801) lub tylko na czas programowania (tu pomocne może okazać się użycie SW801).
Istnieje możliwość pewnych uproszczeń układowych związanych z interfejsem programującym. Jeżeli w urządzeniu nie jest przewidywane użycie kanału transmisji szeregowej UART1 oraz przerwania zewnętrznego EINT1, można pominąć układ U102 i złącze programatora przyłączyć bezpośrednio do wyprowadzeń mikrokontrolera. Redukuje to schemat o układ U102, ale należy pamiętać, że co najmniej wejście EINT1 musi być wstępnie spolaryzowane rezystorem do stanu logicznej jedynki (gdy odłączony jest interfejs programujący, wejście EINT1 może jako nieprzyłączone do niczego mieć nieokreślony stan logiczny, co z kolei może doprowadzić program bootloader'a do niewłaściwej decyzji).
Do obsługi interfejsu programującego zalecany jest bezpłatny program FLASHMAGIC (można go pobrać ze sponsorowanej między innymi przez firmę NXP, strony internetowej http://www.esacademy.com). Instalacja programu nie zawiera żadnych “trudnych” elementów. Po uruchomieniu programu należy uszczegółowić pewne parametry: W szczególności:
z rodziny LPC2000 (ARM)
w trybie IAP
W ramach wygarniania staroci z dysków i różnych pudełek,
mój własny interfejs do programowania procków z rodziny LPC200.
Rozwiązanie również jest wiekowe jak wyżej opisany moduł.
Klasyka wiecznie młodahttps://www.youtube.com/watch?v=Fnc4T26NslA
Na ostatniej fotce wyżej, do modułu ethernetowego przypięty jest
mały interfejs programujący, więc niejako w komplecie...
Mikrokontrolery ARM z rodziny LPC200 mogą być programowane1 na kilka sposobów. Jedną z najprostszych możliwości jest ładowanie kodu programu poprzez interfejs szeregowy. Uruchamiając program FLASHMAGIC przeznaczony do ładowania kodu programu do mikrokontrolerów produkowanych przez firmę NXP, poprzez prezentowany interfejs tworzony jest kanał komunikacyjny pomiędzy programem FLASHMAGIC uruchomianym w komputerze PC a ... no właśnie. Mikrokontrolery ARM mają wbudowany specjalny program (bootloader), z którym realizowana będzie komunikacja. Program ten po uruchomieniu mikrokontrolera2 testuje odpowiednią linię i ewentualnie przechodzi do nawiązania komunikacji z programem FLASHMAGIC. Testowaną linią jest sygnał zewnętrznego przerwania EINT1 (w mikrokontrolerach LPC213x jest to pin 41). Jeżeli stan tej linii odpowiada logicznemu zeru, to program bootloader próbuje nawiązać połączenie z programem ładującym poprzez kanał transmisji szeregowej UART0. Z powyższego łatwo wywnioskować, że do komunikacji niezbędne są następujące linie:
- sygnał RESET, by program FLASHMAGIC mógł uruchomić program bootloadera w mikrokontrolerze,
- sygnał EINT1, by program FLASHMAGIC mógł przekazać programowi bootloadera sygnał prośby o nawiązanie komunikacji,
- sygnał TxD0 i RxD0, by programy mogły przesyłać między sobą odpowiednie informacje,
- potencjał GND będący potencjałem odniesienia dla powyższych sygnałów.
Schemat w pełni autonomicznego interfejsu programującego przedstawia rysunek Odpowiadająca schematowi płytka PCB ma następujące rozmieszczenie elementów. Interfejs został opracowany w taki sposób, by można było go użyć dla dużej grupy mikrokontrolerów LPC20000. Niektóre modele mikrokontrolerów tolerują na swoich wyprowadzeniach sygnały o poziomach napięciowych odpowiadających układom logicznym zasilanych ze źródła napięcia o wartości 5V. Inne modele mikrokontrolerów dopuszczają sygnały w amplitudzie napięcia 3,3V. Do określenia standardu napięciowego służy zworka J802. Rysunki poszczególnych warstw płytki PCB są następujące: Do połączenia z systemem docelowym przewidziane jest złącze P802. Czasami może okazać się przydatna funkcja RESET dla docelowego systemu (przycisk SW802).
Istotnym elementem interfejsu jest sterowanie sygnałem SELCET. Do tego służy przycisk SW801 lub zworka J801. W systemie docelowym, do współpracy z interfejsem programującym, można zaproponować kilka rozwiązań. Najbardziej funkcjonalny wariant przedstawia schemat.
Koncepcja opiera się o zastosowanie multipleksera, którego zadaniem jest przyłączenie do mikrokontrolera na czas programowania sygnałów programujących i po zakończeniu programowania przełączenie ich do układów aplikacji. Samym przełączeniem steruje sygnał SELECT. W środowisku mikrokontrolera sygnał sterujący wyborem wejść (wejście A, B, C układu U102) jest wstępnie spolaryzowany do stanu logicznej jedynki co jednocześnie łączy wybrane (EINT1, RXD1 i TXD1) wyprowadzenia mikrokontrolera ze środowiskiem cyfrowym urządzenia. Podanie na to wejście sygnału logicznego zera (wymuszonego przez przycisk SW801 lub zworka J801) łączy wyprowadzenia mikrokontrolera z interfejsem programującym. Wysterowanie sygnału SELECT w interfejsie programującym może być zrealizowane na stałe (założona zworka na J801) lub tylko na czas programowania (tu pomocne może okazać się użycie SW801).
Istnieje możliwość pewnych uproszczeń układowych związanych z interfejsem programującym. Jeżeli w urządzeniu nie jest przewidywane użycie kanału transmisji szeregowej UART1 oraz przerwania zewnętrznego EINT1, można pominąć układ U102 i złącze programatora przyłączyć bezpośrednio do wyprowadzeń mikrokontrolera. Redukuje to schemat o układ U102, ale należy pamiętać, że co najmniej wejście EINT1 musi być wstępnie spolaryzowane rezystorem do stanu logicznej jedynki (gdy odłączony jest interfejs programujący, wejście EINT1 może jako nieprzyłączone do niczego mieć nieokreślony stan logiczny, co z kolei może doprowadzić program bootloader'a do niewłaściwej decyzji).
Do obsługi interfejsu programującego zalecany jest bezpłatny program FLASHMAGIC (można go pobrać ze sponsorowanej między innymi przez firmę NXP, strony internetowej http://www.esacademy.com). Instalacja programu nie zawiera żadnych “trudnych” elementów. Po uruchomieniu programu należy uszczegółowić pewne parametry: W szczególności:
- określić port komunikacyjny; okienko: COM Port,
- określić prędkość komunikacyjną programu FLASHMAGIC z mikrokontrolerem ARM (im większa szybkość, tym mniej czasu potrzeba na zaprogramowanie mikrokontrolera, lecz powyżej prędkości 38400 bps pojawiają się błędy); okienko Baud Rate,
- określić model mikrokontrolera w systemie docelowym, tu użyty jest LPC2134; okienko Device,
- częstotliwość sygnału taktującego pracą mikrokontrolera ARM wyrażoną w MHz; okienko Oscillator Freq.,
- zaznaczyć tryb kasowania pamięci FLASH mikrokontrolera (albo cała pamięć: Erase all Flash lub tylko obszar zajmowany przez ładowany program: Erase blocks used),
- określić plik zawierający ładowany do pamięci FLASH program (okienko Hex File),
- można zaznaczyć opcję: Verify after programming do weryfikacji załadowanego kodu,
- można zaznaczyć opcję: Set Code Read Prot do zablokowania możliwości odczytu zapisanego w pamięci FLASH kodu programu.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse
Re: [ETHM] - Moduł ethernetowy z procesorem LPC2378
Interfejs programujący mikrokontrolery
z rodziny LPC2000 (ARM)
w trybie IAP
redesign
https://www.youtube.com/watch?v=Xew8SXUMxsE
Opisany wyżej interfejs programujący miał wady. Po pierwsze wymagał zewnętrznego zasilania oraz w trakcie programowania należało trzymać (palcem) naciśnięty przycisk (ten, który przełącza układ CD4053). Naturalnym jest, że z dotychczasowej eksploatacji wyciąga się wnioski, w wyniku których dokonuje się korekty. Tak też i było tym razem. Postanowiłem zasilić interfejs z urządzenia, w którym zawarty jest programowany mikrokontroler z serii LPC2000 oraz zastąpić zwykły mikroprzycisk przełącznikiem bistabilnym. Nowa odsłona interfejsu jest następująca: I PCB do schematu: Interfejs w akcji:
z rodziny LPC2000 (ARM)
w trybie IAP
redesign
https://www.youtube.com/watch?v=Xew8SXUMxsE
Opisany wyżej interfejs programujący miał wady. Po pierwsze wymagał zewnętrznego zasilania oraz w trakcie programowania należało trzymać (palcem) naciśnięty przycisk (ten, który przełącza układ CD4053). Naturalnym jest, że z dotychczasowej eksploatacji wyciąga się wnioski, w wyniku których dokonuje się korekty. Tak też i było tym razem. Postanowiłem zasilić interfejs z urządzenia, w którym zawarty jest programowany mikrokontroler z serii LPC2000 oraz zastąpić zwykły mikroprzycisk przełącznikiem bistabilnym. Nowa odsłona interfejsu jest następująca: I PCB do schematu: Interfejs w akcji:
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 7 gości