Vývojová deska pro PIC18FxxK22

Protože jsem nepřestal programovat, spíše jsem začal ještě trochu více, rozhodl jsem se pořídit si „dospělejší“ procesor, a to už nikoliv z řady PIC16F, ale pomalu přecházím na řadu PIC18F. Tato série nabízí o mnoho více než šestnáctková řada. A to nejen vyšší pracovní kmitočet, ale i více paměti (datové i programové), a v neposlední řadě o mnoho více periferií, jako je třeba i snímání polohy na dotykovém displeji.
A protože už mě nebavilo neustále přendavání z programátoru do nepájivého pole, které se chová jako kondenzátor, a místa tam také není nazbyt, nehledě na změť propojovacích drátů, rozhodl jsem se postavit si vývojovou desku. Rovnou říkám, že deska je uspůsobena především pro mé aplikace, které potřebuji nyní, nebo se je chystám v budoucnu zprovoznit.
Popis: Jako procesor jsem si zvolil PIC18F25K22. Procesor může mít takt až 64MHz, podporuje sběrnice I2C/SPI/EUSART, obsahuje 19ti kanálový 10b A/D a 5b D/A převodník, hardwarový reset, 2 rail-to-rail komparátory, 3x8b a 4x16b timer, a spoustu dalšího. Datasheet najdete zde.
Pro svoji desku jsem nepoužil vše, primárně jsem chtěl využít A/D převodníky, k nim jsem přidal 2 trimry na jejich odzkoušení (spíše odzkoušení správnosti programu) a napěťovou referenci (i když samotný mikrokontrolér ji už obsahuje, dokonce různé hodnoty referenční napětí), sběrnice SPI/I2C s připojenými pull-up rezistory, samozřejmě LCD displej (jeho umístění jsem úplně nevymyslel, myslel jsem si, že mám displej s jiným rozložením vývodů, a proto je takhle hloupě na straně, viz dále), pár mikrospínačů a LEDek, tlačítko pro HW reset (lepší, než odpojovat napájení), rotační enkodér (např. pro digitální volume), externí oscilátor (krystal) a hlavně ICSP konektor, abych se vyhl přendavání mikrokontroléru do patice programátoru a zase zpět. Z tohoto konektoru se může celá deska i napájet, viz dále. Téměř vše je připojeno přes mikroswitche, v případě krystalu jsou použity jumpery.
Všechny porty se dají odpojit od připojených perifirií tak, aby zůstal jen samotný port. Trošku nepřehldné je to u portu C, který jsem neplánoval na nic jiného, než jen na displej. Ale i tak se dá displej vyndat a použít tento port, je-li to potřeba. Pouze je potřeba najít si ty správné piny v dutinkové liště. Z připojeného schématu/plošňáku je to ale myslím docela zřejmé.
Hodně jsem dbal i na napájení, na jeho široké možnosti, a to přípojení přímo na stabilizovaný zdroj 5V, případně ze zdroje 7÷30V, a protože ani jedno nemusí být k dispozici, vybavil jsem desku i konektorem USB, ze kterého používám pouze napájení. Jak už bylo zmíněno, pro napájení se může použít i ICSP, pokud nebude mít proudový odběr větší než cca 50mA a programátor tuto funkci podporuje.
Součástky a poznámky ke stavbě: Hodnoty součástek nejsou moc kritické, kondnzátoy u krystalu C4,5 mají hodnotu od 15 do 47pF, hodnota krystalu je pak podle taktu jaký chcete /4 (tzn. pro takt 64MHz krystal 16MHz a následně v konfiguračních bitech zapnout násobičku kmitočtu a PLL), případně jej nemusíte osazovat vůbec a použít interní RC oscilátor za cenu menší stability frekvence (ale myslím, že bohatě postačí; interní oscilátor jede na max. 16MHz), kondenzátory u napěťové reference ADR444 C2,3 vyhoví 100nF, stejně tak u stabilizátoru IC2, rezistory před LEDkami mají hodnotu 1k (můžou být od 330Ω), při této hodnotě LEDky svítí dobře a nehrozí přetížení procesoru a odpálení celého portu (maximální proud na jeden I/O pin v jakémkoliv portu je 25mA, ale pro jistotu větší hodnota rezistoru), pull-up rezistory u tlačítek (& pro I2C) R1÷R4 a rezistor R17 mají hodnotu 4k7, stejně tak u rotačního enkodéru (R14,15). Paralelně ke kontaktům rotačního enkodéru doporučuji přidat keramické kondenzátory hodnoty cca 22÷47nF, částečně odstraňující zákmity, avšak i tak je nutné si napsat vhodný podprográmek pro vyhodnocení krok/směr.
Trimry „pro“ A/D převodníky mají hodnotu 4k7 (5k). Rezistor R6 je zařazen do podsvícení LCD, jeho hodnota je 330Ω, aby proudový odběr nebyl tak vysoký, na intenzitě podsvětlení se to však projeví pouze minimálně. Pokud použijete LCD bez podsvícení, tento rezistor můžete vynechat. Tady bych chtěl trošku varovat, LCD mají různé rozložení vývodů, některé mají vývody, 15,16, 1÷14, jiné jsou v řadě 1÷16, zkontrolujte si tedy jeho rozložení vývodů, ze schématu a DPS je to potrné dobře! Trimr pro nastavení kontrastu má rovněž hodnotu 4k7 (5k). Napěťová reference ADR444 je od fy. Analog Devices Inc. (mám s produkty této firmy dobré zkušenosti), hodnota referenčního napětí je 4,096V. Můžete samozřejmě použít referenci od jiného výrobce a i s jiným referenčím napětím, doporučuji však hodnotu napětí rovnou 2^n, aby LSB byla celočíselná hodnota napětí a tudíž menší chyba. Maximální hodnota referenčního napětí by měla být rovna napájecímu napětí. Případně lze použít i reference v PICku.
Někdy možná doplním hodnoty součástek do schématu, ale spíš ne...
Zde je už schéma, jak jsem vlastně desku navrhl, tady jsou eagle soubory (ver. 5.10; Eagle píše, že schema a DPS nesouhlasí, ale souhlasí :-) ).


     

24.11.2013 S vývojovou deskou jsem vcelku spokojen, ale má pro mě aktuálně jeden zásadní nedostatek - mikrokontrolér má málo vývodů. A protože mi řada PIC18FxxK22 vyhovuje, pořídil jsem si mikrokontrolér ze stejné řady, ale s větším počtem vstupně-výstupních pinů, konkrétně PIC18F46K22. Tento mikrokontrélér má v pouzdře DIP 40 vývodů, v SMD pouzdře TQFP vývodů 44. Obsahuje všechny periferie jako jeho menší bratříček, některé i navíc, konkrétněji v datasheetu.
Novou vývojovou desku jsem pojal v trochu jiném konceptu než předešlou. Už jsem se vykašlal na spoustu tlačítek a DIP switchů. Šlo mi nyní hlavně desku, na které je kontrolér, displej a rotační enkodér. Zároveň obsahuje i více konektorů pro napájení (jakási rozbočnice). Už ale neobsahuje stabilizátor. Také jsem potřeboval programovací konektor pro programování v zapojení (ICSP), jelikož je to prostě pohodlné (a také když je obvod v SMD je to celkem nutnost). Konektor je zapojen stejně jako u předešlé vývojové desky.
Deska obsahuje několik LEDek (na portu E), dále dvě tlačítka a rotační enkodér. Dále obsahuje LCD displej 16×2 a trimr na doladění jeho kontrastu. Také se na desce nachází externí krystal pro mikrokontrolér.
Všechny porty jsou vyvedeny na lámací lišty kromě portu A, který je určen pro displej.
Jedinné, co mě mrzí, je, že jsem zapomněl na tlačítko pro hardwarový reset, ale předělávat to už nebudu. Deska je pojata jako oboustranná s množstvím prokovů, avšak i ty se nechají doma vyrobit.
Na závěr už tradičně schéma a netradičně foto desky v akci.