OK1HDU (Hamradio, electronics, travelling, photography, ok7u...)
599.cz - Homepage 599.cz - Homepage Memorial OK1WC SOTA - Vrcholy v éteru Optimalizováno pro web... Než něco pošlete dál, přečtěte si ... hoax.cz
     Dnes: 22. 05. 2018    fotogalerie na 599.cz spaceweather.com Bouřky v Česku v novém okně Bouřky v Evropě v novém okně Ionogram Průhonice v novém okně Contest calendar WA7BNM v novém okně RSS summary of the last 7 articles    
O   Hlavní menu
Hlavní stránka

Zajímavé odkazy

Download

Zasílání novinek

O   Seznam rubrik
mínus technika, bastleni
mínus provoz, závody
mínus Od krystalky k SSB
mínus ostatní

f e e d b a c k

O   Počasí v Holicích
JO70XC


O   VOACAP KV Online

O   VOACAP pro CB
Šíření na CB

PHPRS fórum


<a1>technika, bastleni</a1>

Zpět PonyProg2000 pro systém 64 bitů + adaptér pro RS232

Vydáno dne 13. 03. 2013 (5467 přečtení)

PonyProg2000 64bits PonyProg2000 je velice populární programátor jednočipových počítačů a pamětí. (Slovo programátor je tu použito ve významu software, sloužící k přenesení dat do paměti součástky). Jeho autorem je Claudio Lanconelli a program je šířen pod GNU General Public License verze 2. Svou oblibu si získal jednak proto, že jde o bezplatný software ale především proto, že podporuje velké množství různých verzí programátorů (tentokrát ve významu hardware sloužící k přenesení dat do paměti), včetně těch nejjednodušších.


Při pohledu na web autora programu to vypadá, že s vývojem skončil někdy v roce 2008. Přesto je program stále velmi oblíbený. Jeho online Fórum stále žije. Zhruba v posledním roce se objevilo několik detailních popisů jak tento program nainstalovat a provozovat i na 64bitových systémech Windows (XP 64bit a Win7 64bit). Tečku za těmito (někdy dost komplikovanými) návody udělal účastník fóra s přezdívkou gordon-- (nebo je to jméno?). Vytvořil knihovnu dlportio.dll pro 64 bitové Windows.

    Stačí tedy:
  • naistalovat TVicPort driver: (free pro osobní nekomerční použití)
  • stáhnout si PonyProg64: Stáhnout .rar soubor a rozbalit někde v PC.
Vlastní PonyProg není potřeba ani instalovat, stačí rozbalit a někam uložit celý adresář. (Spustí se PonyProg2000.exe). Pouze, pokud bychom používali nějaké nestandardní adresy portů, je potřeba upravit .ini soubor.








Již před delší dobou jsem na dvou místech tohoto webu popsal jeden z asi nejjednodušších programátorů (HW), který představuje přímé propojení některých pinů paralelního portu PC (LPT) s programovacími piny součástky. Používám to na programování jednočipů Atmel AVR. Vzhledem k tomu, že na novějších počítačích nebývá někdy paralelní port vyveden na konektor (i když samotná deska ho často obsahuje), zkusil jsem si vyrobit adaptér na programování přes port sériový.

(Mimochodem: Až Vám bude obchodník s počítači tvrdit, že PC s paralelním nebo sériovým portem se už dávno nedělají, nevěřte mu a jděte k jinému. Všiml jsem si, že líní, nebo neschopní obchodníci prostě místo toho aby řekli, že oni něco nemají, budou Vám tvrdit, že se to už dááávno nedělá, a nebo by to bylo na zakázku a tím pádem hróóózně drahé.)

Princip sériového programování.

SPI_princip

V principu jde o plně duplexní synchronní sériový přenos SPI (Serial Peripheral Interface Bus). Pokud by někoho zajímalo detailně, jak to funguje, může si to přečíst na wikipedii.

    Tady jenom velmi stručně.
  • signál SCK (někdy také SCLK): Serial Clock, někdy také Synchronizing clock (prostě synchronizační hodinový signál)
  • signál MOSI: Master-Out Slave-In (data z portu PC do programované součástky)
  • signál MISO: Master-In Slave-Out (data z programované součástky do portu PC)
  • signál RESET: Vstup Reset jednočipu je využit pro signál SS=Slave_Select (někdy nazývaný též CS=Chip_Select). Signálem je adresována (vybrána) součástka kterou programujeme. Signál je aktivní při logické 0. Trvá po celou dobu přenosu dat.
  • GND: Signálová zem
Aby nedošlo k omylu:
Stejné signály jsou použity v adaptéru na paralelní port PC, nebo třeba na výstupu programátoru, připojeného přes USB. Stále se jedná o sériové SPI programování. To, jakým způsobem je to připojeno k osobnímu počítači tady nehraje roli.

Praktické provedení adaptéru k RS232 (převodník napěťových úrovní)

Schéma vychází ze zapojení, které je přímo součástí helpu k programu PonyProg2000. Vynechal jsem věci, které mi připadaly pro mé použití zbytečné.

     
schema_RS232-SPI
pcb_RS232-SPI_adapter
RS232-SPI_populated
Schéma Plošný spoj (není v měřítku)
Download v měřítku
Osazení pl.spoje
součástkami
     

Zapojení je velmi jednoduché až primitivní. TTL úrovně sinálů jsou vytvořeny pomocí odporů a Zenerových diod. To může dělat problémy při programování součástky osazené v aplikaci. Přeci jenom výstup paralelního portu je plnohodnotný TTL s push-pull tranzistory na výstupu, takže spolehlivěji vnutí příslušnou úroveň (log 0, log 1). Toto zapojení s odporem a zenerkou s tím může mít někdy problémy. Zvláště pokud v naší aplikaci použijeme programovací vývody součástky zároveň jako uživatelské I/O porty a máme na ně připojeny nízké impedance.

Pomocí diod D1-D3 a stabilizátoru IC1 se součástkami okolo se vytváří napájecí napětí 5V. To je použito jednak pro signál Reset (Slave_Select, Chip_Select) a také jím lze napájet programovanou součástku. (Bohužel jsem při návrhu destičky nevyvedl 5V na programovací konektor. Chtěl bych to brzy napravit a navrhnout novou verzi.) Integrovaný obvod IC1 je low-drop stabilizátor LM2936Z_5V. Nedoporučuje se nahradit jej běžným 78L05 stabilizátorem, který pro spolehlivou funkci potřebuje vyšší vstupní napětí. Myslím, že vzhledem k velmi malému odběru (obvykle max. jednotky mA) by zde mohl stačit obyčejný stabilizátor se Zenerovou diodou, ale nezkoušel jsem to.

     
Dsub9<--->PFH02-06P
PFH02-05P<--->PFH02-05P
DSUB9<--->PFH02-06P Převodník úrovní PFH02-05P<--->PFH02-05P
     

Praktické zkušenosti:

Pro testování jsem si vyrobil asi 1,5m dlouhý kabel RS232(9pin)<--->PFH(6pin), a asi 50cm kabel z výstupu adaptéru na desku s jednočipem PFH(5pin)<--->PFH(5pin). Pro testování jsem použil AVR Atmel ATMega8 (později také ATtiny2313 a ATMega48). Testy jsem prováděl na dvou různých počítačích. Starším, s procesorem AMD_Athlon@1,1GHz se systémem XP 32bitů a novějším s Intel_i7-2700@3,8GHz.

Při použití klasického HW sériového portu je možné v programu nastavit dva režimy: Jednak SiProg-I/O kdy má program přímý přístup k portu nebo SiProg-API, kdy je port ovládán přes systém Windows. Použít je možné oba, ale první z nich (SiProg-I/O) je o něco rychlejší.

Na všech diskusních fórech, která jsem pročetl se píše, že není možné použít převodník USB-RS232. Přesto jsem to zkusil. Mám tu nějaký letitý USB-RS232 převodník s čipem od FTDI. Ta dobrá zpráva je, že to funguje. Ta horší zpráva je, že je to velice pomalé. Ze strany operačního systému PC jde o softwarovou emulaci RS232 a je tedy možné použít pouze režim SiProg-API. Pokud v okně nastavení portů v programu PonyProg2000 přepneme na SiProg-I/O, tak číslo portu které patří USB-RS232 převodníku zešedne a není jej možné vybrat. (Program umí použít pouze čísla portů COM1, COM2, COM3 a COM4. Pokud tedy systém přidělí našemu USB-RS232 adaptéru jiné, vyšší číslo, musíme ho v nastavení hardware v Ovládacích Panelech změnit.)

     
SI Prog I/O
SI Prog API
USB<--->RS232 (FTDI)
Nastavení SI Prog I/O
COM3 (USB) nelze vybrat
Nastavení SI Prog API USB-RS232
s čipem FTDI
     

Pokusil jsem se srovnat do tabulky rychlosti různých činností v různých režimech na dvou různých počítačích. Snad se v tom dá vyznat.

ATMega 8
Xtal 4MHz
HW RS232,
Si Prog I/O
HW RS232,
Si Prog API
USB-RS232, API,
Intel-i7@3.8GHz
USB-RS232, API,
AMD@1.1GHz
Vymazání
8704 Bytes
1 sekunda1 sekunda1 sekunda2 sekundy
načtení/uložení
FUSES
1 sekunda1 sekunda1 sekunda2 sekundy
programování
4000 Bytes
2,5 sekundy6 sekund1 min 30sec10 minut
čtení/verifikace
8704 Bytes
4,5 sekundy8 sekund2min 45 sec20 minut

Čas při programování (nahrávání kódu do jednočipu) musíme uvažovat jako součet časů ze dvou spodních řádků tabulky. Program PonyProg2000 totiž nahraný kód okamžitě automaticky verifikuje, tedy načte ze součástky a porovná s tím, co tam nahrával.

Z tabulky je (doufám) zřejmé, že pokud použijeme USB-RS232 převodník, čas programování i čtení kódu je značně závislý na výkonu počítače, který použijeme. Při testování na mém starém počítači byl celkový čas naprogramování přibližně 4 kB kódu a jeho verifikace (verifikuje se celá paměť, tedy přes 8 kB) okolo 30 minut. To je pro účely nějakého vývoje SW prakticky nepoužitelné. Použít by se to asi dalo nouzově, pokud bychom si někde stáhli vyzkoušený, odladěný program pro jednočip a pouze to potřebovali jednou nahrát pro vlastní potřebu.

Na novějším (rychlejším) počítači je to podstatně rychlejší. Nahrát a verifikovat stejný soubor trvalo něco přes 4 minuty. I to je ale pro účel ladění SW stále poměrně pomalé. (pro ladění stylem: změnit něco v kódu, zkompilovat, nahrát do paměti, otestovat, atd...)

A nakonec ještě jedno upozornění

V mých konstrukcích s ATtiny_2313 nebo ATMega_48 občas používám krystal s kmitočtem 22,1184 MHz. Ačkoliv podle katalogu mají zaručenou funkci jenom do 20MHz, s tímto krystalem bez problémů fungují. Ani při programování přes paralelní port (jak jsem to popsal již dříve), jsem s tímto kmitočtem neměl nikdy problémy. Při použití sériového portu ale dochází k velké chybovosti a v podstatě výjimečně se mi podařilo nahrát kód do paměti bez chyb. Párkrát se mi stalo, že po nahrání programu do paměti přestala součástka komunikovat, a nebylo možné z ní ani číst. Kupodivu, po výměně krystalu za nižší kmitočet fungovalo vymazání (a pak bylo možné zkusit ji nahrát znova). Bohužel, dvakrát se mi stalo, že po nahrání přestal jednočip komunikovat nadobro. Nefungoval ani tento pokus o vymazání s nižším kmitočtem.

Jarda, ok1hdu




   | Celý článek |      e-mailtisk clánku
 

Zpět (klikni)

O   Novinky
24.11.2017:
Update na webu DXFC
Dneska jsem updatoval info na webu DXFC

24.11.2017:
Update fotoalba
Do fotoalba jsem přidal fotky z letošní dovolené v Tureckém Oludeniz.

23.09.2016:
Finální výsledky RSGB IOTA Contestu 2016
Pořadatel IOTA contestu zveřejnil výsledky letošního kola závodu.

11.08.2016:
Výsledky MMC HF 2016
Pořadatel závodu Marconi Memorial Contest HF vydal konečné výsledky letošního (2016) kola závodu. K dispozici jsou rovněž přijaté deníky a statistiky.

13.02.2016:
Tesla HF CW Contest
Pořadatel zveřejnil oficiální výsledky loňského ročníku Tesla HF CW Contestu (Tesla memorial HF)

O   kalendář
<<  Květen  >>
PoÚtStČtSoNe
 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31    

O   Statistika
Návštěvy od 18.5.2015


Tento web site byl vytvořen prostřednictvím phpRS - redakčního systému napsaného v PHP jazyce.
Na této stránce použité názvy programových produktů, firem apod. mohou být ochrannými známkami
nebo registrovanými ochrannými známkami příslušných vlastníků.