(5 op) Luento 3, osa 2 PSoC (yksityiskohtaisempi esittely / JM) Alkuluennolta: Programmable System-on-Chip (PSoC) Ohjelmoitava järjestelmä vain yhdellä mikropiirillä PSoC 1,3,4,5LP 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ö & joustavuus 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 hardista & softaa pienessä koossa 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; lisäksi 6 tulossa pian 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 PSoC-lähtötaso (tässä lähinnä esimerkkinä) 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 esimerkkejä mahdollisuuksista 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 suunnittelu Tavallisten sidottujen resurssien sijaan PSoC sisältää siis laajan valittavuuden => valinnat, suunnittelu ja ohjelmointi tehdään IDE:n eli integroidun kehitysympäristösoftan avulla kuten yleensä PSoC Designer -kuvakaappaus tulee pari kalvoa tästä eteenpäin Piirin työtila tarjoaa graafisen piirikaaviokuvan ja mahdollisuuden siirtää käyttäjämoduuleja, konfiguroinnissa klikkailla asetuksia ja valintoja, tehdä vetojen routtaus jne. (myös autoroute) Varsin vapaa liitäntöjen valinta IC:n portteihin ja pinneihin on etu Resurssien käytön määrittely on suoraviivaista IDE:n 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 (sis. mm. komponentin API-funktiot eli softaohjaus) Löytyy myös malliprojekteja jne. 7 PSoC suunnittelu (jatko) Projektin tiedostoille ym. on explorer tuttuun tapaan, pääkoodi on main.c:ssä (C-kieli, varsin sama asia kuin esim. Arduinon IDE:ssä) Moduuleille pitää yleensä lisätä alkuun käynnistyskäsky eli toiminnan alustus (=> koodissa: Start_Component1(); jne.) Käyttäjämoodulien konfiguraatiotiedostot on ensin 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 Hardis -osuuden automaattinen raporttigenerointi ( project datasheet ; ainakin Creator IDE:ssä; PSoC 3 5LP)!!! 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-5LP) ovat mielenkiintoisempia samoihin tai edistyneempiin sovelluksiin Uusimmissa on 32-bittisen CPU:n lisäksi tarjolla mm. muistioperaatioihin DMA ja kosketusohjausta varten CapSense PSoC 3-5LP toteutukset suunnitellaan siis Creator-IDE:llä samaan tapaan (tai oikeastaan helpommin) kuin PSoC 1 Designer-IDE:llä Vierailu Cypressin netissä (www.cypress.com) ja erilaiset koepiirit nimillä development kit, prototyping board yms. ovat alku asiaan Kokeilulevyjä ovat 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 PSoC Creator on pajalla (@ 4 kpl W7/10 -PC) 10 Mm. näitä on, suosittelen! (JM)