(5 op) Luento 3, osa 2 PSoC (yksityiskohtaisempi esittely)
1. luennolta: Programmable System-on-Chip (PSoC) Ohjelmoitava järjestelmä vain yhdellä mikropiirillä PSoC 1,3,4,5 eri suoritustasoja Tietoa: www.cypress.com ja PSoC PSoC vs. Arduino pro vs. hobby Laajat resurssit, soveltuvuus, muunneltavuus, ulkoisten lisäkomponenttien pienentynyt tarve Mikrokontrolleri & lisäksi ohjelmallisesti määriteltäviä (ja myös muunneltavia) analogia-, digitaali-, suodatin-, liitäntä- ja yhteyslohkoja jne. Piirien yleispätevien GPIO-liitäntöjen vapaa valinnainen käyttö ja kytkentä Pätevä IDE & helppo ohjelmointi 2
PSoC-konsepti Teollisuudessa, yrityselämässä jne. aika on rahaa, joten pätevät resurssit ja niiden tehokas käyttö ovat avainasemassa menestyksessä Tähän tarpeeseen yksi vastausidea elektroniikan toteutusta varten on PSoC Ohjelmoitava järjestelmä on toteutettavissa varsin kattavasti yhdelle integroidulle piirille Mukana rauta ja softa Pääasiallinen sovellusalue on sulautetuissa järjestelmissä ( embedded systems ) - mutta ei rajoitu näihin Taustaa: PSoC-konseptin tarjoaja on Cypress, Number 1 -tason pitkäaikainen toimija maailmassa PSoC:in lisäksi paljon muuta, mm. muisteja 3
PSoC-versiot PSoC-versioiden perustaso on PSoC 1 Jo selvästi yli esim. perus-arduinon tason Ohjelmointi PSoC Designer-IDE:n avulla Kehittyneemmät versiot ovat tällä hetkellä PSoC 3, 4 ja 5LP Enemmän resursseja kuin perustasossa Ohjelmointi PSoC Creator-IDE:n avulla Lisäksi on Bluetooth-toiminnallisuuden sisältäviä piirejä kuten PSoC BLE ja PRoC BLE PRoC = Programmable Radio-on-Chip Bluetooth Low Energy => nykyään hyvin yleiset Bluetooth Smart -standardin mukaiset lyhyen etäisyyden radioyhteydet Mahdollisuuksina esim. yhteydet ja sovellukset älypuhelimiin, tabletteihin 4
PSoC 1 eli lähtötaso Osat 1-4 (kuva): PSoC-ydin, digitaali- ja analogiaresurssit, järjestelmäresurssit 8-bittinen prosessori M8C (Cypressin oma) Digitaaliset lohkot basic & communications => PWM, UART, laskurit, logiikkaa, ym. Analogiset lohkot continuous time & switched capacitor => operaatiovahv., sääd. vahv., ADC, DAC, suodatin, komparaattori, modulaattori jne. Kaikki käyttöön moduuleina http://www.cypress.com/documentation/application-notes/an75320-getting-started-psoc-1 5
PSoC 1 mahdollisuuksia Tavanomaiset toiminnot kaikki mahdollisia (kuten esim. Arduinossa), mutta vapaasti ja/tai laajemmin määriteltävissä & liitettävissä I/O-linjoihin Oskillaattori (kellotus) 24 MHz:iin asti, sisäisesti tai ulkoisesta piiristä MAC, Multiply-Accumulate lohko => lukujen nopea kertominen ja summaus (siis ilman hidasta softapohjaista laskentaa) Erillinen I 2 C-lohko yhteyksiä varten ja digitaalilohkot tukevat mm. UART-, SPI-, IrDa-, OneWire yhteyksiä, myös USB SMP, Switched Mode Pump => ainoastaan kolme ulkoista komponenttia tarpeen käyttöjännitteen ottoon esim. 1,5 V:n paristosta (tälle on myös softatukea) 6
PSoC 1 suunnittelu Tavallisten sidottujen resurssien sijaan PSoC sisältää siis laajan valittavuuden => valinnat, suunnittelu ja ohjelmointi tehdään IDE:n eli kehitysympäristösoftan avulla kuten yleensä (kuva seuraavalla kalvolla) Piirin työtila tarjoaa graafisen piirikaaviokuvan ja mahdollisuuden siirtää käyttäjämoduuleja, klikkailla asetuksia ja valintoja, tehdä vetojen routtaus jne. (myös autoroute) Resurssien käytön määrittely on suoraviivaista PSoC Designerin käyttäjämoduulivalikon ja asetusikkunoiden avulla Käyttäjämoduuli komponentti, valmis toiminnallinen lohko Lohkoille löytyy myös aina laajasti avustava ja mallia antava IDE:ssä avattava datasheet 7
PSoC 1 suunnittelu (jatko) Projektin tiedostoille on explorer tuttuun tapaan, pääkoodi on main.c:ssä (C-kieli, varsin samanlaista kuin esim. Arduinon IDE:ssä) Moduuleille pitää yleensä lisätä alkuun käynnistyskäsky eli toiminnan alustus Käyttäjämoodulien konfiguraatiotiedostot on generoitava => kyseessä on vain ko. toiminnon valinta menusta, samoin kuin projektin kääntämisen build ja ohjelmoinnin program Ohjelmointiin voi käyttää erillistä ohjelmoijaa tai suoraan demolevyjen USB-liitäntää (ohjelmoijapiiri tai boot loader on mukana levyllä/piirissä) Jos on joskus käyttänyt jotain pätevää integroitua kehitysympäristöä, niin tämä IDE vaikuttanee pääosin hyvin samanlaiselta Esim. Arduinon yhteydessä voi olla jopa enemmän vain C- koodausta 8
PSoC 1 => PSoC Designer -työtila pääkoodi (main.c) projektin piirin työtila käyttäjämoduulivalikko ( komponentit ) 9
PSoC:issa alkuun ja eteenpäin Perustason PSoC 1 käy moneen asiaan, mutta uudemmat (PSoC 3-5) ovat mielenkiintoisia samoihin tai edistyneempiin sovelluksiin Uusimmissa on 32-bittisen CPU:n lisäksi tarjolla mm. muistioperaatioihin DMA ja kosketusohjausta varten CapSense PSoC 3-5 toteutukset suunnitellaan siis Creator-IDE:llä suunnilleen samaan tapaan kuin PSoC 1 Designer-IDE:llä Erilaiset koepiirit ( development kit yms.) ovat tässäkin helpoin alku asiaan niitä saa useista lähteistä Esimerkiksi: https://www.element14.com/community/docs/ DOC-65500/l/psoc-1-low-power-kit-based-oncy8c24x93-mcu http://fi.farnell.com/cypress- semiconductor/cy8ckit-059/dev-board-psoc-5- prototyping/dp/2476010 10