Spørsmål:
I2C bussanalysator
Thomas Weller
2016-01-27 14:43:29 UTC
view on stackexchange narkive permalink

Jeg leter etter noe maskinvare som

  • analyserer kvaliteten på I²C-signaler
    • spenning
    • datasignalkvaliteten (kvaliteten på rektangelet)
    • kvalitet på klokkesignalet (kvaliteten på rektangelet)
    • potensielt andre ting som definert av I²C (jeg er ikke så kjent ennå)
  • viser dataene som er overført på I²C-bussen
    • bussovervåker (bare hexverdiene)
    • datauttrekkeren (tolker hexverdiene, f.eks. separat adresse fra data)

Dette kan være to separate verktøy eller et alt-i-ett-verktøy. For begge deler vil det være flott hvis det er en tilkobling til PCen (f.eks. Via USB), slik at jeg enkelt kan generere testrapportdokumenter, lagre dataene eller videresende til noen andre.

Jeg har ingen budsjettbegrensning for øyeblikket, siden jeg må be om budsjettet.

Strømbrukere / moderatorer: er det bedre koder? Jeg kunne ikke finne , , , - men jeg tror fortsatt dette spørsmålet er om emnet siden det er et elektronisk element, kobles til en PC og kan utføre meningsfulle oppgaver.

En svar:
fsteff
2016-01-29 00:31:09 UTC
view on stackexchange narkive permalink

For å måle signalintegriteten er alt du trenger et oscilloskop. Kravene dine er ikke i de (gamle) I2C-spesifikasjonene, men du må finne dem i databladene for bestemte enheter som er koblet til bussen.

For å snuse og analysere bussen, vil jeg anbefale en Saleae Logikk. ( http://www.saleae.com). Senere versjoner kan også utføre analoge målinger. Alle målinger kan automatiseres (og nettverk), og de har en fin API tilgjengelig for å tilpasse din spesifikke måling.

Rediger for å utdype detaljer: sterk >

Du må vurdere hva du trenger, og når du trenger det. Listen over ting du vil gjøre, passer vanligvis ikke i en test.

Jeg bryter vanligvis ned til disse trinnene:

Kretsdesign

Dette er hvor du leser databladet for I2C-slaveenhetene. De spesifiserer hver min / maks høyde / fall timing for både klokke og datasignal (vanligvis identisk). Du er vanligvis i stand til å sikre riktig timing ved å bruke standardverdier for opptrekksmotstander. Sørg for å gi testputer på både SDA- og SCL-linjer.

Kretsverifisering

Når du har din første PCB tilbake fra produksjonen, er det på tide å verifisere at designparametrene er riktige. Med en strømkrets måler du kort-til-jordstrømmen til begge signallinjene og sørger for at den passer med dine beregnede designverdier. Bruk deretter programvare for maskinvare for å få I2C-verten til å generere datatrafikk og verifisere med et oscilloskop (eller på andre måter) at designparametrene dine oppfyller. Du kan ha litt kapasitet fra PCB-designet som skruer opp designparametrene dine. I dårlige tilfeller kan du til og med måtte gjøre om bordoppsettet for å fikse det.

System bring up

Dette er hvor du begynner å implementere drivere for hver av slaveenhetene. Derfor kan en I2C-analysator være en veldig nyttig ting. Dette er vanligvis tiden du oppdager tverr-samtalerelaterte problemer, som du enten tenker på en tidsskåret løsning eller - mer riktig - går tilbake til designet for å fikse det.

Produksjonstesting

På dette tidspunktet vet du at du har et fungerende design og et fungerende system. Komponentene er testet av produsenten, slik at vi kan anta at de fungerer. Vanlige problemer knyttet til produksjon er komponentfeilplassering, dårlig lodding og shorts. Du kan verifisere alt dette med to enkle målinger på testpunktene: Spenning ved testpunkt og kort til jordstrøm fra testpunkt.

Med dette håper jeg du har en bedre forståelse av hva dine krav i virkeligheten er.

Takk, spesielt for andre del. "Oscilloskop" -delen av svaret er litt bred. F.eks. Jeg har et gammelt Philips 20 MHz dobbeltkanal med to kanaler tilgjengelig, men det var ikke så nyttig enda. Gjett at det skal være et digitalt lagringsoscilloskop, men selv med noe slikt, hvordan vil jeg måle avviket (f.eks. I%) av det forventede signalet? Hvordan beregner jeg forskjellen til et referansesignal? Og hvordan vet jeg om denne forskjellen er ok eller kan forårsake skade?


Denne spørsmålet ble automatisk oversatt fra engelsk.Det opprinnelige innholdet er tilgjengelig på stackexchange, som vi takker for cc by-sa 3.0-lisensen den distribueres under.
Loading...