Jste zde

OpenSourceBDM – jednoduchý programátor pro mikrokontrolery Freescale S08 a ColdFire V1

OSBDM-foto.jpg

Vyrobte si jednoduchý programátor a debugger pro mikrokontrollery Freescale rodin S08 (8-bit) a ColdFire V1 (32-bit). Představujeme Vám jednoduchou realizaci platformy OpenSourceBDM (OSBDM) na malém jednostranném tištěném spoji.

Mikrokontroléry S08 jsou ze všech procesorů Freescale ty nejjednodušší a i práce s nimi se ve všech směrech vyznačuje jednoduchostí. Z hladiska hardware: pro debuggování a programování stačí zapojit napájení +/- a vyvést jediný BKGD (Background Debug) pin na debugger, nejlépe přes standardní BDM konektor (hřebínek 2x3). To lze dobře zrealizovat i na kontaktním poli. Z hladiska software a vývojového prostředí: zdarma je k dispozici CodeWarrior for Microcontrollers, Special Edition. Zbývá tedy jen debugger, který propojí PC s embedded aplikací.

První verze OSBDM vznikla koncem roku 2005 na základě obdobného zařízení pro 16bitové procesory Freescale S12, zvaného Turbo BDM Light (TBDML), které za dlouhých zimních večerů v Rožnově pod Radhoštěm vyvinul bývalý zaměstnanec Freescale Daniel Malík. Od té doby se OSBDM pro S08 rozšířilo mezi amatéry po celém světě a bylo postupně vylepšováno komunitou. Brzy našlo OSBDM podporu i ve vývojovém prostředí Freescale CodeWarrior.

V tomto článku je popsána realizace jednoduchého OSBDM, které i přes snahu o co nejnižší cenu, má všechny funkce potřebné pro příjemné ladění programu:

  • Programování a verifikace paměti flash
  • Debugování programu (spuštění, zastavení, krokování, breakpointy, přístup do paměti a k registrům)
  • Napájení embedded aplikace přes BDM port (3,3V nebo 5V)

OSBDM pro S08 funguje i s jinými mikrokontroléry, které mají stejný ladící modul BDM, především Flexis s jádrem ColdFire V1. Mikrokontroléry RS08, ačkoliv mají stejný BDM, postrádají vnitřní nábojovou pumpu potřebnou k programování paměti flash a vyžadují při programování 12V na pinu RESET. Toto naše OSBDM neumožňuje, proto s ním nelze RS08 programovat, ale jen debugovat. Schema rozšířeného OSBDM pro podporu RS08 je však též k dispozici.

Osazování

Před osazováním plošného spoje vyvrtáme otvory pro USB konektor, žádné další otvory se do plošného spoje vrtat nemusí. Po osazení USB konektoru a jeho zapájení ohneme vývody které procházejí skrz plošný spoj. Veškeré součástky se osazují ze strany spojů a to i přepínač napětí S1 a BDM konektor J2, které se pájí natupo na pájecí plošky. Jako přepínač napájení S1 používám klasickou jednořadou lámací lištu, jejíš vývody ohneme o 90°. Na plošném spoji je osazeno devět propojek označených tlustou černou čarou, jako propojky použijeme SMD odor 0R v pouzdře 1206.

Naprogramování firmware

Firmware se do procesoru programuje přes USB port pomocí programu ICP Device Manager (je součástí OSBDM Distribution package build 7). Po osazení desky propájíme pájecí propojky JP2, JP3, JP4. Propojku JP1 necháme rozpojenou. Po připojení modulu do USB portu počítače musíme nejprve nainstalovat ovladač pro procesor JB16, který najdeme ve stejném adresáři jako ICP Device Manager (USBICP.exe). Po nainstalování ovladače a následném spuštění programu ICP Device Manager vybereme jb16icp_me.imp. Tlačítkem Select File.. vybereme soubor opensourcebdm.abs.s19 což je program který se nahrává do procesoru. Ten následně tlačítkem Program do procesoru nahrajeme a tlačítkem Verify zkontrolujeme, zdali se nahrál správně. Po uložení programu do procesoru rozpojíme propojky JP2, JP3, JP4 a propájením spojíme JP1. Po opětovném připojení k USB nainstalujeme ovladače pro OSBDM. Programátor je připraven k použití.

Seznam součástek

R1 10M, SMD 1206
R2, R3 47R, SMD 1206
R4, R10, R11, R12 1k5, SMD 1206
R5 10k, SMD 1206
R6, R7 33R, SMD 1206
R8, R9 470k, SMD 1206
C1, C2, C5, C6, C7, C8, C9 100n, SMD 1206
C3, C4 27p, SMD 1206
C10, C11, C12 CTS 4u7/10V A, SMD 3216
IC1, IC2 SN74LVC1T45DBV, SMD SOT-23
IC3 LE33CD, SMD SO-08
IC4 MC908JB16DWE, SMD SOIC28
LED1 YELLOW, SMD 1206
LED2 GREEN, SMD 1206
Q1 Q 12.000Mhz SMD 10ppm
X1 USB1X90A SMD
J2 S2G20W
S1 S1G20

Připravili jsme pro vás stavebnici tohoto OSBDM obsahující všechny potřebné součástky včetně plošného spoje a propojovacího kablíku

Aleš Kondr, Milan Brejl

Download & Odkazy

Hodnocení článku: 

Komentáře

Není i něco podobného pro Coldfire V2? Mam doma totiž paralelni BDM, ale nemam žadný počítač s LPT.

____________________________________________________
Teploměr

Pěkné, škoda jen že SN74LVC1T45DBV je v českých maloobchodech naprosto nesehnatelný a že MC908JB16 není v 28 pinové verzi poskytován Freescalem ani jako vzorek :-/
Neexistuje tedy náhodou nějaká lépe dostupnější náhrada za IC1 a IC2?

Mate pravdu. SN74LVC1T45DBV sice lze objednat u Farnellu a MCU napriklad u DigiKey, ale to postovne je des. Jako alternativu vam nabidku hotovou stavebnici, ta vyjde o neco levneji k pres to postovne.

SN74LVC1T45DBV i MCU by se měly dát objednat u Rothsware, kde by mělo být poštovné zdarma, nemám to však ověřeno. SN74LVC1T45DBV se dá také získat jako vzorek zdarma u TI.

Nemohu si pomoct, ale Farnell má obě součástky skladem... Čili když obědnáte přes Rothsware máte zdarma i poštovné. Tak kde je problém?

no jo, ale konecna cena je skoro 300kc, a jak se divam tak je to jenom dps + soucastky a kablik. cili si to musis stejne doma osadit sam a koupit krabicku atd, cili celkova cena se ti o dost zvedne...

Procesor MC908JB16 a SN74LVC1T45DBV se dají sehnat u Rothsware ostatní součástky jsou dostupné v GM Electronic.

Asi blbá otázka, ale donutí tahle věc procesor vlézt do debugovacího modu, nebo ho musím nejdřív externě do toho modu přivést?

Žádné externí převádění není potřeba, procesor se dá debugovat hned po nahrátí programu, co víc, dají se s tímto programátorem sledovat stavy registrů v běžícím programu, za pomocí programu FreeMASTER.

Da se OSBDM pouzit jako samostatny programator?
Je nekde k dispozici SW, ktery dokaze naprogramovat S19 primo do microcontroleru bez nutnosti CodeWarrioru?

Zajímalo by mě, jestli se vůbec někomu podařilo tento BDM interface zprovoznit.
Protože mně ani mému známému se to tak něják nepovedlo. Firmware a ovladače a všechno
ostatní se mi bez problémů podařilo nahrát, ale CodeWarrior něják OSBDM nevidí.
Zkoušel sem to ve verzích 5.1, 6.0, 6.1 a 6.2. Ve všech se stejným výsledkem. Při pokusu
o rozjetí debugování hlasí debugovací soft "There is no communication with the hardware....".
Zkoušel sem to i na jiných počítačích s ruznými verzemi Windows. Už nevím kde hledat chybu :(
 
http://mica.ic.cz/

Mám pro Vás návrh: mohu Vám dát jeden odzkoušený kus OSBDM (jiné PCB, ale stejné schema), za podmínky, že pomocí něj zjistíte a zde zveřejníte (do konce prázdnin), proč Vám to nefunguje. Pokud souhlasíte, ozvěte se s doručovací adresou.

Děkuji mnohokrát, odzkoušený a funkční kus ukázal, že mnou sestavená stavebnice byla oživena správně. Chyba se ukázala na straně Codewarrioru, přesněji na použité verzi a na tom jaké jsou nainstalované updates. OSBDM se mi povedlo rozběhnout až po čisté instalaci nejnovější verze Codewarrioru 6.2 a po nainstalování servis packu 6.2.2. Mohu jedině doporučit. Zatím sem jej odzkoušel s mikrokontrolery QB8, JM32 a s 32bitovým QE128 a funguje suprově :)
http://mica.ic.cz/

Dobrý den mám problém s nahrádí programu do MC9S08QG8CPBE pořát my to háže chybu: Error while loading diagnoctics algorithm to target system. The chip may be secured, or the derivative selected may be wrong. Vůbec nevim kde mám hledat chybu. Děkuji za odpověď

Zagooglujte chybovou hlášku. Toto není problém OSBDM, to samé nastává i s jinými debuggery. Bohužel, příčina ani řešení nejsou úplně jasné, ale různé pokusy jsou ve fórech popsány.

Moje zkušenosti:
stavebnice se dá koupit tady za 300+100 přirážka+poštovné (ne víc jak 200). Člověk, co mi to pájel tvrdí, že součástí stavebnice nejsou nulové odpory… potvory. Pak byl nějaký problém s ovladači, ale ten šel v pohodě vyřešit z tady dostupných souborů, prostě se musel vytvořit ovladač a ten nahrát do Windows. Neběhá to pod Win 7 x64, naštěstí v sobě mají virtuální XP x86, kdy to jede s CodeWarriorem 6.3.
Celkem boj byl dostat z GME aspoň nějaký mikroprocesor. Nemají jich moc skladem, takže je nutné jim zavolat a objednat maximálně přesně tolik kusů, kolik mají.
Chvíli mě trvalo než jsem došel jak zapojit ty 4 dráty: když se natočí plošný spoj OSBDM nadél tak, že vpravo je USB a vlevo hřebínek 2x3, tak levý horní jde na BKGD, pravý horní na Vss, pravý prostřední RESET, pravý spodní Vdd (+3.3V).
Samotný CodeWarrior má spoustu svých speciálních manýrů. Například fyzicky nepřipojený OSBDM nebo chybný ovladač hlásí prázdným oknem s checkboxem ShowProtocol. A ten problém "The chip may be secured" je popsaný tady. Stačí při zapnutí spojit BKGD a Vss. A když to bude blbnout, pomohlo mi to vypnout, jít na kafe a po chvíli zkusit znova. A nezapomínat na krmení hlídacího psa.