Jste zde

RD2 - Flasher verze 2.2 - MS Windows 

 

Program slouží k programování jednočipového mikropočítače Atmel T89c51RD2 metodou ISP přes sériový port v operačních systémech rodiny MS Windows. Jedná se o plně nativní Win32 konzolovou aplikaci určenou pro snadnou integraci do libovolného stávajícího vývojového prostředí.


Program slouží primárně k programování jednočipového mikropočítače (dále pouze JM) Atmel T89c51RD2 metodou ISP (In System Programming) přes sériový port v operačních systémech rodiny MS Windows. Lze jej však použít pro naprogramování libovolného JM, který umožňuje použití zavaděče s implementovaným komunikačním protokolem popsaným v katalogovém listu JM Atmel T89c51RD2. Jedná se o plně nativní Win32 konzolovou aplikaci určenou pro snadnou integraci do libovolného stávajícího vývojového prostředí (Keil µVision2, SDCC, atd.).

RD2 – Flasher představuje alternativní řešení k originálnímu softwaru FLIP firmy Atmel. Ve spojení s námi vyvinutým zavaděčem (plně kompatibilní s FLIP) pro JM T89c51RD2 nabízí celou řadu nových funkcí a vlastností.
 

Vlastnosti RD2 – Flasheru

  • čtení, zápis a verifikace paměti FLASH a EEPROM,
  • detekce úrovně uzamčení JM,
  • uzamčení JM,
  • vymazání paměti FLASH JM,
  • zabezpečení paměti FLASH pomocí kontrolního součtu,
  • validace vstupního souboru Intel – HEX,
  • ovládání vývodu PSEN u JM přes sériový port vodičem RTS,
  • přenosová rychlost 9600 až 115200 Bd,
  • snadná integrace do stávajících IDE.

Ovládání programu je řešeno pomocí parametrů z příkazové řádky. U parametrů, které mohou nabývat dvou stavů zapnuto/vypnuto je přiřazena hodnota '0' stavu vypnuto a '1' stavu zapnuto. 

Komunikaci mezi PC a programovaným JM lze provádět ve dvou módech. Mód 0 posílá celý řádek načtený z textového souboru Intel – HEX a následně čeká na odpověď. Mód 1 vyšle znak a čeká na odpověď. Běh programu lze přerušit stisknutím kláves CTRL-C nebo CTRL-BREAK.

Testované platformy

  • Windows 95
  • Windows 98se
  • Windows 2000 Server + SP2
  • Windows XP Professional

Možnosti sériové komunikace na straně PC

Program je schopen využít libovolný volný sériový port, který je mu dán k dispozici operačním systémem. Volba portu se provádí parametrem –c COMx. Ovládání sériového portu je řešeno pomocí volání standardních API funkcí. Zkontrolujte, prosím nastavení vyrovnávací paměti FIFO u sériových portů. V případě že je vypnuta, tak ji zapněte.

Podporované přenosové rychlosti pro sériovou komunikaci

 

  • 110
  • 300
  • 600
  • 1200
  • 2400
  • 4800
  • 9600
  • 14400
  • 19200
  • 38400
  • 56000
  • 57600
  • 115200

Nastavená přenosová rychlost sériového portu parametrem –b na PC musí být podporována krystalem připojeným k programovanému JM. Zavaděč obsahuje rutinu autodetekce přenosové rychlosti čímž je odstraněn problém vazby na fixní hodnotu přenosové rychlosti. Prakticky použitelné rychlosti se pohybují od 9600 Bd.

Zapojení sériového programovacího kabelu

Procesor RD2 je připojen běžným sériovým kabelem (TxD, RxD, GND). Komunikace nevyužívá žádné formy řízení toku dat. Zapojením vodiče RTS a následným propojením na vývod PSEN u  T89c51RD2 lze přímo řídit průběh programování z obslužného softwaru na PC.

Následující tabulka popisuje připejení jednotlivých zařízení z HW serveru k loaderu. 
Popsaná polarita (Male / Female) se popisuje konektor zařízení. 
Značka  -> znamená vysílání ze zařízení, >- je příjem do zařízení.
 

PC CAN9M Web51 verze3 CAN9M Web51 verze4 CAN9F RD2 Kit CAN9F
>- RxD  (2) -> TxD (3) -> TxD (2) -> TxD (2)
-> TxD (3)
>- RxD  (2)
>- RxD  (3)
>- RxD  (3)
-- GND  (5)
-- GND (5)
-- GND (5)
-- GND (5)
-> RTS  (7)
>- CTS (8)
>- CTS (7)
>- CTS (7)


 

Test funkčnosti zavaděče a sériového kabelu

Zavaděč programu se aktivuje uzemněním vývodu PSEN během nulování JM. Následně zavaděč provádí autodetekci přenosové rychlosti (PC vysílá po sériové lince periodicky znak 'U'). Po zesynchronizování posílá zavaděč všechny přijaté znaky zpět do PC. Manuální test funkčnosti kabelu a zavaděče lze provést s libovolným sériovým terminálem. Vypneme lokální odezvu odesílaných znaků. Držíme klávesu 'U' a čekáme na odezvu od zavaděče.
 

Programování procesorů RD2 pomocí loaderu

Programováni paměti FLASH RD2

U programovaného JM aktivujeme zavaděč (uzemníme vývod PSEN a vynulujeme JM). Procesor musí být napájen ze stabilizovaného zdroje 5V s dostatečnou proudovou rezervou. Při nižším napájení může docházet ke stochastickým jevům v průběhu programování a komunikace s PC.
Vstupní soubor Intel – HEX se uvádí za parametrem –f. Obsah souboru se načte do paměti, kde dojde ke kontrole CRC a následně je vytvořen dočasný soubor rd2f.hex, který je použit při samotném programování. Tento postup odstraňuje problémy, které se vyskytovaly při programování některých souborů Intel – HEX.
 

Programováni paměti EEPROM RD2

Postup programování paměti EEPROM je shodný s programováním paměti FLASH. Soubor Intel-HEX je pouze doplněn o informace pro zavaděč, udávající celočíselnou část kmitočtu v MHz použitého krystalu. Např. hodnota parametru –q pro kmitočet 22,1184 MHz bude 22.
 

Verifikace paměti EEPROM a FLASH RD2

Parametrem –v lze povolit provedení verifikace obsahu paměti EEPROM a FLASH po ukončení programování.
 

Čtení paměti EEPROM a FLASH JM

Obsah paměti EEPROM (2 kB) a FLASH (64 kB) lze vyčíst pokud použijeme parametr –r. Soubor, kde bude obsah vyčtené paměti uložen se udává parametrem –f. Čtení nelze provádět u JM, který je chráněn proti čtení.
 

Uzamčení JM

JM T89C51RD2 lze po úspěšném naprogramování uzamknout parametrem -l. Úroveň 2 poskytuje ochranu proti zápisu a úroveň 3 doplňuje dále ochranu proti čtení.

Ovládání vývodu PSEN z PC

Možnost ovládání vývodu PSEN z PC, předpokládá zapojení kabelu s RTS vodičem. Použitím parametru –p dojde po spuštění programu k automatickému uzemnění vývodu PSEN. Následným manuálním vynulováním JM se aktivuje zavaděč. Dále postupujeme podle pokynů uvedených v programu.
 

Textový výstup programu

Parametrem -t lze zvolit barvu, kterou použije program při výstupu na obrazovku. K dispozici je základních 16 barev používaných pro zobrazování v textovém režimu na VGA adaptéru.
 

Zabezpečení paměti FLASH JM pomocí kontrolního součtu

Pro účely diagnostiky funkčnosti JM přímo v aplikaci byla navržena metoda ochrany paměti FLASH pomocí kontrolního součtu. Oblast paměti FLASH začíná na adrese 0000h a je z hora ohraničena adresou udanou parametrem –s. Takto vymezená oblast je zabezpečena kontrolním součtem používaným u souboru Intel – HEX. Výsledné číslo je uloženo hned na následující adrese v paměti FLASH.
 

Tipy, triky, praxe

  • Uzamčení JM
    JM T89c51RD2 umožňuje aktivaci několika úrovní ochrany kódu programu. Vedle klasické ochrany proti čtení a zápisu existuje možnost chránit kód programu proti paralelnímu nebo ISP přístupu. RD2-Flasherem lze nastavovat pouze přístupová práva pro ISP metodu. V případě, že jsou však špatně nastaveny bity u paralelního přístupu (hardwarovým programátorem), lze uzamčený JM metodou ISP bez problémů vyčíst v klasickém programátoru. Situace je obdobná i v opačném případě.
     
  • Zápis a verifikace FLASH paměti
    Seznam chyb JM T89c51RD2 uveřejněný firmou Atmel uvádí, že v určitých situacích může docházet k chybám během programování paměti flash. V doporučení je uvedeno provádět celkové vymazání JM před samotným programováním a verifikaci obsahu paměti po ukončení programování.
     
  • Postup integrace RD2-Flasheru do Keil µVision2 IDE
    Vybereme menu Tools » Customize Tools Menu… a zadáme název nového menu RD2F with @P.hex. @P reprezentuje název aktuálního projektu v prostředí µVision2. Do pole Command zadáme cestu k programu rd2f.exe. V poli Arguments uvedeme parametry, které chceme použít např. -f @P.hex -c COM1 -b 115200 –p 1. Na závěr zaškrtneme volbu Run Independent. V menu Tools vznikne nová položka označená RD2F with ..., pomocí níž lze následně spustit RD2-Flasher.
     
  • Komunikace s originálním zavaděčem firmy Atmel
    RD2-Flasher byl vyvinut a optimalizován pro práci s upraveným zavaděčem napsaným Radkem Benediktem. Originální zavaděč firmy Atmel je však mnohem pomalejší a pro komunikaci s ním je třeba použít volbu –m 0.
     
  • Zobrazení konzolové aplikace na celou obrazovku ve Win9x
    Zvýšení výkonu a stability lze dosáhnout spouštěním RD2 – Flasheru v zobrazení na celou obrazovku. Konzolové aplikace jsou v operačním systému Win9x spouštěny pomocí programu „c:\windows\system\conagent.exe". Změnou vlastností pro tento program lze globálně nastavit chování všech konzolových aplikací (např. zobrazení na celou obrazovku).
     
  • Problémy s používáním ve Windows 2000
    Při testování funkčnosti programu ve Windows 2000 jsme narazili na následující jev. Na stejném počítači ve Windows98se fungovalo vše bez jediného náznaku výpadku či chyby při přenosu dat. Ve Windows 2000 nedošlo ani k zesynchronizování se zavaděčem v programovaném JM. Při sériové komunikaci docházelo ke ztrátám při přenosu a ukončování komunikace. Funkčnost komunikace byla obnovena poté co jsme vyměnili sériový kabel.
     
  • Programování AT89c51RC2 - JM firmy Atmel
    JM řady RC2 lze programovat pomocí RD2 - Flasheru. Experimentálně bylo ověřeno, že tyto JM s originálním zavaděčem vyžadují striktně velikost Intel - HEX záznamu 16 B. Parametrem -i lze nastavit velikost zasílaného řádku ve formátu Intel - HEX a tím optimalizovat rychlost programování v závislosti na použitém zavaděči a JM

Updaty a novinky z posledních verzí

RD2-Flasher History File    
~~~~~~~~~~~~~~~~~~~~~~~~

[!] Important note
[+] New feature
[-] Bug fix
[*] Bug fix and/or improvement

Version 0.2.5 - 16.03.2003: changes since 0.2.4

[*] reading readonly intel hex files fixed

Version 0.2.4 - 21.01.2003: changes since 0.2.3

[+] T89c51RD2 reset via DTR line(requires photocoupler), command line parameter -a added
[!] -i 31 ... programming will fail, use -i 16 or -i 32 

Version 0.2.3 - 28.10.2002: changes since 0.2.2

[*] command line parameter -i added, programming RC2 chips should be possible

Version 0.2.2 - 04.09.2002: changes since 0.2.1

[!] RD2-Flasher released under GNU General Public License
[-] some minor bugs fixed (BSB programing, FLASH/EEPROM verification)

Version 0.2.1 - 16.08.2002: changes since 0.2.0

[*] programming boot status byte BSB = 00h added

Version 0.2.0 - 16.07.2002: changes since 0.2.0.RC1

[*] reading DOS, UNIX, MACINTOSH files fixed and improved

Version 0.2.0.RC1 - 11.06.2002: changes since 0.1.7

[+] flash/eeprom verification added
[*] flash/eeprom reading improved 

Version 0.1.7 - 06.06.2002: changes since 0.1.6

[+] flash memory CRC calculation
[*] problems with incompatible Intel HEX files fixed 

Version 0.1.6 - 02.06.2002: changes since 0.1.5

[+] reading eeprom/flash contents
[+] chip full erase, software security bits (SSB) programming 

Version 0.1.5 - 14.04.2002: changes since 0.1.2

[+] EEPROM programming improved, intel hex record with target quartz speed added
[*] command line parameter politics changed

Version 0.1.2 - 06.04.2002: changes since 0.1.1

[!] Windows 2000 and Windows XP compatible
[+] color output from console application( enjoy The Matrix look )
[*] some minor bugs fixed, full screen mode trick

Version 0.1.1 - 27.03.2002: changes since 0.1.0

[+] PSEN manipulation via RTS pin added
[-] SetThreadPriority ... removed -> console problem in Win9x fixed

Version 0.1.0 - 23.03.2002: changes since 0.0.X

[!] first public release
[+] Byte By Byte transfer mode 
[+] Console Event Handler full implemented (CTRL-C, CTRL-BREAK) 


DOWNLOAD & Odkazy

 


Pavel Čeleda
Radek Benedikt
Hodnocení článku: 

Komentáře

K čomu sú tu tie odkazy na download, ked sú všetky nulove (po down je iba názov s velkosťou 0 Byte)

Omlouvam se za chybu, ktera vznikla pri presunu dat do nobveho umisteni. Clanek pochazi z roku 2000 a mezitim jsme museli zmenit uloziste stahovanych souboru a ne vse se podarilo opravit. Opraveno.