Hallo, ich bin auf der Suche nach einer kleinen programmierbaren Logik, welche eine 8 bit seriell-zu-parallel Wandlung durchführt um einen Mikrocontroller ein wenig zu entlasten. Nun gibt es zB die Coolrunner II CPLDs mit sehr geringen statischen Stromverbrauch (~10-20uA). Da die eigentliche Samplingrate nur zwischen 212 und 1694 kHz liegen wird, sollte sich der dynamische Verbrauch im Bereich von wenigen 100uA bewegen. Nun zieht so ein Coolrunner II laut Xilinx aber mehrere zig mA während der Power-Up Sequence, was vermutlich dem Flash geschuldet ist. Da ohnehin ein Mikrocontroller verwendet wird, wär eine non-volatiler Speicher am CPLD garnicht notwendig. Die Konfiguration könnte gleich der uC übernehmen. Die Zeit dafür sollte nur weniger als 1ms betragen, was für einen kleinen CPLD hoffentlich machbar ist. Jetzt ist nur die Frage ob es programmierbare Logik für solch einen Anwendungsfall gibt? Idealerweise sollte die Power-Up Sequence mit Konfiguration auch nicht mehr als 500uA ziehen. Als Microcontroller war ein sparsamer Cortex M0+ angedacht der bei einem MHz durchaus schon mit <250uA laufen kann.
hallo thomas, warum soll die seriell-zu-parallel Wandlung auf einem CPLD laufen? die sampling rate schafft ein cortex m0 locker selbst. schad dir mal den atmel sam d20 an, der hat eine serielle engine die sehr flexibel programmierbar ist. gruss gerhard
Gerhard schrieb: > hallo thomas, > warum soll die seriell-zu-parallel Wandlung auf einem CPLD laufen? > die sampling rate schafft ein cortex m0 locker selbst. > schad dir mal den atmel sam d20 an, der hat eine serielle engine die > sehr flexibel programmierbar ist. > > gruss > gerhard Hi Gerhard, also ich sollte vielleicht noch dazusagen um was es genau geht. Also demoduliert sollte ein RFID Protokoll werden (eigentliche mehrere, aber eines ist besonders kritisch), nämlich ISO14443 Type A. Dabei wird eine modifizierte Manchester Kodierung verwendet. Zusätzlich wäre es auch wünschenswert wenn die Programmierbare Logik auch noch Parity und CRC mitberechnet. Das alles zusammen hab ich schonmal auf einem uC programmiert (konrekt ein AVR Xmega). Bei 106 kbit bin ich mit Assembleroptimierungen (keine Timer -> Stichwort Taktzyklus-Zählen) auf 3.4 Mhz runtergekommen um die ganze Demodulation mit Parity und CRC hinzubekommen. Man hat hier pro Chip nurmehr 16 Zyklen zeit. Das ist nicht viel. Ich bin auch skeptisch dass ich das mit den Instruktionset vom Cortex M0 hinbekomme. Auch wenn solch zeitkritische Programmierung durchaus ihren Reiz hat, ist die Wartung kein Spaß. Also würde ich das gerne etwas entlasten ohne den Stromverbrauch nach oben zu treiben (so ein Tag soll auch passiv über das Feld versorgt werden können). Die gesamte Hardware mit diskret aufgebauten analogen Frontend (PLL, mehrere Filter, Komparator) soll nun unter 1.5mA (besser unter 1mA) ziehen. Den uC hochtakten sollte also vermieden werden. Die Coolrunner II wären perfekt wenn nicht der hohe PowerUp Strom wäre. Das krieg ich nicht über das Feld rüber, außer vielleicht wenn sich die Spulen fast berühren. Den Sam D20 hab ich mir schon angeschaut. Aber ich befürchte die SerCom (oder wie das Modul genannt wird) ist nur für SPI, UART und I2C verwendbar. ISO14443 Type A ist ein sehr eigenes Protokol (wenn auch das meistverwendete bei NFC), hier eine Hardwareunterstützung in Standard-uC zu finden, ist sehr unwahrscheinlich. Aber ansonsten ist Atmel uC schon in der engeren Auswahl, wenn erstmal weitere Daten zum Stromverbrauch ins Datenblatt eingetragen werden. lg Thomas Den Sam D20 hab ich mir schon
@ Thomas (Gast) >ich bin auf der Suche nach einer kleinen programmierbaren Logik, welche >eine 8 bit seriell-zu-parallel Wandlung durchführt um einen >Mikrocontroller ein wenig zu entlasten. CMOS Schieberegister? >212 und 1694 kHz liegen wird, sollte sich der dynamische Verbrauch im >Bereich von wenigen 100uA bewegen. Warum? Batteriebetrieb. > Nun zieht so ein Coolrunner II laut >Xilinx aber mehrere zig mA während der Power-Up Sequence, was vermutlich >dem Flash geschuldet ist. Ist auch so. Der Coolrunner, ist wei ein kleines FPGA, der sich beim Start sein Konfiguration aus dem internen Flash lädt. >Da ohnehin ein Mikrocontroller verwendet wird, wär eine non-volatiler >Speicher am CPLD garnicht notwendig. Kann man aber nicht trennen. > Die Konfiguration könnte gleich der >uC übernehmen. Das geht nur bei FPGAs. >Jetzt ist nur die Frage ob es programmierbare Logik für solch einen >Anwendungsfall gibt? Idealerweise sollte die Power-Up Sequence mit >Konfiguration auch nicht mehr als 500uA ziehen. Vielleicht ein CPLD der Zero-Power Serie von Lattice? Mach-Z oder so? > Als Microcontroller war >ein sparsamer Cortex M0+ angedacht der bei einem MHz durchaus schon mit ><250uA laufen kann. Vergiss es. Ggf. muss man halt eine handvoll CMOS-ICs zusammenschmieden. Damit brauchst du nur ein paar uA, aber halt mehr Platz.
> Vielleicht ein CPLD der Zero-Power Serie von Lattice? Mach-Z oder so?
Die sehen sehr interessant aus. Irgendwelche Erfahrung bezüglich
PowerUp?
Solche Daten scheinen nicht einfach zu finden zu sein. Musste auch bei
Xilinx ein Weilchen danach suchen. Aber ich kann ja auch mal direkt bei
Lattice anfragen.
Hallo Thomas, wenn Du Dich schon bei Lattice umschaust, dann kuck mal genauer auf die neue ICE40 Familie welche mit LowPower ab 25uW wirbt. Startup Current habe ich jetzt nicht nachgeschlagen, aber Lattice hat hier eine neue Produtfamilie für sehr kleine Funktionen für Batteriebetrieb entwickelt welche mindestens 2-3 Generationen jünger ist wie die MACH-Z Familie... Einen Blick ins Datenblatt oder eine Nachfrage ist es auf jeden Fall Wert. Gruß Vanilla
@ Thomas (Gast) >> Vielleicht ein CPLD der Zero-Power Serie von Lattice? Mach-Z oder so? >Die sehen sehr interessant aus. Irgendwelche Erfahrung bezüglich >PowerUp? Nein.
hallo thomas, wenn ich dich richtig verstanden habe dann entwickelst du ein PICC. ist das richtig? gruss gerhard
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.