Programmera till Logikanalysatorn

Styrning av logikanalysator, 99.11.14

1. Inledning

Här får man reda på hur kan styra logikanalysatorn från en dator, eller annan hårdvara. Om något är oklart så kontakta mej på : el8klap@cse.kau.se

2. Hårdvara

Den hårdvara man styr logikanalysatorn med kan vara en dator eller en vanlig kombination av logiska kretsar. Jag har gjort det synkrona överförings-protokollet väldigt enkelt. Det finns ingen paritetskontroll, vilket jag inte tyckte behövdes i det här sammanhanget. Det finns en klockingång och en data in/utgång hos logikanalysatorn. Den är alltid "slave" och det innebär att det som styr den är "master" och skickar därmed alla klockpulser.
Kopplar man logikanalysatorn till serieporten hos en PC behöver man någon form av RS232-interface mellan logikanalysatorn och serie-porten. Detta för att göra om -12 och +12V signaler till 0 och 5V istället. Detta kan lätt göras med två zenerdioder på 5,6V och två 10 kOhms motstånd. Eftersom logikanalysatorn använder synkron överföring får man använda handskakningsbitarna i serieporten för klockpulsen (CLOCK) och dataöverföringen (DATA).

3. Att mäta

Att mäta innebär att man säger till logikanalysatorn vilka inställningar den ska använda sej utav. Sedan kommer logikanalysatorn att starta mäta och förväntar sej sedan att det programmet som styr den hämtar alla mätvärden.
Att göra denna procedur kan delas in i flera steg :

1. Sätt DATA och CLK höga.
2. Skicka inställningar (mer om det längre ner)
3. Sätt DATA som ingång och gör CLK hög.
4. Delay, ca 0,1 ms eller mer.
5. Vänta på att DATA ska gå från låg till hög. Då är mätningen klar.
6. Hämtar mätdata (mer om det längre ner)
7. Sätt DATA och CLK höga.
8. KLAR !

4. Skicka inställningar

Innan logikanalysatorn börjar att mäta vill den veta hur den ska göra.
Dom inställningar som finns är följande :

* Mätfrekvens
* Extern klockpuls
* Startsätt

Mätfrekvens är med vilken frekvens den ska hämta mätvärden. Valbara frekvenser är följande :
1.25 MHz, 192 kHz, 100 kHz, 50 kHz, 20 kHz , 10 kHz, 5 kHz, 2 kHz, 1 kHz, 500 Hz, 200 Hz, 100 Hz, 50 Hz, 20 Hz, 10 Hz, 5 Hz, 2 Hz, 1 Hz, 0.5 Hz, 0.2 Hz och 0.1 Hz.
Alla dessa frekvenser motsvarar ett 5-bits binärt tal. 1.25 MHz = 00000b, 192 kHz = 00001b ...... 0.1 Hz = 10100b.
Dvs alla mätfrekvenser kommer i den ordning som synes ovan.

Med Extern klockpuls ställer man inte in någon mätfrekvens. Utan då använder man en speciell ingång på logikanalysatorn som man skickar in yttre signaler till. Varje gång en klockpuls kommer in på den speciella ingången så tar logikanalysatorn och mäter en gång.
För att få denna inställning skickar man det binära talet 10101b (21) till logikanalysatorn istället för mätfrekvensen.

Det finns två olika Startsätt. Det ena är att mäta som vanligt, man sätter igång mätningen och logikanalysatorn skickar ut mätdatan då den är klar. Det andra sättet är att logikanalysatorn väntar med att starta mätningen tills en speciell ingång hos den har ändrat nivå, dvs om den ändrats från låg till hög eller från hög till låg beroende på hur den var från början. Denna speciella ingång hos logikanalysatorn kan om man vill kopplas till en "mätdata-ingång" hos logikanalysatorn om man önskar starta mätningen då en mätpunkt ändrar nivå. Så fort själva mätningen startat fortsätter den tills alla mätvärden är hämtade precis som vid "normal" mätning.
För att använda denna mätningen sätter man den 6'e biten (bit 5) till ett.

Alla dessa inställningar ligger i dom sex första bitarna i ett 8 bitars tal som man skickar till logikanalysatorn innan den börjar hämta mätvärden. Bit 0 - 4 innehåller Mätfrekvens (alternativt Extern klockpuls). Bit 5 innehåller Startsätt. Dom två återstående bitarna 6 - 7 används inte. Dom kan komma att användas senare.
När man skickar inställningarna till logikanalysatorn gör man på följande sätt :

1. CLOCK låg och DATA = bit som ska föras över
2. Delay ca 0,1 ms eller mer
3. CLOCK hög
4. Delay ca 0,1 ms eller mer
5. Gå upp till början tills alla åtta bitar är skickade

5. Hämta mätvärden

Efter att man skickat över inställningarna sätter logikanalysatorn igång med att ta alla mätvärden. När logikanalysatorn sätter DATA låg vet man att mätningen är klar och att mätvärden ska hämtas.
Logikanalysatorn har "samplat" 60 mätvärden som skickas i tur och ordning med den hastighet man själv väljer. Logikanalysatorn är alltid "slave".
Att hämta mätvärden från den görs på följande sätt :

1. CLOCK låg
2. Delay ca 0,1 ms eller mer
3. Läs av nivån på DATA, dvs 1 eller 0
4. CLOCK hög
5. Delay ca 0,1 ms eller mer
6. Gå upp till början tills alla åtta bitar är hämtade
7. Gör hela denna procedur 60 ggr (60 mätvärden , 60 bytes mätdata)

Det var allt för denna gången. Nu borde det gå ganska lätt att skriva ett program till vilken dator som helst för att använda logikanalysatorn.

Copyright (c) 2004 PerErik Klarenfjord, All Rights Reserved
All trademarks are the property of their owners
Any actions you take after reading this website are your own responsibility
MADE IN SWEDEN
Hosted by GMQ