Oprava logického analyzátora klon Saleae

Na konci školského roku 2023 som zistil že prestal fungovať klon LA Saleae, ktorý som niekoľkokrát použil na debugovanie SOČ prác žiakov. Chyba sa prejavovala tak že po pripojení na USB port sa detekovalo neznáme zariadenie. Najprv som si myslel že sa mi nejako odinštaloval ovládač ale ani pokus o preinštalovanie ovládača nezabralo. Kedže doma už niekoľko rokov používam ten istý tak som si to zobral na prázdniny domov že sa na to pozriem keď bude čas. Prvotné zistenie doma bolo že môj súkromný fungoval OK a školský sa choval rovnako ako v škole - teda objavil sa ako neznáme USB zeriadenie. Následne som ich oba odložil aby počkali až nebude čo iné robiť. Ku konci prázdnin sa zhoršilo počasie a tak pri jednom ďaždivom večeri prišlo na rad hľadanie chyby.

Hľadanie chyby.

Ide o tento klon kupený z tejto stránky Ako prvé som mal podozrenie na nejaký chybný spoj na DPS, takže som otvoril krabičku a našiel som tam toto:
Je to veľmi jednoduchá vec. Obsahuje:

Funguje to tak že procesor si vie stiahnuť program buď z EEPROM alebo cez USB. Nemá to vlastnú FLASH. Ono to vlastne ani žiadny program nepotrebuje, lebo to len kopíruje port na USB a to vie ten čip ako prirodzenú činnosť. EEPROM tam teda slúži hlavne na uloženie informácií potrebných pre USB protokol podľa ktorých sa to zariadenie identifikuje. Ak sa to nevie predstaviť, tak je chybné buď komunikačné rozhranie USB, alebo rozhranie s EEPROM, alebo obsah EEPROM.

Ako prvé som teda pozrel spoje vedúce od MCU k USB a premeral ich ohmicky proti zemi. Meranie ukázalo 400kΩ na dobrom aj chybnom kuse. To isté aj pri meraní I2C rozhrania EEPROM - žiadny rozdiel. Spajkovanie pod mikroskopom tiež vyzeralo v poriadku.

Tak som pozrel na to ako sa hlási dobrá a zlá krabička windowsu. Dobrá krabička hovorí že VID = 0925, PID = 3381. Čomu zodpovedá USB zariadenie Saleae logic analyzator. Chybná krabička hovorí že VID = 04B4, PID = 8613. Google na toto hovorí že je to Cypress FX2LP No EEPROM Device. Čo by presne zodpovedalo tomu že EEPROM nekomunikuje. Prípadne má len špatný obsah a tak to skončí v tomto stave.
Ako prvé ma napadlo že prerobím INF súbor tak aby nalinkoval toto chybné VID a PID na origo Saleae ovládač. Keď som to zeditoval a dal aktualizovať ovládač, tak sa to zaradovalo že našlo správny ovládač k tomuto zariadeniu. Pokúsilo sa ho nainštalovať, ale okamžite hlásilo že ide o podvrhnutý ovládač a že digitálny podpis nesedí.

Pri googlení čo by sa s tým dalo urobiť som narazil na túto stránku. Saleae USB Logic Analyser clone Je to o tom ako si chlapík vyrobí svoj vlastný klon tak že si objedná modul s daným procesorom a potom tam do EEPROM zapíše potrebné informácie. Ukázalo sa že ten čip je tak prešibaný že vie tu EEPROM obslužným programom aj zapísať. Obslužný program čo som stiahol z tejto stránky ale nefungoval. Tak som si myslel že to preto lebo je to nejaká novšia varianta MCU (tam je to z roku 2011). Preto som išiel stiahnuť aktuálny balík. Zistil som že to rastie u infineon. Chvílu trvalo než som to stiahol. Ukázalo sa že som tam už registrovaný a zmena hesla trochu štrajkovala. Nakoniec som ale ten balík stiahol a nainštaloval. Je to nejaké kompletné vývojové prostredie v Eclipse, ale čo už.
Sklamanie prišlo v zápätí. Tá Cypress USB konzola stále nevidela ani chybný ani dobrý kus. Našťastie ma napadlo či tam náhodou nie sú ovládače pre USB a samozrejme že boli. Tak som dal aktualizáciu ovládača pre chybnú krabičku. A aha ho - už to nebolo neznáme zariadenie ale Cypress FX2LP No EEPROM Device. A v tomto momente ho aj tá USB konzola identifikovala. Nasledne som teda podľa postupu na stránke chlapíka nahral do EEPROM obsah ktorý tam mal priložený. Všetko zbehlo so samými OK statusmi. A po odpojení a pripojení sa zrazu opäť objavil Saleae logic analyzer.

Záver

"Niečo" spôsobilo že obsah EEPROM sa poškodil (predpokladám že nejaká šupa ESD do vstupov alebo zeme). To viedlo k tomu že sa procesor nevedel predstaviť po USB správnou identifikáciou a nebol teda rozpoznaný. Vďaka tomu že tento MCU používa USB protokol natívne a je k nemu aj obslužný komunikačný program od výrobcu, tak nebolo potrebné robiť nepríjemné kopírovanie EEPROM z čipu na čip. Oprava tak trvala asi 3hodiny. Výsledkom je ušetrených 12€ (čo je 4€/hod). Teraz by to už len chcelo otvoriť si na tieto opravy nejakú masovku, aby sa to rentovalo.

Dúfam že analyzátor bude ďalej slúžiť a že sa mu nepodarí opäť zabudnúť čo som mu tam nahral. V prípade že by to opäť urobil, už viem ako na to. Prípadne sa dá tá čínska EEPROM napodobenina vymeniť za nejaký značkový čip. Je to položka rádu desiatok centov.

Ďalej som zistil že moje staré znalosti s MCU 8051 by sa dali oprášiť a využiť v prípade potreby s takýmto moderným čipom ktorý bezproblemo dáva USB komunikáciu rýchlosťou 53Mbyte/s, či 96Mbyte/s burst mode. A to sa tiež môže niekedy v budúcnosti hodiť.