PSoC - procesorius + FPGA

07/08/2013 17:55

    2013-08-04 pradėjau "Active Games IP" (Erasmus aktyviūjų žaidimų intensyviųjų studijų programą ->  INFO čia ) kuri tesis 3 savaites ir kurių eigoje gausiu 10 studijų kreditų.

    Bet nekrypstant į lankas - šis straipsnis yra apie PSoC (Programmable System-on-Chip). Iš Frankfurto bei Helsinkio studentų bei dėstytojų sužinojau, kad jie studijų metu PSoC turėjo kaip dėstomą discipliną, o kai kurie ją tebenaudoja savo projektams. Taigi kas tas PSoC iš tikrūjų yra?

    PSoC - mikrovaldiklis (mikroprocesorius nuo 4 PSoC versijos) kuris dar kartu turi ir lauku programuojamą matricą (FPGA), taigi tame pačiame čipe yra galimybė turėti ADC, DAC, komparatorių, laikrodį ir kitas funkcijas. Visi "įrenginiai" į FPGA įrašomi naudojant "PSoC Creator" ir naudojant Drag-N-Drop funkciją. Taigi papraščiau tariant su PSoC tu gauni  ARM-Cortex procesorių ir galimybę kietąją dalį (harware) užsiprogramuoti kaip tik nori naudojant specialią programą (software).

    Palyginus PIC arba Atmel šeimos mikrovaldiklius - ten gauni galimybę pasirinkti vieną iš kelių (2-4) galimų port'o ar pin'o galimybių naudojant registrus ir viskas. O PSoC atveju tu gali tas funkcijas užsiprogramuoti (PSoC 5 atveju) arba "mixed-signal arrays" pagalba pasirinkti iš kelių jau idiegtų ir pats pajungti ant kurios tik nori kojos. Žinoma yra limitas "blokų" kuriuos gali naudoti toms funkcijoms sukurti. 4 kartos PSoC berods tų blokų turėjo 8, pirmos kartos - 4.

    Šiek tiek painoka yra tarp PSoC versijų, nes vienos versijos teturi tik programuojamus kondensatorių masyvus, kurių pagalba vienas ar kitas funkcines dalis galima pajungti prie pasirinktos kojos, o kiti turi FPGA. Jei kas norėsite galėsite visą tai išsiaiškinti jų oficialiame tinklapyje. (Nuoroda pabaigoje).

    Prieš išgirstant apie PSoC aš jau žinojau apie FPGA. Ir turiu pripažinti FPGA galimybės mane ganėtinai žavėjo. Tarkime pasirašius VHDL kalba pilną procesoriaus loginių elementų ir jų grandinių aprašą yra galimybė šį kodą surašyti į FPGA ir turėti fizinį procesorių, kuris turės fizinius tavo aprašytus komponentus. O štai čia atsiranta Cypress gaminys kuris turi procesorių ir dar papildomai FPGA, kas žymiai praplečia vartotojo galimybes bei įrenginio funkcionalumą - universalumą. 

    Labai nustebau ir todėl, kad gana dažnai naršydamas internete ir sekdamas naujienas technologijų pasaulyje aš niekada negirdėjau apie PSoC. Apie  RaspberryPI, BeagleBone, Arduino buvo girdima gana dažnai, tačiau ne apie PSoC.

    Pats PSoC procesorius su įsiūtu FPGA kainuoja apie 35 USD, tačiau visa maketinė plokštė (development board) kainuoja apie 100 USD. Taigi kaina tikrai ne visiem paranki, tačiau su šia plokšte tu gauni tiek patį PSoC tiek programatorių (ISP) tiek kelis LED, talpinius jutiklius ir kitas smulkmenas, kurios gali vienaip ar kitaip praversti.

    Kalbant apie trūkumus: į FPGA irašyta "geležis" iš tikrūjų ne visada veikia, dažniausiai dėl programuotojo pusės, bet nutinka ir vidinių klaidų. Bei prastas panaudojimas masinėje produkcijoje. Tai puikus įrankis pasižaidimui, ypač patogus mokantis programuoti mikrovaldiklius, bet masinėje gamyboje per sudėtingas ar sakykim per prašmatnus ir per brangus. Tačiau per daug nenustebkite jei išardę kokią kompiuterinę pelę visgi rasite kurią nors PSoC mikroschemą.

    Taigi tiek apie PSoC. Norintiems sužinoti daugiau nuorodos ir video apačioje:

https://www.cypress.com/?id=1573

https://en.wikipedia.org/wiki/PSoC#PSoC_software