Da ne otvaram novu temu, par pitanja... - Printable Version +- DIY Electronic projects (https://forum.yu3ma.net) +-- Forum: Sve ostalo - Everything else (https://forum.yu3ma.net/forumdisplay.php?fid=9) +--- Forum: Sve i svašta (https://forum.yu3ma.net/forumdisplay.php?fid=41) +--- Thread: Da ne otvaram novu temu, par pitanja... (/showthread.php?tid=264) Pages:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
|
RE: Da ne otvaram novu temu, par pitanja... - mikikg - 11-03-2017 A da li znas koja je specificna impedansa A/D ulaza kod STM32F103? Koliko je "dovoljno"? 1k, 10k? Zelim da istrazi potencialne mogucnosti za merenje napona ali samo da se oslonim na raspoloziv HW u kontroleru i sve ostalo da resavam u SW. Poenta je sto imam u STM32F103 brdo memorije na pretek, mogu da iskoristim to da linearizujem bukvalno svaku pojedinacnu tacku od konvertera ... RE: Da ne otvaram novu temu, par pitanja... - vojinilic - 11-03-2017 Miki, pogledaj ovaj dokument: https://raw.github.com/spark/core/master/Datasheets/ST_STM32F103CB.pdf strana 75. Jos jedna stvar. Npr. ako pravis x10 sa npr. vrednostima otpornika 1K i 9K. Ako ti je izlazna impedansa kola na kom meris napon, npr. 100R ti ces imati slabljenje 9.18x umesto x10. Vodi racuna i o tome. Sto se tice ulazne impedanse AD-a, tu ne bi trebao da imas problema. RE: Da ne otvaram novu temu, par pitanja... - mikikg - 11-03-2017 Takodje razmisljam o internom temperaturnom senzoru u MCU, hehe, meni se isplati da postavim nekako STM32 na veliki hladnjak, ne da bi njega hladio, nego da bi pratio temperaturu hladnjaka od neke sprave koji taj MCU upravlja, moze da se kompenzuje sve zivo i jos pod razlicitom temperaturom, TCMCU, Temperaturno Kompezovan MCU RE: Da ne otvaram novu temu, par pitanja... - vojinilic - 11-03-2017 Senzori temperature unutar mcu mere uglavnom temperaturu tacke silicijuma. Da bi izracunao spoljasnju temperaturu ili temperaturu hladnjaka moras da znas potrosnju mcu-a i termicke otpornosti slojeva na kojima se mcu oslanja. Npr. mcu ce da izmeri 45C a napolju je 25C. RE: Da ne otvaram novu temu, par pitanja... - Jevrem - 11-06-2017 https://www.themetalstore.co.uk/products/tube-connectors-square a li ovo ima da se kupi kod nas negde? RE: Da ne otvaram novu temu, par pitanja... - pakonja - 11-10-2017 https://youtu.be/ovd8YATDfM0 Ovo odradih za test jer mi stoji u fioci vec duze vreme a zainteresovao sam se za izgradnju ozbiljnijeg CNC rutera dimenzija 2m x 1m. Interesuje me da li se neko upustio u slican poduhvat? Posebno me interesuje da li neko ima ideju kako izravnati podlogu za sine od X ose (one od 2m duzine) da budu iste visine? Nisam nasao da neko u mojoj blizini moze da obradi na glodalici toliku povrsinu a ne pada mi na pamet kako bi to drugacije moglo da se odradi... Pitanje je vise masinske prirode i mozda nije bas za ovaj forum al ne kosta nista da pitam... RE: Da ne otvaram novu temu, par pitanja... - Macola - 11-10-2017 Pravo pitanje za našeg forumaša @Želja... RE: Da ne otvaram novu temu, par pitanja... - Ubledeli - 11-13-2017 igram se sa stm32 nucleo plocicom, konkretno sa ADC ulazom povezao sam DAC direktno na ADC i napravio jednostavan sawtooth pomocu for petlje poredjenjem zadatog i izmerenog sam dosao do zakljucka da bar jedan od njih ne radi kako treba googlanjem sam dosao do toga da je ADC krivac za odstupanja (previse suma ima) ono sto je zaista ublazilo problem je deklarisanje neupotrebljenih analognih pinova kao izlazne digitalne problem je smanjen ali ne i otklonjen, prebacio sam podatke na komp i plotovao zanima me kako da otlkonim smetnje (talasnost, sum) a lako cu posle kalibrisati odstupanje nagiba dodatno pitanje je vezano za sam pocetak i kraj opsega, da li je neko imao problema sa tim kraj opsega je relativno lako otfikariti, ali je pocetak ipak potreban, mada mogu da pomerim sve razdelnikom napona a mozda da otvorim novu temu... molim podelite vasa iskutva sa adc-om nevezano za upotrebljeni MCU RE: Da ne otvaram novu temu, par pitanja... - gorankg - 11-13-2017 (11-13-2017, 12:19 PM)Ubledeli Wrote: igram se sa stm32 nucleo plocicom, konkretno sa ADC ulazom Gotovo sam siguran da oba rade onako kako piše u datasheet-u, odnosno errata (ako ga ima). Ako sam te dobro razumeo izlaz iz DAC MCU odveo si na ulaz ADC MCU. Ako je tako, onda je maksimalno odstupanje definisano zbirom njihovih pojedinačnih grešaka čije vrednosti možeš pronaći u datasheet-u za konkretni MCU (INL, DNL...) Na sledećoj stranici imaš lep pregled šta je šta kod DAC i ADC. https://www.maximintegrated.com/en/app-notes/index.mvp/id/641 Pretpostavljam da si ispoštovao settling time za DAC i acqusition time za ADC. RE: Da ne otvaram novu temu, par pitanja... - Ubledeli - 11-13-2017 hvala na linku,settling time ispostovao jesam i nisam, nemam dodatni delay izmedju slanja i primanja podataka ukupan delay je 0.2 sekunde, naso sam AN od ST-a koji opisuje razne probleme oko adc-a, tu sam i nasao da treba izbaciti nekoriscene ADC ove iz price moje pitanje je sledece: kako filtrirati dobijeni signal? mozda analogni LowPass filter, mada me mrzi da svaki put menjam komponente kad promenim frekvenciju akvizicije da li se neko igrao sa FIR ili IIR filterima MovingAverage SavitzkyGolay ili nekim drugim algoritmima RE: Da ne otvaram novu temu, par pitanja... - mikikg - 11-13-2017 Sa kojom konretnom Nucleo plocicom se igras? Shum je neminovan, i to shum moze da dodje sa vise strana, sa samog ulaza, sa sekcije analognog napajanja (VDDA/VSSA) ili referentnog napona (VREF, ukoliko je razlicit od VDDA). Shum/ripple/smetnje na bilo kojem od ta tri segmenta dovodi do istih posledica. Za kraj opsega obicno nije problem jer ti je tu najveci SNRi i rezultati bi trebali da budu tacniji. Pocetak opsega zna da bude sporan jer je tu najmanji SNR. Takodje za A/D konverter ulazna impedansa moze da pravi problem, skoro sam nesto experimentisao i ja i recimo tek kada se spustim sa impedansom ispod nekih 1K pocinju da stvari rade normalno, da bi bilo skoro idealno MORA da se stavi buffer. Za buffer sam stavio OPA192 i to iako ga kao reklamiraju kao Rail-To-Rail OP, mora da se "razvuce" njegovo napajanje van granica ulaza u A/D konverter (0 do 3.3V), dakle pozitivno moze da ide na 5V dok negativno je takodje neophodno i to makar nekih -0.2V do -0.5V da bi mogao da koristis kompletan ulazni opseg za A/D tj da bi OP stvarno mogao da "swinguje" do 0V, nece bez toga! Ovih negativnih -0.5V se najlakse prave sa jednom diodom tako da masa celog kontrolera "lebdi" nad diodom preko koje ide GND ako to dopusta postavka, u suprotnom se mora dovesti "pravi" negativni napon. Izlaz iz OP-a sam strujno limitirao sa jednim otpornikom i ogranicio struju koja moze da ptotekne kroz A/D ulaz u slucaju da se pojavi napon preko 3.3V koji se interno inace klampuje na VDD. Sto se tice filtriranja ulaza (LPF), to je uvek pozeljno prvo uraditi na HW nivou i ograniciti bandwith konvertera pa tek onda preci u SW domen gde mozes da radis dodatni averaging/oversampling ili neko drugo naprednije DSP filtriranje ali HW filter je prakticno obavezan. RE: Da ne otvaram novu temu, par pitanja... - mikikg - 11-13-2017 Inace, postavicu skorije neki info i fotke kako mi je ispao A/D konverter tj voltmetar koji sam napravio sa STM32F103 kao zamena za stradali IC u Fluke 8600A. Izvukao sam 17bit, tj dodao jos dve decimale na njihov HW uz pmoc ultra-masivnog oversampling-a Ostali samo dugmici i ulazni delitelj : ), sve ostalo je Blue Pill i malo prepakovano napajanje, spustio MCU na 3V (TPS73133-ADJ) da bi mi sve radilo sa LiIon baterije bez dodatnih naponskih konvertera ... Spomenuta OPA192 je obavezna u ovom mom slucaju ... RE: Da ne otvaram novu temu, par pitanja... - gorankg - 11-13-2017 Za Moving Average imaš lep dokument od Atmela i ja sam ga radio sa PIC-om. On može da ti ispegla malo šum. Ovde je doc: http://www.atmel.com/Images/doc0940.pdf Ovo na početku opsega bi mogao da bude uticaj offset error na jednom od ta dva dela hardvera. Kraj opsega mi je totalno nejasan Ako nisi već to uradio predlažem ti da sve rezultate konverzije guraš u RAM pa tek nakon što pređeš celu skalu podatke prebaciš na PC (USART ili šta već). Pa onda sve ponovo... Cilj je da ti na konverziju ne utiče nijedan deo hardvera MCU. Pogasi sve živo.. RE: Da ne otvaram novu temu, par pitanja... - gorankg - 11-13-2017 (11-13-2017, 01:11 PM)Ubledeli Wrote: hvala na linku,settling time ispostovao jesam i nisam, nemam dodatni delay izmedju slanja i primanja podataka Moraš da ispoštuješ settling time. ADC konverziju startuješ nakon što istekne to vreme. Acquisition time za ADC takođe pogledaj u datasheet-u. RE: Da ne otvaram novu temu, par pitanja... - mikikg - 11-13-2017 Ja sam sve experimentisao sa asinhronom konverzijom, tj A/D radi sam-za-sebe u SCAN modu sa najvecim/najduzim sampling-time i bukvalno svo ostalo rasplozivo CPU vreme sam ostavio za oversampling ... Kao sto Goran rece, sve radis u RAM prvo i tu racunas pa kad sracunas onda to saljes dalje i prikazujes. Valjalo bi da te "niko i nista ne prekida" dok radis A/D konverziju jer je tajming jako bitan ZBOG SHUMA jer se sve tek slozi kada se uklopis u Gaussian distribuciju shuma! Tu se uz oversampling mesa i ditering tako da ti shum u propisanoj kolicini cak i pogoduje! RE: Da ne otvaram novu temu, par pitanja... - Ubledeli - 11-13-2017 @mikikg hvala na ukljucivanju i prilozenom pdf-u, svakako okaci svoja iskustva @gorankg, kraj intervala je 1001. sample(pocetak sledecg ciklusa) koji treba da bude 0.0 a on je 0.71 ponekad a 0.01 u ostalim slucajevima jos nisam uspeo da pohvatam sta se tu desava, moguce da je bas settling time o kome pricas RE: Da ne otvaram novu temu, par pitanja... - gorankg - 11-13-2017 Okači kod pa da pogledamo! RE: Da ne otvaram novu temu, par pitanja... - vojinilic - 11-13-2017 Druze, sto se tice akvizicije, MORAS da imas hardverski anti-aliasing filtar pre A/D-a. Kao sto je Miki rekao moras da imas baferovanje da ti filtarska mreza ne bi narusila karakteristike sample and hold kola unutar MCU-a. Anti aliasing filtar bi trebao da ima granicnu ucestanost koja je bar 2.5x manja od frekvencije semplovanja. Posto baferujes, onda mozes da implementiras sallen-key drugog reda. Pored analognog anti-aliasing filtra preporucljivo je da koristis i neku vrstu usrednjavanja. Usrednjavanje mozes da radis tako sto ces usemplivati odredjeni broj odbiraka (npr. 16) sabrati i podeliti sa brojem odbiraka ili da radis u svakom semplu usrednjavanje, kao npr. (pisem pseudo kod) Code: unsigned int X_k = 0; RE: Da ne otvaram novu temu, par pitanja... - Ubledeli - 11-13-2017 @vojinilic hvala na predlogu, otprilike sam i ja dosao do zakljucka da cu da stavim filter na 20kHz a sample rate na 48kHz probacu da izbegnem obicno usrednjavanje jer ono dobrim delom unistava karakteristike signala a zauzvrat malo pomaze http://195.134.76.37/applets/AppletSmooth/Appl_Smooth2.html @gorankg Code: while(1) { RE: Da ne otvaram novu temu, par pitanja... - mikikg - 11-13-2017 Ovo parce code-a ima malkice problema, Float i 48kHz samplig rate tesko idu zajedno! Mnogo vise se isplati raditi sa integerima jer je drasticno brza kalkulacija (za 32bit, cak i 64bit integeri nistu mnogo sporiji), videces vec kad budes dosao dotle, recimo referetne vrednosti mozes da "trimujes" preko broja oversemplova da bi izbegao floating point matematiku ... Takodje mozes da upotrebis DMA da ti A/D konverter popuni ceo tvoj buffer za kalkulaciju (npr uzmes 1024 semplova) pa onda radis zeljenu matematiku nad tim bufferom jer tako doobijas dosta precizniji tajming uzorkovanja, opet povezano sa spomenutim shumom, sve dok se drzimo prezicnog tajminga shum koji se pojavljuje tu celoj prici moze da pomogne. U suprotnom ako imamo bilo kakav jitter prilikom uzorkovanja onda nam se kvari distribucija shuma i gubi se efekat diteringa. Dodatno, Floating Point matematika ima promenljivo vreme izvrsavanja, nije konstatno sto opet ima los efekat po distibuciju shuma, dodaje se digitalni shum koji je "bljak" kako bi se pratio njegov spektralni sastav (FFT)! Varijanta sa bufferom od recimo 1024 semplova koje popunjava A/D preko DMA je isto zgodna varijanta da bi mogao da iscrtas grafikon distribucije vrednosti uzoraka. Ako dobijes "lepu" Gauissian distribuciju onda si na dobrom putu, ako to "zvrji" nasumice onda imas nekih drugih problema u tom lancu konverzije. |