Jtag boundary scan Xilinz cpld

fred101

Golden Member

Ik heb :
- De juiste BSDL file
- altera usb blaster (vast geen originele, ik heb hem ooit gehad bij een cpld demoboardje)
- Zeroplus LA met jtag decoder
- een pcb met Xilinx cpld en jtag header
- jtag pinnen worden niet voor iets anders gebruikt.

Ik wil:
- een boundary scan maken om te testen of de cpld goed is.

Als de cpld toch goed blijkt:
- het zou mooi zijn als ik ook inhoud kan uitlezen.
- Het zou ook heel mooi zijn als ik de pinnen kan manipuleren

Ik zit al dagen over JTAG te lezen en videos te kijken. Het principe blijkt vrij simpel. De boel (samen) laten werken is een ander verhaal.

Ik mis de software (W10 of Linux mint). OpenOCD krijg ik niet aan de gang. Geen idee hoe ik dat moet compileren. precompiled crashed. En voor ik mijn computer brick zou ik graag wat advies hebben.

Software pogingen:
- Universal scan lijkt ideaal, heeft een demoversie maar die moet je registreren. De software maakt een formulier dat alleen via outlook verstuurd mag/kan worden. Dat heb ik niet en op een directe mail hebben ze nog niet gereageerd. Het kost 100 dollar als je het na 30 dagen wil kopen en als het echt universeel is heb ik er best geld voor over.

De usb blaster wordt door windows herkend en ondersteund door de SW (als de mijne niet te oud ofzo is)

- urJTAG lukt ook niet.
- Xilinx heeft ook software maar die is 6GB en volgens mij een programmeer omgeving. 6GB voor alleen een scan lijkt me zwaar overkill en het ondersteund vast alleen maar hun eigen download kabel.

Voor wie meer info wil:
De CPLD regelt de voeding van een Fluke netwerk analyser. Ik mis de 25V voor de kleuren LCD. De cpld voert hiervoor een pwm signaal aan een ultra low drop spanning regelaar welke met een losse tor en spoel als boost converter worden misbruikt. Om de boel aan te kunnen krijgen gebruiken ze een DAC om het feedback signaal te maken en aan de regelaar te voeren. Ik ben voor 95% zeker dat het de CPLD is. De regelaar, DAC, tor en spoel zijn goed. De display ook (werkt in een andere wel) Meer zit er eigenlijk niet. De 25V is het enige dat mist. Maar het ding weet op de een of andere manier of er een display is. Zonder display maakt een goede geen 25V en stuurt de leds onder de display aan (de slave unit blijkt hardware matig identiek, alleen echt omwisselen gaat niet, dat ziet het ding ook, roept dan dat hij naar Fluke terug moet en blokkeert de boel.) Maar daardoor weet ik wel dat de display goed is en hoe de 25V wordt gemaakt.

Wat ik nu weet:
Er zijn vier lijnen, een klok maken lijkt me geen probleem, de TMS lijn en TDI lijn zou ik met een PIC of Arduino kunnen maken. De TDO kan ik lezen met de LA. In de BSDL file staan alle commando's (incl hoe het er in bits uitziet) Maar dat is vast moeilijker dan het lijt.

Voor ik die weg opga, er zijn hier vast ervaring deskundigen die weten hoe het simpeler kan.

www.pa4tim.nl, www.schneiderelectronicsrepair.nl, Reparatie van meet- en calibratie apparatuur, ook maritieme en industriele PCBs
bprosman

Golden Member

Welke CPLD is het eigenlijk ?.

Met "a little help from my friends" hier op CO is het mij tot nu toe altijd gelukt de CPLD's te programmeren met de standaar software van Xilinx, licentie voor de "web versie" (waarom die web versie heet weet ik niet want hij draait lokaal) kun je zo aanvragen, heb je binnen 10 min in je mail.
De grootste truuk (voor mij) is altijd de juiste versie zoeken, niet alle versies ondersteunen alle CPLD's (meer).

De jongere generatie loopt veel te vaak zijn PIC achterna.

Dat web versie is "kan je van het web downloaden". Inderdaad, toen bestond dat nog niet, nu wel, dat je online je ontwerp invoert en dat op de server ergens de boel gecompileerd wordt. Of via javascript.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
fred101

Golden Member

Het is een XCR3064XL in VQ44 formaat.

Ik hoef hem niet te programmeren. Ik wil alleen weten of hij kapot is. Dus een boundary scan(BS), het gene waar JTAG oorspronkelijk voor bedoeld was. Maar omdat JTAG veel voorkomt lijkt het me voor de toekomst handig er meer mee te kunnen. (zoals bv firmware uitlezen)

bprosman, die software is >6GB, dat kost me een dag om binnen te halen en dan moet het nog de goede versie zijn en hopen dat hij de usb blaster kent. Ik kon ook niet vinden op het wel een BS kan doen.

Wat ik tot nu toe weet:
Er zit een state machine in met 16 states. Die is zover ik weet universeel. Door daar 16 bits (via TMS ?) onder "begeleiding" van een klok (TCK) in te voeren zet je die state machine in een bepaalde mode. In mijn geval zou dat INTEST moeten zijn.(0000 0010) Er staan timing diagrammen in de datasheet.
Zover ik begrijp moet alles via TMS erin.

De uitkomst komt in het BOUNDARY_REGISTER te staan Dat zijn 108 bits waarvan er 105 de pin status geven in groepjes van 3 en de drie laatste iets interns zijn. Hoe ik die 108 bits eruit krijg weet ik nog niet. Ik denk dat ze uit TDO komen.

De BSDL file bevat oa een pin toewijzing lijst en de binaire codes van alle state machine commando's. Allemaal gewoon leesbare tekst. Een soort library idee.

Waar ik nog niet achter ben is wat ik nu met TDI moet doen, ik denk dat die gebruikt wordt bij flashen.

Heb ik wat aan een bus-piraat of bus-blaster ? Ik wilde er een tijd terug 1 kopen maar ik kwam er niet uit welke (ik had toen alleen een oude linux laptop, nu ook intel i5 met 8GB en W10)

www.pa4tim.nl, www.schneiderelectronicsrepair.nl, Reparatie van meet- en calibratie apparatuur, ook maritieme en industriele PCBs
bprosman

Golden Member

De standard software ondersteund een Sjienese USB blaster, tenminste... de windows versie, en ja die pakketten zijn wel wat groot, van de andere kant... waarom zou je nog meer variabelen introduceren met vage programma'tjes , bus pirates met 68 verschillende firmware versies.
Het enige waar ik moeite mee heb is de juiste versie, dit vond ik via Google.

The last supported version of ISE with XCR3046XL is ISE 5.2i. Please refer to http://www.xilinx.com/ise/products/classics/parts_list.htm

De jongere generatie loopt veel te vaak zijn PIC achterna.
fred101

Golden Member

Het is gelukt om urjtag te installeren. Ook om de USBBlaster driver te installeren. Ik vond in apparaatbeheer ook een VID en PID (daar vraagt urjtag om) maar de usbblaster aansturen lukt niet. Ik denk dat mijn usb blaster een beetje kapot of te oud is.

jtag> cable UsbBlaster vid = 09FB rev = 0400
Couldn't connect to suitable USB device.
Error: Cable connection failed!

Of moet ik een andere proberen ?

List of supported cables:
ARCOM Arcom JTAG Cable
ByteBlaster Altera ByteBlaster/ByteBlaster II/ByteBlasterMV Parallel Port Download Cable
UsbBlaster Altera USB-Blaster Cable
FT2232 Generic FTDI FT2232 Cable
JTAGkey Amontec JTAGkey (FT2232) Cable
ARM-USB-OCD Olimex ARM-USB-OCD[-TINY] (FT2232) Cable
gnICE Analog Devices Blackfin gnICE (FT2232) Cable (EXPERIMENTAL)
OOCDLink-s OOCDLink-s (FT2232) Cable (EXPERIMENTAL)
Signalyzer Xverve DT-USB-ST Signalyzer Tool (FT2232) Cable (EXPERIMENTAL)
Turtelizer2 Turtelizer 2 Rev. B (FT2232) Cable (EXPERIMENTAL)
USB-to-JTAG-IF USB to JTAG Interface (FT2232) Cable (EXPERIMENTAL)
Flyswatter TinCanTools Flyswatter (FT2232) Cable
usbScarab2 KrisTech usbScarabeus2 (FT2232) Cable
DLC5 Xilinx DLC5 JTAG Parallel Cable III
EA253 ETC EA253 JTAG Cable
EI012 ETC EI012 JTAG Cable
IGLOO Excelpoint IGLOO JTAG Cable
KeithKoep Keith & Koep JTAG cable
Lattice Lattice Parallel Port JTAG Cable
MPCBDM Mpcbdm JTAG cable
TRITON Ka-Ro TRITON Starterkit II (PXA255/250) JTAG Cable
WIGGLER Macraigor Wiggler JTAG Cable
WIGGLER2 Modified (with CPU Reset) WIGGLER JTAG Cable
xpc_int Xilinx Platform Cable USB internal chain
xpc_ext Xilinx Platform Cable USB external chain
jlink Segger/IAR J-Link, Atmel SAM-ICE and others.
jtag>

www.pa4tim.nl, www.schneiderelectronicsrepair.nl, Reparatie van meet- en calibratie apparatuur, ook maritieme en industriele PCBs
fred101

Golden Member

Het is ook gelukt om urjtag onder linux aan de gang te krijgen. (blijkt dat je het als "sudo jtag" moet opstarten. Ik probeerde urjtag. De blaster wordt nu wel herkent en het groene ledje gaat aan.

Nu nog uitzoeken hoe ik alles instel in urjtag en nameten wat de blaster er uit gooit, ik verwacht 3V3. De te testen cpld is 3V3.

www.pa4tim.nl, www.schneiderelectronicsrepair.nl, Reparatie van meet- en calibratie apparatuur, ook maritieme en industriele PCBs
bprosman

Golden Member

Pen 4 van de USB blaster hang je aan de VCC van de target, dan "voelt" hij dat verder zelf.

De jongere generatie loopt veel te vaak zijn PIC achterna.
PE9SMS

Special Member

Heb je kennis van wat die CPLD doet? Hoe outputs reageren op inputs? Anders wordt het lastig vaststellen of ie het wel of niet doet.

This signature is intentionally left blank.
fred101

Golden Member

Heb je kennis van wat die CPLD doet? Hoe outputs reageren op inputs? Anders wordt het lastig vaststellen of ie het wel of niet doet.

Ongeveer, maar dat is volgens mij voor een boundery scan en intest niet nodig.

Ik heb hem vanmiddag op de Fluke aangesloten. Ik heb de BSDL file in de juiste Dir gezet. Hij leest het ID uit, en doet nog wat functies (bv discovery) maar om de meeste functies te gebruiken waaronder een BS, moet ik eerst een detect commando geven. Dat voert hij uit maar hij eindigt iedere keer met een segmentation fault en het programma quite daarna spontaan.

Volgens Google was dat in 2015 een bug waar toen een patch voor was in nieuwe versies. Maar verder vind ik er niks over (dwz, iets wat ik begrijp/kan volgen)

www.pa4tim.nl, www.schneiderelectronicsrepair.nl, Reparatie van meet- en calibratie apparatuur, ook maritieme en industriele PCBs
PE9SMS

Special Member

Met die intest test je de core van de chip. Je klokt data naar binnen (via de TDI), dat is de stimuli voor de inputs van de core. Dan doet die cpld zijn ding en er komt wat uit de outputs. Dat komt in de relevante posities van het boundary register en dan klok je de hele zaak weer naar buiten (TDO). Als je nu niet weet wat de relaties zijn tussen inputs en outputs kun je ook niet beoordelen of de data die je terugkrijgt wel of niet juist is.

This signature is intentionally left blank.

Op 23 juli 2018 15:17:26 schreef bprosman:
The last supported version of ISE with XCR3046XL is ISE 5.2i. Please refer to http://www.xilinx.com/ise/products/classics/parts_list.htm

Ik denk dat je in de war bent met wat antieke FPGA's, bprosman! 8)7

XCR3064XL = CoolRunner XPLA3 familie. Deze wordt nog ondersteund door 'actuele' versies van ISE (niet Vivado!). Even gecheckt met ISE 14.3 onder Debian Linux, XCR3064XL is gewoon te selecteren als target device. Ook VQ44 behuizing aan te geven. Je kunt er rustig van uit gaan dat dit bij laatste versie van ISE (14.7) ook zo is.

Xilinx heeft voor programmeer-only toepassingen (iMPACT, en wat die tool verder nodig is) de zogeheten 'Lab Tools' (zie hier bijv). Dit is met 1 GB al een heel stuk kleiner dan volledige ISE pakket. Kort gezegd van alles om chips te bewerken maar zonder de design -> bitfile ontwikkel software.

Linux:
Voor programmeer kabel checks heb ik het (open source :) ) programma xc3sprog gebruikt. Eerlijk gezegd weet ik niet eens wat daarmee wel of niet kan, ik heb het alleen gebruikt om te checken dat programmeer kabel werkte cq. device te bewerken is via JTAG. Goed mogelijk dat je daarmee een aantal devices kunt uitlezen / wissen of programmeren als je bitfiles in de juiste formaten voorhanden hebt.

Verder maak ik gebruik van een driver. Die dient voor "This library emulates Jungo Windrvr USB and parallel port functions in userspace which are required by XILINX impact to access the Platform cable USB and Parallel Cable III." Mogelijk is deze voor USB-only gebruik niet meer nodig, alleen als je via parallel poort werkt.

Opzetten / configureren van dit alles onder Linux kan best een gedoe zijn. Vooral permissies v/d gebruikte poort-devices (/dev/...) wil nog wel eens een issue zijn. In dat geval beetje Googelen voor hints. Maar als 't een keer werkt, dan ook probleemloos. In geen geval hoef je programmeer software als super-user te draaien! (dus ook niet via sudo). Da's echt een botte-bijl methode om "niet goed geconfigureerd systeem" te omzeilen. |:( En ontwikkel software (ISE Project Navigator etc) al helemaaaal niet.

Let op: uitlezen van een CPLD is niet altijd mogelijk! Dit is afhankelijk van hoe security bits gezet zijn bij programmeren. Indien geblokkeerd, kun je zo'n device alleen wissen & weer opnieuw programmeren.

bprosman

Golden Member

XCR3064XL = CoolRunner XPLA3 familie

Maar dan is het dus geen CPLD ?

De jongere generatie loopt veel te vaak zijn PIC achterna.

P.S.:

Op 22 juli 2018 15:35:12 schreef fred101:
- altera usb blaster (vast geen originele, ik heb hem ooit gehad bij een cpld demoboardje)

Oeps had ik overheen gelezen. Betwijfel ZÉÉR of Altera USB Blaster voor Xilinx devices te gebruiken is. Misschien nog herkennen v/e device of testen v/d JTAG connectie, maar niet meer dan dat.

Xilinx USB programmeer 'kabel' bevat zelf een CPLD met firmware; deze kan onder omstandigheden ook ge-update worden. Altera USB programmer werkt anders - of op z'n minst met andere onderdelen / firmware erin. Voor meer geavanceerde functies als uitlezen van individuele pins (ChipScope oid) gaat dat dus zeker niet werken... :( Device programmeren? Héél misschien maar ik betwijfel het. Beter een Xilinx USB programmer (of cheapo -clone) kopen.

Op 25 juli 2018 10:23:50 schreef bprosman:
Maar dan is het dus geen CPLD ?

CoolRunner XPLA3 familie = CPLD. 8)7

fred101

Golden Member

https://www.xilinx.com/support/documentation/data_sheets/ds017.pdf

Volgens Xilix is het een cpld

Net urjtag op een ander systeem gezet maar nog steeds dezelfde fout bij detect. Het probleem lijkt samen te hangen met een file die STEPPINGS HEET.

Deze cpld staat niet in de lijst van urtag. Als ik bit 31-28 invul als 0000 geeft hij de segmentation fout en crashed . Als ik 0011 of 1100 doe werkt detect bijna. Hij geeft dan alleen nog maar een "unknown steppings(0000)" melding
Het ID is 0000.0100.1000.0100.1110.0000.1001.0011 maar ik weet niet wat bit 31-28 nu moet zijn. Ik denk de laatste 4 en dan in omgekeerde volgorde, dus 31, 30, 29, 28.

Als ik na detect een print chain doe vindt hij niks.
Bij een DR vindt hij ook niks

P9SMS: dan is een BS voor mij nog steeds bruikbaar.

RetroTechie, ik gebruik sudo omdat het hier wat handiger is. (files in de USR dir aanmaken) En de usbblaster wordt herkent en werkt

www.pa4tim.nl, www.schneiderelectronicsrepair.nl, Reparatie van meet- en calibratie apparatuur, ook maritieme en industriele PCBs
fred101

Golden Member

Op 25 juli 2018 10:34:48 schreef RetroTechie:
Misschien nog herkennen v/e device of testen v/d JTAG connectie, maar niet meer dan dat.

Voor meer geavanceerde functies als uitlezen van individuele pins (ChipScope oid) gaat dat dus zeker niet werken kopen.

Meer hoeft ook niet, ik wil ze niet programmeren. jtag was ooit alleen een hardware test voor reeds op pcb gesoldeerde IC waar geen ruimte was om te proben. Precies mijn situatie.

www.pa4tim.nl, www.schneiderelectronicsrepair.nl, Reparatie van meet- en calibratie apparatuur, ook maritieme en industriele PCBs
bprosman

Golden Member

<Facepalm> Heb daar dus ook zwaar overheen gelezen, Xilinx en Altera USB blaster :-(
Voor Altera gebruik ik deze :

Voor Xilinx deze :

De jongere generatie loopt veel te vaak zijn PIC achterna.
fred101

Golden Member

Even voor toekomstige lezers een soort samenvatting na dagen zoeken en experimenteren.

Ik krijg urjtag niet compleet aan de gang. Het probleem zit waarschijnlijk in de BSDL file. URjtag vertaald die Xilinx bsdl files tegenwoordig zelf naar jtag formaat. Hij herkent hem ook en diverse jtag functies werken. Er is nog wel een vertaal tool voor, bsdl2jtag. Die zit standaard bij het geheel maar is voor de huidige versie niet nodig. Die krijg ik ook niet aan de gang. Zelfde geldt voor de bsdl dump functie in urjtag. Dat kan exemplarisch zijn want er zitten honderden bsdl files standaard in urjtag, ook een hoop meer uit deze reeks maar net de 3064 ontbreek. IK denk dat mijn setup werkt, alleen net niet voor deze cpld

Met de LA erop krijg ik van de werkende functies de zelfde data als urjtag. Dus alle lijnen werken.
Ik denk niet dat mijn usbblaster het probleem is. Eens kijken of ik iets anders met een jtag interface heb.

Het is zo te zien allemaal qua hardware niet zo spannend. Tenminste als je de standaard jtag dingen doet. Een parallelpoort en wat weerstanden zou al genoeg moeten zijn. De electronica in die dingen is alleen maar een parallel naar serieel omzetting. Je kunt prima met een Altera download kabel aan een Xilinx cpld werken (ik kan het niet meer vinden maar in een oudere Xilinxs app note werd zelfs de USBBlaster als compatible genoemd. Zolang de software er maar mee wil werken. De merk en model afhankelijke dingen van de cpld/fpga staan in de BSDL files.

De software is de ramp, vooral het installeren. Een veel te hoog geek/hacker gehalte van aan elkaar gehackte dingen met minimale documentatie. Alleen al omdat het allemaal terminal gestuurd is. De (waarschijnlijk) wel eenvoudig werkende dingen zijn nog al heftig qua prijs en gericht op fabrikanten.

Ik heb een stuk of 5 programmas geprobeerd.
openOCD krijg ik niet aan de gang, niet op W10 en niet op Linux, die moet je zelf compileren en van de nodige afhankelijkheden/libs etc voorzien. Dat gaat mij te ver.
Op Windows 10 wil urjtag niet,
Universal scan is een veel belovende maar die firma reageert niet.

Ze hebben ook topjtagprobe. Die werkt wel. Zou al voldoende zijn, maar net als urjtag zou hij met de usbblaster moeten werken maar ziet hem niet. Het probleem is waarschijnlijk driver gerelateerd. Als beginner qua Windows weet ik niet eens waar ik moet zoeken.

Dan Digilent adept, ze hebben zelf een download kabel (niet duur, 50 euro) Installatie is simpel maar ik kan er verder niks over vinden. Geen idee of hij bruikbaar is. Ze hebben het alleen over Xilinx maar schrijven ook dit:

In addition to working with the Xilinx Tools, the HS3 is also supported by Digilent’s Adept software and the Adept
SDK (the SDK is available to download free from Digilent’s website). Adept includes a full-featured programming
environment and a set of public APIs that allow user applications to directly drive the JTAG chain. Using the Adept
SDK, custom applications can be created to drive JTAG ports on virtually any device. Please see the Adept SDK
reference manual for more information.

Iemand hier ervaring mee ?

www.pa4tim.nl, www.schneiderelectronicsrepair.nl, Reparatie van meet- en calibratie apparatuur, ook maritieme en industriele PCBs
fred101

Golden Member

Nog meer info voor toekomstige lezers want er is weinig te vinden mbt praktisch universeel gebruik.

Te warm voor solderen dus nog wat verder gezocht in het jtag wespen nest.
https://blog.senr.io/blog/jtag-explained# dit is tot nu toe een van de betere sites over praktisch jtag gebruik.

Ik heb de nodige bsdl files bestudeerd. Het probleem met de XCR3064 zou wel eens in de bsdl file kunnen zitten. Voor BR is er geen waarde gegeven, dat verklaard al 1 foutmelding

ISPRS is niet gedefinieerd en dat is wel een probleem want die staat ook niet in de datasheet. De XCR3128 is 274, de XCR3256 is 313. Geen idee wat de 3064 is maar ik hoef niet te programmeren dus hopelijk is dat verder niet belangrijk.

Daarnaast is de CLAMP instructie net als de INTEST op 00011 gezet ipv 00110. Dus twee instructies met het zelfde bit patroon.

Ik ben nu met de hand een bsdl file aan het maken.

Ik heb ook wat zitten spelen met een easypic als jtag interface. (op de LA aangesloten als jtag decoder) Ik vond vandaag dat ze dat ook met een arduino doen.

Info is best lastig te vinden omdat de kreet jtag in de gamer wereld zwaar wordt misbruikt en trouwens ook omdat de gemiddelde programmeur een vrij beperkt blikveld lijkt te hebben als het om jtag gaat. Dat het alleen voor software debugging bruikbaar is en dat is niet het geval. Dat het daar ook erg handig voor bleek te zijn, bleek pas later.

De download kabel Hardware lijkt totaal niet merk-gebonden. De statemachine (SM) is heel eenvoudig en een standaard. Logische 0 of 1, een of andere klok, snelheid is vrij. Hoeft niet eens continu door te lopen.

Bepaalde state machine basis instructies liggen vast en zijn universeel.

De rest is fabrikant afhankelijk maar staat in de gewoon leesbare bsdl files. Bij deze cpld is dat 5 bits. De bits voor de state machine kun je gewoon uit de tekening daarvan aflezen. De 5 bit instructies gaan er in via TDI als de SM in de IR shift state staat.

Voor iedereen te blij wordt, als je vanuit een mooi programma de boel wilt aansturen, firmware branden etc, dus de software ontwikkel kant, dan heb je een kabel nodig welke door de software wordt ondersteund. Daar heb ik niet naar gekeken. Ik zag wel dat je waarschijnlijk een eind komt met de standaard passieve parallel kabel. Xilinx ondersteund deze (net als ze voor deze CPLDs de usbblaster ondersteunen)

www.pa4tim.nl, www.schneiderelectronicsrepair.nl, Reparatie van meet- en calibratie apparatuur, ook maritieme en industriele PCBs
fred101

Golden Member

Ik heb een parallel kabel gemaakt (wiggelr)

Ik heb de voeding via usb met 3 diodes in serie gemaakt om rond de 3V3 te komen als ik geen labvoeding in de buurt heb.

Onder linux met urjtag werkt het als je "cable WIGGLER ppdev /dev/parport0" als kabel opgeeft. (ik heb een Toshiba laptop met RS232 en een parallel port met XP en linux mint)

Veel interessanter is TopJtag-probe, een commercieel programma (100 euro) wat heel veel kan, oa pinnen manipuleren en een grafisch plaatje van het ic waar je de activiteit per pin ziet. Nu kan ik zien wat er op welke pinnen gebeurd. Ik weet welke pinnen worden gebruikt voor de voeding dus nu kan ik met de hand de controle lijnen zetten zonder traces doorsnijden en draadjes solderen omdat ik er niet bijkan.

www.pa4tim.nl, www.schneiderelectronicsrepair.nl, Reparatie van meet- en calibratie apparatuur, ook maritieme en industriele PCBs

Heb even vluchtig het topic gelezen, maar een JTAG boundary scan zou met werkelijk elk stukje hardware van een willekeurige fabrikant moeten lukken. Of je er veel aan hebt om alleen die scan te doen weet ik niet...

If you want to succeed, double your failure rate.
fred101

Golden Member

Dat klopt, dat was ook de reden dat ik ben doorgegaan met zoeken. Het usbblaster probleem is bij mij waarschijnlijk een driver probleem.

Het komt vaak voor bij reparaties dat ik niet bij de pinnen van ics kan. Nu kan ik in ieder geval per pin zien wat er gebeurd. Alleen daarvoor is het al handig. In dit geval weet ik welke lijnen naar de probleem voeding gaan en wat hun functie is. En ik weet welke van de processor komen. Dat zijn er niet veel. Deze cpld is hier een beetje overkill. Hij bediend de enable lijnen van wat spanningregelaars en leest de knoppen. (1 pin per knop)
Een voedingrail ontbreekt en alles wat daarmee te maken heeft is goed.

De cpld gebruikt een enable pin van een gewone lineaire low drop regelaar om er met een tor en spoel er een schakelende voeding van te maken (25V voor de LCD) en een DAC ipv 2 weerstanden om een FB signaal te maken.

Je moet creatief in gebruik van meetapparatuur zijn bij reparaties zonder schemas :-)

www.pa4tim.nl, www.schneiderelectronicsrepair.nl, Reparatie van meet- en calibratie apparatuur, ook maritieme en industriele PCBs
fred101

Golden Member

Even een update voor toekomstige zoekers, er is niet veel info over praktisch gebruik mbt HW tests:
Het ziet er naar uit dat de cpld is overleden.

Wat "gebruikers-ervaring"

Het feit dat je alle pinnen "tegelijk" in actie kunt zien maakt het al de moeite waard. Zeker bij het Topjtag probe programma. Dat heeft ook een LA functie. In mijn geval kon ik er twee vergelijken en zo zag ik dat er bij 4 pinnen verschil zat.

Heel handig dat je kunt zien wat een pin is, in of uitgang (in de uitgang mode van de software worden ingangen als high Z weergegeven. Ook zie je in de intest en extest modes soms ook of data aankomt of vertrekt. (omdat je bij de afgekoppelde cell de data alleen op de ingang ziet (dus aankomen) De jtag cell heeft een in en uitgang. Deze zit tussen de fysieke pin en de interne logica. Dat vereist even schakelen tussen de oren :-)

Als je intest en extest kiest kun je pinnen manipuleren. Je kunt kiezen om naar de in of uitgang van een cel te kijken. Bij intest verander je een ingang en dan kun je op het plaatje evt de uitgangen zien veranderen.

Extest laat je de uitgang veranderen wat bedoeld is om verbinding tussen jtag ICs te testen maar het is ook handig om outputs te zetten die bv naar transistors of ICs gaan. Zo kan ik de tor die de 25V middels pwm maakt aan en uit zetten. Dwz dat de tor goed is en de uitgang-driver goed is.

Dat je pinnen kunt manipuleren is dus soms handig maar niet altijd bruikbaar, het lijkt erop dat de cpld dan alle cellen tegelijk afkoppelt. En ze dus stil staan. Je kunt daarna alleen statisch schakelen. Deze software heeft niet de functie om bv een klok op een uitgang te zetten. Maar doordat een cel afgekoppeld is zou je dat nu waarschijnlijk wel extern kunnen doen.

Dit programma kan niet het geheugen uitlezen of programmeren.

Wat ik nu vond. Van de 4 cellen zijn er 3 uitgang en direct gerelateerd aan de display en zijn voeding. Als ik die manipuleer kan ik de boel zo zetten dat er 7,5V op de display komt ipv de 25V en die aan/uit toggelen, wat klopt omdat daar normaal het pwm signaal hoort te staan.

De vierde lijn was interessant. Deze ingang was laag op de boundary scan maar moet hoog zijn. Dat was wat vreemd want dat signaal komt direct van de processor en die is goed (ik heb een werkend pcb als vergelijk) DMM erop, en tot mijn verbazing er staat wel 3,3V op de pin. Het staat dus wel op de pin maar het bereikt niet de interne logica (wat op het vergelijk board wel het geval is

Waarschijnlijk is er meer kapot want in standby zijn er een stuk of 15 lijnen anders tov het goede pcb. Er is er ook 1 welke HighZ moet zijn maar low is.

Hopelijk hebben andere hier wat aan.

www.pa4tim.nl, www.schneiderelectronicsrepair.nl, Reparatie van meet- en calibratie apparatuur, ook maritieme en industriele PCBs