ICD2 Clone
Moderátor: Moderátoři
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.
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
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.
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.
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ž 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ě.