. : New eShop! - Mobilní verze - Pandatron.cz - Pandatron.sk - Diskuzní fórum - Zakázkový vývoj : .
 
Jaký vývojový kit?
18. června 2008 | Pandatron | Jaký vývojový kit? | Komentářů: 19  

Jaký vývojový kit?

Po častých dotazech na recenze nových typů procesorů a ukázkových kódů jsem se rozhodl vyrobit tzv. vývojový kit. Ovšem když už vývojový kit, tak se vším všudy.

Dle mého by tedy měl obsahovat modernější a výkonnější procesor doplněný o řadu komunikačních linek (USB, ethernet, UART, SPI, I2C a další) a řadu dalších prvků tak, aby se dal použít na co největší množství projektů a pokusů.
K tomuto kitu by poté na Pandatronu následovala řada ukázkových kódů na jednotlivé periférie a pravděpodobně bych ho využíval i pro demostraci práce s nejrůznějšími obvody (ať už například obvodem Vinculum, MP3 dekodérem, Bluetooth či WiFi moduly a dalšími).

Dle osazení desky je jasné, že nebude určena pro úplné začátečníky váhající před otázkou "mám se učit programovat nějaký ty procesory, nebo nemám?", i když nějakou tu LEDku a tlačítko samozřejmě obsahovat bude. Deska bude určena spíše lidem, kteří již nějaký ten "osmibit" naprogramovali a chtěli by (či potřebují) se naučit programovat něco víc. I když budou veškeré podklady a posléze i zdrojové kódy volně dostupné, bude možné alespoň po nějaký čas zakoupit plošný spoj, procesor, případně i celou osazenou desku.

Co by deska měla obsahovat
Jak jsem již naznačil, deska by měla obsahovat co nejvíce moderních komunikařních a jiných prvků, připadně být na jejich osazení a použití alespoň připravena.
Jako základ bych tedy viděl čtyřřádkový textový displej, doplněný případně i konektorem pro připojení grafického, barevného, nebo případně TFT displeje.

Na zadní části by byly umístěny klasické komunikační konektory jako USB slave (musí být obsaženo v použitém procesoru), případně i USB master a na desce místo pro osazení obvodu Vinculum. Dále RJ45 pro ethernet (s obvodem ENC28J60), sériový port a pravděpodobně i jeden PS2 konektor.
Bylo by dobré umístit na desku i stereo audio konektory LINE-IN a LINE-OUT.

Na pravé straně desky by mohl být 40 pinový konektor při připojení pevného disku. V případě použití redukce na 2,5" disk by na desce mohli být i čtyří otvory pro jeho připevnění na spodní stranu desky.

Na přední hraně desky by mohly být tlačítka, LED diody, případně i slot na SD kartu a podobně.

Levá část desky by poté mohla být určena pro přiletování Bluetooth, WiFi či jiných modulů. Ovšem to jen v případě, podaří-li se mi sehnat nějaký standartní typ dostupný minimálně i za rok.

Jinak by deska měla obsahovat větší RWM paměť a to nejlépe SDRAM, které se dají snadno vyletovat z levných PC modulů. SRAM paměti jsou narozdíl od nich poměrně drahé a hůře dostupné. Naopak Flash paměť by byla zbytečná. Ta je vhodná spíše pro ještě výkonnější procesory a pro uložení operačního systému. Zde by pro ukládání dat byly určený SD karty, případně USB klíčenky.

Samozřejmostí by na desce byla vyvedená I2C a SPI sběrnice. SPI by byla interně použita na SD kartu, případně k obvodu Vinculum, D/A převodníku, nebo i MP3 dekodéru (pokud by se na desku vůbec osazoval, když by bylo možné softwarové dekódování procesorem). I2C by naopak mohla interně vést k malé EEPROM paměti a RTC obvodu.

Všechna tato témata jsou však otevřena k diskusi. Sami si řekněte, co a jak by jste na desce rádi viděli.

Jaký procesor
Nyní však stojím před otázkou, jaký procesor?

Dle mého a základních ohlasů které mám k dispozici by byl velký zájem o procesory s jádrem ARM a to především od firmy Atmel, která je na tomto trhu velice rozšířená a její procesory nejsou přehnaně drahé. Tímto článkem bych však chtěl iniciovat případnou diskusi na toto téma a domluvit se s vámi, jaký procesor, případně i osazení desky by jste preferovali.

Můj názor na procesor
Po základní úvaze, že se musí jednat o procesor od dobře známé firmy a internet musí být plný konstrukcí a příkladů s jejich procesory, jsem zvolil v zásadě jen dvě firmy - Atmel a Microchip. Dále jsem si jako podmínku stanovil integrovaný USB slave port, čímž se mi výběr značně zmenšil.

PIC
Microchip má výhodu v tom, že je dobře znám, avšak zaspal s 32 bitovými procesory a jeho 16ti bitové nebudí přílišnou důvěru a jsou jen minimálně osazovány. Navíc ve svých právě zrozených 32b procesorech nepodporuje standartní jádro ARM případně alespoň známý ColdFire. Takové jádro sice není podmínkou, je však velkou výhodou. Proč se učit detajlně základy jediného procesoru, když můžete nastudovat jednotnou specifikaci jádra, které je použito i v řadě dalších procesorů od rozličných výrobců.

Za ještě větší nevýhodu bych však považoval chybějící pevně uloženého bootloader a tím potřebu speciálního programátoru, problémy s C překladačem (dostupný HI-TECH překladač naprosto běžně neinicializuje proměnné a podobně, tedy pro skutečnou práci naprosto nepoužitelný) a další.

Jako jeho zástupce jsem tedy vybral mně známý typ PIC18F4550. Jedná se sice jen o relativně malý a osmibitový procesor, avšak je k němu již řada dokumentace a nejedná se o úplnou novinku plnou chyb. Bohužel však i s tímto procesorem a k němu dostupným PICC18 kompilátorem (neexistuje pro něho GCC) se bude často jednat o boj s chybama v kompilátoru, než o vývoj firmware.


Obr. 1: PIC18F4550

AVR
Jako zástupce osmibitové řady procesorů firmy Atmel jsem vybral typ AT90USB647. Jde o procesor vybavený USB portem a přitom poměrně nízkou cenou. Je k němu zdarma dostupný GCC kompilátor a díky integrovanému bootloaderu není (minimálně pro začátek) potřeba žádný programátor.

Sice narozdíl od předchozího procesoru PIC obsahuje i vyvedenou paralelní sběrnici, bohužel však pouze osmibitovou a schopnou adresovat maximálně 64kB paměti SRAM.


Obr. 2: AT90USB647

ARM7
Mnou preferovaný typ procesorů pro tento vývojový kit. Je zde však výběr minimálně ze dvou typů, lišících se v zásadě jen přítomností externí sběrnice. Typ AT91SAM7S256 obsahuje 32 I/O pinů a neobsahuje externí sběrnici. Naproti tomu typ AT91SAM7SE256 obsahuje až 88 I/O pinů a má vyvedenu paralelní externí sběrnici určenou k přímému připojení SRAM, SDRAM, FLASH pamětí a CF či IDE médií a to vše až do kapacity 4GB. Cenový rozdíl obou procesorů je přitom jen minimální a to asi 2 USD.

Samozřejmě jde v obou případech již o 32 bitové procesory doplněné o pevně uložený bootloader a i přes svou nízkou cenu jsou poměrně výkonné a nečinilo by jim problém ani softwarové dekódování MP3 skladeb a podobně. Dle mého názoru se tedy jedná o hlavního kandidáta na pozici moderního a výkonného procesoru. Navíc jak uvidíte níže, pracuje se s ním naprosto shodně jako s každým jiným procesorem a pokud by jste už pracovavy na něčem větším, 32b šířka, DMA přenos či například podpora IrDA vám to v nemalém usnadní.


Obr. 3: AT91SAM7SE256

Vybral jsem tedy tři základní kandidáty a do následující tabulky rozepsal jejich základní vlastnosti:

  PIC18F4550 AT90USB647 AT91SAM7SE256
typ 8 bit 8 bit 32 bit
pouzdro TQFP44 TQFP64 LQFP128
I/O pinů 35 48 88
interní flash [kB] 32 64 256
interní RAM [kB] 2 4 32
interní EEPROM [kB] 0,2 2 0
pracovní freq. jádra [MHz] 48(/4) 16 48
bootloader ne ano ano
SPI (počet CS) 1 1 4 / 16
I2C 1 1 1
UART 1 1 2
USB 1 1 1
       
EBI ne 64kB 4GB
... s podporou - SRAM SRAM, SDRAM, FLASH, IDE
       

Ukázkový kód
Pro základní představu práce s těmito procesory a kompilátory které k nim používám následuje i část kódu nastavující čtvrtý pin jako výstupní a jeho zapnutí do logické jedničky:

PIC

.h
#define vase_jmeno_pinu   0x10;
.c
TRISA &= ~vase_jmeno_pinu;
PORTA |= vase_jmeno_pinu;

AVR

.h
#define vase_jmeno_pinu   4;
.c
DDRA |= _BV(vase_jmeno_pinu);
PORTA |= _BV(vase_jmeno_pinu);

ARM

.h
#define vase_jmeno_pinu   0x10;
.c
PIOA_OER = vase_jmeno_pinu;
POIA_SODR = vase_jmeno_pinu;

Závěr
Na závěr tedy ještě jednou dodávám, že jde pouze o můj návrh a že čekám na vaše komentáře, návrhy a nápady. Pokud by jste měli zájem o podobnou vývojovou desku, sami si řekněte co by měla obsahovat a co je zbytečné. Samozřejmě, i když to v textu nebylo uvedeno, obsahovala by i nějaké Jumper propojky a řada pinů by byla vyvedena na klasické pinové lišty. I když na desce bude také již řada periférií obsažena, nebo na ně budou neosazené piny, stále zbývá nespočet dalších obvodů a modulů (například GPS a GSM), které musí být možné k desce snadno připojit.







GooglePlus1 FaceBook Twitter del.icio.us DiGG Google StumbleUpon Google Buzz Email RSS PDF Tisk

Komentáře (39):

Zobrazit starší 30 dnů (39)...



Název příspěvku: Vaše jméno: host
                 
  Zakázat formátování [Zakáže kódování a nahrazování smajlíky.]
Připojit soubory
reklama:
Vývojový kit MEGA48X
Levnější varianta univerzálního vývojového kitu s obvodem ATmega48 společnosti ATMEL je vhodná jak pro začátečníky, tak i profesionály.
Skladem od 545 Kč

Informace uvedené v článcích jsou platné v době jejich vydání a samotné články jsou určeny pouze jako zdroj informací. Autor článku ani správce webu nenesou žádnou zodpovědnost za případné újmy na majetku a zdraví. Názvy společností a výrobků, loga a další multimediální materiál mohou být ochrannými známkami příslušných společností.
RSS kanály: | |
+420 723 846 377
info@pandatron.cz
Všechna práva vyhrazena | mobilní verze | © Copyright 2000 - 2016 ISSN 1803-6007