PSoC Programmable System-on-Chip · 3 werden neben den Datenblättern für die einzelnen Bausteine...

7
1 Eierlegende Wollmilchsau? Mikrocontroller sind in fast jedem mo- dernen Gerät zu finden. Sie steuern, regeln, erfassen Eingaben und sind für eine über- sichtliche Ausgabe der Ergebnisse verant- wortlich. Obwohl die meisten Mikrocont- roller bereits über interne digitale Kompo- nenten (Timer, Zähler usw.) verfügen, sind für ein funktionierendes System noch wei- tere externe Beschaltungen wie z. B. Ope- rationsverstärker, Komparatoren, Filter, A/D-Wandler, D/A-Wandler etc. erforder- lich. Ein solches System weist schon einen hohen Grad an Flexibilität auf, der jedoch in einer vorhandenen Schaltung durch die externe Beschaltung des Mikrocontrollers begrenzt wird. Was wäre, wenn diese Fle- xibilität noch weiter gehen würde und pro- grammierbare digitale und analoge Peri- pheriekomponenten neben dem Mikro- controller in einem Chip integriert wären? Man hätte ein komplettes System auf ei- nem Chip und könnte die externe Beschal- tung auf das Nötigste, z. B. platzmäßig nicht zu integrierende Kondensatoren oder Bedien- und Einstellelemente, minimieren. Ein solches System hat Cypress Micro- systems mit seiner PSoC TM -Familie bereits vor einiger Zeit auf den Markt gebracht. PSoC Programmable System-on-Chip Die PSoC™-Familie von Cypress Microsystems ist an Flexibilität und Einsatzbreite kaum zu überbieten, befindet sich doch hier ein komplettes System auf einem Chip. Neben einem leistungsfähigen Prozessor und den allgemein aus Mikrocontroller- Konfigurationen bekannten Peripherie-Komponenten wie Watchdog-Timer und Oszillator bietet der PSoC™-Baustein programmierbare analoge und digitale Schaltungsblöcke, so dass der Elektronik-Entwickler hier individuelle A/D-Wandler, Filter usw. erstellen kann. Unser Artikel beschreibt den Aufbau und die Möglichkeiten eines PSoC™-Bausteins und einen Leitfaden zum ersten kleinen Projekt. Tabelle 1: Übersicht der wichtigsten vorhandenen Module Digitale Module Analoge Module • Timer 8, 16, 24, 32 Bit • Verstärker • Counter 8, 16, 24, 32 Bit • Komparatoren • PWM 8, 16 Bit • Analog-Digital-Wandler •I 2 C Master und Slave • Digital-Analog-Wandler • SPI Master und Slave • Filter • Full Duplex UART • DTMF-Tonerzeugung • IrDA-Empfänger und -Sender • CRC-Generator PC-Technik

Transcript of PSoC Programmable System-on-Chip · 3 werden neben den Datenblättern für die einzelnen Bausteine...

1

Eierlegende Wollmilchsau?

Mikrocontroller sind in fast jedem mo-dernen Gerät zu finden. Sie steuern, regeln,erfassen Eingaben und sind für eine über-sichtliche Ausgabe der Ergebnisse verant-wortlich. Obwohl die meisten Mikrocont-roller bereits über interne digitale Kompo-nenten (Timer, Zähler usw.) verfügen, sindfür ein funktionierendes System noch wei-tere externe Beschaltungen wie z. B. Ope-rationsverstärker, Komparatoren, Filter,A/D-Wandler, D/A-Wandler etc. erforder-lich. Ein solches System weist schon einenhohen Grad an Flexibilität auf, der jedochin einer vorhandenen Schaltung durch dieexterne Beschaltung des Mikrocontrollersbegrenzt wird. Was wäre, wenn diese Fle-

xibilität noch weiter gehen würde und pro-grammierbare digitale und analoge Peri-pheriekomponenten neben dem Mikro-controller in einem Chip integriert wären?Man hätte ein komplettes System auf ei-nem Chip und könnte die externe Beschal-

tung auf das Nötigste, z. B. platzmäßignicht zu integrierende Kondensatoren oderBedien- und Einstellelemente, minimieren.

Ein solches System hat Cypress Micro-systems mit seiner PSoCTM-Familie bereitsvor einiger Zeit auf den Markt gebracht.

PSoC™ –Programmable System-on-Chip

Die PSoC™-Familie von Cypress Microsystems ist an Flexibilität und Einsatzbreite kaumzu überbieten, befindet sich doch hier ein komplettes System auf einem Chip.

Neben einem leistungsfähigen Prozessor und den allgemein aus Mikrocontroller-Konfigurationen bekannten Peripherie-Komponenten wie Watchdog-Timer und Oszillatorbietet der PSoC™-Baustein programmierbare analoge und digitale Schaltungsblöcke, sodass der Elektronik-Entwickler hier individuelle A/D-Wandler, Filter usw. erstellen kann.Unser Artikel beschreibt den Aufbau und die Möglichkeiten eines PSoC™-Bausteins und

einen Leitfaden zum ersten kleinen Projekt.

Tabelle 1: Übersicht der wichtigsten vorhandenen Module

Digitale Module Analoge Module

• Timer 8, 16, 24, 32 Bit • Verstärker• Counter 8, 16, 24, 32 Bit • Komparatoren• PWM 8, 16 Bit • Analog-Digital-Wandler• I2C Master und Slave • Digital-Analog-Wandler• SPI Master und Slave • Filter• Full Duplex UART • DTMF-Tonerzeugung• IrDA-Empfänger und -Sender• CRC-Generator

PC-Technik

2

PC-Technik

Die Abkürzung „PSoC“ steht für „Pro-grammable System-on-Chip“ und verweistauf die Flexibilität, mit der diese Bausteineeingesetzt werden können. Neben den auseinem „normalen“ Mikrocontroller be-kannten Elementen wie Timer, UART usw.verfügt der PSoCTM-Baustein über zusätz-liche, programmierbare analoge und digi-tale Blöcke, die entsprechend der Anwen-dung individuell konfigurierbar sind. EineÜbersicht der wichtigsten vorhandenenModule zeigt Tabelle 1. Diese Module kön-nen in einem grafischen Editor der kosten-losen Entwicklungsumgebung „PSoCTM-Designer“ (siehe Abbildung 1) per „drag &drop“ einfach ausgewählt und auf denentsprechenden Blöcken abgelegt werden.Hierbei kann man die Ein- und Ausgängedes gewählten Moduls einfach in der Ansichtmit den gewünschten Pins des PSoCTM-Bausteins oder weiteren Modulen verbin-den, so dass tatsächlich ein individuellerMikrocontroller mit zusätzlichen analo-gen und digitalen Funktionen entsteht. DieRoutinen zur Verwendung bestimmterModule (z. B. Analog-Digital-Umsetzer)generiert die Entwicklungsumgebunggleich mit. So sind unterschiedlichste Kon-figurationen schnell und einfach erstellbar.Während der Laufzeit kann man per Soft-ware sogar zwischen verschiedenen Kon-figurationen umschalten, was wir an einemBeispiel betrachten wollen:

Ein Temperaturlogger soll in einem Fe-rienhaus in festgelegten Abständen dieTemperatur aufzeichnen und einmal täg-lich die erfassten Daten über ein Modem anden heimischen Rechner übertragen.

Um diese Aufgabe zu lösen, werdenzwei Konfigurationen für den PSoCTM-Baustein erstellt. Die erste besteht aus denModulen zur Aufbereitung und Messungdes Sensorsignals und ist während desgesamten Tages aktiviert. In der zweitenKonfiguration werden die Module zur

Ansteuerung für den Modembetrieb aus-gewählt und entsprechend verbunden.

Während des gesamten Tages ist Kon-figuration 1 aktiv, erfasst die Temperatur-daten und speichert sie ab. Einmal täglichwird auf Konfiguration 2 umgeschaltet unddas Modem aktiviert. Das Gerät wählt dieRufnummer des heimischen Rechners undüberträgt die gespeicherten Daten. Danachwird die erste Konfiguration wieder solange aktiviert, bis die nächste Datenüber-tragung ansteht.

Die Architektur des PSoCTM stellt demAnwender also sehr viele Möglichkeitenzur Verfügung. Der unbestrittene Vorteilist die Flexibilität, aber auch die Einspar-möglichkeit von externen Komponentensollte nicht außer Acht gelassen werden.Dies ist gerade für den Hobby-Elektro-niker sehr nützlich, da man neben der ei-gentlichen digitalen Steuerschaltung „malschnell“ einen Verstärker oder Filter „auf-bauen“ kann, auch wenn man gerade kei-nen (passenden) Operationsverstärker zurHand hat.

Der Aufbau – eine Übersicht

Das Blockschaltbild des PSoCTM-Bau-steins ist in Abbildung 2 zu sehen. Aufden ersten Blick ist zu erkennen, dass ne-ben dem leistungsfähigen 8-Bit-Prozessor(M8C-CPU) zunächst zahlreiche (digita-le) Peripheriebausteine vorhanden sind:

• bis zu 32 kB wiederprogrammierbaresFlash-ROM

• bis zu 2 kB SRAM• interner 24-MHz-Oszillator• Echtzeit-Uhr• I2C-Schnittstelle• Hardware-MultipliziererDer Clou des PSoCTM sind allerdings die

programmierbaren analogen und digitalenPSoCTM-Blöcke (gelb hinterlegt), mit de-nen man die bereits oben aufgezählten undviele weitere Funktionen realisieren kann.Eine Beschreibung des internen Aufbausund die genaue Funktionsweise dieserBlöcke würde den Rahmen dieses Arti-kels sprengen und kann den zahlreichenDatenblättern und „Application Notes“(siehe [1]) entnommen werden.

Die konfigurierbaren Ein-/Ausgabeportsdes PSoCTM können als Ein- oder Ausgangfür die analogen PSoCTM-Blöcke, als Ein-oder Ausgang für die digitalen PSoCTM-Blöcke oder über den Systembus als digi-tale Ports für den Prozessor dienen.

Der Einstieg

Der Einstieg in die Welt des PSoCTM

sollte für jemanden, der über etwas Erfah-rung in der Mikrocontroller-Programmie-rung verfügt, kein großes Problem darstel-len, jedoch ist eine gewisse Einarbeitungs-zeit zwingend erforderlich, um die Möglich-keiten dieses Bausteins begreifen und an-wenden zu können. Hierbei bieten die vie-len Informationen auf der PSoCTM-Home-page [1] des Herstellers eine gute Hilfe. Es

Bild 1: Modul-und Verbindungs-ansicht imPSoCTM-Designer

Bild 2: Blockschaltbild eines PSoCTM-Bausteins

3

werden neben den Datenblättern für dieeinzelnen Bausteine zahlreiche „Applica-tion Notes“ zur Verfügung gestellt. Hier-bei handelt es sich zum Teil um Beschrei-bungen einzelner wichtiger Punkte, z. B.was man beim Einstieg beachten muss(AN2010: „Getting Started with PSoC“)oder Erläuterungen zum Verständnis deranalogen Blöcke (AN2041: „Understan-ding Switched Capacitor Analog Blocks“).

Den weitaus größeren Teil bilden je-doch konkrete Anwendungsbeispiele, z. B.Bewegungsmelder oder ein Telefonlog-ger. Aus dem Studium dieser Beispieleerhält man wertvolle Informationen, diebei der Umsetzung des eigenen Projektessehr hilfreich sind.

Eine weitere effektive Informations-quelle – nicht nur für den Einstieg – ist das„PSoC Customer Forum“ [2]. In diesem

Forum sind PSoCTM-Anwender, sowohlEinsteiger als auch Profis, aus der ganzenWelt aktiv und versuchen, entsprechendeFragen zu beantworten bzw. Probleme zulösen. In den meisten Fällen ist die gestellteFrage bereits nach wenigen Stunden be-antwortet. Ein Blick in dieses Forum lohntsich auch dann, wenn man gerade keinekonkrete Frage hat, sondern sich überschon vorhandene Lösungen informierenoder Anregungen für eigene Projekte er-halten möchte.

Und schließlich bietet Cypress über denInternet-Support so genannte Tele-Trai-nings-Module an, die Schritt für Schrittden Weg zur Realisierung eines konkretenProjektes gehen. Die Erläuterung zu dendort herunterladbaren Projekten findetallerdings nach Registrierung per Tele-fon-Konferenzschaltung in den USA statt,ist für deutsche Anwender also eher kos-

tenintensiv, und sie findet zudem für unsnachts statt. Aber immerhin geben schondie Projektfiles selbst einen erstklassi-gen Einblick in die Entwicklung vonProjekten.

Das erste Projekt

Im Folgenden beschreiben wir die Er-stellung eines kleinen ersten Projekts, umden Einstieg zu erleichtern und die erstenAnfangsschwierigkeiten auf ein Minimumzu begrenzen. Hierbei soll mit geringemAufwand eine LED an Port 2.0 zum Blin-ken gebracht werden. Bevor man jedochstarten kann, muss die zugehörige Ent-wicklungsumgebung – der PSoCTM-Desig-ner – von der Homepage [1] (Sektion „Soft-ware & Drivers“) in der neusten Versionheruntergeladen und installiert werden.Danach wird die Software gestartet und einneues Projekt angelegt (File → New Pro-ject → Create New …).

In den daraufhin erscheinenden Fens-tern wählt man zunächst den Projektnamenund dann den gewünschten Mikrocontrol-

ler aus (Abbildung 3). Nachdem alle Ein-stellungen über den Button „Fertig stellen“bestätigt sind, generiert der PSoCTM-Desig-ner das Grundgerüst der Applikation undstartet darauf die Modulauswahl im „De-vice Editor“ (Abbildung 4). Links im Fens-ter sind alle verfügbaren Module aufge-listet, aufgeteilt in mehrere Gruppen. Immittleren Teil wird das Datenblatt desaktuell ausgewählten Moduls dargestellt.Es beschreibt neben den technischen An-gaben auch die Funktionsprototypen, d. h.die Befehle zur Verwendung des Moduls.In den meisten Fällen ist sogar ein kleinesBeispielprogramm („Sample Code“) auf-geführt.

Für die blinkende LED wird ein 8-Bit-Zähler benötigt, so dass man im Abschnitt„Counters“ das Modul „Counter8“ mit ei-nem Mausklick auswählt.

Im mittleren Teil ist jetzt die kompletteBeschreibung der technischen Eigenschaf-ten, der Parameter sowie der Steuerbefehle(8-Bit-Counter-API) sichtbar. Zur Über-nahme dieses Moduls in das Design klickt

Bild 3: Erstellung eines neuen Projek-tes

Bild 4: Modulaus-wahl im „DeviceEditor“

Bild 5:Verbindungsan-sicht im „DeviceEditor“

4

man mit der rechten Maustaste auf das Icon„Counter8“ und betätigt den Menüpunkt„Select“, daraufhin wird das Modul in derAnsicht „Selected User Modules“ sicht-bar. Auf der rechten Seite des Fensters – im„Resource Meter“ – erfolgt die Anzeigeder verfügbaren und der verbrauchtenRessourcen des gewählten PSoCTM-Bau-steins. Man kann hier erkennen, dass der8-Bit-Counter einen digitalen Block und67 Byte im ROM für die Ansteuerfunk-tionen belegt.

Jetzt müssen die Konfigurationen derglobalen Ressourcen und des Zählermo-duls vorgenommen werden. Hierzu schal-tet man den „Design Editor“ über denMenüpunkt „Config → Interconnect“ indie Verbindungsansicht (InterconnectView, Abbildung 5). Hier wird das Zähler-modul zunächst über den Menüpunkt „Con-fig → Place User Module“ platziert. ImAnschluss daran trägt man die erforderli-chen Konfigurationen, wie in Abbildung 6gezeigt, ein. Dabei sind im Bereich „Glo-bal Resources“ zunächst der Systemtaktund dann die Teilerwerte der drei internenTaktteiler VC1 bis VC3 festzulegen.

Bild 6: Konfiguration

Im Abschnitt „User Module Parame-ters“ konfiguriert man den Zähler so, dassder Ausgang des Teilers VC3 die Takt-quelle bildet. Der Parameter „Period“ undder Vergleichswert mit „CompareValue“bilden die Angabe des Endwertes. Ent-sprechend der Einstellung „CompareType“wird der Ausgang „CompareOut“ bei ei-nem Zählwert von kleiner oder gleich demVergleichswert auf High-, ansonsten aufLow-Pegel gesetzt. Bevor man diesenAusgang auf ein weiteres Modul bzw. aufeinen Ausgang schalten kann, ist er aufeine Zeilenleitung (hier Row_0_Output_0)zu führen („CompareOut“). Diese Leitungwird dann mit einer Leitung des Ausgangs-busses („GlobalOutput“, GOO bzw. GOE)verbunden, indem man den Ausgangsmul-tiplexer der Zeilenleitung anklickt und imdaraufhin erscheinenden Fenster (Abbil-dung 7) die Treiberstufe 0 auswählt. ZumAbschluss wird die Treiberstufe 0 mit demPortpin P 2.0 verbunden, indem PORT_2_0angeklickt und über „Select“ auf „Global-OutputEven_0“ programmiert wird. Somitist die Konfiguration des Zählerbausteinsbeendet und man kann die Applikationüber den Menüpunkt „Config → GenerateApplication“ generieren.

Dann erfolgt der Start des eigentlichenProgrammier-Editors, des „Application-Editor“ über den Menüpunkt „Config →Application Editor“ sowie der Aufruf derDatei „main.asm“. Jetzt fügt man unter derZeile „_main:“ lediglich den Befehl

call Counter8_1_Startein, und die Programmierung ist beendet.

Auf den Befehlssatz gehen wir hier nichtweiter ein, da die PSoCTM-Homepage hier-zu einige übersichtliche Dokumente zur Ver-fügung stellt (siehe [3] und [4]) und alleModulbeschreibungen mit entsprechendenProgrammierbeispielen ausgestattet sind.

Mittels der Taste „F7“ wird das Projektnun kompiliert und eine Programmdatei(hex) erzeugt, die man mit einem geeigne-ten Programmiergerät zum Test in einenPSoCTM-Baustein laden kann.

Um ein besseres Verständnis für dieVerschaltungs- und Programmiermöglich-keiten der digitalen und analogen Blöckezu erhalten, kann man nach dem erfolgrei-chen Test mit diesem Beispielprojekt et-was „spielen“. Ändern Sie einen Parame-ter und prüfen Sie die Auswirkungen! Ver-binden Sie den Ausgang des Zählers mitPort 1.5 anstatt mit Port 2.0!

Dieses Beispielprojekt zeigt den prin-zipiellen Ablauf einer auf PSoCTM basie-renden Entwicklung und bildet somit einenkleinen Einstieg, um das gesamte Konzeptder PSoCTM-Familie zu durchblicken undanzuwenden. Bis es jedoch so weit ist,muss der Anwender noch etwas Fleißar-beit investieren, die ihm aber durch denumfangreichen Herstellersupport erleich-tert und mit einem ultrakompakten Schal-tungsdesign sowie der Möglichkeit zurindividuellen Mikrocontrollerlösung ho-noriert wird.

Bild 7: Auswahl desAusgangstreibers

Internet:

[1] Cypress’ PSoC-Homepagehttp://www.cypress.com/PSoC

[2] Cypress’ PSoC Consumer Forumhttp://www.cypress.com/forums/categories.cfm?catid=3

[3] PSoCTM-Designer:Assembly Language User Guidehttp://www.cypress.com/cfuploads/pub/Assembler.book.pdf

[4] Instruction Set Quick Referencehttp://www.cypress.com/cfuploads/pub/intructions.pdf

Bequem programmieren

Die PSoC™-Bausteine der Fa. CypressMicroSystems bieten sowohl dem profes-

PC-Technik

5

sionellen Schaltungsentwickler als auchdem ambitionierten Hobby-Elektronikereine sehr große Anwendungsbandbreiteund viele Möglichkeiten zur schnellen Er-stellung einer funktionierenden Schaltungauf einem Chip.

Die Besonderheit des Cypress PSoC™stellen die konfigurierbaren Analog- undDigitalblöcke dar, mit denen der Mikro-controller um Funktionsblöcke wie Timer,Zähler, Filter, A/D-, D/A-Umsetzer usw.erweitert werden kann. Diese Eigenschaf-ten und Funktionen haben wir im erstenTeil dieses Artikels ausführlich vorgestellt.Obwohl die Programmierung, wie wir siean unserem ganz einfachen Beispielpro-jekt gezeigt haben, eine umsichtige Fleiß-arbeit erfordert, lohnt der Aufwand, dennes entsteht ein besonders kompaktes Schal-tungsdesign, das sich von herkömmlichenLösungen durch den geringen Hardware-Aufwand abhebt. Gerade komplexe undvom Anwender im ultrakompakten Designgeforderte Lösungen sind nur über einensolchen Weg realisierbar. Man denke hiernur an Mini-Messwertaufnehmer mit eige-ner Intelligenz, die Transpondertechnik,künftige RFID-Anwendungen usw.

Aber ohne ein passendes Programmier-gerät ist ein einfacher Einstieg natürlichnicht möglich. Das „PSoC™ MiniProg“von Cypress MicroSystems ist solch eineinfaches und günstiges Programmierge-rät, mit dem die PSoC™-Mikrocontrollerdirekt in der Zielschaltung programmiertwerden können. Dieses Programmierge-rät, das mit einer kleinen Entwicklungspla-tine für die ersten Versuche und Experi-mentierschaltungen mit dem PSoC™-Con-troller geliefert wird, ist Mittelpunkt unse-rer Praxisbetrachtungen.

In-System Serial Programming

Die Daten werden über eine 5-poligeSchnittstelle, deren Belegung in Tabelle 2aufgeführt ist, vom PC aus in den Bausteinübertragen. An dieser Stelle kommt dasISSP™(In-System Serial Programming)-Protokoll [1] zum Einsatz. Das bedeutet,dass die Daten über die Datenleitung(SDAT) zwischen dem Programmiergerätund dem PSoC™-Baustein seriell übertra-gen werden. Die Übertragungsrichtung die-ser Verbindung kann sich im Program-mierverlauf auf Anforderung des Pro-

Lieferumfangdes Programmiergerätes:

· MiniEvaluation Board, das auch alsProgrammieradapter benutzt werdenkann!

· MiniProgrammer „PSoC™ MiniProg“· CY8C29466-24PXI 28pin DIP Sample· PSoC™ Designer CD· USB-Kabel· User Guide

Tabelle 2:ISSP-Programmierschnittstelle

SDAT Serieller Datenein-/-ausgangSCLK ÜbertragungstaktXRes ResetVSS MasseVDD Betriebsspannung

Bild 8:Der

Anschlussdes PSoC™

an dieProgrammier-schnittstelle

Ansicht des Liefer-umfangs

grammers ändern, d. h., es handelt sichbeim SDAT-Anschluss um einen Ein-/Aus-gang. Den Takt für diese Kommunikationstellt ausschließlich das Programmiergerätüber die SCLK-Leitung zur Verfügung.

Die Einleitung des eigentlichen Program-miervorgangs kann hier auf zwei unter-schiedliche Arten erfolgen, entweder überden „Power-on-Mode“ oder durch eine vor-gegebene Reset-Sequenz über den XRes-Pin (Reset-Mode).

Im „Power-on-Mode“ wird zunächst dieBetriebsspannung durch das Programmier-gerät eingeschaltet. Danach wartet es solange, bis die Spannung stabil ist und aufder SDAT-Leitung eine negative Flankeauftritt. Dann kann der PSoC™-Bausteininitialisiert werden. Da aber das SDAT-Signal nach dem Anlegen der Betriebs-spannung sehr verrauscht sein kann, sindFehler möglich. Daher sollte man zur Ini-tialisierung den „Reset-Mode“ bevorzu-gen. Hier wird nach der Stabilisierung derBetriebsspannung vom Programmer einkurzer Reset-Impuls erzeugt, nach dem derInitialisierungsbefehl an den Mikrocont-roller gesendet werden kann. Zu beachtenist hier allerdings, dass einige 8-poligeBausteine nicht über einen Reset-Pin ver-

fügen – sie sind somit allein über denPower-on-Mode programmierbar.

Vorbereitung der Zielschaltung

Die Zielschaltung mit dem PSoC™-Bau-stein muss für die Verbindung mit demProgrammiergerät so ausgelegt sein, dassdie ISSP™-Schnittstelle frei zugänglich ist.Im besten Fall sieht man eine Stiftleistevor, auf die der „MiniProg“ direkt aufge-steckt werden kann.

Für erfolgreiche Datenübertragungensind bei den Verbindungen mit der Pro-grammierschnittstelle einige wichtige Kon-ventionen zu beachten [2], die im Folgen-den zusammengefasst sind. Die Datenlei-tung wird mit P1(0) und die Taktleitung

6

mit P1(1) des PSoC™-Bausteins verbun-den. Dies sind Portpins, die im normalenBetrieb der Schaltung als Ein- oder Aus-gang (z. B. zum Einschalten einer LEDoder Abfragen eines Tasters) zum Einsatzkommen. Die Verbindung dieser Portpinsnach Masse darf minimal einen Widerstandvon 1 kOhm und maximal eine Kapazitätvon 120 pF haben (siehe Abbildung 8).Besteht keine Möglichkeit, diese Werteeinzuhalten, leistet eine steckbare Unter-brechung (Jumper o. Ä.) gute Dienste.

Das Reset-Signal (XRes) sollte direkt mitder Programmierschnittstelle verbundenwerden, um zu gewährleisten, dass derProgrammiermodus verlässlich aktiviertwerden kann. Oftmals erfolgt der Reset imNormalbetrieb von einem speziellen Re-set-Baustein oder durch einen System-Re-set. In einem solchen Fall müssen dieseReset-Quellen über einen Widerstand(1 kOhm) entkoppelt werden (siehe Abbil-dung 8). Das XRes-Signal bleibt aber trotz-dem direkt mit dem entsprechenden Pindes PSoC™-Bausteins verbunden.

Der VDD-Pin sollte nur in dem Fall an dieBetriebsspannung des PSoC™ angeschlos-sen werden, wenn der „Power-on-Mode“verwendet wird. Der GND-Pin ist in jedemFall direkt mit der Masse der Zielschaltungzu verbinden.

Das Programmiergerät

Das Programmiergerät „PSoC™ Mini-Prog“ ist sehr klein und kompakt undunkompliziert in der Anwendung. Bevorman es jedoch einsetzen kann, sind dieEntwicklungsumgebung „PSoC™ Desig-ner“ und der „PSoC™ Programmer“ aufdem PC zu installieren. Erst dann wird dasProgrammiergerät über das mitgelieferteKabel an einen freien USB-Port des PCsangeschlossen. Ist diese Verbindung in

Bild 9: Der PSoC™ MiniProg inder Übersicht. Die Lage derAnzeigen und der Schnittstellenist hier gut zu sehen.

Bild 10: Das Hauptfenster der PSoC™-Programmiersoftware

Ordnung, beginnt die grüne „Status“-LEDneben der USB-Buchse des MiniProg zublinken. Sollte der USB-Treiber im Zugeder Installation der Programmer-Softwarenicht korrekt installiert worden sein, sobleibt diese LED dunkel.

Eine weitere LED („Target Power“) zeigtan, ob am VDD-Ausgang des Programmier-gerätes eine Spannung ausgegeben wird,die das Zielsystem vom Programmiergerätaus versorgt.

Jetzt kann die ISSP™-Schnittstelle desMiniProg an die vorbereitete Zielschal-tung angeschlossen werden.

Die Lage der LEDs und der Schnittstel-len sind aus Abbildung 9 entnehmbar.

Mit der zugehörigen Entwicklungsum-gebung, dem „PSoC™ Designer“, werdenjetzt die gewünschten Konfigurationen derprogrammierbaren Analog- und Digital-blöcke vorgenommen sowie das Programmin „Assembler“ oder der Programmierspra-che „C“ (optional) erstellt, um somit dieFunktionen der Zielschaltung zu definie-ren. Die Vorgehensweise hierbei ist imersten Teil dieses Artikels bereits ausführ-lich erläutert worden.

Die Programmiersoftware (Abbildung 10)ist jetzt aus dem „PSoC™ Designer“ he-

raus über das Menü „Program ➞ ProgramPart“ zu starten, dann werden die notwen-digen Konfigurationen vorgenommen:Port ➞ Programmiergerät auswählen

(hier: MiniProg1)Device Family ➞ Baustein-Familie

(z. B. 27x43)Device ➞ Baustein (z. B. CY8C27443)Programming mode ➞ Programmier-

modus (s. o.)Power Device ➞ Spannungsversorgung

am VDD-Pin ein-/aus- schalten

Jetzt kann man das erstellte Programmüber den „Program“-Button in den PSoC™-Baustein des Zielsystems übertragen unddirekt testen.

Flexibles SystemDie Bausteine sind bis zu 50.000-mal

wiederbeschreibbar, so dass man auch klei-ne Änderungen schnell ausprobieren kann,ohne jedes Mal einen neuen Controller ein-setzen zu müssen. So kann man aber auchetwa mit einem „Laborcontroller“ das Pro-gramm selbst, aber besonders spätere Än-derungen daran, ausgiebig testen, bevor dasfertige Programm bzw. dessen Update aufdas vielleicht nicht immer für den Entwick-ler verfügbare Zielsystem übertragen wird.Und jeder Entwickler wird die Möglichkeitschätzen, auf diese Weise sehr schnell Mo-difikationen und neue Ideen/Features rea-lisieren zu können. Besonders bei der kom-merziellen Nutzung bringt dies große Vor-teile, kann man doch schnell auf neue An-

PC-Technik

7

Internet:

[1] In-System Serial Programming(ISSP) ™ Protocolhttp://www.cypress.com/Application note „AN2026a“

[2] Design for In-System Serial Pro-gramming (ISSP)™

http://www.cypress.com/Application note „AN2014“

forderungen reagieren, ohne dass jedes Malneue Hardware-Kosten entstehen.

Ein mitgeliefertes Testboard, das „Mi-niEvaluation Board“, vereinfacht den Ein-stieg in die PSoC™-Welt noch weiter. Aufdieser kleinen Leiterplatte befinden sichLEDs, ein Potentiometer, ein Taster, eineStiftleiste zum Aufstecken des MiniProgund ein Sockel für einen PSoC™-Control-ler. Man kann also einfache Programmier-versuche ohne jegliches Löten sofort ineiner Schaltung ausführen.

Außerdem kann man dieses Testboard in

Verbindung mit dem „MiniProg“ als „Stand-alone“-Programmiergerät für PSoC™-Bau-steine verwenden, um diese im o. g. Sinneohne die entsprechende Zielschaltung be-schreiben zu können.

Insgesamt hält der Schaltungsentwicklermit dem PSoC™-System also ein äußerstuniversell einsetzbares und effizientes Ent-wicklungswerkzeug in der Hand, das denrein softwaremäßigen Entwurf extrem kom-pakter Schaltungsdesigns mit implemen-tierter Intelligenz gestattet und dabei einehohe Flexibilität an den Tag legt.