Mit einem uC möchte ich eine Spannung von einem 5V Hallsensor ACS724 (0-5A Variante) messen. Der erwartete Strom wird maximal 650mA und demzufolge wird wohl am Ausgang vom ACS724 maximal 1020mV rauskommen. Ich dachte ich könnte da nun einfach eine REF35125 als Referenzspannungsquelle (1250mV) für den ADC verwenden und mit 12Bit wandeln. Mein erste Wahl fiel auf den AVR16EB20 der das wohl so kann. Eine weitere Anforderung war nun Multimaster (am Ende 22 Teilnehmer). Zuerst dachte ich da an I2C-Multimaster.. das könnte ja wohl noch mit dem AVR16EB20 funktionieren. Noch eine Anforderung war nun ständiger Sleep. Das bedeutet das Gerät wird entweder von einer Tastenbedienung aufgeweckt oder das Gerät wird über den Kommunikationskanal aufgeweckt. Über den sendet das Gerät dann nach Statusmeldungen bis es sich wieder schlafen legt. Dafür ist mir dann CAN mit partial Networking "über den Weg" gelaufen, was auch die Multimaster-Anforderung und den ständigen Sleep ganz gut abdeckt. Aber leider muss ich dann an den AVR16EB20 einen CAN-Controller (MCP2515) und noch einen Tranceiver mit partial Networking (TJA1145) dranhängen... Da dachte ich mir das das doch mit einem STM32, die oftmals einen CAN-Controller und einen 12Bit-ADC enthalten einfacher gestalten könnte. Für mich würde z.B. der STM32F042 völlig ausreichen, nur lese ich in vielen STM32-Datenblätter etwas von minimaler VDDA/VREF+ Spannung von 2,0V (STM32F303, STM32C011) - beim STM32F042 sind es sogar 2,4V... Wie misst man mit einem STM32 dann z.B. 0,5V-1,0V ohne 50% oder mehr der Auflösung zu verschenken?
Mit einem Analogfrontend, das die eingehenden Messwerte auf den richtigen Bereich abbildet.
Kevin M. schrieb: > Mit einem Analogfrontend, das die eingehenden Messwerte auf den > richtigen Bereich abbildet. Bis gerade eben wusste ich gar nicht was ein Analogfrontend ist. Hab' mir mal einen MCP3901 angeschaut - der hat zwei differentielle Eingänge, einen integrierten ADC und FPGAs. Braucht einen Quarz und erscheint mir viel zu mächtig für meine Aufgabe. Und warum sollte ich dann nicht einfach einen MCP4726 AD-Wandler mit I2C und Ref-Eingang nehmen? Oder einen OpAmp als nichtinvertierenden Verstärker mit Offset?
Jochen D. schrieb: > Und warum sollte ich dann nicht einfach einen MCP4726 AD-Wandler mit I2C > und Ref-Eingang nehmen? Weil das die falsche Richtung ist. Das ist ein Digital->Analog Wandler. Du brauchst einen Analog->Digital Wandler. Sowas wie den hier: https://www.analog.com/en/products/max11613.html I2C, 12 Bit SAR (d.h. Wandlung beim Auslesen, wenn Du den Wert ausgelesen hast, bist Du fertig. Bei anderen Architekturen musst Du die Wandlung starten, warten bis fertig und dann auslesen.) VRef geht ab 1V aufwärts. fchk
> Bis gerade eben wusste ich gar nicht was ein Analogfrontend ist.
Du kannst natuerlich irgendeinen coolen Luxus AD-Wandler mit
integriertem PGA usw nehmen, aber du kannst auch einfach einen
Operationsverstaerker nehmen und damit die Spannung anpassen. Und falls
deine Anforderung nur gering genug ist reicht es vielleicht auf
Aufloesung zu verzichten. Allerdings solltest du mal pruefen welchen
Ausgangswiderstand dein Hallsensor hat und ob er den ADC am COntroller
treiben kann. Sowas geht oft, aber nicht immer.
Vanye
Vanye R. schrieb: > Operationsverstaerker Manche STM32 haben einen OPAMP integriert. Damit kannst du die Spannung z.B. verdoppeln damit der ADC sie gut messen kann. Jochen D. schrieb: > STM32F042 Jochen D. schrieb: > Noch eine Anforderung war nun ständiger Sleep. Heißt dass Stromverbrauch wichtig ist? Dann schaue dir die STM32U und STM32L Serien an, welche deutlich weniger verbrauchen als die STM32F.
Niklas G. schrieb: > Manche STM32 haben einen OPAMP integriert. Damit kannst du die Spannung > z.B. verdoppeln damit der ADC sie gut messen kann. Das ist mir auch als erstes in den Kopf gekommen. Vielleicht irgend einen STM32Gx. Die sind ja hauptsächlich auf stromsparend/ analog ausgelegt. Bei denen gibt es auch welche mit CAN(FD). Jochen D. schrieb: > Das bedeutet das Gerät wird ... über den Kommunikationskanal aufgeweckt. Eine andere Möglichkeit wäre noch UART oder mit dem Pegel deiner Wahl (RS485,232,...) wenn du den 9 Bit multiprocessor communication mode verwendest. Brauchst du halt einen Master der das kann. Bekommt man aber selbst mit einem FTDI am PC bin. Bei dem Mode wird das 9.Bit für das Marking einer Adresse verwendet. Die Peripherie im STM kann auf eine eingestellte Adresse triggern. Filtert also alles unnötige aus. Zusammen mit einem DMA kannst du dir damit den kompletten (für den jeweiligen Teilnehmer gedachten Frame) ausschneiden ohne den Sleep verlassen zu müssen.
Frank K. schrieb: > Weil das die falsche Richtung ist. Ja stimmt - habe ich nicht aufgepasst. Meinte sowas wie den MCP3201 Niklas G. schrieb: > Manche STM32 haben einen OPAMP integriert. Damit kannst du die Spannung > z.B. verdoppeln damit der ADC sie gut messen kann. Muss ich mir mal genauer anschauen, Danke! > Heißt dass Stromverbrauch wichtig ist? Der Stromverbrauch insgesamt ist mir schon wichtig. Der Stromverbrauch der MCU ist nicht wichtig. Der Tranceiver TJA1145 hat einen Ausgang mit dem sämtliche anderen Komponenten der Saft abgedreht werden kann.
Jochen D. schrieb: > Der Stromverbrauch der MCU ist nicht wichtig Dann ist aber der Sleep egal? Jochen D. schrieb: > Der Tranceiver TJA1145 hat einen Ausgang mit dem sämtliche anderen > Komponenten der Saft abgedreht werden kann. Wenn du den MCU komplett stromlos schaltest statt einen effizienten Standby zu nutzen dauert aber auch das Starten länger, und sämtliche RAM-Inhalte sind futsch.
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.