Სარჩევი:

ორმაგი კვალი ოსცილოსკოპი: 11 ნაბიჯი (სურათებით)
ორმაგი კვალი ოსცილოსკოპი: 11 ნაბიჯი (სურათებით)

ვიდეო: ორმაგი კვალი ოსცილოსკოპი: 11 ნაბიჯი (სურათებით)

ვიდეო: ორმაგი კვალი ოსცილოსკოპი: 11 ნაბიჯი (სურათებით)
ვიდეო: რა ხდება კანონიერი ქურდების საკნებში 2024, ივლისი
Anonim
ორმაგი კვალი ოსცილოსკოპი
ორმაგი კვალი ოსცილოსკოპი

როდესაც ვაკეთებდი ჩემს წინა მინი ოსცილოსკოპს, მინდოდა მენახა რამდენად კარგად შევძლებდი ჩემი ყველაზე პატარა ARM მიკროკონტროლის STM32F030 (F030) შესრულებას და მან კარგი სამუშაო გააკეთა.

ერთ -ერთ კომენტარში ვარაუდობდნენ, რომ "ცისფერი აბი" STM32F103 (F103) - ით შეიძლება იყოს უკეთესი, უფრო მცირე ვიდრე F030– ის განვითარების დაფა და შესაძლოა უფრო იაფიც. მაგრამ მინი ოსცილოსკოპისთვის მე არ გამოვიყენე განვითარების დაფა, არამედ F030 კიდევ უფრო მცირე SMD-DIP დაფაზე, ასე რომ, იქ ლურჯი აბი, რა თქმა უნდა, არ იქნება პატარა და მეეჭვება, რომ ის ასევე იაფი იყოს.

კოდი უკვე ხელმისაწვდომია Gitlab– ზე:

gitlab.com/WilkoL/dual-trace-oscilloscope

მარაგები

ნაწილების სია: - პლასტმასის ყუთი - დაფა (ორმხრივი პროტოტიპის დაფა 8x12 სმ) - ცისფერი ტაბლეტი - ST7735s TFT ჩვენება - ლითიუმ -იონური ბატარეა - HT7333 3.3V დაბალი ვარდნის მარეგულირებელი - MCP6L92 ორმაგი ოპამპი - TSSOP8 to DIP8 დაფაზე - 12 MHz კრისტალი (არ არის საჭირო) - მბრუნავი კოდირება პლუს ღილაკი (2x) - powerwitch - ბანანის ტერმინალები (4x) - ლითიუმ -იონური დამტენი დაფა - რამდენიმე რეზისტორი და კონდენსატორი - ნეილონის შუასადებები, თხილი და ხრახნები

ინსტრუმენტები:

- შედუღების სადგური - solder 0.7 მმ - ზოგიერთი მავთული - გვერდითი საჭრელი - სათვალე და ლუპი - საბურღი - მულტიმეტრი - ოსცილოსკოპი - STLink -V2

პროგრამული უზრუნველყოფა:

- STM32IDE - STM32CubeMX - STLink Utility - LowLayer ბიბლიოთეკა - ადაპტირებული ბიბლიოთეკა ST7735s - Notepad ++ - Kicad

ნაბიჯი 1: ინტერლევა ან ერთდროული რეჟიმი

ინტერლევა ან ერთდროული რეჟიმი
ინტერლევა ან ერთდროული რეჟიმი
ინტერლევა ან ერთდროული რეჟიმი
ინტერლევა ან ერთდროული რეჟიმი

ლურჯი აბი

მაგრამ იდეა იყო და მე ვიცოდი, რომ F103– ს აქვს ორი ADC! რა მოხდება, თუ მე გამოვიყენებ იმ ორ ADC- ს ერთად "interleave" რეჟიმში, რაც ადრე გავაკეთე STM32F407 (F407). შერჩევის სიჩქარე გაორმაგდება. შეაერთეთ ეს უფრო სწრაფ მიკროკონტროლერთან და ეს გახდება მინი ოსცილოსკოპის დიდი მემკვიდრე.

Interleave რეჟიმი უცნაურად ADC– ები F103– ში ნაკლებად მოწინავეა ვიდრე F030– ში (და F407), თქვენ არ შეგიძლიათ გარჩევადობის არჩევა. უფრო მნიშვნელოვანია, რომ თქვენ ასევე არ შეგიძლიათ შეცვალოთ დრო ორ ADC– ს შორის. ახლა, როდესაც თქვენ იყენებთ interleave რეჟიმს, როგორც წესი, გსურთ სინჯის აღება რაც შეიძლება სწრაფად, უმოკლეს დროში ნებისმიერ ნიმუშს შორის, მაგრამ ოსცილოსკოპით აუცილებელია დროის შეცვლა. იქნებ ამის გაკეთება მაინც შეიძლება, მე არ ვარ პროფესიონალი ოსცილოსკოპის დიზაინერი, მაგრამ მე დავტოვე ინტერლევა-რეჟიმის გამოყენების გეგმა.

ერთდროული რეჟიმი

მაგრამ, ორი ADC– ს არსებობა კიდევ ბევრ ვარიანტს იძლევა, ორი ADC– ის დაყენება ასევე შესაძლებელია „რეგულარულ-ერთდროულ“რეჟიმში. რას იტყვით ორმაგი კვალი-ოსცილოსკოპის შესახებ?

მას შემდეგ რაც გადავწყვიტე შემექმნა ორმაგი კვალი oscilloscope მე ასევე მინდოდა მქონდა ცვლადი შეყვანის მგრძნობელობა, ვარიანტი, რომელიც მე არ მქონდა მინი oscilloscope. ეს ნიშნავს შესასვლელებზე შესუსტებას (და გამაძლიერებელს). და იქნებ მე კიდევ მინდოდა? ასე რომ, მე შევადგინე "სასიამოვნო მოყვარულთა" მცირე ჩამონათვალი.

სურვილების სია

ორი არხი

ცვალებადი მგრძნობელობა ორივე არხზე

ჩართვა ორივე არხზე

ცვალებადი ტრიგერის დონე ორივე არხზე

ცვლადი ოფსეტური

ერთი ბატარეის სიმძლავრე

ჯდება იმავე ყუთში, როგორც მინი ოსცილოსკოპი

ნაბიჯი 2: პროტოტიპირება

პროტოტიპირება
პროტოტიპირება
პროტოტიპირება
პროტოტიპირება

როგორც ყოველთვის, მე დავიწყე ეს პროექტები პურის დაფაზე. (იხილეთ სურათი) და სანამ პერფორდზე ყველაფერს შევაერთებ, ვცდილობ გავარკვიო, რამდენად და როგორ ჯდება იგი არჩეულ პროექტის ყუთში. ჯდება, მაგრამ მხოლოდ. ზოგიერთი ნაწილი დაფარულია ეკრანის ქვეშ, ზოგი კი ლურჯი აბის ქვეშ. ისევ და ისევ, ისევე როგორც ჩემი პროექტების უმეტესობისთვის, ეს არის ერთჯერადი პროექტი და მე არ შევქმნი მას PCB- სთვის.

ნაბიჯი 3: დამამშვიდებლები

დამამშვიდებლები
დამამშვიდებლები

რეგულარულ ოსცილოსკოპებში შეყვანის შემამცირებლები არის სქემები, რომლებიც ცვლის შესუსტებას და გაძლიერებას მცირე სიგნალის რელეებით რეზისტორების ჩართვისა და გამოსვლის გზით. მიუხედავად იმისა, რომ მე მაქვს რელეები, მე ვიცი, რომ ისინი არ იცვლება 4 ვოლტზე ნაკლები, ეს ნიშნავს, რომ ისინი იმუშავებენ მხოლოდ სრულად დატვირთული ლითიუმ -იონური ბატარეით (4.2V). ასე რომ, მე მჭირდებოდა სხვა გზა ამ რეზისტორების გადასატანად. რა თქმა უნდა, მე შემიძლია მხოლოდ მექანიკური გადამრთველების დაყენება, მაგრამ ეს რა თქმა უნდა ვეღარ მოთავსდებოდა პროექტის ყუთში მხედველობაში, ალბათ მე შემეძლო კიდევ ერთხელ გამეცადა უკეთესი ციფრული პოტენომეტრი (ის რაც მე ძალიან ხმაურიანი მაქვს).

შემდეგ ვიფიქრე "ანალოგიურ კონცენტრატორებზე", მათთან ერთად შემიძლია ციფრული პოტენომეტრის გაკეთება. ჩემი ნაწილების კოლექციაში აღმოვაჩინე CD4066 ოთხი ანალოგური გადამრთველით. იდეა არის ოპამპის ცვლადის უკუკავშირის რეზისტორი უკუკავშირის რეზისტორის პარალელურად შემომავალი და გამავალი რეზისტორების გადართვით.

ის მშვენივრად მუშაობს, მაგრამ 4066 წელს მხოლოდ 4 კონცენტრატორით და 2 არხით, მგრძნობელობის სამზე მეტი დონის გაკეთება შეუძლებელი იყო. მე ავირჩიე 500mV, 1V და 2V თითო განყოფილებაში, რადგან ეს არის ძაბვის დონე, რომელსაც ყველაზე მეტად ვიყენებ. ეკრანი დაყოფილია 6 განყოფილებად, რაც ქმნის დიაპაზონს -1.5V +1.5V, -3V დან +3V და -6V 6V.

"ვირტუალურ ნიადაგთან" შეგიძლიათ გადააადგილოთ ეს დიაპაზონი ზემოთ და ქვემოთ, ასე რომ 0v- დან +12V- მდეც კი შესაძლებელია.

ნაბიჯი 4: ვირტუალური საფუძველი

ვირტუალური საფუძველი
ვირტუალური საფუძველი
ვირტუალური საფუძველი
ვირტუალური საფუძველი

იმის გამო, რომ oscilloscope იყენებს ერთ დენის სარკინიგზო მაგისტრალს (3.3V), opamps– ს სჭირდება ვირტუალური მიწის დონე, წინააღმდეგ შემთხვევაში ისინი არ იმუშავებენ. ეს ვირტუალური დონე დგება PWM– ით TIM4– ის ერთ გამომავალ არხზე, მისი სამუშაო ციკლი იცვლება მხოლოდ რამდენიმე პროცენტიდან თითქმის ას პროცენტამდე. დაბალი გამტარი ფილტრი 1k რეზისტორით და 10uF კონდენსატორი გარდაქმნის მას ძაბვად (თითქმის) 0V– დან (თითქმის) 3.3V– მდე. კვადრატული ტალღის სიხშირე მხოლოდ 100 კჰც -ზე ნაკლებია, ამიტომ მარტივი დაბალი გამავლობის ფილტრი საკმარისად კარგია.

საკმაოდ გვიან ამ ოსცილოსკოპის შენობაში მივხვდი, რომ არ შეიძლება არხების ორი ცალკეული გადახრა. ეს გამოწვეულია იმით, რომ ერთი ელექტროენერგიის მიწოდებით შეყვანის გრუნტის დონე უნდა იყოს განცალკევებული ოპამპების რეალური მიწის დონისგან. ასე რომ, ორივე არხი მოძრაობს ისე, როგორც თქვენ შეცვლით GND პარამეტრს.

ნაბიჯი 5: მბრუნავი კოდირება და გამართვა

მბრუნავი კოდირება და გამართვა
მბრუნავი კოდირება და გამართვა
მბრუნავი კოდირება და გამართვა
მბრუნავი კოდირება და გამართვა

მინი ოსცილოსკოპზე მე გამოვიყენე მხოლოდ ერთი მბრუნავი კოდირება ყველა ფუნქციისთვის. ეს გაართულებს ორმაგი ოსცილოსკოპის გამოყენებას, ამიტომ აქ მჭირდება ორი. ერთი კოდირება შემამსუბუქებელი და ვირტუალური გრუნტის დონე და მეორე კოდირება დროის ბაზისა და გაშვებისთვის. სამწუხაროდ, ისევე როგორც ჩემს სხვა პროექტში, ეს მბრუნავი კოდირები ძალიან "ხმაურიანია". ისინი იმდენად ცუდია, რომ ისინი უბრალოდ არ იმუშავებენ ტაიმერებთან "კოდირების რეჟიმში", მათი წაკითხვის სტანდარტულ გზაზე. მე უნდა გამეკეთებინა დებონუსირების მექანიზმი ტაიმერით TIM2, გამშვები კოდირება ყოველ 100us. ეს ტაიმერი თავის მხრივ იწყება (მხოლოდ) მაშინ, როდესაც კოდირებაზე არის გარკვეული აქტივობა, ეს შემოწმებულია შეყვანის პორტებზე EXTI ფუნქციონირებით. ახლა კოდირება კარგად მუშაობს.

და როგორც ხედავთ, ეკრანის ქონა ასევე ძალიან მოსახერხებელია გამართვის ინფორმაციის ჩვენებისათვის.

ნაბიჯი 6: ჩვენება და დროის ბაზა

ჩვენება და დროის ბაზა
ჩვენება და დროის ბაზა

ეკრანს აქვს გარჩევადობა 160 x 128 პიქსელი, ასე რომ საჭიროა 160 ნიმუში ერთი ეკრანისთვის, მე შევძელი ADC– ების დაჩქარება, რომ გავაკეთო 1.6 მილიონი ნიმუში წამში და ეს, გადატვირთული მიკროკონტროლით (უფრო მოგვიანებით), იძლევა მინიმალური დროის ბაზა 20us თითო განყოფილებაზე (100us ეკრანზე). ამრიგად, 10kHz ტალღის ფორმა შეავსებს მთელ ეკრანს.

ეს მხოლოდ ორჯერ უფრო სწრაფია, ვიდრე ადრე გავაკეთე მინი ოსცილოსკოპი. ოჰ, ახლა ის ორი არხია:-).

როგორც ვთქვით, ეკრანი არის 160 პიქსელი სიგანე, ასე რომ მხოლოდ 160 მნიშვნელობაა საჭირო ეკრანზე. მაგრამ ყველა ბუფერი რეალურად შეიცავს 320 ნიმუშს. ასე რომ, DMA ინახავს 320 მნიშვნელობას, სანამ არ გამოიწვევს გადაცემის სრულ შეწყვეტას (TC). ეს იმიტომ ხდება, რომ გაშვება ხდება პროგრამულ უზრუნველყოფაში. შერჩევა იწყება შემთხვევით მომენტში, ამიტომ ძალზედ ნაკლებად სავარაუდოა, რომ ბუფერში პირველი მნიშვნელობა არის ადგილი, სადაც უნდა იყოს გამშვები წერტილი.

ამრიგად, გამომწვევი წერტილი მოიძებნება trace_x_buffer– ის წაკითხვით, თუ მნიშვნელობა არის სასურველი გამომწვევი მნიშვნელობის შემთხვევაში en, თუ წინა მნიშვნელობა მის ქვემოთ არის, trigger_point არის ნაპოვნი. ეს საკმაოდ კარგად მუშაობს, მაგრამ თქვენ გჭირდებათ უფრო დიდი ბუფერი ვიდრე ეკრანის რეალური ზომა.

ეს ასევე არის მიზეზი იმისა, რომ განახლების სიჩქარე ქვედა დროის ბაზის პარამეტრებზე უფრო ნელია, ვიდრე თქვენ მოელოდებით. როდესაც იყენებთ 200ms/div პარამეტრს, ერთი ეკრანი სავსეა მონაცემებით 1 წამი, მაგრამ რადგანაც ხდება კონვერტაციის ორმაგი რაოდენობა, ამას სჭირდება 2 წამი. დროის უფრო სწრაფი პარამეტრების დროს თქვენ ამას ვერ შეამჩნევთ.

TIM3 გამოიყენება დროის ბაზის შესაქმნელად. ის იწვევს ADC– ს იმ სიჩქარით, როგორც ამას მოითხოვს დროის არჩეული პარამეტრი. მისი TIM3 საათი არის 120 MHz (იხ. OVERCLOCKING), მაქსიმალური რიცხვი, რომელსაც ითვლის (ARR) განსაზღვრავს, თუ როგორ სხვაგვარად გადმოდის იგი ან, ST ენაზე განახლდება. TRGO– ს საშუალებით ეს განახლების პულსი იწვევს ADC– ებს. მისი წარმოქმნის ყველაზე დაბალი სიხშირეა 160 ჰც, ყველაზე მაღალი კი 1.6 მჰც.

ნაბიჯი 7: ADC და DMA

ADC და DMA
ADC და DMA

ორი ADC გარდაქმნის ძაბვას მათ შეყვანაზე ერთდროულად, ისინი ინახავს ამ ორ 12 ბიტიან მნიშვნელობას ერთ 32 ბიტიან ცვლადში. ასე რომ, DMA– ს აქვს მხოლოდ ერთი ცვლადი გადაცემისთვის (ორმაგი) გარდაქმნისთვის.

ამ მნიშვნელობების გამოსაყენებლად აუცილებელია მათი გაყოფა ორ მნიშვნელობად, რათა მათი გამოყენება მოხდეს ორი კვალის გამოსახატავად. როგორც ითქვა, F103– ში ADC– ები არ შეიძლება დაყენდეს სხვა რეზოლუციებზე, ვიდრე 12 ბიტი. ისინი ყოველთვის 12 ბიტიან რეჟიმში არიან და ამიტომ გარდაქმნები ყოველთვის იღებენ საათის იმპულსების ერთსა და იმავე რაოდენობას. მიუხედავად ამისა, ADC– ების გადატვირთვით, წამში შეიძლება გაკეთდეს 1,6 MS ნიმუში (იხ. დამატებითი: Overclocking).

ADC– ების მითითება არის Vdd, 3.3V რკინიგზა. უფრო მოსახერხებელ მნიშვნელობებზე გადასაყვანად (თითო განყოფილებაში) მე გამოვთვალე შემარბილებლების მნიშვნელობები, რადგან მე არ მაქვს ზუსტი რეზისტორული მნიშვნელობები, რაც ამ გამოთვლებიდან გამომდინარეობს, პროგრამულ უზრუნველყოფაში ხდება გარკვეული შესწორებები.

ამ პროექტში ვიყენებ DMA- ს "რეგულარულ რეჟიმში". ამ რეჟიმში DMA წყვეტს მონაცემთა გადაცემას (de ADC– ებიდან მეხსიერებაში), როდესაც ყველა სიტყვა (ან ნახევრად სიტყვა ან ბაიტი) გადადის. სხვა შესაძლო რეჟიმში, "წრიული რეჟიმი" DMA გადატვირთულია და აგრძელებს მონაცემთა გადაცემას შეუფერხებლად. ეს არ მუშაობდა F103– თან, ის იმდენად სწრაფია, რომ გადააწერს მონაცემებს adc_buffer - ში, სანამ პროგრამის დანარჩენ ნაწილს შეეძლო მისი წაკითხვა. ასე რომ, ახლა პროცესი ასეთია:

- დააყენეთ DMA გადასატანი მონაცემების რაოდენობაზე და ჩართეთ DMA

- დაიწყეთ ADC– ების გააქტიურება, ისინი მოითხოვენ DMA გადაცემებს ყოველი (ორმაგი) გარდაქმნის შემდეგ

- მას შემდეგ, რაც კონვერტაციის რაოდენობის გადაცემა ხდება, DMA ჩერდება

- დაუყოვნებლივ შეწყვიტეთ ADC– ების გააქტიურება

- განახორციელოს ყველა მანიპულირება, რომელიც საჭიროა მონაცემებში მეხსიერებაში

- აჩვენეთ კვალი ეკრანზე

- თავიდან დაიწყე პროცესი

ნაბიჯი 8: მომხმარებლის ინტერფეისი

Მომხმარებლის ინტერფეისი
Მომხმარებლის ინტერფეისი

160 x 128 პიქსელიანი ეკრანი არ არის ძალიან დიდი და მე მინდა გამოვიყენო რაც შეიძლება მეტი. ასე რომ, მისი ნაწილი არ არის დაცული მიმდინარე პარამეტრებისთვის. ბოლო რამდენიმე სტრიქონში ნაჩვენებია ვერტიკალური მგრძნობელობა, დროის ბაზა, ტრიგერის დონე და გამომწვევი არხი, მაგრამ როდესაც სიგნალები საკმარისად დიდია, ისინი გამოჩნდება იმავე არეში. ვარიანტი, რომელიც აქტიურია, ნაჩვენებია ყვითელში, დანარჩენი - თეთრში.

ნაბიჯი 9: მშენებლობა და შესაძლო გაუმჯობესება

შენობა და შესაძლო გაუმჯობესება
შენობა და შესაძლო გაუმჯობესება
შენობა და შესაძლო გაუმჯობესება
შენობა და შესაძლო გაუმჯობესება
შენობა და შესაძლო გაუმჯობესება
შენობა და შესაძლო გაუმჯობესება
შენობა და შესაძლო გაუმჯობესება
შენობა და შესაძლო გაუმჯობესება

საკმაოდ კმაყოფილი ვარ ამ პროექტით. ის მშვენივრად მუშაობს და ასრულებს საქმეს, მაგრამ შეიძლება უკეთესიც იყოს.

პროექტის ყუთი ძალიან მცირეა იმისათვის, რომ ყველაფერი კომფორტულად მოთავსდეს, რის შედეგადაც საჭიროა კომპონენტების განთავსება ლურჯი აბის ქვეშ. ამის შესაძლებლობის მისაღწევად, ცისფერი აბი პირდაპირ „ძირითად დაფაზე“ვერ გაიყიდება. და რადგან ამან ყველაფერი ძალიან მაღლა დააყენა, მომიწია ცისფერი ტაბლეტიდან ბევრი ნაწილის ამოღება, როგორიცაა მხტუნავები BOOT0 და BOOT1 (რასაც მე მაინც არასოდეს ვიყენებ) და მე კი მომიწია ბროლის გადატანა ზემოდან ქვემოდან pcb

მე გავართულე ცხოვრება ბანანის კონექტორების გამოყენებით BNC ან SMA კონექტორების ნაცვლად, ეს იმას ნიშნავდა, რომ პერფორის დიდი ნაწილი იყო "არ-წასვლის ზონა", ამის გასაგებად მე თვითონ დავდე კაპტონის ლენტი, რომ თავი შევიკავო მასზე ნაწილების დაყენებიდან.

კიდევ ერთი პრობლემა ამ პატარა პროექტის ყუთში ჩასმისას არის ის, რომ ანალოგური და ციფრული სქემები ერთმანეთთან ძალიან ახლოს არის. თქვენ ხედავთ, რომ საკმაოდ ბევრი ხმაური ჩანს ორივე კვალზე. ეს მე არც კი მქონდა პურის დაფაზე! ანალოგური და ციფრული სქემების ელექტროგადამცემი ხაზების გადაადგილებით რაც შეიძლება შორს, მცირე გაუმჯობესება მოხდა, მაგრამ ეს არ იყო საკმარისი ჩემი სურვილისამებრ. ანალოგურ სქემებში რეზისტორების ყველა მნიშვნელობის შემცირება ჩემზე მეტად (შეყვანის წინააღმდეგობა 100 კმ Ohm- ის ნაცვლად 1 მოჰმ) არ უშველა. მე ეჭვი მაქვს, რომ დროის ყველაზე სწრაფი დროის (20us/div) დაყენება, რომელიც არ არის დიდი, ასევე გაუმჯობესდება სიგნალებზე ნაკლები ხმაურით.

თუ თქვენ გააკეთებთ ამ დიზაინს "ნამდვილ" კომპიუტერზე, ყველა smd ნაწილებით და ცალკეული ფენებით ანალოგური, ციფრული და ენერგიისთვის (ეს არის 4 ფენა!), ის ალბათ ძალიან კარგად იმუშავებს. ის გაცილებით პატარა იქნება, ის არ გამოიყენებს სრულ ცისფერ ტაბლეტს, არამედ მხოლოდ F103- ს და ეს შესაძლებელს გახდის მას მიაწოდოს ცალკეული (სუფთა) ანალოგური Vdda ADC– ებისთვის.

როგორც საბოლოო შეხება, მე გადავწყვიტე ყუთის შავი შესხურება, ის ცვლის ყველა კრემისფერ ყუთს, რაც მას აქვს.

ნაბიჯი 10: კოდი და მოკლე ვიდეო

ნაბიჯი 11: ექსტრა: გადატვირთვა

ექსტრა: გადატვირთვა
ექსტრა: გადატვირთვა

F03– ის მსგავსად, მინდოდა მენახა, რამდენად კარგად შეიძლება F103– ის გადატვირთვა. ამ მიკროკონტროლერის სპეციფიკაციები აცხადებენ, რომ საათის მაქსიმალური სიჩქარე არ უნდა აღემატებოდეს 72 მჰც -ს (რაც რა თქმა უნდა უკვე უფრო სწრაფია ვიდრე F030), მაგრამ რამდენიმე ბლოგში წავიკითხე, რომ მისი გადატვირთვა ადვილი იყო, რატომ არა?

ცისფერი აბი აღჭურვილია 8 მჰც ბროლით, PLL ამრავლებს მას 9 -დან 72 მჰც -მდე კოეფიციენტით. PLL შეიძლება გაიზარდოს 16 -მდე და მისცეს 128 მჰც სიხშირე. ეს საერთოდ არ იყო პრობლემა ჩემი Blue Pill– ისთვის, ფაქტობრივად, ყველა ჩემი Blue Pills მუშაობს უპრობლემოდ 128 MHz– ზე.

მაგრამ ახლა მინდოდა გამერკვია რა არის რეალური ზღვარი. მე ამოვიღე 8 მჰც ბროლი და შევცვალე ის 12 მჰც – ით. ისევ გავზარდე PLL მულტიპლიკატორი სანამ მიკროკონტროლერმა საბოლოოდ არ დათმო. ეს იყო 168 MHz! 156 MHz– ზე ის მაინც კარგად მუშაობდა. მე დავტოვე ის იმ სიჩქარით, რომელიც მუშაობდა საათობით და არასოდეს მინახავს მისი ავარია. ამ oscilloscope მე დასახლდა 120MHz, სიჩქარე, რომელიც შეიძლება შეირჩეს 12MHz ბროლით და PLL 10 -ზე, ასევე 8 MHz ბროლით და PLL 15 -ზე (იხ. SystemClock_Config main.c)

ADC– ები ახლაც უფრო სწრაფად მუშაობენ, მე მაქვს 30 MHz– ზე (14 – ის ნაცვლად), ისინი ჯერ კიდევ კარგად მუშაობდნენ 60 MHz– ზე, STMicroelectronics ქმნის კარგ აპარატურას!

STMicroelectronics აყენებს ამ შეზღუდვებს მონაცემთა ცხრილში კარგი მიზეზის გამო, ისინი გარანტიას იძლევიან, რომ მიკროკონტროლერი მუშაობს მითითებულ 72 მჰც სიხშირეზე, ნებისმიერ პირობებში.

მაგრამ რადგან მე არ ვიყენებ მიკროკონტროლერს -40 გრადუსზე, +85 ცელსიუსზე, მხოლოდ 2.0 ვოლტზე ან 3.6 ვოლტზე, მე ვფიქრობ, რომ უსაფრთხოა მისი გადატვირთვა. ნუ გააკეთებთ ამას, როდესაც აპირებთ მოწყობილობის გაყიდვას მათი მიკროკონტროლერებით, თქვენ არასოდეს იცით სად იქნება მათი გამოყენება.

გირჩევთ: