Menu
AKTUALNOŚCI

Maszyna wirtualna z SDK dla ISIX

/2014-10-24 15:57:39/

Stworzono wirtualne środowisko dla VirtualBox zawierające SDK dla systemu ISIX

Toolchain GCC4.7.2 dla Windows

/2012-10-21 12:27:50/

Dodano toolchain dla Windows bazujący na nowej wersji GCC 4.7.2 i obsługą rdzeni CORTEX-M4

ISIX RTOS 1.2 został wydany

/2011-05-14 10:03/

Została wydana wersja 1.2 systemu ISIX RTOS, która dodaje szereg nowych funkcjoności i poprawek

ISIX RTOS na GPLv3

/2009-12-29 15:45:57/

Dodano podstronę z systemem operacyjnym ISIX mojego autorstwa przeznaczoną dla małych mikrokontrolerów wydanego na licencji GPLv3

Aktualizacja toolchaina i386

/2009-05-03 20:51:53/

W dziale LinARM zaktualizowano 32-bitowy kompilator dla procesorów ARM.

Obsługa portów GPIO w Linuksie

/2009-05-03 19:18:53/

W dziale różne zamiesczono artykuł dotyczący różnych sposobów obsługi portów GPIO w linuksie.

Aktualizacja kompilatorow

/2009-02-15 10:39:08/

Aktualizacja pakietu LinARM oraz nowy pakiet LinCortex.

Książka o ARM9

/2009-01-19 21:03:19/

Dziś nakładem wydawnictwa BTC ukazała się moja kolejna publikacja "Mikrokontrolery z rdzeniem ARM9"

BF-210

BF-210 następca Armputera BF-100

Pierwsza wersja ARMputera BF-100 opublikowana została na łamach Elektroniki Praktycznej . Projekt posiadał kilka niedociągnieć, oraz wykonany był w niezbyt ekonomicznej technologii 4 warstwowej. Wspomniane wyżej wady skłoniły nas do zaprojektowania nowej wersji ARMputera, który otrzymał oznaczenie BF-210. Dzięki doświadczeniu zdobytemu podczas budowy BF-100, urządzenie stało się dużo bardziej doskonałe od swojego poprzednika. Dzięki wydajnemu 32-bitowemu układowi z rdzeniem ARM920T, dużej 32MB pamięci SDRAM, uzyskujemy wysoką wydajność niemożliwą do osiągnięcia za pomocą klasycznych mikrokontrolerów z rdzeniem ARM7TDMI-S. Wykorzystanie systemu operacyjnego linux pozwala na pisanie zaawansowanych aplikacji w krótkim czasie, dzięki wielkiej bazie otwartego oprogramowania „Open Source”. Wszelkie skomplikowane zadania takie jak obsługa sieci TCP/IP obsługa interfejsów USB, których realizacja z wykorzystaniem mikrokontrolera jednoukładowego jest skomplikowana i czasochłonna, staje się banalnie prosta dzięki zastosowaniu ARMputera BF-210. Będący częścią układu blok zarządzania pamięcią MMU (Memory Management Unit) zapewnia niezależną pamięć wirtualną dla każdego procesu, przez co urządzenie wykorzystujące ARMputer BF-210 jest dużo bardziej niezawodne, gdyż błędne działanie jednej aplikacji nie jest w stanie zawiesić działania całego systemu.

Płytka nowego ARMputera została zaprojektowana jako dwuwarstwowa, dzieki czemu jest ona zdecydowanie tańsza od płytki 4-warstwowej. Na nowej płytce usunięto wszelkie poprzednie błedy logiczne, z poprzedniej wersji, oraz zmniejszono jej wymiary. Również w układzie elektrycznym wprowadzono szereg mniejszych modyfikacji, powstałych w ramach użytkowania poprzedniej wersji ARMputera.

Do naistotniejszych zmian należą:

  • Dodatkowy zasilacz impulsowy umożliwiający zasilanie urządzenia napięciem od 7-35V DC.
  • Zastosowanie dwukrotnie większego układu SDRAM i usunięcie drugiego układu SDRAM.
  • Dodano układ automatycznej zmiany kierunku portu RS485.
  • Dodano opcjonalny układ zewnętrznego zegara RTC z podtrzymaniem bateryjnym.

Układ BF-210 charakteryzuje sie następującymi parametrami technicznymi:
Parametry techniczne BF-210
  • Procesor: ARM920T 180MHz z MMU (AT91RM9200).
  • Pamieć operacyjna: 32MB SDRAM.
  • Pamieć BIOS: 128KB Serial Data Flash (bootloader).
  • Dysk: Dowolna karta SD/MMC 256MB-32GB.
  • Kontroler urzadzenia USB 2.0 Device - Full Speed.
  • Kontroler sieci Ethernet 100Mbit.
  • Zewnętrzny zegar czasu rzeczywistego RTC.(Opcja)
  • Interfejs I2C.
  • 3 Interfejsy SSP/I2S.
  • Interfejs SPI.
  • 61 linii GPIO.
  • 2 porty RS232.
  • port RS485 z automatyczną zmianą kierunku transmisji.
  • złącze JTAG.
  • Napiecie zasilające 7-35V (200mA max.) (700mA max., przy maksymalnym obciażeniu USB Host)
  • Oprogramowanie: dedykowany Boff Linux (Kernel 2.6.27.8) ,Debian, inne dystrybucje.

Zasada działania

Na poniższym rysunku umieszczono schemat blokowy BF-210.

Schemat blokowy BF-210
Rys 1. Schemat ideowy ARMputera BF-210

Sercem układu jest mikrokontroler AT91RM9200 zawierający rdzeń ARM9 (ARM920T) wraz z układem MMU, kontrolerem pamięci SDRAM, układami czasowo-licznikowymi, opcjonalnym zegarem RTC, oraz szeregiem różnych interfejsów komunikacyjnych takich jak: kontroler hosta USB, kontroler urządzenia USB, SPI, I2C itp. Mikrokontroler posiada wbudowane 16kB wewnętrznej pamięci RAM przez co konieczne stało się dołączenie zewnętrznej pamięci SDRAM o wielkości 32MB. Na płytce umieszczono również pamięć Data Flash o pojemności 128KB dołączonej do magistrali SPI0, która pełni rolę odpowiednika BIOS-u znanego z komputerów PC. W pamięci tej przechowywane są programy ładujące (bootloadery) odpowiedzialne za podstawowe testy, konfigurację pamięci SDRAM oraz proces uruchamiania linux-a z karty SD, lub poprzez sieć z serwera NFS. Karta MMC/SD/SDHC została dołączona do mikrokontrolera za pomocą dedykowanej magistrali MMC/SD, która ma szerokość 4 bitów. Możemy tutaj użyć dowolnej karty powszechnie dostępnej na rynku o pojemności od 64MB, aż do kilkunastu GB w zależności od konkretnych wymagań. AT91RM9200 posiada wbudowany kontroler Ethernet MAC, który musi zostać wyposażony w zewnętrzny układ warstwy fizycznej tak zwany (PHY). W naszym rozwiązaniu wykorzystano układ STE100p. Z myślą o zastosowaniach przemysłowych do jednego z portów szeregowych mikrokontrolera dołączono typowy układ konwertera zapewniający wyjście w standardzie RS485, z automatycznym przełączaniem kierunku. Do wyjścia dwóch UARTów dołączono układy konwerterów zapewniający translację napięć do standardu RS232. Jednym z układów dołączonych do konwertera RS232 jest UART-DBG, który stanowi konsolę dla linuxa i bootloadera, więc dołączając się do tego portu za pomocą terminala możemy sprawdzić jak przebiega proces uruchamiania, lub zalogować się do konsoli bootloadera czy linuxa. Na płytce umieszczono także złącze Hosta USB, co daje możliwość dołączania urządzeń przeznaczonych dla komputerów PC takich jak: Pamięci Pendrive, Kamery USB, drukarki itp. BF-210 zawiera także złącze USB-DEVICE, zatem możemy go również dołączyć do komputera PC tak żeby się zgłaszał jako urządzenie USB, na przykład modem, port szeregowy, pamięć USB itp. Wszystkie pozostałe linie mikrokontrolera GPIO oraz pozostałe magistrale SPI, I2C są wyprowadzone na zewnątrz płytki za pomocą trzech 40-pinowych złącz typu gold-pin w typowym rastrze 2,54mm. Do złącz tych możemy dołączać inne układy w zależności od okoliczności. Do zasilania modułu należy użyć dowolnego zasilacza zasilacza niestabilizowanego 7-35V. BF-210 pobiera około 200mA jednak ze złącza hosta USB zgodnie ze specyfikacją może być pobierany prąd o natężeniu 500mA, dlatego potrzebny jest zasilacz o stosunkowo dużej wydajności prądowej.

Oprogramowanie

Oprogramowanie ARMputera BF-210 jest stosunkowo skomplikowane i składa się z dwóch części. Stanowią je pamięć BIOS (Serial Dataflash) o pojemności 128KB, w której zawarte są dwa bootloadery inicjalizujący, oraz bootloader główny u-boot . Natomiast drugą część zawartą na karcie MMC/SD/SDHC stanowi system Linux. Mikrokontroler po włączeniu napięcia zasilania rozpoczyna wykonywanie programu zawartego w wewnętrznej pamięci ROM, który wczytuje do wewnętrznej pamięci RAM o rozmiarze 16kB inicjalizujący bootloader zawarty w pamięci Serial DataFlash. Zadaniem tego bootloadera jest inicjalizacja podstawowych układów peryferyjnych mikrokontrolera pętli PLL, pamięci SDRAM, testowanie pamięci SDRAM, a następnie skopiowanie bootloadera głównego u-boot do pamięci SDRAM oraz jego uruchomienie. Bootloader ten posiada także podstawową funkcjonalność która pozwala na przeprowadzenie podstawowych testów pamięci, oraz umożliwia przeprogramowanie pamięci BIOS z wykorzystaniem protokołu X-Modem. Bootloader u-boot jest odpowiedzialny za odczytanie z karty pamięci SD jądra linuxa, a następnie jego uruchomienie. Jest on dużo bardziej rozbudowany od wspomnianego wcześniej bootloadera inicjalizującego i zawiera rozbudowany wiersz poleceń, obsługę sieci, obsługę systemu plików EXT2. Umożliwia on również uruchomienie ARMputera z serwera sieciowego TFTP, NFS.

Linux i BF-210

Zastosowanie systemu Linux otwiera szeroki zakres zastosowań dla BF-210. Można go wykorzystywać jako płytę główną w zaawansowanych urządzeniach, co dzięki bazie otwartego oprogramowania znacząco skraca czas przygotowania projektu. BF-210 można również zastosować jako serwer w niedużej firmie czy w domu. Zastosowanie takiego rozwiązania pozwala znacząco ograniczyć pobór mocy pobierany przez serwer. Brak jakich kolwiek części ruchomych powoduje że urządzenie pracuje w zasadzie bezgłośnie. W handlu dostępne są już karty o pojemności rzędu dziesiątek GB, co pozwala nam na zgromadzenie znacznej ilości danych. Przykładem wykorzystania ARMputera BF-210 jest moja strona, która jest obsługiwana przez ARMputer BF-210. Aktualny status systemu obsługiwanego przez BF-210 możemy obejrzeć TUTAJ. Na serwerze zainstalowano również takie usługi jak SMTP, POP3 SSH FTP. Szczegółowy opis jak zrobić z BF-210 mały serwer domowy, wraz z dołączonym kompletem oprogramowania zostanie opisany w jednym z odrębnych artykułów przedstawionych na mojej stronie domowej. Standardowo do ARM-putera dołączana jest opracowana przez nas generyczna dystrybucja linuxa, oraz toolchain, który może stanowić bazę do zbudowania własnego firmwaru dla urządzenia. BF-210, umożliwia również na skorzystanie z dowolnego innego portu systemu Linux na platformę ARM na przykład popularnego DEBIANA. Opis procesu instalacji debiana na platformie BF-210, również zostanie opisany na mojej stronie domowej, jeżeli spotka się z zainteresowaniem czytelników. Planowane jest umiesczenie na oddzielnej stronie osobnego działu poświęconemu tylko oprogramowaniu dla ARMputerów. Sprzedaż i dystrybucja armputera BF-210 prowadzona jest przez firmę BoFF na stronie http://www.boff.pl. Zachęcam do zakupów.

Zdjęcie BF-210
Rys 2. Wygląd zmontowanej płytki ARMputera BF-210.

Wszelkie materiały na temat BF-210 dostępne są na stronie BoFF.

Ostatnia modyfikacja: 2010-09-16 11:31:17.