Hallo, ich bastel z.Z. an meinem ersten uC Projekt. Habe mir ein AVR-Net-IO und RFM12 Module besorgt und will damit Funktelegramme in's IP-Netzwerk einspeisen. Die Funktelegramme sollen von mehreren Sensoren aus'm Haus kommen. Mittlerweile kann ich mit einem ATtiny2313 und RFM12 Funktelegramme zum Net-IO senden und dort per UART ausgeben. Leider benötigt der ganze RFM-Krams jetzt schon ein knappes kilo an Flash. Die One-Wire Library nochmal über 800 Byte. Da bleibt jetzt kaum noch Platz um alles zusammen zu bringen. Jetzt wollte ich mir den 4313 besorgen, aber den habe ich in keinem Shop gefunden. Kann mir jemand eine Empfehlung für einen anderen ATtiny/mega aussprechen? (Am besten mit Bezugsquelle mit Lagerbestand). Der Sensor soll mit 3 Mignons betrieben werden und einmal die Minute den Temperaturwert (evtl. stattdessen Fensterkontakte und Wasserstände) senden. Da ich wenig Erfahrung mit Schaltungsdesign habe sollte er sich möglichst ohne viel externe Komponenten schlafen legen lassen. Für's RFM benötige ich 5 I/Os, 1 I/O für One-Wire und 2 I/Os für LEDs. Gruss ...Alex
Wie wäre ein einfache Mega-8? Das ist eigentlich DER Prozessor für kleinere und normale Sachen, wenns größer sein muss, nimm eben einen Mega32 oder noch größer. Mit freundlichen Grüßen, Valentin Buck
Valentin Buck schrieb: > Wie wäre ein einfache Mega-8? Für Batteriebetrieb ist der n bisschen senil geworden, eher mega88p oder so was. @topic: was nutzt deine Software für integrierte Hardware des uCs? Daran würd ich mich orientieren, damit man nicht das ganze funktionierende wieder ändern muss.
Ich nutze keine speziellen I/O Funktionen. Für's RFM12 könnte ich SPI nutzen, wenn's verfügbar wäre... ...Alex
PS: Ein interner Taktgeber wäre sinnvoll. Meine aktuelle Schaltung besteht lediglich aus ATtiny2313, 3 Widerständen, 2 LEDs und dem RFM12.
Alexander Brickwedde schrieb: > Ein interner Taktgeber wäre sinnvoll. Ich glaube, den haben ALLE AVRs drin. Mir ist noch keiner untergekommen, der keinen hatte. Den ATMEGA88p hatte ich mal in einem Fahrradcomputer verbaut, funktioniert theoretisch heute noch mit der gleichen Batterie(1 Jahr alt), nur leider ist der Reedkontakt kaputt. Nimm doch den. Mit freundlichen Grüßen, Valentin Buck
Wo gibt's den denn Lagernd??? Wo ist'n der Unterschied zwischen A, P und PA? ...Alex
Für batteriebetriebene Sachen nimmt man normalerweise die TI MSP430, die sind in dieser Beziehung ungeschlagen. Selbst im Low Power Mode 3 (das ist noch nicht der niedrigste) kommt man ohne große Probleme auf 50nA Stromaufnahme. Bei Atmel mußt Du nach dem Stichwort "Pico Power" suchen. Das sind die Teile mit einem P am Ende. A am Ende bezeichnet ein neues Release in einer geschrumpften Geometrie mit einem etwas moderneren Halbleiterprozess. Für Dich wäre also etwas in Richtung Mega 88PA oder 168PA interessant. fchk
Deine Entscheidungsfindung beginnt früher, bei der Stromversorgung. Das RFM12 erlaubt von 2.2 bis 5.5V, bietet sich also zur direkten Versorgung aus einem LiIon Akku oder 3 Mignonzellen an. Dann sollte der uC das auch können, von mindestens 3 bis 4.5V zu arbeiten.- Das RFM12 braucht viel Strom, wenn der Oszillator an ist. Man wird ihn also nur kurz zum Senden einschalten. In der Zwischenzeit darf die Elektronik schlafen, aber man braucht einen Aufwach-Timer. Das können die meisten PIC oder AVR. Es bleibt ein Stromverbrauch von 300nA (RFM12) und 300nA (AVR, alles aus nur der Watchdog weckt ihn zyklisch auf, er guckt nach ob er was zu tun hat, und legst sich wieder schlafen). Schon normale Spannungsregler brauchen mehr, sogar energiesparende wie LP2950. Batterieladezustandskontrolle übernimmt netterweise der RFM12. Der direkte Anschluss an die Batterie ist also der beste Weg, um möglichst lange mit einer Batterie auszukommen, und 99% der Zeit bitte Schlafen im Sleep-Mode, sowohl der uC als auch der RFM12.
Frank K. schrieb: > Selbst im Low Power Mode 3 (das > ist noch nicht der niedrigste) kommt man ohne große Probleme auf 50nA > Stromaufnahme. Wobei das Augenauswischerei ist. ;-) Hast du dir schon mal den äquivalenten Selbstentladestrom deiner Batterien angesehen? Eine LR03 hat vielleicht 800 mAh, die wird von einem Laststrom von 1 µA in knapp 10 Jahren entladen... Vermutlich wird hier der regelmäßige Betrieb des Senders sowieso das sein, was am Ende am meisten Energie verbraucht. Das wesentliche Feature von Picopower ist übrigens, dass man die Bandgap-Referenz für den Brownout-Detektor nicht mehr die ganze Zeit mitlaufen lassen muss, sondern dass diese nur beim Aufwachen der CPU hochgefahren wird (aber noch so rechtzeitig, dass die CPU noch nicht anfängt zu arbeiten, bevor der Brownout-Detektor entscheiden konnte, ob er doch mit einem Reset zuschlagen muss). Wenn man den Brownout-Detektor gar nicht einschaltet, ist der Unterschied gar nicht mehr so groß. Was man nicht unterschätzen sollte ist die Leitfähigkeit feucht gewordener Flussmittelreste. Sowas kann schnell mal eine Größenordnung über dem Sleep-Strom des Controllers liegen.
Moin, Danke für Eure Beiträge. Ich habe nochmal ein wenig Hirnschmalz verbraucht, da ich meine Schaltung ungern umbauen und 14 Euro für den mega88 hinlegen (einziges Shopping-Ergebnis bei Google für die -PU Variante 4 Euro plus 10 Versand) möchte. Eine anderer One-Wire Source ist nach ein wenig optimierung mit ca. 500 Byte klargekommen. Insgesamt (One-Wire auslesen, Datenpaket bauen und absenden) liege ich jetzt bei ca. 1700. Benötige jetzt nur noch den Code zum schlafen legen, das sollte doch passen. Gibt's für schlafen legen des tiny2313 irgendwo ein Code-Beispiel ??? ...Alex
Alexander Brickwedde schrieb: > einziges Shopping-Ergebnis bei Google für die -PU > Variante 4 Euro plus 10 Versand Naja, vielleicht solltest du ja lieber die Shops selbst aufsuchen, statt auf Gugel zu vertrauen. Bei CSD bekommst du das deutlich billiger, mit deiner jetzigen Codegröße würde dir ja wohl ein ATmega48 schon genügen oder ein ATtiny44 (ist noch kleiner). > Gibt's für schlafen legen > des tiny2313 irgendwo ein Code-Beispiel ??? Was genau hast du denn am Datenblatt bzw. an bestehenden Beispielen für andere AVRs nicht verstanden?
Valentin Buck schrieb: > Ich glaube, den haben ALLE AVRs drin. > Mir ist noch keiner untergekommen, der keinen hatte. AFAIK haben die ganz uralten AT90S... keinen, nur einen Quarzoszillator. Gruß, Christian
Jörg Wunsch schrieb: > Was genau hast du denn am Datenblatt bzw. an bestehenden Beispielen > für andere AVRs nicht verstanden? OK, habe mich gerade mal eingelesen. Ich habe es soweit verstanden, dass ich mit Timer2 und externem Quarz den Controller 2s schlafen legen kann. Der Code dazu ist ja echt übersichtlich. Ohne externen Quarz gibt's vermutlich keine Lösung? Oder wenn ich ihn nur alle 2 Min. aufwecken will müsste ich das mit einem externen Timer und INTx machen, korrekt? ...Alex
> dass ich mit Timer2 und externem Quarz den Controller > 2s schlafen legen kann Dann braucht er immer noch Strom. Benutze den Watchdog für echten Schlaf.
MaWin schrieb: > Benutze den Watchdog für echten Schlaf. Gute Idee, ist ja noch viel besser, als mit dem externen Timer. Danke. ...Alex
MaWin schrieb: > Benutze den Watchdog für echten Schlaf. Ach, wird der mit der Umgebungsluft betrieben? Nur zum Vergleich, bei einem ATmega1281 braucht der Controller im power-save was um die 2,5 µA, im power-down mit Watchdog-Oszillator dagegen um die 6 µA. Dazu kommt, dass der Watchdog-Oszillator mit Spannung und Temperatur ein gutes Stück wegläuft, 2 % sind da schon mal drin. Allerdings hat der ATtiny2313, der es ja hier auf Biegen und Brechen sein muss, keinen power-save-Mode, da er keinen externen 32-kHz-Quarz treiben kann. Damit bleibt für den natürlich wirklich nur der Watchdog.
Jörg Wunsch schrieb: > Allerdings hat der ATtiny2313, der es ja hier auf Biegen und Brechen > sein muss, keinen power-save-Mode, da er keinen externen 32-kHz-Quarz > treiben kann. Damit bleibt für den natürlich wirklich nur der > Watchdog. Na, dann habe ich ja jetzt die für mich passendste Lösung. Und ob's 2 oder 6µA werden ist mir relativ, 2 oder 3 Mignons sollten das lange genug halten können... Danke... ...Alex
Hi, kurzer Status: Habe doch alles in den 2313 rein bekommen. Watchdog lässt uC alle 2s aufwachen, alle 60s weckt er den RFM12 auf und sendet die Werte der gefundenen One-Wire Sensoren raus und legt den RFM wieder schlafen. Im Schlafmodus zeigt mein Multimeter 0,04mA. Alles zusammen bin ich jetzt bei ca. 1900 Byte. Vielen Dank für Eure Beiträge. ...Alex
Alexander Brickwedde schrieb: > Im Schlafmodus zeigt mein Multimeter 0,04mA. Wäre reichlich viel, aber ich würde hier dem Multimeter erstmal nicht über den Weg trauen.
Jörg Wunsch schrieb: > aber ich würde hier dem Multimeter erstmal nicht > über den Weg trauen. Im Leerlauf (offene Strippen) zeigt es 0,02mA ! Aber für meine Zwecke reicht es aus... ...Alex
Alexander Brickwedde schrieb: >> aber ich würde hier dem Multimeter erstmal nicht >> über den Weg trauen. > > Im Leerlauf (offene Strippen) zeigt es 0,02mA ! Also für diesen Strommessbereich komplett untauglich. Ich hole mir dafür immer das alte Uni 11e aus der Ecke. Die analoge Mittelwertbildung des mechanischen Messwerks mittelt noch ganz gut über Stromspitzen, und man kann Ströme auch unter 100 nA noch abschätzen. > Aber für meine Zwecke > reicht es aus... Naja, für diesen hier (Schätzung des Schlafstroms) eben nicht mehr. Du kannst nur noch feststellen, dass da was fließt, aber hast kein Gefühl mehr, ob es nun 10, 20 oder 30 µA sind. Für eine LR03 sind 30 µA schon recht viel, die wäre allein durch den Ruhestrom dann nach ca. 3 Jahren alle.
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.