Forum: Mikrocontroller und Digitale Elektronik einfachste Möglichkeit Daten zu speichern mit AtTiny


von Frank (Gast)


Lesenswert?

Hi, ich lese Umweltdaten wie Temperatur, Feuchte usw. aus, soweit ist 
alles fertig. Jetzt wollen wir auch speichern ;)

Ich nutze einen Atmel Tiny441, was ist die einfachste Möglichkeit und 
kostengünstigste Möglichkeit (Software/Hardware) sagen wir ein-zwei 
Megabyte zu speichern?

Wenn möglich möchte ich:
- nur wenige Pins verwenden, SPI ist noch frei.
- den Speicher rausziehen können (USB Stick, SD o.Ä.)
- ein Projekt als Vorlage in Assembler

Könnt Ihr mir nen Tipp geben?
Grüße, Frank

von A. (Gast)


Lesenswert?

Schmeiss Assembler weg, nimm C. Dafür gibts dann auch fertige Libs für 
Attiny.

von Erich (Gast)


Lesenswert?

Dein uC ist viel zu klein, um grössere Speicher ordentlich zu 
beschreiben; Stichwort: FAT Dateisystem

Was liegen dir überhaupt für Daten vor, bei
>sagen wir ein-zwei Megabyte
braucht es einen Zeitstempel (einer Uhr) sonst kannst damit nix 
anfangen.

>USB Stick, SD o.Ä.
>ein Projekt (als Vorlage) in Assembler
Diese beiden Anforderungen dürften sich gegenseitig ausschliessen.

Zur Info:
http://elm-chan.org/docs/mmc/mmc_e.html
http://elm-chan.org/fsw/ff/00index_e.html
http://www.dejazzer.com/ee379/lecture_notes/lec12_sd_card.pdf

von morob65 (Gast)


Lesenswert?

spi 16mbit eeprom, c als programmiersprache

von Axel S. (a-za-z0-9)


Lesenswert?

morob65 schrieb:
> spi 16mbit eeprom, c als programmiersprache

Stimmt. Von Auslesen hat er ja nichts gesagt.

von Peter D. (peda)


Lesenswert?

USB-Stick in Assembler, ich schmeiß mich weg.

von Cyblord -. (cyblord)


Lesenswert?

Die SPI Dataflash von Adesto sind dafür geeignet. Durch die beiden 
integrierten SRAM Puffer, braucht man praktisch kein RAM auf dem Tiny 
für deren Nutzung.

Das geht sogar alles in ASM, wenn man sich das unbedingt antun möchte.

von pegel (Gast)


Lesenswert?

I2C EEPROM und dafür noch RS232 Rx/Tx?
Sollten sich auch in Assembler Beispiele finden lassen.

Zum Auslesen die ganze Einheit an einen USB/Seriell Wandler.

von pegel (Gast)


Lesenswert?

Frank schrieb:
> ein-zwei Megabyte

Na gut, dass ist etwas viel für I2C.

von Pandur S. (jetztnicht)


Lesenswert?

>Könnt Ihr mir nen Tipp geben?

Ja. Du willst grad die schwierigste Loesung. Zum Rausnehmen und in ASM, 
und mit einem Krueppelprozessor.
Einfacher waer's einen groesseren AVR zu haben und as Flash fest 
verbaut.

Was soll der tiny ? Die 30 cents sparen ?

von Stefan F. (Gast)


Lesenswert?

Vielleicht tut's ein serieller Datenlogger:
https://www.ebay.de/i/272716665133?chn=ps

von Lehrer (Gast)


Lesenswert?

Sabberalot W. schrieb:
>>Könnt Ihr mir nen Tipp geben?
>
> Ja. Du willst grad die schwierigste Loesung. Zum Rausnehmen und in ASM,
> und mit einem Krueppelprozessor.
> Einfacher waer's einen groesseren AVR zu haben und as Flash fest
> verbaut.
>
> Was soll der tiny ? Die 30 cents sparen ?

Plenken und Schreibfehler. Muss das sein?

von Noch einer (Gast)


Lesenswert?

Du brauchst auf einer SD-Karte kein Dateisystem.

Du kannst die Rohdaten einfach hintereinander weg schreiben und trotzdem 
auf einem PC die Daten lesen. Unter Linux einfach mit dem /dev/sdb.

Assembler für das Schreiben über SPI sind nur 100 Zeilen. Umfangreich 
wird nur den Code, der die Parameter auswertet und zwischen SD/SDHC/SDXC 
umschaltet. Kannst auch ein Programm schreiben, was nur mit deiner Karte 
zurecht kommt.

von Stefan F. (Gast)


Lesenswert?

> Du kannst die Rohdaten einfach hintereinander weg schreiben und
> trotzdem auf einem PC die Daten lesen.

Versuche das mal unter Windows 10.

von S. Landolt (Gast)


Lesenswert?

Stefan U. schrieb:
>> Du kannst die Rohdaten einfach hintereinander weg schreiben und
>> trotzdem auf einem PC die Daten lesen.
>
> Versuche das mal unter Windows 10.

Z.B. mit Win32DiskImager.

von Armer (Gast)


Lesenswert?

Also Leute ich verstehe nicht die Aufregung und die häufige Meinung das 
dafür Assembler nicht das richtige wäre! Euer C-Compiler erzeugt doch 
letztendlich aus eurem tollen C-Code auch nur Assembler Code!

Also hier was Hilfreiches:
Nehme einen SST25VF016B und hänge den am SPI dran. Der hat 2MByte bzw. 
16MBits. Der lässt sich kinderleicht ansteuern und das auch in 
Assembler!
Siehe Datenblatt!
http://www.microchip.com/wwwproducts/en/SST25VF016B

von Armer (Gast)


Lesenswert?

Und noch was für die, die glauben Assembler könne keinen USB Stick 
usw...

Da gibt es den VNC2 Chip von FTDI. Den kann man mit verschiedenen 
Schnittstellen ansprechen, da kann man eine Firmware drauf bringen, die 
auch FAT kann und wo man ganz einfach mit ein Paar primitiven Kommandos 
Dateien Ver- und Bearbeiten kann.

Also eine Ansteuerung für einen USB-Stick hätte ich damit in 30 Minuten 
in Assembler programmiert...

von Frank (Gast)


Lesenswert?

Stefan U. schrieb:
> Vielleicht tut's ein serieller Datenlogger:
> Ebay-Artikel Nr. 272716665133

So das ist es, genau das habe ich gesucht.

- easy anzusteuern = sehr wenig Arbeitszeit für das Extra
- passt auf meine Programmierschnittstelle, also der Anschluss ist schon 
vorhanden, kann dann wahlweise draufgesteckt werden als "Pro Version"
... vorbehaldlich das ich den Reset auf einen der Pins legen kann ...
- sehr viel Speicher
- Speicher kann entfernt werden und extern ausgelesen
- Preis ist absolut OK

Stefan ich danke Dir!

von Zwischen den Zeilen steht nix (Gast)


Lesenswert?

>> trotzdem auf einem PC die Daten lesen.
>
> Versuche das mal unter Windows 10.

Soll das die Strafe sein dafür dass er USB in ASM programmieren will? So 
in der Art von "2x Lebenslänglich UND zum Tode verurteilt"?

Im Erstbeitrag steht weder dass das Auslesen auf einem PC geschehen 
soll, noch dass dazu auf BS der mühsamsten Kategorie zu verwenden sind.

von Stefan F. (Gast)


Lesenswert?

> Im Erstbeitrag steht weder dass das Auslesen auf einem
> PC geschehen soll

Stimmt, ich hatte jedoch geahnt dass er das vor hat. Es läuft meistens 
darauf hinaus, Daten zu sammeln, um sie später auf einem PC auszuwerten.

von Stefan F. (Gast)


Lesenswert?

Offensichtlich gibt es davon auch Varianten mit SPI Anschluss. Ich habe 
mit Google dieses Bild gefunden: 
https://img09.banggood.com/forum_images/20160320/20160320053432_65232.png

von Frank (Gast)


Lesenswert?

Stefan U. schrieb:
>> Im Erstbeitrag steht weder dass das Auslesen auf einem
>> PC geschehen soll
>
> Stimmt, ich hatte jedoch geahnt dass er das vor hat. Es läuft meistens
> darauf hinaus, Daten zu sammeln, um sie später auf einem PC auszuwerten.

Natürlich ein Format das alle lesen können, Micro SD ist auch perfekt.



Manchmal habe ich das Gefühl das die C Entwickler in den letzten 20 
Jahren intoleranter und aggresiver geworden sind - viele Forenbenutzer 
hier auch ;)
Peter Dannegger ausgenommen - der war schon vor 10 Jahren so.

Beitrag #5235168 wurde von einem Moderator gelöscht.
von Noch einer (Gast)


Lesenswert?

> Da gibt es den VNC2 Chip von FTDI.

Die Mikrocontroller Programmierung ist inzwischen vollkommen absurd 
geworden.

Wir arbeiten mit Kilobyte und Kilohertz. Für Wlan oder USb-Host benutzen 
wir Chips, die mehr können als ein PC aus der Win3.1 Ära.

von Stefan F. (Gast)


Lesenswert?

> intoleranter und aggresiver geworden sind

Das beobachte ich generell überall wo im Internet diskutiert wird. Man 
sollte meinen, dass die Weltweite Vernetzung eher Toleranz und Offenheit 
fördern müsste. Ist aber leider nicht so. Das sollte man allerdings 
nicht einzelnen Leuten ankreiden, denn es ist ein Massenphänomen. besser 
akzeptieren und sich anpassen (dickes Fell zulegen).

von M. K. (sylaina)


Lesenswert?

Noch einer schrieb:
> Wir arbeiten mit Kilobyte und Kilohertz. Für Wlan oder USb-Host benutzen
> wir Chips, die mehr können als ein PC aus der Win3.1 Ära

Was ja auch nicht verkehrt ist denn diese Chips müssen ja auch mehr 
leisten als ein PC aus der Win3.1 Ära ;)

von Michael K. (Gast)


Lesenswert?

M. K. schrieb:
> Was ja auch nicht verkehrt ist denn diese Chips müssen ja auch mehr
> leisten als ein PC aus der Win3.1 Ära ;)

Und verbrauchen dabei weniger als die großen 74LSxx Logicgräber mit 
denen wir uns herumschlagen mussten.
Die Argumentation USB-Stick mit ASM anzusprechen sei kein Thema weil man 
einem komplexen Controller ein paar Bytes schickt und der die ganze 
Arbeit macht, hinkt natürlich gewaltig.

von Einer K. (Gast)


Lesenswert?

Michael K. schrieb:
> hinkt natürlich gewaltig.


Einen Tiny als Hauptprozessor zu verwenden und einen Mega328 als 
seriellen Log Slave.
Das hinkt doch auch schon.

Ich würde sagen:
Weg mit dem Tiny, lass alles den 328 machen.

von Michael K. (Gast)


Lesenswert?

Ich habe hier Datenlogger liegen die 'single use' sind.
Werden Medikamentensendungen beigelegt und nach Empfang ausgelesen.

Nach Drücken der Stopp Taste wird ein PDF mit allen Daten erzeugt das 
von dem nun statischen USB Stick gelesen werden kann.
Danach geht das ganze Ding mit LCD, Akku, fettem PIC etc. in die Tonne.

Das nenne ich mal ein Geschäftsmodell!

Und wir spulen uns über so einen rotzigen Tiny auf ...

von Einer K. (Gast)


Lesenswert?

Michael K. schrieb:
> in die Tonne
Müllverschwendung!

von Stefan F. (Gast)


Lesenswert?

> Einen Tiny als Hauptprozessor zu verwenden und einen Mega328 als
> seriellen Log Slave.

Na und? Solange der Preis passt und es einfach ist.

Andere Leute benutzen diverse GSM und Funkmodule oder gar DSL Modems als 
Slave für wesentlich "kleinere" Mikrocontroller.

von Einer K. (Gast)


Lesenswert?

Stefan U. schrieb:
> Solange der Preis passt und es einfach ist.

Habe mir die Module mal genauer angesehen:

Die Firmware ist Arduino Zeug.
Das ist OK, wird wohl funktionieren.
Kann man dann ja auch selber so bauen/ändern, wie man möchte.

16MHz und 3,3V geht nicht zusammen!
Warum tun die das dann?

Der 328 läuft mit 3,3V.
Ein Betrieb mit 3,3V bis 5V ist ausdrücklich erlaubt.
Da Regler OnBoard.
Aber TX und RX gehen ungeschützt nach draußen.
Das halte ich schon für richtig böse!


Die vorhandenen SPI Anschlüsse dienen nur für ICSP.
Sind sonst nicht als Datenleitungen gedacht, würde  sich auch mit der SD 
Karte in die Quere kommen.
Ins besondere, weil kein /CS heraus geführt wurde.


------------
Kommt mir alles sehr seltsam vor ..........

von Stefan F. (Gast)


Lesenswert?

> 16MHz und 3,3V geht nicht zusammen!
> Warum tun die das dann?

Klingt ziemlich mies. Vielleicht setzt das Programm wenigstens den Clock 
Prescaler auf 2.

von Sven G. (captainalbern)


Lesenswert?

Hallo zusammen,

ich habe nicht alle Antworten gelesen, also falls schon mal genannt, 
ignoriert's einfach.

Für größere AVRs gibts zur Arduino IDE eine Library, mit der man auf 
eine FAT32-formatierte SD-Karte schreiben kann. Die Zeitstempel sind 
dann Null, wenn man keine Echtzeituhr hat. Wenn das nicht stört... Man 
kann ein SD-Breakout-Board an den SPI/ISP-Header anschließen. Die 
~CS-Leitung kann man  auch fest auf Masse legen, wenn man nur ein 
SPI-Gerät verwendet. Ob das mit AtTiny genauso funktioniert, weiß ich 
nicht. Vielleicht ist die Bibliothek zu groß dafür.

Gruß
    CA

von Einer K. (Gast)


Lesenswert?

Stefan U. schrieb:
> Vielleicht setzt das Programm wenigstens den Clock
> Prescaler auf 2.
Auf die Schnelle, nicht zu erkennen.

von Einer K. (Gast)


Lesenswert?

Nachtrag: (kann nicht mehr editieren)
1
All OpenLogs sold during and after March of 2012 have a bootloader that is compatible with the “Arduino Uno” board under the Arduino IDE.
Damit ist klar: 16MHz, und nichts anderes.

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
Noch kein Account? Hier anmelden.