ICD2 Clone

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
jankop
Příspěvky: 679
Registrován: 04 dub 2007, 00:00
Kontaktovat uživatele:

#61 Příspěvek od jankop »

Teď jsem se díval na bootloader pro 18F4550. Vlastně ani už nevím, jaký jsem použil. Faktem je, že z MPLABU se dá vytáhnout poslední verze ICD2_4550_BOOT_0182.BIN Jde ji přímo naprogramovat, jen neobsahuje pojistky. Jak je máš vlastně nastaveny?
Uživatelský avatar
p4ul
Příspěvky: 317
Registrován: 29 srp 2007, 00:00

#62 Příspěvek od p4ul »

Firmwary jsem stáhnul z http://www.edaboard.com/ftopic288717.html. A teď mám nahrané:
ICD2_16F877A_boot.hex
ICD2_18F4550_boot.hex.

MPLAB píše Bootloader version: 01.01.01.00.

Co to jsou pojistky a jak je zjistím?
Jinak k tomu firmwaru z MPLABu: Před nějakou dobou jsem někde četl, že v něm chybí začátek (několik bajtů) a ten prý museli odsledovat z komunikace originálního ICD2 po USB. Ještě nevím jak to všechno přesně je, takže nebudu spekulovat.

edit: jinak já jsem žádný bootloader neprogramoval. Jen jsem naprogramoval ty dva firmwary. Ono je rozdíl firmware a bootloader. Protože nevím jak to u ICD2 funguje, tak nemužu o tom nic říct. Skutečnost, ale je, že jsem jen naprogramoval ty 2 firmwary a nic jiného. Jestli je v nich bootloader a pak MPLAB přepíše část flash paměti té 4550ky to nevím, ale do 16f877 MPLAB nahrává firmware pro každý druh PIC, který je programuje. Tak to zatím chápu.
Uživatelský avatar
jankop
Příspěvky: 679
Registrován: 04 dub 2007, 00:00
Kontaktovat uživatele:

#63 Příspěvek od jankop »

Nejprve musím konstatovat, že soubory ICD2_18F4550_boot.hex nejsou všechny stejné. Také mi MPLAB píše Bootloader version: 01.01.01.00. Ale sám obsahuje soubor ICD2_4550_BOOT_0182.BIN, a to 0182 by měl být kód verze. Pojistkami jsem myslel nastavení konfiguračního slova.
Stále se podle mě bavíme o bootlaoderu. Protože firmware jako takové se do procesorů natáhne z MPLABU. Tzn. ty programuješ pouze bootloadery
Uživatelský avatar
p4ul
Příspěvky: 317
Registrován: 29 srp 2007, 00:00

#64 Příspěvek od p4ul »

Jak se to vezme. Bootloader může být část firmwaru. Čili v jednom hex souboru může být bootloader a přímo kód aplikace. Bootloader je správně část firmwaru. Jenže pokud firmware obsahuje jen bootloader, pak tomu můžu říkat bootloader i firmware. Stejně tak ve firmwaru může být jen aplikační kód a žádný kód bootloaderu. Někdo říká firmware jen aplikačnímu kódu, někdo celku. Je to v podstatě jedno, každý tomu říká po svém.

Ty hex soubory s firmwarem, nebo přesněji bootloaderem (nevím ale, zda se 8550ka taky přepisuje) jsou stejné. Líší se v pár bajtech na konci toho hex souboru a tam jsou konfigurační registry. Jeden je standardní, v druhém je vypnut MCLR pin a v dalších firmwarech pro 4550ku (od Potya) je zase zapnutý BrownOut, příp. nastavený krystal 24MHz.

Zkoušel jsem teď programovat dsPIC a nepřečte to ID. Vpp je 5V (automaticky se to nastavilo), Vdd taky, ale na drátu PGD a PGC jsem nezachytil žádný signál. Přitom 18F řada funguje. Tak nevím co dělám zase špatně. Mám i krátký kablík 10cm a taky nic.

edit: Když změním třídu zařízení (procesorů), MPLAB vypíše "MPLAB ICD2 is about to download a new operating system." Což podle mě znamená, že do 16F877 se natáhne nový firmware. Ten obsahuje správný algoritmus programování konkrétních typů procesorů a nastaví správné napětí Vpp (např. pro 30F se změní na 5V). Otázka je jestli se něco mění v 4550 nebo je tam pořád ten stejný firmware, který se tam naprogramuje. Ale možná je to tak, že 4550 mění firmware a v 16f877 je pořád stejný a nebo se mění oba. Jak říkám, zatím pořádně nevím jak to funguje. Trápí mě teď ty dsPIcy.
Uživatelský avatar
jankop
Příspěvky: 679
Registrován: 04 dub 2007, 00:00
Kontaktovat uživatele:

#65 Příspěvek od jankop »

16F877 si natahuje firmware podle rodiny PIC.
18F4550 si natahuje OS, který ji umožňuje rozšířené funkce USB rozhraní.
Natahuje si ho pokud ho nemá, nebo je v MPLAB novější verze. Nemění se s rodinou PIC. U obou PIC je jasně rozdělen bootloader a další firmware. Nejde mi o filozofování. Tvoje hex soubory jsou možná stejné, ale já mám cca 3 diametrálně odlišné.
Jakou dsPIC chceš ladit?
Myslím, že MPLAB pro některé dsPIC vypne napájení a musíš použít napájení pro target.
Uživatelský avatar
p4ul
Příspěvky: 317
Registrován: 29 srp 2007, 00:00

#66 Příspěvek od p4ul »

Mě taky nejde o filosofování, důležité je že každý víme, jak to myslíme. Takže dokonce se mění firmware u obou, to jsem nevěděl. No víš o tom něco více? Docela by mě to zajímalo.

Když změním rodinu PIC, tak si to natahuje OS, čili se přepíše 4550 i 877? Zkouším se připojit na 30F2020, zatím neúspěšně. Mám zapnuté napájení z obvodu. Napájení z ICD2 vůbec nepoužívám. Můžeš mi dát odkaz na ty firmwary, které se liší? Prozkoumal bych je..

K té cívce: dozvěděl jsem se, že cívky pískají, protože může být např. volný drát vinutí. Zalívají se epoxidem, lakem nebo voskem. Asi to zkusím. Sice to nepíská nijak hlasitě, ale nelíbí se mi to.
Uživatelský avatar
p4ul
Příspěvky: 317
Registrován: 29 srp 2007, 00:00

#67 Příspěvek od p4ul »

No o ty "diametrálně odlišné firmwary" se asi nechceš podělit...

Už jsem přišel na to proč nejdou dsPICy, které vyžadují Vpp 5V. Když se totiž nastaví na Vpp 5V, neotevře se 4066ka a tím pádem nejdou data a clock tam ani zpátky. Drátové propojky to jistí. Teď už to pracuje tak jak má.

Jinak jsem se zatím zaměřil na 16F877 a do ní nahrává předprogramovaný bootloader firmware, který programuje konkrétní typ rodiny PIC. To je to "downloading operating system". Bootloader, který jsem stáhnul z dříve zmíněného fóra se jmenuje ICD2_16F877_Boot.hex a je stejný jako firmware v adresáři C:\Program Files\Microchip\MPLAB IDE\ICD2\BL010101.hex. Čili ten máme asi v 16f877 oba. Proto taky MPLAB ukazuje verzi bootloaderu 01.01.01.00. Čili je to verze bootloaderu 877ky. Firmware pro 877A je upravený tak, že má některé instrukce přepsány (nop). Ještě nevím přesně proč. Bude to asi jen úprava, aby fungoval v 877A, jinak je stejný.

edit: dneska jsem připojoval ICSP kablík k ICD2 a zničehonic v MPLABu vyskočilo okýnko "Communication lost..." a začala poprvé blikat USB dioda, která předtím nikdy nesvítila. Asi nastala nějaká chyba. Vyplývá z toho, že USB dioda je zapojena správně.
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“