ВЪПРОС ОТ ГРУПАТА ПО ЕЛЕКТРОНИКА ВЪВ ФЕЙСА : защо да ползваме ПИКЪР ПРО БОРДА, след като има ЕСП32 за 4$ /10 лева/ ????
ще има и графики, ама за сега да четете малко, щото явно има размисли и страсти, ама накрая пак ше ядете пасти. за това четете преди да изберете и мислете, защото като изберете и направите 50 броя платки със един куп чаркове и софтуер и още един куп други кутии, довършителни операции и монтаж ще бъде късно.
така, много добър въпрос. който иска и много добър отговор:
ПЪРВО : есп32 работи на +3V3 волта, пик процесорите работят стандартно до +5V. което прави автоматично АЦП измерванията в стандартен размах за цялата електроника, автоматизация и други приложения за управление на хардуер на ниско ниво. И още също толкова важно, е че всички GPIO пинове работят на +3V3 волта, след като захранването ти е на +3V3 волта.
СВЪРЗВАНЕ КЪМ СИСТЕМИ, КОИТО СА НА ДРУГО НАПРЕЖЕНИЕ, НАЙ-ЧЕСТО НА +5V : когато се налага да свържете есп32 или друга хардуерна платформа, която работи на +3V3 към система, която работи на +5V се налага да направите първо няколко допълнителни стабилизатора във захранването, както и волтови делители за всички предаващи пинове от +5V към +3V3. ако не ги направите, със сигурност ще изгорите пиновете за данни на системата захранвана на +3V3.
платката ПИКЪР ПРО БОРД няма този проблем. най-спокойно след като сте я свързали към захранването на вашата система можете да си я захраните от съществуващото захранване между +3V3 и +5V. проблемът се появява, когато имате АЦП канали и трябва да мерите във пълния размах на +5V захранващото напрежение. това се прави със един най-обикновен делител със два резистора от един килоом и два килоома свързани последователно. на резистора един килоом подавате входящият сигнал от +5V, резистора от двата килоома запоявате към маса, а средната връзка между двата резистора е вашият изход за +3V3 на всички видове сигнали на познатите итнтерфейси. ето и една лесна схема от текстови символи във този файл :
вход на сигнала
+5V ---|==1k==|-----0----|==2k==|-----|GND
|
|
|----- изход +3V3
към на същият сигнал със намален волтаж към другата система
ВТОРО : софтуерно обезпечение на всички хардуерни модули на процесора, както и на свързаната към него външна периферия /чипове/ със стандартните протоколи за обмен на информация между процесора и чиповете, като:
хардуерни 2 бр./ софтуерни SPI интерфейси и протоколи,
хардуерни 2 бр./ софтуерни I2C интерфейси и протоколи,
серийна комуникация RS232 - 2бр. както и UART, RS-485 съвместими със настройка за пълна поддръжка на всички възможни опции на хардуера директно в регистрите на процесора.
ТРЕТО : настройка на всички възможни изходи и входове на пин по желание със регистъра за PPS peripherial pin select register за всеки хардуерен модул вътре в процесора, като за външните софтуерни протоколи и интерфейси настройката на GPIO пиновете е директно във регистрите за GPIO портовете.
ЧЕТВЪРТО : захранването на целият цифров модул заедно със свързаните към процесора чипове е изцяло на +5V, като това се прави само със един стабилизатор за цялата система. ако не се налага употреба на други стабилизатори за по-ниско напрежение, цялата цифрова част ще си работи стабилно на една и съща захранваща верига. когато имате чипове със работно напрежение по-ниско от +5V, можете да използвате същото захранване от +5V за да намалите със стабилизатор за +3V3 или по-ниско. повечето от тези стабилизатори за по-ниско напрежение от +5V НЕ МОГАТ ДА СЕ ЗАХРАНВАТ ДИРЕКТНО ОТ +9V, +12V или друго напрежение. направени са входящото им напрежение да е НЕ ПОВЕЧЕ от +5V, за да се постигне примерно +3V3, +1V7 и други.
ПЕТО: крайните товари като релета например, които могат да бъдат захранвани на същото напрежение +5V не изискват никакви допълнителни драйвери /ULN2803/ или мосфет транзистори или други схеми за задействие. релетата на +5V се управляват директно от пиновете на процесора, защото всеки от пиновете на процесора е със товароносимост 0,5А или половин ампер. има си вградена защита от диоди за късо съединение, която аз съм изтествал и работи И НЕ ИЗГАРЯ ПИНА. платките стават прегледни, подредени, лесни за четене, разбиране, ремонт, поддръжка и обучение на персонала на обекта, в който ще се ползват.
ШЕСТО : настройка на таймерите /3бр x 8-bit и 4бр x 16-bit/ на процесора за приложения с по-сериозен характер, като пулс модулация PWM, генериране на точни честоти на изходящи пинове за синхронизация на външни хардуерни схеми, компараторни системи за сравняване на напрежения, токове, честотни ленти, входящи изходящи честоти, измерване на обороти, мощности и какво ли още не. изключително финна настройка на таймерите като входящите параметри на сигналите могат да бъдат подавани директно на пиновете на процесора измервани и съхранявани в рам / еепром / флаш / паметта, от където да се преработят и да се подадат като изходни във друг вид на друг хардуерен модул на процесора със други финни настройки.
СЕДМО : пълен софтуерен контрол от страна на потребителя към всички хардуерни регистри на всички модули на процесора. пдф описанието на процесора е доста подробна информация за всички регистри, до които програмиста има достъп без проблеми. името на регистъра, името на подгрупата или бита, който ти трябва, стойността, която искаш, точка и запетая. процесора ще изпълни дадената команда без да се интересува защо таймера ти е със честота 1 HZ, пък ти искаш 100 HZ :) да си гледал ко пишеш във кода.
пример : T2CONbits.TMR2ON = 1; ще стартира таймер 2 със настройките, които сте дали при инициализация. ако не сте дали настройки ще се стартира със стандартни предварително направени директно във хардуера на процесора.
пример : if ( PIR4bits.TMR2IF )
{ PIR4bits.TMR2IF = 0;
=== your code here ===
}
проверка на флага за прекъсване и нулиране на флага на таймера, като следва обработването на прекъсването за този таймер. в една функция за прекъсване може да имате няколко различни функции за обработка на прекъсванията от различни хардуерни модули, както външни така и от самите на процесора.
ОСМО : прекъсвания с избор за обработка за висок или нисък приоритет. това е доста удобно за приложения, в които има различни употреби на хардуер при положение, че в протичането /обработката/ на даден процес, процесора трябва да е наясно кое прекъсване е важно и кое не КОГАТО Е ПОЛУЧЕНО ПО ВРЕМЕ НА ИЗПЪЛНЕНИЕ НА ПРОЦЕСА !!!!
пример : ако във момента на падане на ножа на гилотината се получи прекъсване за команда от серийния порт и това прекъсване НЕ Е ОПИСАНО КАТО НИСЪК ПРИОРИТЕТ !!! ще отрежете на някой ръцете. в този случай БУТОНА СТОП СЪС ПРЕКЪСВАНЕТО ПРИ ПРОМЯНА /interrupt of change/ трябва да е СЪС ВИСОК ПРИОРИТЕТ за да може процесора да знае, че натискането на бутона ВЕДНАГА ДА СПРЕ НОЖА ДА ПАДА !!!! иначе програмиста отива при бай Ставри, южното крило, човека е строг, но справедлив.