Hallo, kennt jemand elekt. Anwendungen/Beispiele, die man mit einem PSoC aber nicht/schwierig mit einem normalen uC (z.B. AVR) realisieren kann oder was kann man diesen programmierbaren Analog- und Digitalblöcke (Op-Amps, CT- oder SC- Blöcken) machen, was man mit einem noramlen uC nicht machen kann? (habe keine großartigen elektronik Schaltungskenntnisse) uC: Festgelegte Anzahl von DAC, ADC, PWM, Interfaces PSoC: Festgelegte Anzahl von DAC, ADC, PWM, Interfaces + programmierbare Analog-(CT/SC-Blöcke) und Digitalblöcke Was ich herausgefunden habe -> -noramle uC haben nicht die Möglichkeit eines Delta Sigma ADCs oder SAR ADC. -Filter sind zwar softwaremäßig realisierbar, aber mit einem PSoC kann man diese wirklich hardwaremäßig realisieren. Was der Unterschied zwischen den anderen PSoC-ADCs und den normalen-uC-ADCs ist oder was man mit den z.B. mit den Op-Amps, CT- oder SC- Blöcken anstellen kann, ist mir leider auch nicht wirklich klar? Vielen Dank!
Manuel Stein schrieb: > Was ich herausgefunden habe -> -noramle uC haben nicht die Möglichkeit > eines Delta Sigma ADCs Da es µC mit Delta-Sigma-ADC gibt (z.B. den MSP430F2013), ist auch das nicht das entscheidende Merkmal. Der entscheidende Unterschied ist die konfigurierbare analoge Signalaufbereitung. Die ist bei µCs sonst nur recht rudimentär ausgeprägt. https://en.wikipedia.org/wiki/PSoC
Mit dem PSoC lassen sich sehr gut weite Schaltungsteile und sinnvolle Peripherie (OpAmps) in das IC integrieren. Die externe Beschaltung wird einfach weniger und die Schaltung kompakter. Eine Stärke der PSoC5 sind zum Beispiel auch deren analoger und digitaler Interconnect: Du kannst, bis auf die Stromversorgung und die Hardware-OpAmps, jede Funktion auf jeden Pin legen. Natürlich gibt es auch da Grenzen, aber da muss man das Ding schon sehr gut ausnutzen, dass das zum Tragen kommt. Die digitalen Filterblöcke sparen Dir mitunter einen gesonderten DSP auf der Platine. Viele Grüße! Sven
Geh mal auf http://www.cypress.com/cdc. Dort findest Du jede Menge Infos zu den verschiedenen PSoCs. Es gibt PSoC1 und PSoC3 (8 Bit) sowie PSoC4 und PSoC5LP (32 Bit). PSoC1 würde ich aber als veraltet betrachten. Vom PSoC4 gibt es das CY8CKIT-049-42XX für ca. 4 Euro. Das enthält neben dem PSoC4 noch einen PSoC5, der eine USB-Verbindung zu einem PC herstellt, über die programmert (aber nicht debugged) werden kann. Das Ding hat (aus dem Gedächtnis) 26 I/Os, mit denen man schon eine Menge anstellen kann. Auf der Website gibt es auch Hunderte Beispiele für Projekte, die schon realisiert worden sind. Ich habe schon viele Projekte mit PSoCs realisiert. Das Schöne ist, dass man fast keine andere Elektronik braucht, außer ein bißchen Vogelfutter. Man kann in der Entwicklungsumgebung festlegen, welche analogen und digitalen Funktionen der PSoC haben soll, z.B. wie viele UARTs, und vor allem welche Pins diese Funktionen belegen sollen. Man kann sich quasi einen maßgeschneiderten Prozessor zusammensetzen. Es gibt natürlich Grenzen. So kann z.B. nicht jede Funktion auf jeden Pin gelegt werden, und die Anzahl der A/D-Wandler ist auch begrenzt. Am besten ist es, man lädt sich die Entwicklungsumgebung herunter (PSoC Creator) und registriert den Keil-Compiler einmal (kostenlos). Dann konfiguriert man sich die Hardware, indem man die benötigten Module per Drag-And-Drop auf die entsprechende Seite zieht (ADC, DAC, Timer, Counter, Interrupts, MUX, OpAmp ...). Dabei muss man auch IO-Pins anlegen. Auf einer anderen Seite weist man dann den IO-Pins physikalische Pins zu. Dann übersetzen lassen. Dann weiß man, ob diese Konfiguration so geht. Ich arbeite immer parallel mit Eagle und PSoC Creator. So kann ich das Layout einfach halten und bin gleichzeitig sicher, dass der PSoC kann, was ich will. Die größeren PSoC5 arbeiten mit bis zu 80MHz und haben bis zu 256MB Flash und 64MB RAM. Es gibt verschiedene Gehäusebauformen, die TQFP100 lassen sich noch recht gut von Hand löten.
Günter N. schrieb: > Die größeren PSoC5 arbeiten mit bis zu 80MHz und haben bis zu 256MB > Flash und 64MB RAM. Es gibt verschiedene Gehäusebauformen, die TQFP100 > lassen sich noch recht gut von Hand löten. Korrektur: 256 kByte Flash und 64 kByte RAM. Es lässt sich aber externer RAM anbinden, sofern man dies wünscht. Interessant sind zum Beispiel auch fertige Bausteine für Quadraturdecoder, Entprellung, Display-Ansteuerung HD44780, I2C, SPI, UART usw. - Man muss nicht mehr jedes Register einzeln einstellen (kann man aber). Die APIs sind ausgereift und die Code-Erzeugung durch den PSoC Creator funktioniert gut. Obwohl der Creator hier und da auch so seine Macken hat, gibt es wahrlich schlechtere IDEs. Bei größeren Projekten freut man sich, dass man sich auf das wesentliche konzentrieren kann und nicht noch den ganzen I/O-Kram mit Timern, Interrupts, FIFOs usw. zu Fuß erledigen muss. Zudem ist das Clocking über die interne PLL sehr gut zu konfigurieren. Anbei ein Beispiel wie schnell man 4 Taster mittels Debounce-Komponenten entprellt und dann in entsprechende ISRs überführt. Meiner Meinung nach ist der PSoC in vielen Anwendungsfällen einem STM32 mit gleicher Geschwindigkeit überlegen und die Entwicklungszeit wird deutlich verkürzt. - Bei höheren Taktraten haben die STM32 die Nase vorn. Viele Grüße! Sven
:
Bearbeitet durch User
Du hast natürlich Recht, 256kB Flash und 64MB RAM. Man kann einen Teil des Flash auch als EEPROM einrichten, um Parameter dauerhaft zu speichern. Wenn man mit sich ständig ändernden Werten zu tun hat und den letzten Messwert auch über ein Ausschalten hinaus erhalten will, ist es günstig, ein FRAM (gibt es jetzt auch von Cypress) mit einzubauen. Die sind (anders als EEPROMS) extrem schnell zu beschreiben und haben praktisch keine Lebensdauerbegrenzung.
Ich hab sowohl mit PSoC1 und PSoC5 gearbeitet. Einerseits ist man teilweise recht schnell weil es die API gibt, aber immer wieder ist genau das das Problem. Bei speziellen Problemen muss man erst mal herausfinden was die API da überhaupt macht und wie sich der Block im Kern überhaupt verhält. Wann wird z.B. ein Interrupt zurückgesetzt? Bei einem normalen µC schaut man ins Datenblatt und weiß bescheid, beim PSoC sind solche Infos sehr schwer zu finden (wenn überhaupt). Je komplexer die Aufgabe wird, desto mehr häufen sich diese Probleme. Und dann noch die Beschränkung der Blöcke bzw. das man schlecht planen kann ob alles rein passt. Beim letzten Projekt mit PSoC5 sind z.B. die Clock-Quellen "ausgegangen", es waren also nicht mehr möglich. Das ist dann sehr ärgerlich. Sie sind schon sehr interessant, aber ob ich das weiter empfehlen würde.. Ich weiß nicht. Bei "normalen" µC hab ich mich noch nicht so oft geärgert :)
DIE ANWENDUNG, die nur mit dem PSoC realisierbar ist und nicht oder nur schwer mit anderen Micros, gibt es meiner Meinung nach nicht. Genauso wie es DIE ANWENDUNG fuer Atmel, AD, MSP, STM32, NXP Controller nicht gibt. Man kann fast immer alles mit allen machen, es kommt immer drauf an, letzten Endes auch auf persoenliche Vorlieben. Der groesste Vorteil ist vielleicht der, dass viele Komponenten bereits auf dem Chip vorhanden sind und flexibel konfiguriert werden koennen, was den Platzbedarf auf der Platine reduziert. Was vielleicht noch nicht genannt wurde, der PSoC, zumindest der 5lp, kann sich auch aus seinem integrierten Boostkonverter versorgen. Der akzeptiert ab 0.5V, fuer Versorgung aus Solarzellen z.Bsp.. Sind aber noch externe Komponenten notwendig, spart aber auch Platinenplatz.
Es gibt natuerlich sehr viel sachen die darueber geschrieben werden koennen, aber auch sehr unterschiedliche Projekten die man machen kann. Also versuche dir mal ein Pojekt zu machen mit zB CY8CKIT-059 fuer $10 Meine erfahrung, kommende von ATMEGA2560 : * Wahrende mein entwicklungstraject musste ich mit ATMEGA viel oefter hardware changes machen wenn die Specs meiner Project sich geander haben. So habe ich beim PSOC-3 einen 16-kanals temperaturmessgeraet gebaut, und nachdem kam die wuensch um auch Seebeck-Compensation dabei machen. Also dann musz die strom umgepolt werden. Mit ATMEGA und die meiste (alle?) andere prozessoren haette das ein hardware-redesign gewesen, jetzt nur software. * PSOC3/5lp gibt viel mehr flexibilitaet, aber dadurch musz man selber das Project mehr professionel aufbauen. Kein problem aber am anfang kann das die lern-kurve erlangern, abhangig von deine erfahrung. * Soviel eingebaut im PSOC, habe ich noch nie beim anderen uP gesehen : Ich baute ein Produkt wo ich viele sachen benoetigte (14+bit ADC, 20+ analoge eingangen, 4 directe strom-DACs 0..2mA, betrieb ab 1V0 mittels dcdc, platine-groesse max 10x15x2mm (!)). Beim PSOC hat mit das fast keine extra componenten gekostet. Ich kenne weiter auch kein uC wo das alles drin ist. * Die resources (libs) sind gut documentiert und von Cypress selber unterstutz, auch mittels guten service. Meine erfahrung mit zB Atmel ist das man mehr die guten libs zusammen suchen musz. Wenn man die einmal hat (FatFs, Lufa, Bootloader, Twi usw) hat man mehrere ansprechpunkten. Beim Cypress 1 ansprechpunkt, die koennen dich mit (fast) alles helfen. Und es gibt sehr viele libs * Man brauch viel weniger als beim ATMEGA im datasheet zu gucken; alles ist integriert im IDE. Statt auf zu suchen welche bits auf welche porten man setzen musz, klickt man im design an wie man die port benutzen woll. Dabei kann das design eber optimiert werden fuer 3v3/5v0 oder extra hohes temperaturbereich * Sehr gutes upgrade-traject beim PSOC : Alles 3/5lp libraries sind gleich und funktionieren auf alle varianten. Man designed auf dem groessesten variant und wenn man fertig ist kann man ihm fuer andere varianten kompilieren. Pin-compatible. Verschiedene packages. Hat auch damit zu tun das PSOC viel neuer ist und keine historische bagage mit braucht zu nehmen. PS : Mit PSOC meine ich PSOC3/5lp, die andere habe ich keine erfahrung.
Vielen Dank! Echt Super von Euch, für die sehr schnelle Antworten. @Sven L. - Da ich nicht so eingebettet bin im Bereich Elektronik, was für Beispiel-Schaltungen könnte ich denn in den PSoC-uC verlagern? @Günter Nowinski - Leider kann ich mir auch hier keine Elektronik vorstellen, die ich durch einen PSoC sparen würde. Könntest du mir bitte ein kleines Beispiel nennen? @Mark W. - Könntest du mir bitte ein Beispiel nennen indem ich Komponenten spare? @pcrom - Leider kann ich einfach nicht erkennen, wo du jetzt Elektronik Bauteile sparen konntest, da ich wieder keine Elektronik-Schaltung kenne. Könnte mir jemand eine Beispiel Elektronikschaltung posten, die ich innerhalb eines PSoCs realisieren könnte, jedoch nicht in einem normalen uC oder ein paar allgemeine/gängige Elektronikschaltungen, die auf fast jede Platine gehören, aber die man sich mit einem PSoC sparen kann?
Manuel Stein schrieb: > @Sven L. - Da ich nicht so eingebettet bin im Bereich Elektronik, was > für Beispiel-Schaltungen könnte ich denn in den PSoC-uC verlagern? Direkte Beispiele kann ich Dir keine nennen, da diese Firmengeheimnisse sind, aber es gibt ein paar Szenarien: Die internen Opamps können intern sowie auch extern beschaltet werden. Üblicherweise realisiert man damit zum Beispiel Mess- bzw. Intrumentenverstärker, um die Auflösung des wirklich guten ADCs auch gut ausnutzen zu können. Oder man benutzt die Opamps in Kombination mit FPGA-Schmitt-Triggern zur Signalformung bei jeglichen Empfangsschaltungen etc. Des weiteren bietet es sich an jegliche Formen von Logikgattern, die man extern einsetzen würde, in den FPGA-Teil zu setzen. Das können einfache Dinge wie Negatoren oder einzelne Gatter sein, aber auch komplexere Dinge wie zum Beispiel ein Hardware-Zähler. Es wäre zum Beispiel möglich mit den entsprechenden Flipflops einen Hardware-Zähler im FPGA zu implementieren, mit welchem man einen Frequenzzähler umsetzen kann. Ein Beispiel, was ich schon gesehen habe: Ein I/Q-Demodulator mit digitalen Filterblöcken und kompletter A/D- und D/A-Wandlung alles ohne externe Beschaltung. In Software ist da noch gar nichts passiert, sondern rein in Hardware. Man muss natürlich die Grenzen des Designs kennen, aber die Auslegung des PSoCs ermöglicht es den Controller an vielfältige Anwendungsszenarien anzupassen, ohne auf einen anderen Typen auszuweichen. Was ich mit 10 verschiedenen dsPICs oder STMs oder SAMs machen kann, dafür reicht vermutlich ein einziger PSoC5LP, wobei es von diesem auch zig Versionen gibt (zusätzliche on-board Hardware wie zum Beispiel CAN-Transceiver oder ähnliches). Weiter oben hat jemand den internen Boost-Converter genannt: Es ist in der Tat so, dass man nur die Speicherdrossel und die Diode extern braucht und schon kann man das Ding ab 0,5 V selbst versorgen. Das Ding ist für kostenoptimierte Designs in hohen Stückzahlen gemacht, denn man kann i.d.R. 1-2 externe ICs und das dazugehörige Hühnerfutter wegoptimieren. Aber auch bei geringen Stückzahlen spart der Controller bei vielen Standardanwendungen enorm Entwicklungszeit gegenüber den Konkurrenzprodukten. Leider sind die PSoC5LP recht teuer mit ungefähr $10 bei 1k Abnahme. Just my 2ct.... Sven
Sven L. schrieb: > Anbei ein Beispiel wie schnell man 4 Taster mittels Debounce-Komponenten > entprellt und dann in entsprechende ISRs überführt. Das Bild zeigt ja schon, dass sich die Programmierung etwas von der konventionellen C-Entwicklung unterscheidet. Der PSoC Creator stellt grafische Werkzeuge zur Verfügung, die die Verbindungen zwischen Analogen/Digitalen Komponenten generiert. Der Vollständigkeit halber sei angemerkt, das die Debouncer Komponenten gleich 8 Tasten auf einmal debouncen kann (Sofern sie sich in einem PIN-Block befinden). Jörg S. schrieb: > Bei speziellen Problemen muss man erst mal > herausfinden was die API da überhaupt macht und wie sich der Block im > Kern überhaupt verhält. Na ja, das sollte eigentlich für alle Plattformen gelten;-) Die Unterlagen von Cypress sind eigentlich sehr gut. (Wenn man dann mal die passenden gefunden hat) Die Datasheets zu den Komponenten sind in der IDE stets verfügbar und sauber gepflegt. Dafür könnte es für mein Geschmack ruhig etwas mehr Beispiele geben. Mark W. schrieb: > DIE ANWENDUNG, die nur mit dem PSoC realisierbar ist und nicht oder nur > schwer mit anderen Micros, gibt es meiner Meinung nach nicht. Wohl war. Allerdings ist es schon so, dass die meisten (kleineren Projekte) ohne zusätzliche Hardware auskommen, weil halt ne Menge analoger/digitaler Standardkomponenten gleich mit im Chip drin sind.
Hallo Manuel, in einem Projekt hatte ich z.B. einen analogen Sensor. Der Messwert wurde im PSoC über einen OpAmp mit einstellbarem Gain verstärkt, dann gefiltert und mit einem ADC digitalisiert. Weiter wurden 2 serielle Schnittstellen verwendet und eine EEPROM-Komponente. Mehrere Tasten zur Bedienung wurden auch direkt angeschlossen. In einem anderen Projekt habe ich mit einem einzigen PSoC3 6 UART-Schnittstellen in Hardware realisiert sowie einen DMS-Verstärker, hier allerdings mit zwei INA125 zusätzlich. Ich sage nicht, dass das mit anderen Controllern nicht geht. Ich habe aber den Eindruck, dass die Konfigurierbarkeit der analogen und digitalen Hardware viele Möglichkeiten bietet.
Manuel Stein schrieb: > Vielen Dank! Echt Super von Euch, für die sehr schnelle Antworten. > > @Mark W. - Könntest du mir bitte ein Beispiel nennen indem ich > Komponenten spare? Schau Dir mal das Voltmeter Beispiel von Cypress an und ueberlege wie man das mit einem uC loesen wuerde, um auf uV Aufloesung zu kommen. Der PSoC kann das mit nur auf dem Chip vorhandenen Komponenten. Also generell wurde ich sagen, dass saemtliche Analogsensoren mit den eingebauten Komponenten gut auswertbar sind. Alles was bei anderen uC noch an Analogfrontend extern dazu kommt, hat man bereits auf den Chip. Also Opamps, Filter, Analog Multiplexer(64 Eingaenge), Comparatoren usw. Letztendlich muss man das selbst ausprobieren und vergleichen. Du kannst eine Aufgabenstellung an 10 verschiedene Leute vergeben und realisieren lassen. Du wirst 10 verschiedene Loesungen, die bestenfalls alle den Anforderungen entsprechen, bekommen. :-)
So eindeutig ist die Unterscheidung nicht mehr zu machen. Meiner Meinung nach ist ein PSOC auch nur ein "ganz normaler" µC: Versucht man die Unterscheidung nur anhand der Features, dann stellt man schnell fest, dass viele analoge Featuers kein Alleinstellungsmerkmal sind. Beispiel: PIC24FJ128GC006 - da ist neben OPV, einem Sigma-Delta-ADC und Komparatoren auch ein Interconnect-Netzwerk drin - jede digitale Funktion auf jeden Pin. Naja, fast, wie bei Cypress halt auch. Das oben erwähnte Voltmeter geht mit dem PIC also auch. Das ist aber nich mal PIC-spezifisch, sondern eine Eigenschaft von vielen modernen µC - viel Peripherie, auch analoge. Der herausstechende Vorteil der PSOC ist aus meiner Sicht die größere Flexibilität der Peripherie, zum Beispiel dieser FPGA-Teil. Da kann man in Verilog eine handgeklöppelte exotische Schnittstellen reintun, die sonst ein CPLD erfordern würden. Oder die Ressourcen für mehr Standardschnittstellen nutzen, das dafür mit simplen, fertigen Blöcken. PS: Wer Bluetooth-Module sucht,sollte sich die PSOC4-Module ansehen. Statt wirrem IOT-Gebrabbel (wie bei Redpine oder Bluegiga) gibts bei Cypress nämlich Datenblätter, vollständige Zertifikate und kaufbare Hardware. Ohne Registrierung. Für solche Geschichten fast unerhört...
vielen Dank !!! habe Auch noch ein paar nette Sachen gefunden. Der PSoC1 bietet drei verschiedene programmierbare Analog-Hardware Blöcke. Der erste der drei Blöcke ist ein sog. „Continuous Time“-Block (CT-Block). Dieser benötigt keinen Takt. Er realisiert z.B. Absolut- oder Differenzverstärker, Schwellwertdetektoren oder Verstärker mit einstellbarer Verstärkung. Die anderen zwei Blöcke arbeiten nach dem Swicht-Capacitor-Verfahren (SC-Block) zeitdiskret. Sie ermöglichen das Integrator-Verhalten. Die beiden Blöcke unterscheiden „Typ C und D“ sich ein wenig und sind lokal verbunden. Der detaillierte Aufbau ist im „Technical Reference Manual (TRM) PSoC 1“ dokumentiert. In diesen Blöcken können z.B. Filter 2.Ordnung, AD-und DA Wandle, andere dynamische Komponenten realisiert werden. Multiplexer verbinden die Blöcke untereinander. Die jeweiligen Bauteile lassen sich über die jeweiligen Register konfigurieren z.B. die RESISTORMATRIX „CT-Block“ (Reg.-RTapMUX) kann verschiedene Widerstände dazu- und abschalten. Die CT- und SC-Blöcke manuell zu konfigurieren ist sehr umständlich. Der PSoC-Designer bietet daher fertige UserModule an z.B. Verstärker, Tiefpass, … .Der Entwickler muss sich nicht um die interne Verschaltung bzw. Bauteil Konfig. Kümmern. Der programmierbare digitale Block basiert auf dem gleichen Grundkonzept wie der analoge. Dieser kann als Zeitgeber, Zähler, Pseudozufallsgenerator, Pulsbreitenmodulator oder zur zyklischen Redundanzprüfung verwendet werden. Ein Block enthält 8 FlipFlops und es existieren fertige Usermodule.
Und hier noch ein Psoc5 Beispiel fuer Arduinoliebhaber: Beitrag "Re: PSoc 5lp Prototyping Kit Inbetriebnahme"
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.