Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Si5351 + PIC16F1455 USB controller
(07-21-2017, 07:28 PM)progster Wrote: EDIT: Razmišljam, u TV tjunere bi trebalo da ugrađuju prescalere, pa ću pogledati šta imam, trebalo bi da imam par komada negde.

(07-22-2017, 11:15 AM)progster Wrote: Za prescaler ću sad potražiti da vidim čega ima na onim pločama i tjunerima. Za invertore, ulaz i zaštitu ćemo videti onda kasnije, imam sad dovoljno posla i sa ovim. Poterao sam juče AD9850, ali sam sinoć bio mrtav, pa ću sad da nastavim, nije mi nešto dobro računanje frekvencije.

Ako ne nadjes nista, kod mene imas sledece:
  -SP4740
  -SAB6456T
  -U666

Ovaj SP je po meni najbolji izbor jer mu je ulazna osetljivost tipicno 1mV i izlaz mu je TTL kompatibilan.
Dovoljno je da se stave dve diode za zastitu ulaza i to je sve, naravno ako je dovoljna ulazna impedansa od 50ohma.
Ako se zeli 1Mohm na ulazu neophodan je ulazni stepen koji se obicno izvodi sa nekim J-FET-om. 
Kad se vratim sa odmora potrazicu neku zgodnu semicu pa cu okaciti odje.

http://pdf.dzsc.com/SP4/SP4740.pdf

Ako sve postane zapad, gde ce onda sunce izlaziti!
Reply
Hvala Gošo, videću mogu li da nađem nešto. Smile

Evo sad baš tražim, imam tjunere (i ploče) od dva EI televizora, dva neka Goldstar, i tjuner iz nekog Thompson LCD-a, i nijedan od njih nema neko slično kolo. Ne znam da li je moguće da nijedan od njih nema takvo kolo?

Uglavnom svi imaju neki IC, recimo EI je stavljao TDA5030, u nekom starom tjuneru postoji mesto za SDA2101, ali nije na ploči, a prilično sam siguran da nisam to skidao. Ovi isto imaju neki IC, ali nije prescaller...
Tako da će verovatno da posluži neki od tih tvojih, ako u međuvremenu ne nađem ništa drugo. Smile
Reply
@progster

Imam neke male adeptercice za TSOP-10, tj neke plocice koja sam ja koristio za razvoj, ima izvode za napajanje 3.3V, tu se stavi Si i kristal, tu je I2C i tri izlaza. Za razvoj zavrsava posao.
Kasnije kada se bude crtala PCB to treba sve lepo sloziti ...
Reply
(07-22-2017, 07:47 PM)progster Wrote: Hvala Gošo, videću mogu li da nađem nešto. Smile

Evo sad baš tražim, imam tjunere (i ploče) od dva EI televizora, dva neka Goldstar, i tjuner iz nekog Thompson LCD-a, i nijedan od njih nema neko slično kolo. Ne znam da li je moguće da nijedan od njih nema takvo kolo?

Uglavnom svi imaju neki IC, recimo EI je stavljao TDA5030, u nekom starom tjuneru postoji mesto za SDA2101, ali nije na ploči, a prilično sam siguran da nisam to skidao. Ovi isto imaju neki IC, ali nije prescaller...
Tako da će verovatno da posluži neki od tih tvojih, ako u međuvremenu ne nađem ništa drugo. Smile

EI je uglavnom koristio tunere sa naponskom sintezom tako da nisu koristili prescalere. Ima samo jedna mala serija sa frekventnom sintezom i ti je korisceno SDA2101 ili neko iz te serije. Stari Grundig TV-i su uglavnom imali prescalere a i ostali nemci.
Ne muci se mnogo ja toga imam dosta pa nije problem spakovati u neko obicno pismo i da ti posaljem, samo da se vratim u Srbiju.

Ako sve postane zapad, gde ce onda sunce izlaziti!
Reply
@Miki
E to bi mi odgovaralo...
Mogao bih možda i foto postupkom da napravim nešto priručno, ali ako imaš jednu tu pločicu značilo bi da se ne zezam, nisam nikad radio tako tanke linije, pojma nemam kako bi ispalo.
Svakako će to kasnije sve lepo da se upakuje i oklopi, ovo je za razvoj.

@Gosha
E onda je to sigurno, nemam ništa od Nemaca, ovo je sve što imam. Važi, nije nikako hitno, kad se vratiš dogovorimo se, uživaj na odmoru. Smile



Pitanje za otvorenu diskusiju. Verovatno je još rano, ali razmišljam kako osmisliti korisnički interfejs na uređaju. Mislio sam prvo da koristim LCD 16x2, i kombinaciju dugmića i 4x3 tastature, možda neki enkoder, pošto sve to već manje više imam, ali nisam pametan kako bih to napravio a da valja, tj. da bude jednostavno i lako za upotrebu, a funkcionalno, mislim da bi tu trebao da čučne neki bolji displej u tom slučaju. Sve više razmišljam da taj displej koristim samo za brojač i eventualno da signalizira u kom modu radi sprava, koja frekvencija i sl. A da se glavna podešavanja obavljaju preko USB-a, to mi je nekako najfleksibilnije. Mogu da se prave razne korisne funkcije, tipa sweep i sl. Šta mislite?


Generalno, voleo bih da se još neki članovi uključe u diskusiju ako im to vreme i obaveze dozvoljavaju (ne mislim ovo oko interfejsa, nego generalno). Ja baš nisam siguran kako i šta najbolje odraditi, da li nešto treba dodati, izbaciti, izmeniti... Trenutno se držim Mikijeve originalne zamisli, uz naravno ostavljenu mogućnost za modifikacije. Nije da ne verujem Mikiju, da je on to dobro zamislio, samo bih voleo da čujem još neko mišljenje. Smile Znam da ljudi rade, meni se završila godina pa sad imam višak vremena...
Ja se trenutno upoznajem sa STM32, radim periferiju po periferiju, prešao dosta, još dosta je i ostalo, danas sam doveo u red AD9850, napisao neke funkcije i sl. To radi super.

Recimo, ja trenutno nemam potrebu za Ghz opsegom merenja frekvencije (nemam ni kako to da testiram), ali bih voleo da ako već radim da sprava bude zaokružena, ozbiljan brojač frekvencije, ne etalonski koji meri na neku sitnu decimalu, ne planiram ni rubidijum da koristim, ali da to radi dobro i stabilno. Recimo ovo što je Gosha rekao za ulaznu impedansu (50R ili 1Meg), nisam siguran na koju opciju ići... Možda da se ostavi mogućnost izbora? Itd...
Voleo bih da ovo preraste u još jedan forumski projekat. Smile
Reply
Evo nadjoh jednu semu sa SP4740:

   

Prilazem i kompletan SM od frekvencmetra SINCLAIR TF830.


.pdf   SINCLAIR TF830 FREQUENCY METER SERVICE.pdf (Size: 632,51 KB / Downloads: 5)

Ako sve postane zapad, gde ce onda sunce izlaziti!
Reply
Hvala Gošo, izučiću malo tu tematiku i taj SM. Smile




Muči me SPI nešto, ja sam naterao AD9850 da radi, koristio asinhronu komunikaciju (upišem, i onda samo uradim frequency update), i to radi dobro. Hteo sam malo da izučim SPI i da odradim to preko njega, ali nikako ne uspevam da upišem. Dešavalo mi se da na izlazu AD dobijem samo DC vrednost, ali nema sinusa. 


Evo kako sam radio, neću da zatrpavam tim delom koda za inicijalizaciju pinova, pošto ne sumnjam u njega, koristio sam te funkcije i ranije.

Pošto mi od SPI trebaju samo CLK i MOSI pinovi, njih sam uključio na PA5 i PA7 (po datasheet-u), kao alternate function push-pull, 50MHZ.
I pinove 4 i 6 kao reset i load (FR_UD), oni su obični push-pull 50Mhz.
NSS i MISO pinove nisam definisao, mislim da to nije ni bitno?


Evo samo definicije porta, pinova, i clock-a na AD9850 radi lakšeg snalaženja u kodu:

Code:
#define DDS_PORT GPIOA
#define DDS_CLK 5 //PA5
#define DDS_DATA 7 //PA7
#define DDS_RESET 4 //PA4
#define DDS_LOAD 6 //PA6
#define DDS_REF 125000000

Na početku sam uključio takt:
Code:
RCC->APB2ENR |= (RCC_APB2ENR_SPI1EN | RCC_APB2ENR_AFIOEN | RCC_APB2ENR_IOPAEN);

Onda odradim pulse reset na RESET i LOAD:


Code:
//RESET pin
DDS_PORT->BRR = (1<<DDS_RESET);
DDS_PORT->BSRR = (1<<DDS_RESET);
DDS_PORT->BRR = (1<<DDS_RESET);
        
//LOAD pin
DDS_PORT->BRR = (1<<DDS_LOAD);
DDS_PORT->BSRR = (1<<DDS_LOAD);
DDS_PORT->BRR = (1<<DDS_LOAD);

I kreće konfiguracija:

Code:
//baud postavio na f/256
SPI1->CR1 |= (SPI_CR1_BR);
//clock polarity
SPI1->CR1 &= ~(SPI_CR1_CPOL | SPI_CR1_CPHA);
//16bit razmena podataka
SPI1->CR1 |= (SPI_CR1_DFF);
//LSB first pošto AD9850 tako učitava
SPI1->CR1 |= SPI_CR1_LSBFIRST;
    
//transmit onl, 2 line unidirectional data mode, i isključujem recieve only
SPI1->CR1 |= SPI_CR1_BIDIOE;
SPI1->CR1 &= ~(SPI_CR1_BIDIMODE | SPI_CR1_RXONLY);
    
//slave managment
SPI1->CR1 |= SPI_CR1_SSM; //softverski slave managment
SPI1->CR1 |= SPI_CR1_SSI; //slave select na 1
    
//MASTER configuration
SPI1->CR1 |= SPI_CR1_MSTR;
    
//uključujem pefirefiju
SPI1->CR1 |= SPI_CR1_SPE;


Slanje podataka:
Code:
uint32_t freq1 = 5000;
uint32_t freq = (freq1 * 4294967295UL)/DDS_REF;
    
while(!((SPI1->SR) & SPI_SR_TXE));
SPI1->DR = freq;
while(!((SPI1->SR) & SPI_SR_TXE));
SPI1->DR = (freq>>16);
while(!((SPI1->SR) & SPI_SR_TXE));
SPI1->DR = 0;

DDS_PORT->BSRR = (1<<DDS_LOAD);
delay_ms(1);
DDS_PORT->BRR = (1<<DDS_LOAD);

CRC nisam konfigurisao.
To bi po mom mišljenju trebalo da radi, ako neko ima vremena da pogleda, bio bih zahvalan. Smile
Reply
Da li si ispratio malo sa osiloskopom SPI?
Imas SPI dekoder na skopu, prikljuci CLK i DATA i isprati malo sta se na linijama fizicki desava.

Kolika ti je brzina SPI bus-a?
Reply
Ispravio sam malo pre još, nego ne stigoh da pišem, imao neke goste.
Sređeno, problem je bio što je LOAD nešto brljavio, a i slučajno sam na kraju slao 48bit, umesto 40bit (ova poslednja nula, slao sam 3 paketa po 16bit, a sad šaljem 5 po 8bit), pa moguće da je i to jedan od uzroka. Smile

Imao sam i problem da kad upišem program, Blue Pill se restartuje, ali tek nakon što ga ja manuelno restartujem AD9850 počinje da broji i pokazuje sinus, inače postoji samo DC komponenta, i ako nastavim da ga restartujem to se dešava, tačno svaki drugi put proradi. Big Grin
Rešio to tako što sam izbacio onaj puls u resetovanju, ne znam zašto mu je to pravilo problem, sad reset držim na 0.

Brzina SPI je bila 72Mhz/256, sad sam je popeo na 72Mhz/2, i radi odlično.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)