Hallo,

Ik heb een XSVF Plite programmer:
http://www.circuitsonline.net/forum/view/73179
Zie ook de laatste post voor een werkende opstelling (helaas niet van mij).

Daarnaast heb ik een print met een XC9572XL cpld met jtag, voeding en een paar ledjes.

De voeding bestaat uit een MCP1703, een 3.3V spanningsregelaar. Op de uitgang meet ik 3.3V, zoals het hoort. Voor en na de spanningsregelaar staan 10uF condensatoren(0805). Bij elke voedingspin van de cpld zit 100nF binnen een straal van een paar centimeter. De 5V haal ik uit de programmer, die haalt het uit de usb poort.

De JTAG is direct op de cpld aangesloten. TDO gaat via een kort draadje van 3cm over de print. De programmer heeft al serieweerstanden van 22 of 68 ohm (weet ik niet precies meer). TDO heeft geen terminatieweerstand. De programmeerkabel is ongeveer 10cm lang.

Verder zit er nog een 48MHz oscillator op GCLK1. Deze heb ik losgekoppeld om storing te voorkomen. De leds hebben een serieweerstand van 560 ohm.

De XSVF Player heeft levelshifters, maar aangezien deze niet allemaal even vlekkeloos gesoldeerd zijn, heb ik er twee door moeten verbinden. De uitgangsspanning van de programmer is daardoor 5V, terwijl de cpld op 3.3V werkt. Volgens de datasheet is de cpld 5V tolerant op zijn input.

Als ik nu de boel aansluit en met de XSVF Player software iets wil programmeren werkt dit niet. De software zegt dat TDO niet de verwachte waarde heeft.

Mijn vraag is nu, waar kan de fout zitten? Kan ik aannemen dat er iets kapot is?

Bij voorbaat dank,

Bart

edit:
De programmer programmeert en verifieert wel met een attiny13 op 5V en een leeg hex bestand.

Heel stomme vraag maar heb je misschien de TDO en TDI niet omgewisseld? Wat is de waarde die je uit TDO krijgt? Kan je misschien fotos plaatsen van je XSVF Plite programmer?

Vanuit de programmer-header heb ik TDO (de onderste) aan pin 24 (TDO) van de cpld (VQFP44). TDI, de bovenste naast VEXT, heb ik aan pin 9 (TDI). Ik neem aan dat TDI aan TDI en TDO aan TDO moet.

De software geeft: "Captured TDO value differs from expected TDO value.", geen waarde dus.

Foto's gaan niet lukken, omdat mijn camera gesneuveld is.

[Bericht gewijzigd door infrarood op (16%)]

Hallo infrarood.

Wat bedoel je precies met "De 5V haal ik uit de programmer", de programmer (lees level-shifters) kunnen vanuit de target gevoed worden niet andersom.

Wat gebeurd als je de "test applicatie" gebruikt en de aanwijzingen in de manual volgt? Dit moet werken!

Verder vertel je dat je 2 level-shifters hebt door verbonden, hoe heb je dat precies gedaan? Als je de in en uitgang vd level-shifter hebt doorverbonden, kan ik niet met zekerheid zeggen wat er gebeurd.

Heb ook al een een xsvf file geprobeerd die alleen het id checked?

Hallo jgovers,

Waar je de voeding voor de level shifters kan instellen heb ik de jumper op 5V gezet. Ik heb deze 5V ook naar mijn print gehaald. Ik heb trouwens ook met een aparte voeding getest (en geen 5V meer uit de programmer), dit werkte ook niet.

Level shifter U2 en U3 zijn doorverbonden. Ik heb dit inderdaad gedaan door de ingang met de uitgang te verbinden.

Ik heb net een atmega168 getest, dit werkt wel. De programmer kan de device code tenminste lezen. Een attiny13 werkte ook.

Als ik test.hex erop zet, dan knippert de groene led zoals beschreven in de handleiding, maar de rode blijft continu aan.
Als ik TDO en TDI verbind, dan werkt het ook volgens de handleiding (groen aan, beide aan, rood aan).
TDO aan TMS werkt ook volgens de handleiding (beide aan, beide uit).
TDO aan TCK werkt ook goed.

Er dus iets mis als ik niets aansluit (rood blijft aan). Wat kan dit betekenen?

Een xsvf die alleen de id uitleest ga ik nu proberen. EDIT: de groene led knippert kort, daarna blijft de rode aan. De XSVF player komt tot 38%, daarna komt dezelfde foutmelding weer.

Bij voorbaat dank,

Bart

Als de rode led blijft branden als er niets is aangesloten betekend niet zo heel veel. De rode led geeft alleen het niveau aan van TDO ('1' -> led aan; '0' -> led uit).
Aangezien jij de 3 testen zoals omschreven kunt waarnemen en dat je een atmega168 kunt programmeren geeft mij meer informatie.

Dat je de level-shifters hebt kortgesloten kan zomaar de problemen veroorzaken. Ik weet echt niet wat dat doet, zeker niet omdat je de level-shifters wel voedt. Zou zomaar een of andere belasting aan de signalen kunnen geven.

Dit kan komen omdat de atmega dus van 5V programmer naar 5V target gaat. Met de XC9536XL ga je van 5V programmer naar 3.3V target. Heb je een scope, kun je kijken hoe de signalen eruit zien? Ik denk dat er reflecties/bouncing plaats vindt. Je kunt ook eens proberen wat er gebeurd als je een serie weerstand van zo'n 100ohm in de TDO lijn zet (aan de target zijde).

Hmm, als ook al het id uitlezen fout gaat.. Zou nu toch erg handig zijn als je het signaal kunt zien..

De level shifters zijn niet meer op de pcb gesoldeerd, dus zullen deze ook geen invloed hebben op het signaal.

Ik heb vanmiddag geen tijd meer, maar ik ga binnenkort een serieweerstand proberen.

Ik heb geen scope. Volgende week ga ik weer naar de TU, dus misschien kan ik er daar een gebruiken.

Zou het kunnen dat ik extra pull up/pull down weerstanden nodig heb?

Extra pull up/down weerstanden? Ik heb dat nooit nodig gehad en heb het ook nog niet in een schema van een cpld/fpga gezien (op de jtag lijnen dan).

Ik begin ook te twijfelen of die cpld wel goed is.. Heb je deze al ooit geprogrammerd? Loop nog eens al je verbindingen/voedingen na en meet ze na met een multimeter. Kloppen alle serie weerstanden van 100E? Staan ze nog in serie met de jtag lijnen?

Heb je een parallel poort programmer, of iets dergelijks? Lukt het daarmee?

Kun je een schema maken waarin alles staat? Inclusief cpld, programmer, caps, voeding, etc..

Het schema van de voeding en de JTAG aansluiting. Voor de rest is de cpld aangesloten op headers, en een paar pinnen via 560 ohm op leds.
http://www.uploadarchief.net/files/download/schemacpld.jpg

Ik heb geen andere programmer, dit is de eerste keer dat ik met een cpld werk. De cpld is dus nog niet eerder geprogrammeerd.
Op elke voedingspin van de cpld stond 3.3V.

Ik heb de meeste verbindingen pas nog nagemeten, er waren geen kortsluitingen en de verbinding met de JTAG pinnen was ook goed. Ik heb op dit moment geen tijd om die uitgebreid te meten.

Wat me wel opviel tijdens het programmeren was dat de XSVF player kort de usb verbinding met mijn laptop verliest. Kan dit door een slechte voedingsspanning komen of is dit wat anders?

Als ik er even vanuit ga dat je de VQ64 package hebt en draadjes gebruikt om de twee headers te verbinden denk ik dat ik iets heb gevonden..

In jouw schema wordt TDO op pin 59 aangesloten, in de datasheet staat pin 53. Waarom is dit?

Over het uitvallen vd usb tijdens het programmeren, kan ik alleen zeggen dat hij niet kan uitvallen en dat het programmeren doorgaat. Hoe zie je dat hij uitvalt?

Ik heb een VQ44 package, TDO zit op pin 24. Ik had het verkeerde symbool in eagle gebruikt.

Het uitvallen hoor ik (zo'n geluid als je iets in of uit een usb poort doet). In device manager zie ik hem ook even verdwijnen en daarna weer terugkomen. Als ik de avr programmeer gebeurt dit niet.

Ik begin ondertussen ook aan de cpld te twijfelen. Het solderen ging vrij snel, dus er is een kleine kans op oververhitting. Ik had wel bij de spanningsregelaar even de gnd aansluiting los. Het zou kunnen dat hierdoor de uitgangsspanning te hoog is geweest. Kan het zijn dat de cpld kapot is gegaan door een spanning van 4.5V - 5V?

Dat is niet zo handig, een schema laten zien wat je niet gebruikt ;).

Hmm, dat is wel vreemd ja dat dat geluid komt.. Gebeurd dat ook als je een xsvf programmeert zonder iets aan de programmer? Zo nee, dan lijkt toch echt de cpld stuk te zijn als je 100% zeker weet dat je alles goed hebt aangesloten (en 10 keer gedubbel checked).

En ja 4.5-5V kan de cpld hebben gesloopt. Zie ook datasheet "Absolute Maximum Ratings". Wat is de opgenomen stroom in rust? Als deze erg hoog is kun je bijna met zekerheid zeggen dat je cpld overleden is.

De stroom die de cpld trekt is ongeveer 20mA, dat lijkt mij een normale stroom als ik de datasheet mag geloven.

Als ik zonder iets aan te sluiten op de programmer iets wil programmeren valt de verbinding ook weg. Kan het er mee te maken hebben dat ik vista heb?

Verder denk ik dat een spanningsregelaar zonder aangesloten gnd alsnog een dropspanning van ongeveer 0.5V heeft. Dan zou er 4.5V op de cpld hebben gestaan, dat is niet veel meer dan het opgegeven maximum van 4V.

De soldeerverbindingen zijn volgens mij goed. Ik heb rechtstreeks op de pinnen van de cpld gemeten, daar is een voedingsspanning aanwezig en de JTAG signalen zijn ook verbonden. De 100 ohm weerstanden zitten nog in serie.

Ik denk dat ik dit project maar even stil zet totdat ik op de TU met een oscilloscoop kan meten.

Bedankt voor de hulp

Bart

Maximum = maximum. En 0.5V op 4V is toch ruim 10%.