ein MLX90393 in QFN16 soll mit 3.3V versorgt an einem Arduino Nano 3 (5V) per SPI laufen. Für den Test am Steckbrett suche ich eine kleine Platine wo der Sensor drauf ist nebst Pegelwandlung. Von Adafruit gibt es zwar etwas - nur ist keine Pegelwandlung für SPI vorgesehen. Der INT/TRG-Pin ist ggf. auch zu wandeln falls der INT genutzt werden soll. Gibts eine kleine Platine die auf ein Steckbrett passt wo neben dem Chip auch die Pegelwandlung für SPI ist? Gruss Matthias
Ich nehme in solchen Fällen oft schon vorhandene MOSFET Pegel Anpasser. Die werden zwar meist für I2C Anwendungen verkauft, funktionieren aber bei nicht zu hohen Datenraten völlig ausreichend und funktionieren ab 2.5V. Siehe Links: https://www.adafruit.com/product/757?hidden=yes&main_page=product_info&part_id=757 https://electronics.stackexchange.com/questions/352590/level-shifter-for-multiple-voltage-levels Sonst könnte man noch Widerstandsteiler von 5V auf 3.3 nehmen. Nur für die Datenrichtung 3.3V auf 5V wird es eng. Weil die Schwelke für H Erkennunng bei 5V Logik oft auch um 3.3V liegt und es unzuverläßig werden kann. Man kann allerdings zur Not damit davon kommen wenn man den Pegel mit einem Widerstandsteiler nach Vdd (5V) etwas verschiebt um aus der 3.3V Umschaltzone weit genug entfernt zu sein. Dann sieht der 5V Baustein Z.B. L=1V, H=4V. Nicht elegant, aber passiv. Sonst gibt es noch diverse Pegelwandler ICs. Die am Anfang erwähnten MOSFET Wandler funktionieren gut solange die CLK und Datenfrequenz durch die unvermeidlichen Kapazitäten nicht zu sehr abgerundet werden. (Der Pullup R und Schaltungs-C bilden ein Tiefpassfilter. Bis 1MHz sollte es aber funktionieren.
Der µC auf dem Modul kann auch mit 3,3V arbeiten. Und so würde man da im echten Leben auch machen: µC und Peripherie auf die selbe Logikspannung. Bei dem Andruiden muss man nur den 5V Spannungsregler austauschen. Oder ihn ausbauen und auf den 5V von extern mit 3,3V versorgen.
Lothar M. schrieb: > Der µC auf dem Modul kann auch mit 3,3V arbeiten. > Und so würde man da im echten Leben auch machen: µC und Peripherie auf > die selbe Logikspannung. Bei dem Andruiden muss man nur den 5V > Spannungsregler austauschen. Oder ihn ausbauen und auf den 5V von > extern mit 3,3V versorgen. Die Nanos haben aber meist 16MHz Taktfrequenz. So schlimm ist die Pegelanpassung doch nicht.
Gerhard O. schrieb: > Die Nanos haben aber meist 16MHz Taktfrequenz. Wenn ich unbedingt mehr als 8MHz brauche, dann nehme ich einfach einen µC, der mit 3,3V mehr als 8MHz kann. > So schlimm ist die Pegelanpassung doch nicht. Naja, Murks bleibt Murks. Und hier die Anleitung: https://forum.arduino.cc/index.php?topic=158513.0
Murmeltier schrieb: > Bis 1MHz sollte es aber funktionieren. Vielen Dank ! ich hatte schon gehofft 8 MHz per SPI nutzen zu können. Momentan hatte ich an einen TXB0104 als Pegelwandler gedacht, nur ist der eben auch in SMD. Das passt nicht so leicht auf ein Steckbrett.
Lothar M. schrieb: > Der µC auf dem Modul kann auch mit 3,3V arbeiten. ja. Das bedeutet jedoch diverse Umbauten die ich nicht vornehmen möchte auf dem fertigen Modul. Der Quarz müsste getauscht werden. Der USB-Baustein hat dann nicht die richtige IO-Spannung. Spannungsregler müsste dran und Diode raus. Der Bootloader streikt dann ggf. auch. kurzum - ich müsste ein anderes Modul kaufen und dann mit 8MHz statt 16 MHz arbeiten. Die SPI wäre dann 4 MHz wohl. Das ist nicht das was ich wollte.
:
Bearbeitet durch User
Gerhard O. schrieb: > So schlimm ist die Pegelanpassung doch nicht. im Idealfall gibt es eine Platine wo das alles nebst dem MLX-chip drauf ist. Eben das ist die Frage.
Lothar M. schrieb: > Und hier die Anleitung: > https://forum.arduino.cc/index.php?topic=158513.0 Danke. Das ist eine Menge Änderung.
Matthias W. schrieb: > Das ist eine Menge Änderung. Ja, nur Veränderung bringt dich voran... ;-) > Das ist eine Menge Änderung. Verglichen mit dem Gebastel, das du mit dem Pegelwandler haben wirst, eigentlich nicht. Denk da bei den schnellen Treibern auch an eine Serienterminierung. Sonst klingelt das Signal wie sonstwas. Siehe den Beitrag "Re: Probleme mit 8 MHz SPI Takt ausschliessen" Matthias W. schrieb: > Das ist nicht das was ich wollte. Du musst eines berücksichtigen: interessant ist im Prinzip nicht, was du willst, sondern was die Lösung deiner Aufgabe braucht. Wenn du das mit einem 1MHz SPI und einem 4MHz Controller erreichst, dann bist du fertig. Es bringt nichts, wenn der Controller doppelt so schnell ist. Matthias W. schrieb: > ich hatte schon gehofft 8 MHz per SPI nutzen zu können. Brauchst du tatsächlich 8MHz auf dem SPI? Matthias W. schrieb: > Der USB-Baustein hat dann nicht die richtige IO-Spannung. Das sieht mir nach selektivem Lesen und Auslegen des Datenblatts aus. Wenn du statt 5V dort 3,3V in den Andruiden einspeist, dann passt das genau. Denn die IO-Spannung des FT232 ist genau die Spannung, die der µC ebenfalls als IO-Spannung hat (bei dem ist ja Vcc = Vio). Und der FT232 kann da von 1,8V bis 5,25V. Insofern lägen 3,3V optimal in der Mitte und genau richtig. Du kannst natürlich weiter mit den Pegelwandlern weitermachen, wenn du das willst. Ich wollte dir nur sinnvolle Alternativen zeigen, es reicht, wenn du weißt, dass es welche gibt.
:
Bearbeitet durch Moderator
Lothar M. schrieb: > Denk da bei den schnellen Treibern auch an eine Serienterminierung. Danke für den Hinweis Lothar !
Lothar M. schrieb: > was die Lösung deiner Aufgabe braucht. da hast Du natürlich recht. Das behalte ich durchaus im Auge. Es geht erst mal um einen Versuchsaufbau um auszuloten was wie passt. Wenn ich mehr weiß werde ich eine Platine machen. Nur jetzt am Anfang wollte ich das nicht gleich machen.
Lothar M. schrieb: > Wenn du das mit einem 1MHz SPI und einem 4MHz Controller erreichst, > dann bist du fertig. klar. Nur warum soll ich dann überhaupt SPI nehmen? Mit I2C geht es bei diesem chip ja auch. Das zeigt ja das Board von Adafruit. warum baut dann der Hersteller SPI noch auf das chip? Zum Spaß? eben dazu möchte ich mir ein Bild machen. Wenn ich am Ende erkenne daß das mit I2C besser und einfacher geht - dann werde ich I2C nehmen. Berührungsängste habe ich da keine.
Lothar M. schrieb: > Ich wollte dir nur sinnvolle Alternativen zeigen, es > reicht, wenn du weißt, dass es welche gibt. für diese Diskussion bin ich durchaus dankbar. Daher schaue ich die Datenblätter noch mal genauer an und überlege. Bis 12MHz wären bei 3.3V möglich. Nur müsste ich dann den Quarz ändern usw. Das ist auf den gekauften Boards so nicht sinnvoll. Das abzulöten ist eine Qual. Dann besser neu aufbauen. Das jedoch geht erst wenn ich die Platine habe. es wäre auch denkbar ganz andere CPUs zu nehmen. Der LPC1343 braucht jedoch auch nicht gerade wenig Strom wenn man ihn oberhalb 12MHz taktet. der MSP430 war mal eine Wahlmöglichkeit wenn es sparsam sein sollte. Nur braucht jedes chip auch wieder eine andere Entwicklungsumgebung und Einarbeitung. Auch dies muss man überlegen. da das Gerät am Ende mit Batterien auch betrieben werden soll spielt Energiebedarf auch eine Rolle. Wie oft ich Werte erfasse (möglich sind bis 500 Messungen pro Sekunde) bestimmt auch mit die Rechenleistung. dazu kommt die Anforderung die Daten dann brauchbar abzulegen. Wenn eine SD-Card noch dran soll die sich die SPI teilt so sollte es da nicht beim Zugriff und den Wartezeiten der Karte zu Konflikten kommen. der Atmega328 hat ja nur eine SPI.
Lothar M. schrieb: > Denn die IO-Spannung des FT232 ist genau die Spannung, die der > µC ebenfalls als IO-Spannung hat ja. Nur leider verursacht auch der FT232 wieder Stromverbrauch weshalb ich den Chip bei Batteriebetrieb nicht versorgen möchte. Erst zum Auslesen wird er dann ggf. gebraucht.
Matthias W. schrieb: > Nur leider verursacht auch der FT232 wieder Stromverbrauch weshalb ich > den Chip bei Batteriebetrieb nicht versorgen möchte. Dieses "Problem" ist aber unabhängig von 3V3 oder 5V, denn die IO-Spannung des FT232 hängt ja auf der Platine immer parallel zum µC. Wenn der µC versorgt wird, wird der IO-Block vom FT232 versorgt. Sieh dir da mal den Schaltplan an. Matthias W. schrieb: > da das Gerät am Ende mit Batterien auch betrieben werden soll spielt > Energiebedarf auch eine Rolle. Und der steigt mit der Taktfrequenz. Gerade bei Batteriebetrieb ist ein möglichst geringe untere Versorgungsspannung und Taktfrequenz Pflicht. Ich habe da z.B. einen ATtiny als Scrabbletimer, der seit bald 10 Jahren mit und direkt an einer kleinen CR1620 läuft, das Jahr über alle 2 Minuten mal die LED blitzen lässt und wenn man auf den Knopf drückt, läuft die Sanduhr los. > Wie oft ich Werte erfasse (möglich sind bis 500 Messungen pro Sekunde) > bestimmt auch mit die Rechenleistung. Bei 500 Messungen pro Sekunde passen bei 8MHz noch 16000 Maschinenbefehle zwischen 2 Messungen. Da kann man schon was mit anfangen. Und wenn du auf dem Bus für 500 Messungen pro Sekunde jeweils 512 Bits übertragen müsstest (was sicher nicht nötig ist), dann reicht im Prinzip eine Taktfrequenz von etwas mehr als 250kHz. Matthias W. schrieb: > klar. Nur warum soll ich dann überhaupt SPI nehmen? > Mit I2C geht es bei diesem chip ja auch. Richtig. Die Frage solltest du beantworten und am besten mit Zahlen belegen können. Denn du hast diese Schnittstelle doch ausgewählt. > warum baut dann der Hersteller SPI noch auf das Chip? Zum Spaß? Da stellt sich eher die Frage: warum baut der Hersteller noch I2C auf den Chip wenn da ein SPI drauf ist, der noch viel schneller ist? Ganz einfach: weil man ihn dann da oder dort anschließen kann. Aber man muss eben nicht unbedingt mit absolut höchstmöglichem Vollgas über jeden Bus brettern.
:
Bearbeitet durch Moderator
Lothar M. schrieb: > Wenn der µC versorgt wird, wird der IO-Block vom FT232 versorgt. nicht unbedingt. Momentan habe ich beim FTDI beide Versorgungspins zusammen auf VUSB gehängt. Der FTDI wird so nicht automatisch von der µC-Seite versorgt. der TXD-Pin der CPU ist über 1kOhm mit dem FTDI verbunden. Wenn der Pin low ist sollte kein Strom fließen.
Lothar M. schrieb: > Die Frage solltest du beantworten und am besten mit Zahlen > belegen können. Denn du hast diese Schnittstelle doch ausgewählt. der Applikationsmann bevorzugt die schnellere SPI. Daher wollte ich im ersten Versuch das probieren. Wenn das läuft kann ich im Vergleich noch I2C ansehen. Bei I2C kommt der Stromverbrauch durch die Pullups hinzu wenn sonst nichts am Bus hängt wie z.B. ein FRAM.
Lothar M. schrieb: > man muss eben nicht unbedingt mit absolut höchstmöglichem Vollgas über > jeden Bus brettern. ja. Da hast Du absolut recht. Noch dazu wenn es minimal 1.8ms für einen Messwert dauert. Man muss die Gesamtapplikation im Auge behalten. Da kann es Sinn machen den Speicher auf I2C zu legen und den Sensor auf SPI.
Lothar M. schrieb: > Bei 500 Messungen pro Sekunde passen bei 8MHz noch 16000 > Maschinenbefehle zwischen 2 Messungen. Da kann man schon was mit > anfangen. ja. Die Daten müssen ausgelesen, verarbeitet und gespeichert werden. Dazu möchte ich sie auch per UART zum Laptop senden. Das Programm wird schrittweise entstehen und dabei werde ich sehen wo etwas klemmt. Solange die Daten stets weggeschrieben werden können bevor die nächsten Daten da sind sollte es keine Probleme geben. FRAMs sind schnell. Da muss man nicht warten. Schwieriger wird es wenn man ein Flash schreibt und man einen Sektor löschen muss und warten. Solche Sachen wollte ich später angehen. Erst mal sollen die Grundfunktionen laufen.
Lothar M. schrieb: > Gerade bei Batteriebetrieb ist ein > möglichst geringe untere Versorgungsspannung und Taktfrequenz Pflicht. deswegen schaue ich mehrere mögliche Schaltungsvarianten an. Momentan gibt es eine mit Atmega168 5V und eine mit LPC1343 3.3V. Den MSP430 möchte ich auch noch untersuchen. Der wird sparsamer sein. zur Versorgung sind 2 Alkalizellen vorgesehen oder 2 Akkus mit Boostwandler.
Lothar M. schrieb: > Ja, nur Veränderung bringt dich voran... ;-) da ist was Wahres dran ! wenn ich die vielen Änderungen nun anschaue so müsste ich ein Stück voran nun sein :-)
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.