XJDeveloper
XJDeveloper
Dette er ei innføring i XJDeveloper. Tilhøyrande dokumentasjon er meint brukt til XJDemo Board versjon 1.2.
Dokumentasjonsmappa
Dokumentasjonsmpappa inneheld:
- Krinsskjema
- Bilete av demokort v.1.2.
- Demokort-netliste
- Diverse test-filer
- Device-filer
Sette opp kortet
Det fyrste som gjerast er å kople demokortet til datamaskina gjennom XJ Link. Bruk ein av USB-inngongane på baksida av maskina. Deretter må det lagast ei prosjektmappe, som skal innehalde alle filene som vert laga. Mappe-plasseringa speler inga rolle. For å starte XJDeveloper: start>Programs>XJTAG 2.4>XJDeveloper.
Lag eit nytt prosjekt, og lagre det i prosjektmappa. Gje prosjektet namnet "demo". Når dette er gjort, dukker dialogboksen "Add board" automatisk opp. I denne boksen gjev du kortet namn, og du gjev XJDeveloper netlista til demokortet. Gje kortet namnet "XJDemo". Netlista finn du i dokumentasjonsmappa - demo.net
I tillegg har vi ei BOM-fil, som gjev XJDeveloper tilleggsinformasjon om komponentane på kortet. Denne fila er ikkje strengt naudsynt, men er nyttig. I dokumentasjonen finn du BOM-fila - demo.bom Legg til BOM-fila under BOM-settings. Etter å ha trykka next, set du tredje kolonne til å vere "Device Reference", fjerne kolonne "Value", og siste kolonne til "Device Description". Save.
Under Power/Ground Nets i Setup-menyen i venstre marg er det to nett, 3.3V og GND. Dra desse to neta over i riktig kolonne til høgre. No veit XJTAG kva nett som er power og jord, og vil ikkje forsøke å skrive til desse.
Identifisere komponentane
Neste steg er å identifisere JTAG-kjeden. Trykk på add i Chain Setup. Til høgre for TDI, trykker du på select og vel CN1, pin 5. Trykk OK. Så kjem IC2.B3 opp i Select Next Pin-vinduet. Dra denne ned i JTAG Devices-lista. Trykk på Browse, og velg fila med same namn som IC2, altså XC9536XL_cs48.bsd Gjer det same med IC3.1, 3032at44.bsd. Begge desse filene finst i dokumentasjonsmappa.
Neste steget er ein resistor, R49. Dra denne ned i JTAG-Devices-lista, men velg Connect device i den øvste fana. Så vel du Create file. Namngje fila Resistor, og connect 1 til 2. Til slutt kjem IC1.13. Høgreklikk og set denne til TDO. Save. No har vi etablert JTAG-kjeden.
Deretter skal vi kategorisere non-JTAG-devices. Under Categorise Devices-fana i venstremargen, finn vi alle komponentane(devices), og ingen er endå kategoriserte.
- Risistorane som er markerte med "Suggested Series Resistors" kategoriserer vi som passive komponentar. Dra alle over i "Passive", og velg Resistor.pdd som allereie er laga.
- Alle jumperane på krinsen lar vi og vere passive. Gje jumperane[1,2,3,5,6] namn [jumper1,jumper2,...,jumper6] når vi lager filer til desse. For jumper[1,2,3] ser vi frå krinsteikninga at desse er meint kopla. Kople difor pinane 1-2,3-4,5-6,7-8 for desse tre jumperane. Jumper5 og jumper6 skal vere opne.
- Alle pull-resistorane kategoriserer vi óg som passive. Når vi skal lage PDD-filer for desse, gjer vi som ved serie-motstanden, bortsett frå at vi skiftar frå Connect->Pull. Connect 1-2.
- No er det dukka opp ein siste resistor, R26. Legg denne til i resistor.pdd.
- Under Ignore Devices legg vi kondensatorane, connectorane og "Other Resistors". I tillegg legg vi Switch1 under ignore(denne kjem vi attende til).
- Under Test Devices legg vi til IC4,IC5, alle diodane, SW2 og SW3. IC4 gjev vi namnet EEPROM, IC5 gjev vi namnet SRAM, diodane gjev vi namnet LED, SW2 gjev vi namnet pushbutton1 og SW3 gjev vi namnet pushbutton2.
- Under Logic Devices legg vi IC1. Frå krinsteikninga finn vi kva komponent IC1 er, og gjev XJDeveloper informasjon om det.
Det neste steget er å identifiserer tilkoplingspinnane. Under Pin Mapping ser vi JTAG connectoren. Frå krinsteikninga finn vi korleis denne skal bestemmast(CN1). Dei pinnane som ikkje er gjevne namn
i krinsteikninga, lar vi vere "input".
Testing
Det siste steget er å klargjere for test. Under Run and Deploy, finn ein fana XJRunnet Setup. Velg New>Add Global Function>CONNTEST. Gje testen eit fornuftig namn. Save. For å køyre testane som er sett opp under XJRunner-fana, trykk på Run Test-fana, og køyr testen.
Når vi tester, ser vi at vi får opp ein short mellom to "created" net på IC2. Desse to neta finst på krinsen, men er ikkje med i netlista. For å be XJDeveloper sjå vekk i frå denne feilen, kople dei to neta saman. Det kan gjerast under fana Connections i venstremargen. Trykk på Add, velg Pin to Pin, og kople dei to neta saman.
For å komme unna problemet med at GP1 er stuck at 1/0, går vi inn på Constant Pins-fana og set denne pinen til anten High/Low. Hugs å fysisk sett brytaren SW1 anten High/Low.
Viss alt er sett riktig opp, skal vi ikkje lenger få feilmeldingar når vi køyrer testen.
For å gje oss høve til å lage feil, er kortet utstyrt med jumperar. Sjå på krinsteikninga, og lag stuck at 0/1, kortslutningsfeil og brotfeil.
Minnetest(SRAM)
XJDeveloper har laga ei fil SRAM.xje frå informasjonen vi har gjeve programmet. For å kunne bruke ein ferdiglaga, enkel minnestest, modifiserer vi denne fila til å passe med testen. I dokumentasjonsmappa finn du fila SRAM.txt. Erstatt innhaldet i SRAM.xje med SRAM.txt.
Den første, og enkle, minnetesten, ligg lagra i dokumentasjonsmappa - SRAM_test.txt. Kopier innhaldet i denne fila, og lim det inn Test Editor. Test Editor er eit av vindauga under Test Device Files-fana i venstremargen. Save. Lag så ein ny test i XJRunner-fana. Velg Add Device Function>IC5>Test. Gje testen eit fornuftig namn.
XJTAG har vedlagt demokortdokumentasjonen gjeve oss ein meir utfyllande minnetest. Denne er vedlagt i dokumentasjonsmappa, og heiter memtestSRAM.xje. For å bruke denne, høgreklikker vi på IC5 i Categorised Devices>Configure>Other Device File>SRAM_SOP24.xje. Dette legg automatisk memtestSRAM.xje til som tilleggskode. No kan testen køyrast på nytt.
Bruk jumperane kring minnekrinsen til å lage feil.
Flash-test
Hvis du får opp følgende feilmelding under kjøring av flash-test:
memtestFlash.xje(148): Zero is an invalid argument to LOG. IC3.TestDestructive failed >>>> FAILED <<<<
Er dette fordi initialiseringsfunksjonen Init(); ikke er inkludert i "Test Destructive"-funksjonen. Dette kan fikses ved å legge inn Init(); manuelt i filen AMD_Flash.xje, som du finner i XJDeveloper:
Velg Test Device Files (Under fanen Setup, til høyre i XJDeveloper) -> AMD Flash 48-Pin TSOP 4Mb x8.xje (Under fanen Navigator) -> AMD_Flash.xje
Bruk ctrl+F for søk og skriv inn "TestDestructive()". Skriv inn Init(); rett under linjen result := RESULT_PASS, og trykk lagre. For å gjennomføre Non-Destructive test må dette også gjøres i "TestNonDestructive()"-funksjonen i samme fil.
EEPROM-test
Vedlagt i dokumentasjonen er fila 24LC23A.xje. Dette er testfila til IC4 - EEPROM. Kopier innhaldet i 24LC23A.xje inn i "Test Editor" under EEPROM i venstremargs-fana Test Device Files. Save. Då får ein to feilmeldingar, fordi funksjonane testen refererer til manglar. Desse finst i IIC.xje, som òg ligg i dokumentasjonen. Under Additional Code Files legg du IIC.xje til EEPROM. Save. På same måte som for SRAM-testen, må vi lage ein EEPROM-test under XJRunner-fana. No kan du køyre testen på nytt.
Lagt til forklaring på feil i flash-test og forslag til retting