Fórum témák

» Több friss téma
Cikkek » Egyszerű PIC-es, digitális oszcilloszkóp folytatás
Egyszerű PIC-es, digitális oszcilloszkóp folytatás
Szerző: bbatka, idő: Márc 18, 2022, Olvasva: 7347, Oldal olvasási idő: kb. 4 perc
Lapozás: OK   2 / 8

Az analóg panelról érkező maximum 2 Vcs-cs szintű jelet, amelyet 1,6 V egyen szinttel tolunk el, egy TLC5510i A/D átalakító fogadja. Az átalakító elvileg 20 MSPS sebességre képes. Én ezt nem használtam ki teljesen. A kapcsolásban található egy dsPIC30F5011 mikrovezérlővel rendelkező panel. Ennek feladata a CPLD számlálójának indítása (GTS1=számláló törlés) és a mintavételezési sebesség (CLKSEL) kiküldése a CPLD panelre. A CPLD panel jelenleg egy XC9572-re épül. A CPLD feladata az SRAM címzése és az A/D átalakító részére az órajel előállítása. Az eszköz rendelkezik egy egyszerű triggerrel, amely nagy, kb. 2-3 μs késedelemmel dolgozik. Használható mind a 32 kB-os egyszeri, mind a 4 kB-os folyamatos mintavételi módban is. Ez a trigger csak a periodikus mintavételű jelek szinkronizálására szolgál. A nagy késedelmet a mikrovezérlőben lévő utasítások okozzák. Szerintem ezeket még jelentősen lehetne csökkenteni, de a cikk követhetősége érdekében inkább meghagytam a Pascal forrásban. A következő oszcilloszkópomban a trigger a CPLD-ben lesz majd megvalósítva. A trigger egy LM311 analóg komparátorra és egy MCP41010 potméterre épül. A poti értékét a mikrovezérlő küldi ki. A számítógépes program és a mikrovezérlő közötti adatátvitelt egy USB-UART (MCP2200) átalakító biztosítja. Az adatátviteli sebesség 115 200 bit/s. SRAM-ként egy 71 256-20 ns (32 kB) használok. A fejlesztést egy UMC UM62256E-70LL végeztem. A legnagyobb mintavételezési sebesség már nem tetszett neki. Minden negyedik – ötödik mintavételezésre hibázott. A jelölésben a 70 a 70 ns-ot jelenti.

A számítógépes program vezérli a hardvert a mikrovezérlőn keresztül. A számítógépes programban lehet kiválasztani, hogy 32 kB-os egyszeri, vagy a 4 kB-os folyamatos legyen a mintavétel. Ki lehet választani a triggert. Meg lehet adni a mintavételezési sebességet. FFT-t csak 32KB-os módban lehet számoltatni. 4KB-os módban másodpercenként egyszer történik mintavételezés és kirajzoltatás.

Mintavételi sebességek (SMPS):

12.500.000

6.250.000

2.500.000

1.250.000

625.000

250.000

125.000

62.500

25.000

 

A számítógép az utasításokat 3 bájtos formátumban adja át. Az első bájt tárolja az alap eseteket. Összesen 54 db alap eset van. Az alap eseteket számát azzal, hogy a trigger felfutó-lefutó beállítását áthelyeztem a második bájtba, lecsökkentettem 36 db-ra, majd a mikrovezérlő Pascal nyelvű forrásában látni fogjuk. A munka átláthatósága érdekében az alap eseteket egy táblázatba foglaltam össze. Az első átküldött bájt tartalmát az ugrótábla.xls táblázat „G” oszlopában látjuk.

A táblázatban szereplő trigger él figyelés tehát már nem aktuális. A trigger él figyelés átkerült egy második bájtba. Abban az esetben, ha a felfutó élét kell figyelni a jelnek, akkor 1-es, ha pedig a lefutó élét, akkor 2-es érték kerül kiküldésre a számítógépről. A harmadik bájtban történik a trigger jelszint értékének átadása. Összesen tíz részre osztottam fel a teljes jel amplitúdót.

ugrotabla_570.jpg

Kattints a képre a nagyobb méretért!

Az alábbi képen a három bájt átvitelének logikai analizátoros mintavételét látjuk. A kép a fejlesztés során készült.

23-as_trigger_van_erteke5_kiskep_570.png

Kattints a képre a nagyobb méretért!

A 23-as első bájt a következőt határozza meg: Egyszeri (32 kB) mintavétel, trigger van, a mintavételezési sebesség 2.500.000 SMPS

A második érték az 1-es azt mutatja meg, hogy a trigger a jel felfutó élét figyelje.

A harmadik bájt (5) a trigger jelszint.

Abban az esetben, ha nincs trigger, akkor a 2-es 3-as bájt értékét figyelmen kívül hagyjuk.

Sok fejtörést okozott számomra az SRAM írási és olvasási diagramjának értelmezése, és az hogy melyik változatot válasszam.

Nem kevés fejtörést okozott az is, hogy a feladatokat hogyan osszam fel a mikrovezérlő és a CPLD között.

Védelmi célból ellenállásokat tettem a CPLD panelre, arra az esetre, ha véletlenül kimenetként kapcsolom a mikrovezérlőt és a CPLD-t egyszerre, ugyanarra a vezetékre. Ez problémát is okozott az A/D órajelénél, de erről majd később.

Akkor lássuk a feladat kiosztást és a szükséges jelszinteket.

Olvasás (memória szempontjából):

OEAD, (értéke H) A/D átalakító engedélyező bitje, mikrovezérlő kezeli

WE, (értéke H) SRAM írásengedély, mikrovezérlő kezeli

OENG, (értéke L) SRAM kimenet engedély, mikrovezérlő kezeli

CS1, (értéke L) SRAM csip kiválasztó, mikrovezérlő kezeli

GTS1, (értéke L) CPLD számláló reset, mikrovezérlő kezeli

CLKSEL, (értéke L) CPLD számláló mintavételi érték kiválasztó, mikrovezérlő kezeli

A0-A15, SRAM címzés, mikrovezérlő kezeli

Írás (memória szempontjából):

OEAD, (értéke L) A/D átalakító engedélyező bitje, mikrovezérlő kezeli

WE, (értéke H-L-H) SRAM írásengedély, CPLD kezeli

OENG, (értéke X) SRAM kimenet engedély, mikrovezérlő kezeli, bemenetnek állítja a lábat

CS1, (értéke L) SRAM chip kiválasztó, mikrovezérlő kezeli

GTS1, (értéke H) CPLD számláló reset, mikrovezérlő kezeli

CLKSEL, (négy bites) CPLD számláló mintavételi érték kiválasztó, mikrovezérlő kezeli

DACLK, órajel az A/D részére, CPLD állítja elő

A0-A15, SRAM címzés, CPLD kezeli

Bizonyos jeleknél (pl. SRAM címzés) látható, hogy a mikrovezérlő lábait egyszer bemenetnek, máskor kimenetnek kell beállítani. Nagyfokú odafigyelést igényel! Ellenkező esetben a CPLD vagy a mikrovezérlő bánja a figyelmetlenséget.

 

SRAM Olvasási ciklus:

sram_olvasas_570.jpg

Kattints a képre a nagyobb méretért!

SRAM Írás ciklus:

sram_iras_570.jpg

Kattints a képre a nagyobb méretért!

Trigger:

trigger_570.jpg

Kattints a képre a nagyobb méretért!

A képen látható, hogy az áramkör egy digitális potméterből és egy komparátorból épül fel.

A potméter beállított értékét a Pascal program adja, a Pascal program pedig a számítógépes programból. Az érték „as3” változóban tárolódik le.

LTSpice-ban készítettem egy szimulációt, ami nagyon megkönnyítette a munkámat.

Az ellenállások a kimeneten kicsit változtatva lettek. R5=10, R6=10 k jelenleg.

triger_570.jpg

 Kattints a képre a nagyobb méretért! 


A cikk még nem ért véget, lapozz!
Következő: »»   2 / 8
Értékeléshez bejelentkezés szükséges!
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem