Nach langer Zeit (etliche Jahre) wage ich wieder an ein Hardware Bastel-Projekt. Was ich bauen möchte: eine Blackbox, die 8 Temperatur-Messfühler periodisch abfragt und die Messdaten auf eine SD-Karte schreibt. Das ganze soll minimalistisch werden, mit Draht-durch-Loch Bauteilen, die möglichst in der gut sortierten Bastelkiste zu finden sind. Die Box soll 'on the field' eingesetzt werden, keine externe Stromversorgung. Als Stromquelle plane ich NC Akkus einzusetzen. Temperatur-Fühler mit onewire. Auslesen der Messdaten über USB, plane dafür die V-USB lib. Gemessen werden 8 Messfühler, in 15min Abstand. Auslesen alle 1-2 Monate mit Laptop. Um das ganze minimalistisch zu halten würde ich gerne einen Steckverbinder (USB-B Buchse) sowohl zum Laden des Akkus, zum auslesen der Daten und auch zum anschliessen der Temperatur-Fühler benutzen. Das ganze ist noch am Reissbrett, ich habe mal angehängt was ich bisher habe.. Frage ist nun: kann das Konzept so überhaupt funktionieren? Ist alles ziemlich weit out of spec... Vielleicht hat einer der Pro's ja musse, kurz drüber zu schauen, ob das so geht. Oder jmd hat Vorschläge? Sehr unsicher bin ich was die Stromversorgung angeht; ab einem gewissen Ladestand geht die Spannung recht weit runter (bis auf 2.6, 2.7V?), was sagt der Mega8 und vor allem die onewires dazu? Wenn ich 4-Zellen Akkus benutze (oder die Diode D2 weglasse), geht die Spannung zu weit herauf, zerschiesse ich damit die SD-Karte oder meinen USB-Port? Den USB könnte ich mit Zehner absichern; selbes Konzept auch bei der MMC? Oder für D2 vielleicht eine Germanium-Diode? Einfacher wäre natürlich einfach nen Arduino mit 9v-Block zu benutzen.. Aber wo bleibt da der Spass? :) Grüsse Mario -- Kurze Beschreibung was ich mir gedacht hatte: usb power Die Schaltung arbeitet nominal mit 3.3V. Ein 3-Zellen NC-Akku dient im Messbetrieb als Stromquelle. Bei voll geladenem Akku haben wir eine Zellspannung von ~4V, D2 bewirkt einen Spannungsabfall auf 3.3V. R6/R7 bilden einen Spannungsteiler, um den Batterie-Ladezustand zu messen. Im Usb-Betrieb wird der Akku über R9/D1 geladen; R9 begrenzt den Ladestrom auf 75mA, D1 sorgt für eine maximale Ladespannung von 4.3V. Über R8 wird dem uC signalisiert das die Schaltung am USB Bus liegt. Zusammen mit der LED und der der Signalleitung sollte der Gesamt-Strom 100mA nicht überschreiten. D+ und D- werden mit dem üblichen pullup nach Vcc direkt an den uC weitergeleitet. Ist kein USB angeschlossen (Mess-Modus) schaltet der uC D+ auf 5V und versorgt somit die Messfühler. Der für VUSB benötigte Pullup auf D- dient gleichzeitig als pullup für das onewire Protokoll. MCU Nichts besonderes.. Mit einer Besonderheit, der uC arbeitet mit internem RC-Takt, hochgepimpt auf 12.7-12.9 MHz; Statt des üblichen Taktgebers ist ein 32kHz Uhrenquarz angeschlossen, um eine stabile Zeitbasis zu erhalten. Ob das mit der instabilen Stromversorgung funktionieren wird ist allerdings noch fraglich. MMC Standard-Beschaltung. dev-plugs Anschlüsse für die Entwicklung.. Incircuit-Programmer und seriell Konsole. I2C eigentlich nur weils noch frei ist. Software: Im Normalbetrieb schläft der uC. TMR2 ist als RTC konfiguriert, der 32kHz Quarz sorgt für die Zeitbasis. Alle 15min wird eine Messung vorgenommen. Messergebnisse kommen erst einmal in einen Puffer im RAM. Ist der Puffer voll, wird er als CSV auf die MMC-Karte geschrieben. Einfaches FAT fs, fester Dateiname. Gleichzeitig kurz Ladezustand des Akkus prüfen, wenn der (fast) leer ist, Meldung über LED. Adressen der Temperatur-Fühler fest konfiguriert, also kein Suche nach onewire-devices. Wird Usb angeschlossen (INT0) schaltet der uC VUSB ein, und agiert als usb-geraet. Kommandos: Messdaten abholen, Messdaten löschen, Uhr stellen, Messfühleradressen setzen. Entweder als HID Modem mit AT-Kommandos, oder als custom Gerät, was gerade einfacher ist. Gleichzeitig wird der Akku nachgeladen. Sobald USB getrennt wird (fallende FLanke an USB_SENSE), führt das Gerät einen Reset aus. Weiterverabeitung der Messdaten dann am PC. Referenzen: [http://www.obdev.at/products/vusb/index-de.html] 'V-USB is a software-only implementation of a low-speed USB device for Atmel’s AVR® microcontrollers' [http://www.nxp.com/documents/application_note/AN10911.pdf] Seite 6: VSD (SD-memory card supply voltage): min 2.7V, max 3.6V IDD (supply current in high-speed mode): 200 mA [http://www.micropik.com/PDF/ds1820.pdf] Seite 24: VDD (Supply Voltage): min 2.8V, max: 5.5V for ±1/2°C Accurate Temperature Conversions: min 4.3V Temperature conversion will work with ±2°C accuracy down to VDD = 3.4 volts IDD (Active Current): min 1mA max 1.5mA [http://forums.obdev.at/viewtopic.php?f=8&t=4737] 'I tried different OSCCAL-values and found out that 0xEF (239) results in a clock frequency of 12.700MHz at 5V, while 0xF0 (240) will result in a clock frequency of 12.917MHz - and both of these values are sufficiently close to 12.8MHz to use the V-USB-firmware.' [edit: added referemces]
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.