Blog:Postavte si PMD 32-SD

Z PMD 85 Infoserver

(Rozdiel medzi revíziami)
Rombor (Diskusia | príspevky)
(Prvotný koncept)
Rombor (Diskusia | príspevky)
(Dopnený odstavec Hardvér)
Riadok 11: Riadok 11:
* odlišný prepojovací kábel - pôvodná PMD 32 má konektor FRB M-30, PMD 32-SD zas Cannon F-15
* odlišný prepojovací kábel - pôvodná PMD 32 má konektor FRB M-30, PMD 32-SD zas Cannon F-15
 +
 +
[[Obrázok:Pmd32-sd-sch.png|thumb|Schéma PMD 32-SD]]
=== Hardvér ===
=== Hardvér ===
-
[[Obrázok:Pmd32-sd-sch.png|thumb|Schéma PMD 32-SD]]
+
Zapojenie je pomerne jednoduché. Základom je mikrokontrolér ATMEL ATmega32 taktovaný na maximálnych 16 MHz.
 +
 
 +
SD karta je pripojená štandardne na SPI interfejs ATMELu. Keďže SD karta je 3,3V zariadenie, výstupné signály do SD karty sú upravené deličmi z odporov R4 až R9. Napájanie SD karty je zrazené z 5V iba dvoma diódami D1 a D2 na približne 3,3V a filtrované kondenzátormi C8 a C9. I keď mnohé zdroje uvádzajú, že je vhodnejšie použiť 3,3V stabilizátor, zvolil som toto riešenie a nezaznamenal som žiadny problém. Červená LED D3 je pripojená na signál -CS karty a tak indikuje prístup na kartu. Na piny PB0 a PB1 ATMELu sú pripojené spínacie kontakty konektora SD karty pre detekciu vloženej karty, resp. detekciu blokovania zápisu. SPI interface ATMELu, spolu so signálom -RESET, je vyvedený aj na osobitný konektor (pinovú lištu) ako ISP - In-System Programming.
 +
 
 +
Pripojenie LCD displeja je opäť štandardné - dátové signály DB4 až DB7 a riadiace signály E a RS. Displej teda pracuje v 4-bitovom režime a je umožnený iba zápis do registrov displeja. Zaujímavosťou je, že DB4 až DB7 sú, v záujme zjednodušenia plošného spoja, pripojené na port-D ATMELu v obrátenom poradí. Podsvietenie displeja je spínané tranzistorom T1. Tlačidlá spínajú proti GND a pull-up je zavedený programovo.
 +
 
 +
Komunikácia s nadradeným počítačom (v našoom prípade s [[PMD 85#PMD 85-3|PMD 85-3]]) je prostredníctvom obojstranného paralelného kanála, ktorý v podstate zodpovedá portu PA v PIO 8255 v móde 2, i keď v obrátenom garde. Je vyvedený na 15 pinový konektor CANNON a všetky signály sú oddelené odpormi 330 ohm. Tieto odpory chránia porty ATMELu, ak PMD 85 naprogramuje GPIO0 tvrdo na výstup. Okrem dátového portu a riadiacich signálov -OBF, IBF, -ACK a -STB je vyvedený aj signál DIR, ktorým sa nastavuje smer budiča 8286, umiestneného v IF GPIO0 PMD 85 na porte PA 8255. Ak bude PMD 32-SD ovládaná iným systémom, ktorý takýto budič nebude obsahovať, signál DIR sa nepoužije.
 +
 
 +
Pre nakreslenie schémy a návrh plošného spoja bol použitý program [http://www.expresspcb.com/ ExpressPCB]. Plošný spoj je obojstranný a obsahuje iba jedinú súčiastku v SMD púzdre a tou je "konektor" pre SD kartu, osadený zhora zo strany súčiastok.
 +
 
 +
Keďže som nikdy nebol schopný "zžiť" sa s programom Eagle, nebránil by som sa tomu, keby sa našiel niekto, kto by plošné spoje prekreslil do Eaglu, ktorého výstupy sú zrejme použiteľnejšie z pohľadu "hromadnej" výroby DPS (i keď pravda, nechystám sa na nejakú sériovú výrobu!). Prototypové DPS som si nechal vyrábať vo firme [http://www.pbspoj.sk/ pbSpoj], kde už síce nanášajú aj nepájivú masku, avšak bez prekovených otvorov, čo je pri osadzovaní dosť nepríjemné. pbSpoj som si zvolil z viacerých dôvodov. Sú na slovensku, cena DPS je celkom prijateľná a hlavne, boli ochotný vyrobiť DPS z predlohy práve z programu ExpressPCB, čo bola pre mňa dosť podstatná vec.
-
Po hardvérovej stránke je zapojenie postavené na mikrokontroléri ATMEL ATmega32, ktorý zabezpečuje komunikáciu s nadradeným počítačom (v našoom prípade [[PMD 85#PMD 85-3|PMD 85-3]]), obsluhu SD/MMC karty a tiež obsluhu displeja a tlačidiel. Okrem ATMELu už zapojenie obsahuje iba nutnú "bižutériu", stabilizátor 5V a skupinu oddeľovacích odporov. Pre nakreslenie schémy a návrh plošného spoja bol použitý program [http://www.expresspcb.com/ ExpressPCB]. Plošný spoj je obojstranný a obsahuje iba jedinú súčiastku v SMD púzdre a tou je "konektor" pre SD kartu, osadený zhora zo strany súčiastok.
 
=== Softvér ===
=== Softvér ===
Softvér pre mikroprocesor je napísaný v jazyku C a kompilovaný pomocou [http://winavr.sourceforge.net/ WinAVR]. Ako editor bol použitý [http://www.pnotepad.org/ Programmer’s Notepad]. Pre prácu s SD kartou je použitá knižnica [http://www.roland-riegel.de/ MMC/SD/SDHC card library], ktorá bola mierne upravená (nerozlišujú sa veľkosti písmen v menách súborov a adresárov).
Softvér pre mikroprocesor je napísaný v jazyku C a kompilovaný pomocou [http://winavr.sourceforge.net/ WinAVR]. Ako editor bol použitý [http://www.pnotepad.org/ Programmer’s Notepad]. Pre prácu s SD kartou je použitá knižnica [http://www.roland-riegel.de/ MMC/SD/SDHC card library], ktorá bola mierne upravená (nerozlišujú sa veľkosti písmen v menách súborov a adresárov).

Verzia zo dňa a času 21:16, 10. september 2009

Postavte si PMD 32-SD

PMD 32-SD
PMD 32-SD

PMD 32-SD je zariadenie, ktoré nahradzuje disketovú jednotku PMD 32, s tým rozdielom, že namiesto 5,25" diskiet sa používajú Image týchto diskiet (súbory typu P32) uložené na SD karte formátovanej na FAT16. PMD 32-SD obsahuje jednoduchý "ovládací panel" pozostávajúci z displeja a štyroch tlačidiel. To umožňuje voľbu práve používaných Image diskov.

PMD 32-SD sa od pôvodnej disketovej jednotky PMD 32 líši v niekoľkých detailoch:

  • poskytuje možnosť používať 4 diskové jednotky A: až D: (u pôvodnej PMD 32 sú iba A: a B:) - vyžaduje to upravený CP/M BIOS
  • nevykonáva alebo ignoruje povely U, C, J, * a @ - dôvodom je odlišný hardvér a spôsob implementácie
  • poskytuje naviac nové povely G, H, K, L, M a N - umožňujú softvérovú voľbu vložených Image diskov bez použitia ovládacieho panelu
  • odlišný prepojovací kábel - pôvodná PMD 32 má konektor FRB M-30, PMD 32-SD zas Cannon F-15


Schéma PMD 32-SD
Schéma PMD 32-SD

Hardvér

Zapojenie je pomerne jednoduché. Základom je mikrokontrolér ATMEL ATmega32 taktovaný na maximálnych 16 MHz.

SD karta je pripojená štandardne na SPI interfejs ATMELu. Keďže SD karta je 3,3V zariadenie, výstupné signály do SD karty sú upravené deličmi z odporov R4 až R9. Napájanie SD karty je zrazené z 5V iba dvoma diódami D1 a D2 na približne 3,3V a filtrované kondenzátormi C8 a C9. I keď mnohé zdroje uvádzajú, že je vhodnejšie použiť 3,3V stabilizátor, zvolil som toto riešenie a nezaznamenal som žiadny problém. Červená LED D3 je pripojená na signál -CS karty a tak indikuje prístup na kartu. Na piny PB0 a PB1 ATMELu sú pripojené spínacie kontakty konektora SD karty pre detekciu vloženej karty, resp. detekciu blokovania zápisu. SPI interface ATMELu, spolu so signálom -RESET, je vyvedený aj na osobitný konektor (pinovú lištu) ako ISP - In-System Programming.

Pripojenie LCD displeja je opäť štandardné - dátové signály DB4 až DB7 a riadiace signály E a RS. Displej teda pracuje v 4-bitovom režime a je umožnený iba zápis do registrov displeja. Zaujímavosťou je, že DB4 až DB7 sú, v záujme zjednodušenia plošného spoja, pripojené na port-D ATMELu v obrátenom poradí. Podsvietenie displeja je spínané tranzistorom T1. Tlačidlá spínajú proti GND a pull-up je zavedený programovo.

Komunikácia s nadradeným počítačom (v našoom prípade s PMD 85-3) je prostredníctvom obojstranného paralelného kanála, ktorý v podstate zodpovedá portu PA v PIO 8255 v móde 2, i keď v obrátenom garde. Je vyvedený na 15 pinový konektor CANNON a všetky signály sú oddelené odpormi 330 ohm. Tieto odpory chránia porty ATMELu, ak PMD 85 naprogramuje GPIO0 tvrdo na výstup. Okrem dátového portu a riadiacich signálov -OBF, IBF, -ACK a -STB je vyvedený aj signál DIR, ktorým sa nastavuje smer budiča 8286, umiestneného v IF GPIO0 PMD 85 na porte PA 8255. Ak bude PMD 32-SD ovládaná iným systémom, ktorý takýto budič nebude obsahovať, signál DIR sa nepoužije.

Pre nakreslenie schémy a návrh plošného spoja bol použitý program ExpressPCB. Plošný spoj je obojstranný a obsahuje iba jedinú súčiastku v SMD púzdre a tou je "konektor" pre SD kartu, osadený zhora zo strany súčiastok.

Keďže som nikdy nebol schopný "zžiť" sa s programom Eagle, nebránil by som sa tomu, keby sa našiel niekto, kto by plošné spoje prekreslil do Eaglu, ktorého výstupy sú zrejme použiteľnejšie z pohľadu "hromadnej" výroby DPS (i keď pravda, nechystám sa na nejakú sériovú výrobu!). Prototypové DPS som si nechal vyrábať vo firme pbSpoj, kde už síce nanášajú aj nepájivú masku, avšak bez prekovených otvorov, čo je pri osadzovaní dosť nepríjemné. pbSpoj som si zvolil z viacerých dôvodov. Sú na slovensku, cena DPS je celkom prijateľná a hlavne, boli ochotný vyrobiť DPS z predlohy práve z programu ExpressPCB, čo bola pre mňa dosť podstatná vec.


Softvér

Softvér pre mikroprocesor je napísaný v jazyku C a kompilovaný pomocou WinAVR. Ako editor bol použitý Programmer’s Notepad. Pre prácu s SD kartou je použitá knižnica MMC/SD/SDHC card library, ktorá bola mierne upravená (nerozlišujú sa veľkosti písmen v menách súborov a adresárov).