sobota, 6 listopada 2010

STM32 - Design Contest

Rozdają darmowe STM32 Discovery Kit :-). Zarejestrowałem się i czekam na paczkę z następnym układem/programatorem/debugerem do mojej kolekcji :-)


piątek, 16 lipca 2010

MultiTool - Programowanie za pomocą programu Flash Magic

MultiTool jest narzędziem, którym zaprogramujesz nie tylko procesory AVR firmy Atmel lecz również wiele innych procesorów ze stajni NXP (dawny Philips) łącznie z najnowszymi procesorami ARM z rdzeniem Cortex M3 i M0 dzięki współpracy z darmowym programem FlashMagic (do pobrania ze strony http://www.flashmagictool.com ).

Tabele poniżej przedstawiają obecnie obsługiwane procesory:


6 clock/12 clock 8051
P89C51RB+ P89C51RC+ P89C51RD+ P89C51RB2Hxx P89C51RC2Hxx P89C51RD2Hxx
P89C660 P89C662 P89C664 P89C668 P89C669  P89C51RA2xx P89C51RB2xx P89C51RC2xx
P89C51RD2xx P89C60X2 P89C61X2  P89LV51RB2 P89LV51RC2 P89LV51RD2
P89V51RB2 P89V51RC2 P89V51RD2 P89V660 P89V662 P89V664
2 clock 8051
P89LPC901 P89LPC902 P89LPC903 P89LPC906 P89LPC907 P89LPC908
P89LPC912 P89LPC913 P89LPC914 P89LPC920 P89LPC921 P89LPC922
P89LPC930 P89LPC931 P89LPC932 P89LPC933 P89LPC934 P89LPC935
P89LPC904 P89LPC915 P89LPC916 P89LPC917 P89LPC924 P89LPC925
P89LPC932A1 P89LPC936 P89LPC938 P89LPC9102 P89LPC9103 P89LPC9107
P89LPC952 P89LPC9401 P89LPC918 P89LPC9321 P89LPC9351 P89LPC9408
P89LPC9201 P89LPC9211 P89LPC922A1 P89LPC9241 P89LPC9251 P89LPC9301
P89LPC931A1 P89LPC9331 P89LPC9341 P89LPC9402 P89LPC9361 P89LPC9151
P89LPC9161 P89LPC9171 P89LPC970 P89LPC971 P89LPC972 P89LPC980
P89LPC982 P89LPC983 P89LPC985
ARM7 
LPC2101 LPC2102 LPC2103 LPC2104 LPC2105 LPC2106
LPC2109 LPC2114 LPC2119 LPC2124 LPC2129 LPC2131
LPC2132 LPC2134 LPC2136 LPC2138 LPC2141 LPC2142
LPC2144 LPC2146 LPC2148 LPC2194 LPC2210 LPC2212
LPC2214 LPC2220 LPC2290 LPC2292 LPC2294 LPC2361
LPC2364 LPC2365 LPC2366 LPC2367 LPC2368 LPC2377
LPC2378 LPC2387 LPC2388 LPC2458 LPC2468 LPC2478
ARM Cortex M3
LPC1751 LPC1752 LPC1754 LPC1756 LPC1758 LPC1764
LPC1765 LPC1766 LPC1768 LPC1759 LPC1769
LPC1774 LPC1776 LPC1777 LPC1778 LPC1785 LPC1786
LPC1787 LPC1788   LPC1311 LPC1313 LPC1342
LPC1343 LPC1311/01 LPC1313/01 LPC1224/101 LPC1224/121 LPC1225/301
LPC1225/321 LPC1226/301 LPC1227/301 LPC12D27/301
ARM Cortex M0
LPC1111 LPC1112 LPC1113 LPC1114 LPC11C12  LPC11C14  LPC11C22  LPC11C24  LPC11U12  LPC11U13  LPC11U14
XA
PXA-G39 PXA-G49


Poniżej przedstawiam przykładowe połączenie z procesorem LPC1114. Połączenie do innych układów jest analogiczne.


Generalnie należy podłączyć sygnały TX (pin 1) i RX (pin 9) oraz (opcjonalnie) RTS (pin 7) i DTR (pin 3) MultiToola do programowanego układu odpowiednio do pinów RX, TX, ISP i RESET. Nie należy oczywiście zapomnieć o połączeniu mas MultiToola i programowanego procesora. Rzeczą jasną jest, że procesor powinien być poprawnie zasilany oraz jeśli to konieczne powinien mieć podłączony rezonator kwarcowy lub inne źródło taktujące.
Sygnały RTS oraz DTR są opcjonalne ponieważ układ można wprowadzić w tryb programowania ręcznie poprzez ustawienie stanu niskiego na pinie ISP a następnie zresetowaniu układu. Dalsze postępowanie jest identyczne w obu przypadkach.

Konfiguracja MultiToola
Aby możliwa była współpraca z programem Flash Magic należy wprowadzić MultiTool w tryb Virtual COM co czynimy w następujący sposób:
  • uruchamiamy ulubiony terminal (HyperTerminal, Herkules, TeraTerm itp)
  • wskazujemy port pod którym widoczny jest MultiTool (do sprawdzenia w Menadżerze urządzeń)
  • naciskamy 2 razy enter
  • wybieramy opcję 2. Virtual COM po czym wciskamy ponownie Enter
  • zamykamy port (terminal)

Konfiguracja programu Flash Magic
Po zainstalowaniu i uruchomieniu programu Flash Magic należy w menu Options wybrać Advance Options. Następnie w zakładce Hardware Config należy zaznaczyć pole Assert DTR and RTS while COM Port open


Programowanie układu za pomocą Flash Magic
Programowanie układu następuje w 5 krokach:

Krok 1. Wybór programowanego układu oraz parametrów programowania.
Po kliknięciu przycisku Select Device ukaże się lista obsługiwanych układów z której należy wybrać interesujący nas procesor.
Następnie należy wybrać port COM pod którym widoczny jest MultiTool (do sprawdzenia w menadżerze urządzeń) oraz prędkość transmisji. W polu Interface należy wybrać None (ISP) a w polu Oscillator częstotliwość taktowania programowanego procesora w Mhz

Krok 2. Wybór obszarów pamięci do kasowania
W kroku tym należy zaznaczyć bloki pamięci, które chcemy wykasować przed programowaniem (nie można zaprogramować nieskasowanej pamięci Flash) lub pole Erase all jeśli chcemy wykasować całą jej zawartość.

Krok 3. Wybór pliku
W polu Hex File należy wskazać plik Hex którym będziemy programować układ.

Krok 4. Opcje dodatkowe
Przydatną opcją jest weryfikacja poprawności zaprogramowania układu. Po zaprogramowaniu procesora następuje odczytanie zawartości pamięci i porównanie z oryginalnym plikiem.

Krok 5. Programowanie układu
Po kliknięciu przyciski Start nastąpi zaprogramowanie układu

sobota, 26 czerwca 2010

MultiTool - obsługa w systemie Linux

Aby urządzenie MultiTool było widoczne w systemie i możliwa była praca z nim należy najpierw odpowiednio skonfigurować jądro systemu (o ile nie zostało to już zrobione przez wydawcę dystrybucji). Poniższy przykład oparty jest o system Gentoo.

Przed rozpoczęciem konfiguracji należy zaopatrzyć się w źródła jądra.
Logujemy się więc jako root

$ su -
Hasło: ##########

a następnie instalujemy źródła jądra
# emerge -av gentoo-sources


po pomyślnej instalacji przechodzimy do katalogu z jądrem i uruchamiamy make menuconfig

# cd /usr/src/linux
# make menuconfig

i konfigurujemy jądro następująco:

Device Drivers  --->
   SCSI device support  --->


(Wybierając USB Mass Storage możemy być pewni, że obsługa SCSI zostanie włączona, jednak musimy zadbać o włączenie obsługi dysku)
---   SCSI support type (disk, tape, CD-ROM)
<*>   SCSI disk support


(Cofamy się o jeden poziom, do opcji USB support)
  USB support  --->


(Główny hub jest wymagany dla wsparcia USB. Jeśli skompilujemy to jako moduł, będzie dostępny pod nazwą usbcore)
<*> Support for Host-side USB


(Wybieramy tę opcję, by urządzenia USB pojawiały się w /proc/bus/usb. Opcja zalecana.)
 [*]   USB device filesystem


(Wybieramy przynajmniej jeden HCD. Jeśli brak nam pewności, to wybieramy wszystkie)
--- USB Host Controller Drivers
<*> EHCI HCD (USB 2.0) support
< > OHCI HCD support
<*> UHCI HCD (most Intel and VIA) support


(Schodząc trochę niżej dochodzimy do urządzeń CDC i urządzeń masowego składowania danych)
<*> USB Modem (CDC ACM) support
<*> USB Printer support
<*> USB Mass Storage support


(Włączamy obsługę przejściówek USB <-> złącze szeregowe. Jeśli posiadamy przejściówkę innych producentów to również tu możemy je wybrać)
 USB Serial Converter support  --->
    [*] USB Generic Serial Driver
    <*> USB FTDI Single Port Serial Driver
    <*> USB Prolific 2303 Single Port Serial Driver


następnie kompilujemy jądro
# make

kopiujemy jądro w odpowiednią lokalizację np. (należy pamiętać aby również odpowiednio skonfigurować Gruba lub Lilo):
# cp arch/x86_64/boot/bzImage /boot/kernel-2.6.33-r1 

instalujemy moduły jądra:
# make modules_install

i restartujemy system.

Po udanym ponownym uruchomieniu systemu podłączamy MultiTool do portu USB i ładujemy moduł współpracujący z MultiToolem:

# modprobe usbserial vendor=0x1FC9 product=0x0500

Uruchom program dmesg i w konsoli powinieneś zobaczyć mniej więcej coś takiego:

usbserial_generic 1-1:1.0: generic converter detected
usb 1-1: generic converter now attached to ttyUSB0
usbcore: registered new interface driver usbserial_generic

Jak widać nowy port szeregowy jest przyporządkowany do /dev/ttyUSB0 Od teraz możesz korzystać z MultiToola za pomocą dowolnego programu :-)

sobota, 12 czerwca 2010

MultiTool - Nowy programator AVR kompatybilny z STK500 V2 z dodatkowymi funkcjami

Ku końcowi dobiegają prace na najnowszym dziełem firmy SFAR (w którym również maczałem palce) a mianowicie MultiTool. Jest to programator STK500V2 wraz wieloma dodatkowymi funkcjami m.in. :
- Cyfrowy 4 kanałowy woltomierz
- przejściówka USB <-> RS232
- generator zegara
- 5 uniwersalnych wyjść cyfrowych

a w przyszłości również:
- Oscyloskop z próbkowaniem do 400kHz
- Przejściówka USB <-> 1-Wire
- Przejściówka USB <-> I2C
- Monitor I2C
- Przejściówka USB <-> SPI




Więcej informacji na: http://www.sfar.netiz.pl/forum/index.php?topic=69.0

środa, 24 lutego 2010

Nocturne on Vimeo

Nocturne on Vimeo
Film Full HD nagrany lustrzanką Canona 1D MKIV przy ISO 6400 bez użycia zewnętrznych źródeł światła. Muszę przyznać, że jakość powala.