Orodha ya maudhui:
- Vifaa
- Hatua ya 1: Njia ya kuingiliana au SImultaneous
- Hatua ya 2: Prototyping
- Hatua ya 3: Watulizaji
- Hatua ya 4: Ground Virtual
- Hatua ya 5: Encoders za Rotary na Utatuaji
- Hatua ya 6: Onyesha na Timebase
- Hatua ya 7: ADCs na DMA
- Hatua ya 8: Kiolesura cha Mtumiaji
- Hatua ya 9: Ujenzi na Maboresho Yanayowezekana
- Hatua ya 10: Kanuni na Video fupi
- Hatua ya 11: ZIADA: Kuongeza kupita kiasi
Video: Dual Trace Oscilloscope: Hatua 11 (na Picha)
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:48
Wakati ninaunda oscilloscope yangu ya zamani ya mini nilitaka kuona jinsi ninavyoweza kutengeneza mdhibiti wangu mdogo wa ARM STM32F030 (F030) kufanya, na ilifanya kazi nzuri.
Katika moja ya maoni ilipendekezwa kuwa "Kidonge cha Bluu" na STM32F103 (F103) inaweza kuwa bora, ndogo kuliko bodi ya maendeleo na F030 na labda hata bei rahisi. Lakini kwa oscilloscope ya mini sikutumia bodi ya maendeleo lakini F030 kwenye bodi ndogo ndogo ya SMD-DIP, kwa hivyo kuna Kidonge cha Bluu hakika hakitakuwa kidogo na nina shaka kuwa itakuwa bei rahisi pia.
Nambari sasa inapatikana kwenye Gitlab:
gitlab.com/WilkoL/dual-trace-oscilloscope
Vifaa
Orodha ya sehemu: - Sanduku la plastiki - ubao (bodi ya mfano wa pande mbili 8x12cm) - Kidonge cha Bluu - ST7735s TFT kuonyesha - betri ya lithiamu-ion - HT7333 3.3V mdhibiti wa kuacha chini - MCP6L92 opamp mbili - TSSOP8 kwa bodi ya DIP8 - kioo 12 MHz (sio lazima - encoder ya rotary pamoja na kitovu (2x) - nguvu ya uchawi - vituo vya ndizi (4x) - bodi ya chaja ya lithiamu-ioni - vipinga na viboreshaji kadhaa - spacers za nylon, karanga na vis.
Zana:
- kituo cha kuuza - solder 0.7mm - mkata waya - glasi na loupe - drill - multimeter - oscilloscope - STLink-V2
Programu:
- STM32IDE - STM32CubeMX - Huduma ya STLink - Maktaba ya LowLayer - maktaba iliyobadilishwa kwa ST7735s - Notepad ++ - Kicad
Hatua ya 1: Njia ya kuingiliana au SImultaneous
Kidonge cha Bluu
Lakini wazo lilikuwa pale, na nilijua kuwa F103 ina ADC mbili! Je! Ikiwa nitatumia ADC hizo mbili pamoja katika hali ya "interleave", jambo ambalo nimefanya hapo awali na STM32F407 (F407). Kasi ya sampuli ingeongezeka mara mbili. Hiyo, unganisha hiyo na mdhibiti mdogo zaidi na ingefanya mrithi mzuri wa oscilloscope ya mini.
Njia ya kuingiliana Oddly ADCs katika F103 hazijasonga mbele kuliko ile ya F030 (na F407), huwezi kuchagua azimio. Muhimu zaidi ni kwamba pia huwezi kubadilisha muda kati ya ADC mbili. Sasa, unapotumia hali ya kuingiliana kawaida unataka sampuli haraka iwezekanavyo na wakati mfupi kati ya sampuli yoyote, lakini kwa oscilloscope ni muhimu kubadilisha wakati. Labda bado inaweza kufanywa, mimi sio mbuni wa mtaalam wa oscilloscope, lakini niliacha mpango wa kutumia njia ya kuingiliana.
Hali ya wakati mmoja
Lakini, kuwa na ADC mbili kunatoa chaguzi nyingi zaidi, ADC mbili zinaweza kuwekwa kwa hali ya "kawaida-samtidiga" pia. Vipi kuhusu trace-oscilloscope mbili?
Baada ya kuamua kujaribu kutengeneza oscilloscope ya athari mbili pia nilitaka kuwa na unyeti wa pembejeo wa kutofautisha, chaguo ambalo sikuwa nalo kwenye oscilloscope ya mini. Hiyo inamaanisha kipenyo (na kipaza sauti) kwenye pembejeo. Na labda nilitaka hata zaidi? Kwa hivyo nilifanya orodha ndogo ya "wazuri-wa-nacho".
WISH ORODHA
njia mbili
unyeti wa kutofautisha kwenye njia zote mbili
kuchochea kwenye chaneli zote mbili
kiwango cha kutofautisha kwenye chaneli zote mbili
kukabiliana tofauti
nguvu moja ya betri
inafaa kwenye sanduku sawa na mini-oscilloscope
Hatua ya 2: Prototyping
Kama kawaida, nilianzisha miradi hii kwenye ubao wa mkate. (Tazama picha) Na kabla ya kuuza kila kitu kwenye ubao wa ubao ninajaribu kujua ikiwa na jinsi itakavyofaa kwenye kisanduku cha mradi kilichochaguliwa. Inafaa, lakini tu tu. Sehemu zingine zimefichwa chini ya skrini, zingine chini ya Kidonge cha Bluu. Na tena, kama tu kwa miradi yangu mingi, huu ni mradi wa mara moja tu na sitatengeneza PCB kwa hiyo.
Hatua ya 3: Watulizaji
Katika oscilloscopes ya kawaida viboreshaji vya kuingiza ni nyaya ambazo hubadilisha upunguzaji na ukuzaji kwa kubadili vipingamizi vya ndani na nje na upeanaji wa ishara ndogo. Wakati nina zingine za kupokezana, najua hazitabadilika chini ya Volt 4, hiyo inamaanisha kuwa watafanya kazi tu na betri ya Lithium Ion iliyojaa kabisa (4.2V). Kwa hivyo nilihitaji njia nyingine ya kubadili vipinga. Kwa kweli ningeweza tu kufunga swichi za mitambo, lakini hiyo hakika haingefaa tena kwenye sanduku la mradi lililokuwa na akili, labda ningeweza kujaribu potentiometer bora zaidi ya dijiti (ile niliyonayo ni kelele sana).
Kisha nikafikiria "swichi za analog", na hizo naweza kutengeneza potentiometer ya dijiti mwenyewe. Katika mkusanyiko wangu wa sehemu nilipata CD4066 na swichi nne za analog. Wazo ni kufanya kipingamizi cha maoni cha ubadilishaji wa opamp kwa kubadili vipingamizi ndani na nje sambamba na kipinga maoni.
Inafanya kazi vizuri sana, lakini kuwa na swichi 4 tu katika 4066 na kuwa na njia 2 haikuwezekana kutengeneza viwango vya unyeti zaidi ya tatu. Nilichagua 500mV, 1V na 2V kwa kila mgawanyiko kwani hizo ni viwango vya voltage ambazo ninatumia zaidi. Skrini imegawanywa katika mgawanyiko 6, kwa hivyo hufanya safu -1.5V hadi + 1.5V, -3V hadi + 3V na -6V hadi 6V.
Ukiwa na "ardhi halisi" unaweza kusogeza safu hizi juu na chini kwa hivyo hata 0v hadi + 12V inawezekana.
Hatua ya 4: Ground Virtual
Kwa sababu oscilloscope hutumia reli moja ya nguvu (3.3V) opamp zinahitaji kiwango cha chini cha ardhi au hazitafanya kazi. Kiwango hiki cha ardhi kinafanywa na PWM kwenye kituo kimoja cha pato cha TIM4, mzunguko wa ushuru wake hubadilika kutoka asilimia chache hadi asilimia mia moja. Kichujio cha kupitisha cha chini na kipinga 1k na 10uF capacitor hubadilisha hiyo kuwa voltage ya (karibu) 0V hadi (karibu) 3.3V. Mzunguko wa mawimbi ya mraba ni chini ya 100kHz, kwa hivyo kichujio rahisi cha kupitisha cha chini ni cha kutosha.
Badala ya kuchelewa kwa ujenzi wa oscilloscope hii niligundua kuwa huwezi kuwa na njia mbili tofauti za vituo. Hii ni kwa sababu ya ukweli kwamba kwa usambazaji wa umeme mmoja kiwango cha pembejeo-ardhi lazima iwe kando na kiwango halisi cha opamp. Kwa hivyo vituo vyote vinasonga kwa njia ile ile unapobadilisha mipangilio ya GND.
Hatua ya 5: Encoders za Rotary na Utatuaji
Kwenye oscilloscope ya mini nilitumia encoder moja tu ya rotary kwa kazi zote. Hiyo inaweza kufanya oscilloscope mbili iwe ngumu sana kutumia, kwa hivyo hapa ninahitaji mbili. Kisimbuzi kimoja cha viambatanisho na kiwango cha chini cha ardhi na kisimbuzi kingine kwa muda wa saa na kuchochea. Kwa kusikitisha, kama ilivyo katika mradi wangu mwingine, encoders hizi za rotary ni "zenye kelele" sana. Wao ni mbaya sana kwamba hawawezi kufanya kazi na vipima muda katika "mode ya encoder", njia ya kawaida ya kuzisoma. Ilinibidi nifanye utaratibu wa kujiondoa na kipima muda TIM2, kuangalia viambatisho kila 100us. Kipima wakati hiki kimeanza (tu) wakati kuna shughuli kadhaa kwenye visimbuzi, hii inakaguliwa na utendaji wa EXTI kwenye bandari za kuingiza. Sasa encoders hufanya kazi vizuri.
Kama unavyoona, kuwa na onyesho pia inaweza kuwa rahisi sana kuonyesha habari ya utatuzi.
Hatua ya 6: Onyesha na Timebase
Onyesho lina azimio la saizi 160 x 128 kwa hivyo kuna sampuli 160 zinazohitajika kwa skrini moja, niliweza kuharakisha ADC kufanya sampuli milioni 1.6 kwa sekunde na kwamba, na mdhibiti aliyezidi kupita kiasi (zaidi baadaye), anatoa muda wa chini wa 20us kwa kila mgawanyiko (100us kwa kila skrini). Kwa hivyo muundo wa wimbi la 10kHz utajaza skrini nzima.
Hiyo ni mara mbili tu kwa kasi oscilloscope mini niliyoifanya hapo awali. Ah, sasa ni kwa njia mbili:-).
Kama ilivyosemwa, onyesho lina saizi 160 kwa hivyo maadili 160 tu yanahitajika kwa kila skrini. Lakini bafa zote kweli zina sampuli 320. Kwa hivyo DMA huhifadhi maadili 320 kabla ya kusababisha usumbufu kamili wa usambazaji (TC). Hii ni kwa sababu kuchochea hufanywa katika programu. Sampuli hiyo huanza wakati wa nasibu, kwa hivyo haiwezekani kwamba thamani ya kwanza kwenye bafa ni mahali ambapo kiini cha kuchochea kinapaswa kuwa.
Kwa hivyo hatua ya kuchochea hupatikana kwa kusoma kupitia trace_x_buffer, ikiwa dhamana iko kwa thamani inayotafutwa ya kichocheo ikiwa thamani ya hapo awali iko chini yake, trigger_point inapatikana. Hii inafanya kazi vizuri, lakini unahitaji bafa kubwa zaidi kuliko saizi halisi ya onyesho.
Hii pia ndio sababu kwamba kiwango cha kuonyesha upya kwenye mipangilio ya muda wa chini ni polepole kuliko unavyotarajia. Unapotumia 200ms / div kuweka skrini moja iliyojaa data ni sekunde 1, lakini kwa sababu mara mbili ya ubadilishaji umefanywa, hiyo inachukua sekunde 2. Kwenye mipangilio ya mwendo wa kasi hautaiona sana.
TIM3 hutumiwa kutengeneza muda wa wakati. Husababisha ADCs kwa kasi kama inavyotakiwa na mpangilio wa muda uliochaguliwa. Saa yake ya TIM3 ni 120MHz (tazama KUZIMA), nambari ya juu ambayo inahesabu (ARR) huamua jinsi inavyofurika nyingine au, kwa lugha ya ST inasasisha. Kupitia TRGO hizi kunde za sasisho husababisha ADCs. Mzunguko wa chini kabisa unaozalisha ni 160 Hz, ya juu zaidi ni 1.6MHz.
Hatua ya 7: ADCs na DMA
ADC hizi mbili hubadilisha voltage kwenye pembejeo zao kwa wakati mmoja, zinahifadhi zile maadili mbili kidogo kwa tofauti ya 32bit. Kwa hivyo DMA ina ubadilishaji mmoja tu kwa ubadilishaji (mara mbili) kuhamisha.
Kutumia maadili haya kwa hivyo ni muhimu kugawanya katika maadili mawili ili yatumiwe kuonyesha athari hizo mbili. Kama ilivyosemwa, ADCs katika F103 haziwezi kuweka maazimio mengine kuliko bits 12. Wao huwa katika hali ya biti 12 na kwa hivyo ubadilishaji kila wakati huchukua idadi sawa ya mapigo ya saa. Bado, na kuzidishwa kwa ADCs, Sampuli za 1.6 kwa sekunde zinaweza kufanywa (tazama Ziada: Kuongeza nguvu).
Rejea ya ADCs ni Vdd, reli ya 3.3V. Kubadilisha hiyo kuwa maadili rahisi zaidi (kwa kila mgawanyiko) nimehesabu maadili ya viambatisho, kwa sababu sina nambari halisi za kontena ambazo hutoka kwa mahesabu hayo marekebisho mengine hufanywa katika programu.
Katika mradi huu ninatumia DMA katika "hali ya kawaida". Katika hali hii DMA inaacha kuhamisha data (kutoka kwa ADCs kwenda kwenye kumbukumbu) wakati idadi ya maneno (au nusu-maneno au ka) zote zinahamishwa. Katika hali nyingine inayowezekana, "hali ya duara" DMA inajiweka upya na inaendelea kuhamisha data bila kukatizwa. Hiyo haikufanya kazi na F103, ni haraka sana hivi kwamba inaandika data kwenye adc_buffer kabla ya programu yote kuisoma. Kwa hivyo sasa mchakato ni kama ifuatavyo:
- weka DMA kwa idadi ya data itakayohamishwa na kuwezesha DMA
- Anza kuchochea kwa ADCs, hizi zitaomba uhamishaji wa DMA baada ya kila ubadilishaji (mara mbili)
- baada ya idadi iliyowekwa ya ubadilishaji kuhamishwa, DMA inaacha
- mara moja pia acha kuchochea kwa ADCs
- fanya ujanja wote unaohitajika kwenye data kwenye kumbukumbu
- onyesha athari kwenye skrini
- anza mchakato tena
Hatua ya 8: Kiolesura cha Mtumiaji
Skrini ya pikseli 160 hadi 128 sio kubwa sana na ninataka kutumia mengi iwezekanavyo. Kwa hivyo hakuna sehemu yake iliyohifadhiwa kwa mipangilio ya mikondo. Katika safu chache za mwisho unyeti wa wima, muda wa saa, kiwango cha vichocheo na kituo cha kuchochea huonyeshwa, lakini ishara zitakapokuwa kubwa vya kutosha zitaonekana katika eneo moja. Chaguo ambayo inafanya kazi imeonyeshwa kwa manjano, iliyobaki imeonyeshwa kwa rangi nyeupe.
Hatua ya 9: Ujenzi na Maboresho Yanayowezekana
Nina furaha sana kuhusu mradi huu. Inafanya kazi vizuri na inafanya kazi hiyo, lakini inaweza kuwa bora.
Sanduku la mradi ni ndogo sana kutoshea kila kitu kwa raha, hii inasababisha kuweka vifaa chini ya Kidonge cha Bluu. Ili kufanya hivyo inawezekana Kidonge cha Bluu hakiwezi kuuzwa kwa "bodi kuu" moja kwa moja. Na kwa sababu hii ilifanya iwe juu sana ilibidi nitoe sehemu nyingi kutoka kwa Kidonge cha Bluu, kama vile warukaji wa kuchagua BOOT0 na BOOT1 (vitu ambavyo sikuwahi kutumia hata hivyo) na hata nililazimika kuhamisha kioo kutoka juu hadi chini ya pcb.
Nilifanya maisha kuwa magumu zaidi kwa kutumia viunganishi vya ndizi badala ya viunganishi vya BNC au SMA, ilimaanisha kuwa sehemu kubwa ya ubao wa maandishi ilikuwa "eneo lisilopitiwa", ili kujifanya wazi kwangu niliweka mkanda wa kapton juu yake ili kujizuia kutoka kuweka sehemu juu yake.
Shida nyingine ya kuiweka yote kwenye sanduku dogo la mradi ni kwamba mizunguko ya analog na dijiti iko karibu sana. Unaweza kuona kuwa kuna kelele nyingi zinazoonekana kwenye athari zote mbili. Hii sikuwa nayo hata kwenye ubao wa mkate! Kwa kusonga laini za umeme kwa nyaya za analog na dijiti mbali mbali iwezekanavyo uboreshaji mdogo ulifanywa, lakini haitoshi kwa kupenda kwangu. Kupunguza maadili yote ya kontena kwenye mizunguko ya analog hata zaidi kuliko nilivyofanya (upinzani wa pembejeo ni 100kOhm badala ya 1MOhm) haikusaidia. Ninashuku kuwa kuchochea kwa mpangilio wa kasi zaidi wa saa (20us / div), ambayo sio nzuri, pia itaboresha na kelele kidogo kwenye ishara.
Ukitengeneza muundo huu kwenye pcb "halisi", na sehemu zote za smd na tabaka tofauti za analog, dijiti na nguvu (hiyo ni tabaka 4!) Labda itafanya kazi vizuri sana. Itakuwa ndogo sana, haitatumia Kidonge cha Bluu kamili lakini tu F103 na hiyo itafanya iwezekane kuipatia Analog ya Vdda tofauti (safi) kwa ADCs.
Kama mguso wa mwisho niliamua kunyunyiza sanduku nyeusi, inafanya mabadiliko kutoka kwa masanduku yote ya beige.
Hatua ya 10: Kanuni na Video fupi
Hatua ya 11: ZIADA: Kuongeza kupita kiasi
Kama vile nilivyofanya na F03, nilitaka kuona jinsi F103 inaweza kuzidiwa. Maagizo ya mdhibiti mdogo huyu anadai kwamba kasi ya saa haipaswi kuzidi 72MHz (ambayo kwa kweli tayari ina kasi zaidi kuliko F030) lakini nilikuwa nimesoma katika blogi kadhaa kwamba kuzidi ilikuwa rahisi, kwa nini?
Kidonge cha Bluu hutolewa kwa kioo cha 8MHz, PLL huzidisha hiyo ikiwa na sababu ya 9 hadi 72MHz. PLL inaweza kuongezeka hadi 16 ikitoa saa ya 128MHz. Hiyo haikuwa shida hata kidogo kwa Kidonge changu cha Bluu, kwa kweli, Vidonge vyangu vyote vya Bluu hufanya kazi bila shida yoyote kwenye 128MHz.
Lakini sasa nilitaka kujua ni nini kikomo halisi ni. Kwa hivyo niliondoa glasi ya 8MHz na kuibadilisha na moja ya 12MHz. Tena niliongeza kiongezaji cha PLL hadi mwendeshaji mdogo atakapokata tamaa. Hiyo ilikuwa saa 168MHz! Kwenye 156MHz bado ilifanya kazi vizuri. Niliiacha ikikimbia kwa kasi hiyo kwa masaa na sikuwahi kuiona ikianguka. Katika oscilloscope hii nilikaa kwa 120MHz, kasi ambayo inaweza kuchaguliwa na glasi ya 12MHz na PLL mnamo 10, na pia na kioo cha 8 MHz na PLL mnamo 15. (angalia SystemClock_Config katika main.c)
ADCs sasa pia hufanya kazi kwa kasi, ninao wanaendesha kwa 30MHz (badala ya 14), walikuwa bado wakifanya kazi vizuri kwenye 60MHz, STMicroelectronics hufanya vifaa nzuri!
STMicroelectronics inaweka mipaka hii kwenye data kwa sababu nzuri, inahakikishia kuwa mdhibiti mdogo hufanya kazi kwa 72MHz maalum chini ya hali zote.
Lakini kwa kuwa situmii microcontroller saa -40 Celsius, +85 Celsius, kwa 2.0 Volt tu au 3.6 Volt nadhani ni salama kuipindua. Usifanye hivi wakati unakusudia kuuza kifaa na wadhibiti wao wadogo, hauwezi kujua wapi zitatumika.
Ilipendekeza:
Mini Battery Powered CRT Oscilloscope: Hatua 7 (na Picha)
Mini Battery Powered CRT Oscilloscope: Halo! Katika hii Inayoweza kufundishwa nitakuonyesha jinsi ya kutengeneza oscilloscope ya CRT yenye betri ndogo. Oscilloscope ni chombo muhimu cha kufanya kazi na umeme; unaweza kuona ishara zote zinazozunguka katika mzunguko, na shida za maoni
Mwisho wa mbele wa Analog kwa Oscilloscope: Hatua 6 (na Picha)
Mwisho wa mbele wa Analog kwa Oscilloscope: Nyumbani nina kadi za sauti za bei rahisi za USB, ambazo zinaweza kununuliwa Banggood, Aliexpress, Ebay au duka zingine za mkondoni za ulimwengu kwa pesa zingine. Nilikuwa najiuliza ni nini cha kupendeza ninachoweza kuzitumia na kuamua kujaribu kufanya wigo wa chini wa PC w
Kionyeshi cha Ishara ya Mfukoni (Oscilloscope ya Mfukoni): Hatua 10 (na Picha)
Kionyeshi cha Ishara ya Mfukoni (Mfukoni Oscilloscope): Halo kila mmoja, Sote tunafanya vitu vingi kila siku. Kwa kila kazi huko kunahitaji zana. Hiyo ni kwa kutengeneza, kupima, kumaliza n.k. Kwa hivyo kwa wafanyikazi wa elektroniki, wanahitaji zana kama chuma cha kutengeneza, mita nyingi, oscilloscope, nk
Tengeneza Oscilloscope yako mwenyewe (Mini DSO) na STC MCU kwa urahisi: Hatua 9 (na Picha)
Tengeneza Oscilloscope yako mwenyewe (Mini DSO) Na STC MCU kwa Urahisi: Hii ni oscilloscope rahisi iliyotengenezwa na STC MCU. Unaweza kutumia Mini DSO hii kuchunguza umbo la mawimbi. Muda wa muda: 100us-500ms Voltage Range: 0-30V Njia ya Chora: Vector au Dots
Taa ya Onyo la Taa ya Mzunguko wa Dual Mini Dual: Hatua 6
Nuru ya Densi ya Alama ya Mzunguko wa Dual Mini: Katika hii inayoweza kufundishwa, tutatengeneza taa ndogo ya taa Unajua, moja ya taa za zamani za kuzunguka ambazo walikuwa wakiweka kwenye vifaa vya ujenzi kabla ya LED kuwa kubwa? Ndio. Moja ya hizo. Hii itakuwa rahisi, na yenye busara