Здр, на всички които искат да научат за електрониката и програмирането. Нашият първи урок ще започне със събирането на информация за това как да изберем процесор, какви характеристики са важни на различните процесори, кои са най важните параметри на процесорите за даденото приложение и как да определим схемното решение за избрания от нас процесор.
Първо начертаваме схемата. Нашата първа схема ще започне със един процесор и един светодиод, както започнахме и със TTL примерите и уроците в електрониката. Направете разликата че схемата в която ще изпробваме софтуера И схемата която ще бъде за конкретната печатна платка се различават доста по състав на елементната база, както и по някои стойности на пасивните елементи като – резистори, кондензатори, диоди, светодиоди, транзистори, други TTL интегрални схеми, куплунзи за авързване на кабелите към платката и други елементи.
За всички примери в нашите уроци ще изберем сравнително нов процесор с име PIC 16F1827. Това е процесор от добре известна серия на микрочип, който е последно разработен с изчистени грешки във архитектурата на кристала в последните версии. Моите колеги програмисти и хардуерни проектанти и спеициалисти използват този процесор за много приложения, като последното от тях е отоплителните печки за автомобили. Печката е изцяло наша разработка със модул за блутут връзка, приложение за всички android телефони, с меню за много настройки и напълно съвместима печатна платка със оригиналната на webasto thermotop. Процесорът притежава всички необходими архитектурни модули за всички вас начинаещите в електрониката. Вашите приложения в практиката могат да бъдат от светването на един светодиод до сложни като комуникация между процесорните платки на разстояние до 500 метра. Процесорът притежава достатъчна скорост, рам памет и периферни модули, които ще са необходими за вашите конкретни продукти в електрониката след като се научите да програмирате различните архитектурни и периферни блокове на езика С.
Как да намерим информация за даденият процесор който ни интересува ?
Отговор на въпроса : ИНТЕРНЕТ :)
След като знаем номера на процесора – 16F1827, направо го написваме в търсачките. Резултата ще бъде следният:

 

Както забелязвате веднага излизат линковете на микрочип със файл *.PDF със пълното описание на процесора, както и линк към продуктовата страница на сайта на микрочип.
На следващата картинка съм отбелязал кои са важните линкове които ще дадат информация за избраният от нас процесор.
Линковете на гугъл ИЗОБРАЖЕНИЯ ще ви покаже реални схемни решения на хора от цял свят направили проекти и продукти с този процесор.
Линка за *.PDF файла с описанието съдържа информация за цялата серия на процесора, като се започне от първият създаден в тази серия и се стигне до 16F1827. Последният от серията процесор е 16F1847, като разликата между двата можете да се опитате да откриете сами във *.pdf файла със описанието. Предишните процесори преди 6F1827 са описани в таблица в PDF файла, разгледайте го внимателно и вижте какви са разликите в параметрите на процесорите.

Ще покажем и снимка от продуктовата страница от сайта на микрочип за да се види кои са интересните линкове и данни както за този така и за цялата серия процесори.
На първата снимка са показани основните параметри на процесора със малко обяснения за основните функции и периферни модули. Разгледайте най-горе в дясно със стрелките различните видове корпуси в които се произвежда този процесор. Различните корпуси определят видъ и разположението на елементите върху печатната платка, но процесора и неговите функции не се различават. За тези процесори които имат различни пинове, добавени функции и регистри в различните корпуси, производителите са дали допълнителни обяснения в пълното описание на функциите на процесора. Четете внимателно печелите обезателно.
Различните функции в краткото показано описание на процесора са за информация дали този процесор е достатъно бърз и мощен за вашето приложение, което сте решили да реализирате. Описание на основните функции ще дадем по надолу след показаната картинка.


 

Такааа, да дадем малко разяснения за всичко което пише на тази картинка.
1.     Program memory type – flash – това е типът на паметта в която програмистите ще запишат своите програми във вид на компилиран софтуер – формат *.HEX файл чрез някой от програматорите които могат да програмират този процесор – PICKIT2/оригинал/, PICKIT3, нашият PICKIT 2, разработка и реализация на нашият екип, линк на сайта www.karadev.net, има различни програматори като БРЕНЕР и други които могат да програмират както памети така и някои PIC процесори, има и китайски варианти на PICKIT2, PICKIT3 които също поддържат голям списък със процесори които могат да бъдат програмирани. FLASH паметта може да бъде използвана много кратно, като това няма да навреди на работата на процесора, колкото и да триете изаписвате наново все по нова версия на вашият софтуер. Циклите триене/запис за пик процесорите са над 100 000 /сто хиляди/ цикъла триене запис, така че спокойно може да си триете и записвате вашият *.HEX файл със новата програма.

2.     Flash memory KB – този параметър показва размера на флаш паметта и до колко компилиран сорс код може да се събере във вашият процесор. Компилираният сорс код във вид на шестнайсетичен *.HEX файл ще бъде първо записан в тази памет, а след това прочетен и изпълнен ред по ред от процесора. Всъщност процесора се използва като един стандартен плейър на сорс код или наречен още софтуер, който софтуер вие сте написали коректно, правилно и разбираемо на езика за програмиране С. Ако вашият софтуер е написан правилно и без грешки процесорът ще изпълни всички команди и ще свърши тази работа във проекта за които сте го избрали. Приложението на процесорното управление може да бъде във всички сфери на електрониката, така че само вие си решавате какво да прави вашата схема, с кой процесор и как да свърши вашата задача. Има достатъчно памет за софтуера за почти всички средно големи задачи, а също така процесора предлага и достатъчно скорост и мощност за сложни изчисления и показване на резултатите върху различни видове дисплеи, индикатори, връзка с компютърни програми и лаптопи, както и на android съсвметимите телефони.

3.     CPU speed / MIPS / - съкращението MIPS означава – million instructions per second – милиона инструкции за секунда. Това определя с каква скорост процесора ще изпълни вашите команди в програмата която сте заредили във флаш паметта. Процесора който сме избрали 16F1827 има скорост – 8MIPS – или това са 8 милиона инструкции за секунда. Това е доста голяма скорост като се има предвид че приложенията за които ще го използваме не натоварват процесора изобщо. С тази скорост може да се съобразявате когато използвате процесора за сложни изчисления от математиката вкарани под формата на формули и уравнения, системи и други математически изрази. Резултатът от изчисленията имайте предвид че трябва да бъде показан на някакъв индикаторен изход тип – дисплей, числови / седем сегментни / индикатори или да бъде изпратен към компютърна програма която в удобен вид за операторите да показва резултатите от работата на процесора. За повече информация може да потърсите в нета как и какво означава MIPS и как се използва за определяне на скоростта и  мощността на даде процесор.

4.     RAM Bytes – това съкращение може би е познато на повечето специалисти е компютърната техника. Това са броя на клеките рам памет които има процесора в архитектурата си. Както виждате паметта тук не е в КИЛОбайти, МЕГАбайти или ГИГАбайти. Размера на рам памета е във БАЙТ. Това означава че този процесор има 384 клетки 8 битови за изпълнение на командите от вашата програма. Ако се питате дали са достатъчно, да, достатъчно са, защото както ще видим по късно, във софтуера за програмирането на вашите приложения има индикатор който показва колко процента от рам паметта и флаш паметта се използва във всеки един момент от написването на софтуера за дадено приложение. Един пример : имате 384 клетки от по 8 бита всяка за изпълнение на вашата програма. Опитайте се да си представите че имате 384 работника които имат способността да смятат със двоични калкулатори във всяка една секунда с голяма скорост. Това означава че всеки един от работниците във всяка една секунда може да получи някаква данна да я сметне със друга данна във двоичен вид и да върне резултата пак във двоичен вид. Всички работят едновременно, 384 работника са доста голяма бригада. Има процесори на който завода прозиводител е заложил в архитектурата 4096 клетки или това са 4 килобайта рам памет, има и процесори които работят и със мегабайти рам памет, в зависимост от това за какво приложение се използва процесора. За пример може да вземете инфо за процесора 18F4620. Също доста употребяван в нашата група, използван за управлението на голям брой релейни системи, управлние на процеси през интернет, GSM модули, светодиодното табло което може да видите на сайта също работи с този процесор.

5.     Data EEPROM (bytes) – тази памет е вградена в процесора памет за данни, която процесора може да използва за съхранение на текуща информация по време на изпълнение на програмата. Примерно, имате няколко променливи или масив от данни който сте записали в тази памет чрез основната програма на процесора. Този масив и/или други променливи и данни могат по всяко време да бъдат променяни, записвани, изтривани, редактирани от програмата на процесора. Основната функция на тази памет е, че когато отпадне захранването данните са записани във паметта и при следващо пускане на процесора отново можете да ги обработвате. За разлика от рам паметта, еепром паметта запазва всички данни които са се записали по време на изпънение на главната програма. Особенност за разлика от флаш паметта където записваме самата /код за изпълнение/ програма, еепром паметта е достъпна за четене и запис по всяко време когато процесора изпълнява командите си и може да запомни данните след изключване на захранването. Флаш паметта където записваме компилирания програмен код изпълнява програмата, която може да чете и записва във еепром паметта по всяко време до отпадане на захранването. Опитайте се да систематизирате видовете памет със тяхните предназначения във работата на процесора. Коя как помни или не помни данните, коя как може да бъде четена записана и коя как ще запомни инфото след като е изключен процесора.

6.     Digital Communication Peripherals – цифрови комуникационни периферни портове – това са видове комуникационни стандарти вградени в процесора чрез които можете да свържете вашите електронни контролери да приемат и предават информация към други процесорни системи, компютри, лаптопи и интернет мрежи в реално време.
Малко разяснения по видовете комуникационни портове в процесора и тяхният брой за този процесор
1-UART –  www.en.wikipedia.org/wiki/Universal_asynchronous_receiver/transmitter
1-A/E/USART – http://www.microchip.com/forums/m490904.aspx
2-SPI – https://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus
2-I2C2 – https://en.wikipedia.org/wiki/I%C2%B2C
MSSP(SPI/I2C) – https://en.wikipedia.org/wiki/Synchronous_Serial_Port
Пълният текст на значението на тези съкращения може да намерите във описанието на процеосра, както и в нета стига да търсите достатъчно добре.
Процесорът има вградени няколко порта, сериен порт със няколко допълнителни екстри, синхронен и асинхронен сериен порт със различни скорости на обмен на информацията, сериен периферен порт за обмен на информация между различни чипове от и към процесора директно. I²C (Inter-Integrated Circuit) – чете се И2Ц шина, която също се използва за обмен на данни между чипове и други модули директно към и от процесора.
MSSP порт – Master Synchronous Serial Port (SSP) – главен синхронен сериен порт е допълнителен сериен порт за обмен на данни между процесора и външния свят.
 
Capture/Compare/PWM Peripherals –
http://microchip.wikidot.com/8bit:ccp -  
PWM - http://microchip.wikidot.com/pwr3101:pwm-peripheral
ADC – аналогов-цифров конвертор - https://en.wikipedia.org/wiki/Analog-to-digital_converter портове в процесора чрез които аналоговите сигнали могат да се превърнат във цифрови стойности за последваща процесорна обработка и изпращане към съответно следващо звено.
Comparators – компаратори – компараторите са аналогови входове за сравняване на две или повече аналогови входни стойности и след логическо сравнение и обработка процеора може да вземе решение да изпълни съответната команда.
Temperature Range (C) – работа на процесора във обхват от теператури измерени в градуси.
Operating Voltage Range (V)  - работно напрежение на процесора
Pin Count – брой на пиновете на корпуса на процесора, във описанието на съответния процесор можете да видите и другите корпуси с колко общо пина се произвежда и кои и колко от тях са захранващи, входно изходни и друга информация. Това е важно защото процесорите не са безкрайни на пинове, напротив, всеки корпус на даден процесор има точно определен брой пинове, от които определен брой захранващи, входно/изходни, спецални, и/или неползваеми.
 
Cap Touch Channels - http://www.microchip.com/design-centers/touch-input-sensing/proximity-keys-and-sliders/technology/capacitive-touch  - това са сензорни бутони за директна употреба.


стигнахме до инфомацията с линковете за сваляне на файлове *.PDF с различни по вид информации за приложенията на процесора 16F1827.

DOCUMENTATION
Първита линк който виждате е файлът който съдържа пълното описание на функците на процесора. Файлът както и всички останали са във формат *.PDF като за да ги прочетете ще ви трябват прогрми като Adobe Reader или Foxit PDF Reader, която използвам аз и е много добра за разлика от адобе рийдър.
След като свалите файла обърнете внимание че името на файла не е със името на процесора. Можете да си го преименувате за да знаете какво съдържа този файл.
 
ERRATA
Файлът със грешките съдържа информация за това кои модули на процесора има допуснати грешки и как евентулано можете да се справите с тях по време на програмирането. Също така може да съдържа и описание на промени на съдържанието на файла със основното описание, къде са били допуснати синктатични грешки в даден код, текст в описание на регистри и/или други текстови и графични и таблични аномалии. Файлът със грешките е важен защото показва във кои от следващите версии на кристала на процесора има изчистени хардуерни и софтуерни грешки, за да знаете като си купите процесора с коя версия на кристала е той. Датата след всеки файл показва кога за последно е бил редактиран файла. Това показва че върху файловете с по близка дата до сегашната дадени файлове са били прегледани и редактирани с цел подобряване на качеството на описанието на процесора, както и качеството на архитектурата на кристала с който е ппроцесора в момента.
В линковете в по долните категории може да намерите допълнителна информация за подобни процесори от същата и/или друга фамилия или серия които се доближават по параметри до представения. Има информация за различни тесвани приложения на дадения процесор описани със схема и може би и малко сорс код на асемблер. В някои от по новите файлове може да намерите сорс код на С/С++ който са добавки към развойната среда MPLAB IDE за програмиране на PIC процесорите.