07-22-2017, 07:12 PM (This post was last modified: 07-22-2017, 07:14 PM by Gosha.)
(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.
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.
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 ...
(07-22-2017, 07:47 PM)progster Wrote: Hvala Gošo, videću mogu li da nađem nešto.
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.
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.
07-22-2017, 11:29 PM (This post was last modified: 07-22-2017, 11:30 PM by progster.)
@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.
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. 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.
07-26-2017, 10:49 AM (This post was last modified: 07-26-2017, 11:00 AM by progster.)
Hvala Gošo, izučiću malo tu tematiku i taj SM.
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:
//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);
07-26-2017, 02:01 PM (This post was last modified: 07-26-2017, 02:02 PM by progster.)
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.
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.
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.
Uzgred, kad trebas da pokrenes neku novu periferiju, prvo "gadjas" neki fiksan registar koji uvek daje isti rezultat, najcesce neki ID koji oznacava model ili proizvodjaca. Sa tim proveris da li ti je to sve dobro povezano na HW nivou pa posle se bavis ostalim detaljima protokola.
Takodje to je zgodno recimo kod EEPROM memorija da proveris prilikom starta programa da li je ta periferija dobro prikljucena, ispravna i da je postavljen trazeni model.
Problem konekcija je cest kada se koristi proto-board i SPI, program tehnicki ne moze da detektuje neispranu konekciju jer imao/nemao periferiju iscitavanje nekog registra ce uvek vracati podatak 0 i onda ne znas da li stvarno treba da bude 0 ili nema konekcije.
Dodatno ta detekcija je korisna da bi eventualno mogao da nastavis izvrsavanje programa i nekako signaliziras da postoji problem.
Kod I2C je malkice bolja situacija jer bez periferije na bus-u ne mozes ni da posaljes podatak, tad trebas detektovati timeout i signalizirati gresku.
09-17-2017, 09:20 PM (This post was last modified: 09-17-2017, 09:23 PM by progster.)
Malo sam zastao sa ovim, imao obaveza preko glave... Konačno uzeo malo pre da poteram pločicu koji mu je Miki poslao (nažalost, ima tome više od mesec dana). Proradilo je sve bez većih problema, samo sam malo proučio datasheet Si5351 i ref. manual. Samo osnovna konfiguracija, uključivanje izlaza, bez proračuna frekvencije i sl. Evo prvih slika sa Rigola. Prvi signal je preko 330R otpornika, a drugi je sa izlaza. (imati u vidu da je korišćen protoboard, pa oblici i nisu baš verodostojni).
Danas sam radio i na podešavanju PLL-a, odnosno multisynth-a, nije ni tu bilo većih problema...
Jedino algoritam za racionalnu aproksimaciju nije još završen, tj. treba popraviti preciznost toga, ali bitno je da radi komunikacija, programiranje nije problem.
Što se prvobitne zamisli tiče... Tu mi ostaje da se poigram sa interfejsom, kontrolom, USB komunikacijom. Ostaje da se uradi preamp, zaštita i prescaler. I ostaje mi da probam external clocking pomoću Si5351.
Bilo bi dobro da se neko iskusniji javi oko ulaznog stepena.
Bilo bi lepo ako bi mogao da se odradi neki izlazni stepen za AD9850, i PWM sa STM32, da se dobije već ozbiljna sprava.
10-06-2017, 01:25 PM (This post was last modified: 10-06-2017, 01:28 PM by mikikg.)
@Progster
Da li mozes da postavis deo Code-a za I2C ili ceo source koji trenutno imas?
Potreban mi je I2C drajver na bare-metal nivou, predpostavljam da si tako radio, da ne pisem bas sve ispocetka ...
Pisao sam bare-metal kod, samo što je problem što nisam napisao driver za I2C, pa je to trenutno razbacano po kodu, pisao sam bukvalno kad mi šta i gde treba... GPIO recimo imam koliko-toliko sređen, a ovo je malo u haosu.
Evo recimo inicijalizacija pinova, podešavanje frekvencije itd.
//pins configuration
//ovo su neke moje funkcije za inicijalizaciju GPIO, ako treba mogu da postavim
GPIO_Type PIN_SCL;
PIN_SCL.pin = SI_SCL;
PIN_SCL.mode = GPIO_MODE_OUT_50MHZ;
PIN_SCL.cnf = GPIO_OUTPUT_ALT_OD;
GPIO_Init(SI_PORT, PIN_SCL);
//frequency 36Mhz
//nije nepotrebno da se radi ovako, to sam se ja nešto glupirao, može da se stavi direktno
//I2C1->CR2 |= I2C_CR2_FREQ_2 | I2C_CR2_FREQ_5;
//I2C1->CR2 &= ~I2C_CR2_FREQ;
//SM mode
//nije neophodno, ali treba da se upiše 1 ako se ide na 400kHz
//I2C1->CCR &= ~I2C_CCR_FS;
//ACK enable
I2C1->CR1 |= I2C_CR1_ACK;
//ni ovo nije toliko bitno, bitno je da bit15 bude 0 da bi bio u 7bit adress modu
//ostalo upisujem 0 pošto mi nije bilo bitno da imam adresu
I2C1->OAR1 = 0x0;
Ako ti ovo nešto znači... Ako ti nije hitno, daj mi vremena, do sutra ujutru da svedem ovo lepo i napišem lepo drajver (ne ceo, ali ovaj deo koji ja koristim), pa ti pošaljem.
Super.
Hoću svakako, mislim kako kompletiram neki deo trudiću se da to ostavim uredno, ali je trenutno sve u fazi razvoja, a ja baš nemam puno vremena pošto imam dosta obaveza na fakultetu, pa kad stignem ja dorađujem ovo.
Imaš li možda negde neki primer kada si preko USB komunicirao sa STM32F1 i PC? Ne mora da bude bare-metal, može i HAL ili std?
10-06-2017, 04:11 PM (This post was last modified: 10-06-2017, 04:22 PM by mikikg.)
To nisam jos probao sa USB.
Znam da jede resurse pa sam ga privemeno preskocio ...
---
Inace baci pogled na ovu kombinaciju STM32 i Si5351 sa jos tri cuvena SA612 mixera, Japanac napravio ceo VNA . ... I upravo radi istu stvar koju sam ovde spominjao, gura sa TCXO Si5351A! Samo dodao ADC (ili je CODEC nisam siguran) i sve ostalo je software ... svaka cast, dobro je to osmislio, moguce da i solidno sve radi, rasprodat mu kit komplet ... https://github.com/ttrftech/NanoVNA