HTML

Műszer

Hobby és amatőr elektronika, műszerépítés a XXI. században

Címkék

Friss topikok

  • Nite: @fromi: Ha egy bejegyzéssel kapcsolatos kérdésed van, akkor jobb odaírni kommentbe, mert esetleg m... (2010.11.26. 15:17) FAQ

Licenc

Creative Commons Licenc

Programozható órajelgenerátor 1-2.5MHz (III. rész)

Nite 2010.02.07. 09:20

(I. rész)
(II. rész)

 Megkésve bár, de végre felrakom a kódokat is.

 PIC kód
 Windows kód

 Nem gondolom hogy sok meglepetést tartalmaznak. Egy egyszerű függvény a DAC8531 programozására:

 

void SetFreqDAC(WORD_VAL freq)
{
char i;
LATAbits.LATA2 = 0; // CLK Low
LATAbits.LATA1 = 0; // SYNC Low

#ifdef __18CXX
_asm NOP NOP _endasm
#endif

// write PD1 and PD0
for (i = 0; i < 8; i++)
{
LATAbits.LATA2 = 1; // Rising edge LATAbits.LATA0 = 0;
LATAbits.LATA2 = 0; // Falling edge
}

// write level data
for (i = 0; i < 16; i++)
{
LATAbits.LATA2 = 1; // Rising edge LATAbits.LATA0 = freq.bits.b15;
freq.Val *= 2; // rotate left
LATAbits.LATA2 = 0; // Falling edge
}

#ifdef __18CXX
_asm NOP NOP _endasm
#endif

LATAbits.LATA1 = 1; // SYNC High
LATAbits.LATA2 = 1; // CLK High
}

 És kicsit kibővült a TMR1 megszakítás, minden frekvencia mérés után beállítja a DAC-t:

 

void FreqDAC_AutoHoldFreq(DWORD_VAL measured)
{
if (AutoHoldFreq.Val != 0x00) // AutoHold Functionality {
FreqError.Val = AutoHoldFreq.Val - measured.Val; ActualFreq.Val -= (FreqError.Val >> 2); SetFreqDAC(ActualFreq); // Set new freq
}
}

 Ez a frekvencia különbséget néggyel osztja, és ez alapján állítja utána a DAC-t, így nem lesz túl ideges.

 A Windows-os kódot nem részletezem, csak egy új függvényt tartalmaz, ami az auto hold frekvenciát beállítja.

 Az órajelgenerátor kimenő frekvenciájának állandósága nagyban függ attól, hogy a VCO mennyire mászik el. A melegedés miatti, lassú mászásokat a DAC korrigálni tudja, de próbapanelen az áramkör összeszed annyi zajt, hogy a kimenő frekvencia folyton fel-le változzon. Ez 1MHz frekvencián olyan 100 Hz elmozdulásokat jelent. Ha ennél pontosabbra van szükség, akkor a következő megoldások közül lehet választani:

- Jó NYÁK tervvel valószínüleg a zaj nagy része eltűnik

- A VCO bemenetére lehet egy szűrőt tenni, hogy a nagyobb frekvenciás komponensek ne jussanak rá

- A VCO tartományát meg lehet emelni 10MHz-re, és azt visszaosztani 10-el az 1MHz-hez. így a zaj is jelentősen csökkenni fog.

Jó berhelést mindenkinek.

Címkék: usb pic

Szólj hozzá!

A bejegyzés trackback címe:

https://muszer.blog.hu/api/trackback/id/tr91735734

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása