Jste zde

Ovládání MCP3002 přes FTD232R

Ahoj. Nemáte prosím někdo prosím zkušenosti s A/D převodníkem MCP3002? Potřeboval bych komunikační protokol napříkla ve formátu: CS=0, pauza 5ms, CLK=0, pauza 5ms, CLK=1, atd.

Obvod mám připojen na obvod FTD232R (Din=TXD, _CS=RTS, CLK=DTR,Dout=RI). Pracovat s výstupi umím jak klaicky (FT_SetDtr(ftHandle), FT_ClrDtr(ftHandle)), tak i pomoci BitModu. V kladsikém režmu mi moje komunikace funguje, ale bohužel moc pomalu. Nastevení jednoho výstupu trvá necelé 3ms. Tudíš celé měření kolem 100ms.
Což je problém. Nevíte jak někdo tento čas zkrátit (alespon na polovicku)? Nebo jak komunikační prtokol zapsat v BIT MODU.

Předem Díky.

Vráťa

FT_SetRts(ftHandle); //RTS=1
FT_ClrDtr(ftHandle); //DTR=0
Sleep(0.001);
FT_ClrRts(ftHandle); //RTS=0

//Start bit
FT_SetBreakOn(ftHandle); //TXT=1
FT_SetDtr(ftHandle); //DTR=1
Sleep(0.001);
FT_ClrDtr(ftHandle); //DTR=0
Sleep(0.001);

//SGL/DIFF
FT_SetBreakOn(ftHandle); //TXT=1
FT_SetDtr(ftHandle); //DTR=1
Sleep(0.001);
FT_ClrDtr(ftHandle); //DTR=0
Sleep(0.001);

//ODD/SIGN
FT_SetBreakOn(ftHandle); //TXT=1
FT_SetDtr(ftHandle); //DTR=1
Sleep(0.001);
FT_ClrDtr(ftHandle); //DTR=0
Sleep(0.001);

//MSBF
FT_SetBreakOn(ftHandle); //TXT=1
FT_SetDtr(ftHandle); //DTR=1
Sleep(0.001);
FT_ClrDtr(ftHandle); //DTR=0
FT_SetBreakOff(ftHandle); //TXT=0
Sleep(0.001);

//Čtení dat
unsigned int Data=0;
for(int i=0;i<11;i++){ //1xnulovy bit +10x data
FT_SetDtr(ftHandle); //DTR=1
FT_GetModemStatus(ftHandle,&Stav);
if(Stav&64) Data=(Data<<1)+1; else Data=(Data<<1)+0;
Sleep(0.001);
FT_ClrDtr(ftHandle); //DTR=0
}

Forums: 

Jedine mezi ftdi a prevodnik dat MCU, ten za ty 3 ms mozna stihne i poslat z5 namerenou hodnotu... mimochodem - mnoho mcu ma prevodniky integrovane, takze by tento nebyl potreba.