Ich entwerfe ein System, wo
Analoges Signal ---> (ADC-Digital Data) ---> UWB-Chip meist WSR601 oder AL6301/AL5100 Chipsatz
Hinweis (1): UWB ist eine Abkürzung für Ultra Wide Band Wireless Communication Technology. Wireless USB Chips, die hier zum Einsatz kommen, machen sich diese Technologie zunutze. Kurz gesagt, die Daten werden mit 5 Mbit / s über SPI oder USB 2.0 an die UWB-Chips (Wireless USB) übertragen. Diese Funkchips übertragen dann Daten an den Empfänger.
Hinweis (2): Die über den ADC abgetasteten Daten müssen nur direkt über eine beliebige Schnittstelle (USB, SPI usw.) an den UWB-Chip weitergegeben werden. Daten müssen in keiner Weise verarbeitet werden.
Ich suche nach einem Mikrocontroller, der die Funktion des ADC übernimmt und eine Schnittstelle zum UWB-Chip bildet. Beide (WSR601 und AL6301/AL5100) unterstützen verschiedene Optionen wie USB 2.0, SPI, SDIO 2.0, UART usw.
1) Der ADC, den ich brauche, ist 10 Bit und die Datenrate, die sich daraus ergibt, was ich zum UWB-Chip übertragen muss, beträgt etwa 5 Mb/s. Die erforderliche ADC-Abtastrate würde etwa 5 * 10 ^ 5 Mal pro Sekunde betragen.
2) Es muss so wenig Strom wie möglich sein
3) Wäre SPI in Anbetracht der Datenrate und des geringen Stromverbrauchs die beste Wahl dafür, oder denken Sie, dass eine andere Kommunikationsschnittstelle besser wäre?
4) Irgendwelche uC-Vorschläge mit ausreichender Rechenleistung, damit ADC und SPI gleichzeitig arbeiten können?
Mir wurde PIC32MX250F128D von jemandem vorgeschlagen, der behauptete, dass es 14,5 mA bei 40 MHz, 3,3 V verbraucht. Aber auch dieser uC hat eine Menge Schnittstellenoptionen zur Verfügung, die ich für unnötig halte, und auch dieser uC scheint auf der Microchip-Website nicht verfügbar zu sein.
Ich hoffe also, jemand kann uC mit etwas geringerer Funktionalität und hoffentlich geringerem Stromverbrauch als einem in Betracht gezogenen vorschlagen.
Ich weiß nicht, was Sie mit "UWB" meinen (verwenden Sie Standard- oder gebräuchliche Abkürzungen, nein, ich werde es nicht nachschlagen, es ist Ihre Aufgabe, es zu erklären), aber viele, viele Mikros haben 10-Bit-A / Ds und SPI-Hardware . Auch ohne die SPI-Hardware ist SPI einfach in der Firmware zu realisieren, indem die I/O-Leitungen direkt gesteuert werden.
Im Microchip-Sortiment gibt es ein breites Spektrum, das diese Anforderungen erfüllt. Ein Low-End-PIC 16 kann klein, billig und sehr stromsparend sein. Ein schneller dsPIC33 kann bis zu 40 MIPS laufen, verbraucht aber natürlich mehr Strom. Dazwischen liegen verschiedene PIC 18 und PIC 24.
Was Sie erklären müssen, ist, wie schnell Sie die 10-Bit-A / D abtasten müssen und was das Mikro mit diesen 10-Bit-Werten tun muss, bevor Sie sie über SPI weitergeben.
Diese "Antwort" ist eher ein Kommentar, weil zu viele wichtige Informationen fehlen. Es kann zu einer Antwort werden, wenn Sie kooperieren und die gestellten spezifischen Fragen beantworten , nicht das, was Sie gerne beantworten möchten oder was Sie für wichtig halten. So wie es aussieht, ist diese Frage zu vage, um vernünftig beantwortet zu werden, und sollte geschlossen werden. Die Leute werden vorbeikommen und es schließen, wenn sie darauf stoßen. Wenn 5 enge Stimmen abgegeben werden, ist es vorbei. Die Uhr tickt. Möglicherweise haben Sie nur Minuten bis einige Stunden Zeit. Tun Sie, was ich gesagt habe, genau so, wie ich es schnell gesagt habe, und Sie erhalten vielleicht Ihre Antwort. Ignoriere es und kooperiere nicht und du wirst ohne Keks nach Hause geschickt.
Sie haben nun hinzugefügt, dass die A/D-Samplerate 500 kHz beträgt und dass diese A/D-Rohdaten per SPI weitergegeben werden sollen. Da A/D 10 Bit beträgt, haben Sie hier anscheinend die SPI-Datenanforderung von 5 Mb/s erhalten.
Dies ist machbar, erfordert jedoch ein einigermaßen hochwertiges Mikro. Der limitierende Faktor ist der 10 Bit A/D bei 500 kHz Samplerate. Das ist für ein Mikro ziemlich schnell, was die verfügbaren Optionen einschränkt. Eine andere zu berücksichtigende Sache ist, dass SPI mehr ist, als nur die Bits zu senden. Bytes müssen möglicherweise in Chunks übertragen werden, wobei die Chipauswahl pro Chunk aktiviert und deaktiviert wird. Wie werden beispielsweise diese 10-Bit-Daten in 8-Bit-Bytes gepackt oder überhaupt?
Die Hauptbetriebsschleife der Firmware wird recht einfach sein. Wahrscheinlich haben Sie den A/D so eingerichtet, dass er automatische periodische Konvertierungen durchführt und alle 2 µs mit einem neuen Wert unterbricht. Jetzt haben Sie die meisten von 2µs, um es an den SPI zu senden. Wenn das Gerät wirklich nur einen Strom von Bits akzeptieren kann, ist es möglicherweise einfacher, die SPI in der Firmware auszuführen. Die meiste SPI-Hardware möchte 8 oder 16 Bits gleichzeitig senden. Sie müssten Bits puffern und ein 16-Bit-Wort 5 von jeweils 8 Interrupts senden. Es könnte einfacher sein, nur 10 Bits pro Interrupt in der Firmware zu senden.
Das Senden von SPI-Bits in der Firmware, wenn Sie nur die Uhr und die Datenausgabe steuern müssen, ist ziemlich einfach. Pro Bit müssen Sie:
Es wäre sinnvoll, diese Schleife mit Präprozessorlogik oder so zu entrollen. Ein PIC 24H kann mit bis zu 40 MIPS laufen, sodass Sie 80 Anweisungen pro Interrupt haben. Offensichtlich können Sie nicht 8 Anweisungen verwenden, um jedes Bit zu senden. Wenn Sie es in 6 tun können, sollte es funktionieren. Es gibt etwas Overhead, um in jeden Interrupt hinein- und herauszukommen, also könnten Sie das Ganze zu einer Abfrageschleife machen, die auf den A/D wartet, aber dann kann der Prozessor nichts anderes tun. Ich würde wahrscheinlich versuchen, dies mit jedem möglichen Trick in die A / D-Interrupt-Routine zu stopfen, damit mindestens ein paar Vordergrundzyklen für Hintergrundaufgaben übrig bleiben, z. B. um zu wissen, wann man aufhören muss usw.
Schauen Sie sich die Microchip PIC 24H-Linie an. Ich denke, die meisten, wenn nicht alle, haben A/Ds, die 500 kbit/s können, und sie können alle mindestens bis zu 40 MIPS laufen. Die neue E-Serie ist noch schneller, aber ich bin mir noch nicht sicher, wie real das ist.
Wow. 500.000 Samples/s (aka 500 kSamples/s) bei 10 Bit Auflösung sind ziemlich schnell. Ich vermute, dass jeder Prozessor, der über einen ADC verfügt, der dies kann, die erforderliche SPI-Datenverarbeitung problemlos bewältigen kann. SPI ist eine perfekte Wahl für die Übertragung mit dieser Datenrate über ein paar Zentimeter.
eigenständige ADCs
Gibt es einen Grund, für diese Anwendung keinen eigenständigen ADC zu verwenden? (Diese SPI-ADC-Chips erfordern einen anderen Chip, um als SPI-Master zu fungieren. Wenn Ihr UWB-Chip nicht als SPI-Master eingerichtet werden kann, funktioniert keiner dieser Chips damit – fahren Sie mit dem nächsten Abschnitt fort). Es ist ziemlich einfach, das parametrische Auswahlwerkzeug bei Newark oder Digikey zu verwenden, um "mindestens 5.000.000 Samples/Sekunde" UND "mindestens 10 Bits/Sample" UND "SPI" auszuwählen. Die Ergebnisse umfassen Dutzende von Chips wie z
Ein eigenständiger ADC ist kleiner und konzeptionell einfacher und verbraucht wahrscheinlich weniger Strom als ein Prozessor mit eingebautem ADC.
Prozessoren
Es gibt einige Prozessoren, die 500.000 Samples/Sekunde bei 10 Bit/Sample verarbeiten können. Leider machen es die parametrischen Auswahlwerkzeuge nicht einfach, diejenigen herauszufiltern, die diese Anforderung erfüllen, aus der überwiegenden Mehrheit oder Prozessoren, die diese Spezifikationen nicht ganz erfüllen.
Videosender
Die drahtlose Videoübertragung ist mehr oder weniger ein gelöstes Problem. Vielleicht können Sie mit einem handelsüblichen "winzigen Videosender" und einem passenden Empfänger etwas Wochen früher zum Laufen bringen, sodass Sie sich auf die Teile Ihres Projekts konzentrieren können, die keine "gelösten Probleme" sind. Später, nachdem der Rest des Systems zu arbeiten beginnt, könnten Sie damit experimentieren, ein Videoaufnahme-/Übertragungssystem zu bauen, das weniger Leistung hat oder auf andere Weise besser ist.
Olin Lathrop
Chris Stratton
gururaj
Chris Stratton
gururaj
Chris Stratton
Ktc