AtTiny - data storage

Ciao a tutti,
grazie all'isolamento e al vostro aiuto sto migliorando un mio vecchio progettino.
Prima era basato su un arduino nano e come data storage usavo una sd card, ora lo sto "convertendo" su attiny.

Ho trovato una libreria per scrivere su sd card compatibile con gli attiny, ma occupa lo stesso troppa memoria.

Ho pensato alle eeprom, ma che io sappia non si possono usare per scriverci sopra frequentemente (vorrei loggare dati ogni 30 min ±30min ;D ).

Ci sono alternative non troppo laboriose?

Se fai una scrittura ogni 30 minuti, ovvero 2 scritture l'ora, avrai FORSE problemi dopo ... 50'000 ore, ovvero FORSE dopo 2084 giorni, ovvero FORSE dopo circa 6 anni.

Dato che le 100'000 scritture MINIME GARANTITE sono inoltre per SINGOLA cella, basta ogni tanto cambiare celle e questo numero si moltiplica proporzionalmente ...

Può bastare? ;D

Guglielmo

Ah :-[

Probabilmente morirà prima la ventola ;D ;D ;D

>m265: Quando si quota un post, NON è necessario riportarlo (inutilmente) tutto; bastano poche righe per far capire di cosa si parla ed a cosa ci si riferisce, inoltre, se si risponde al post immediatamente precedente, normalmente NON è necessario alcun "quote" dato che è sottinteso. :slight_smile:

Gli utenti da device "mobile" (piccoli schermi) ringrazieranno per la cortesia :wink:

Guglielmo

P.S.: Ho eliminato io il "quote" dal tuo post qui sopra :wink:

Hai perfettamente ragione, in futuro eviterò!

Si può spostare il topic in 'software' ?

Avrei un problema proprio con la eeprom :-[

m265:
Si può spostare il topic in 'software' ?

FATTO ;D

Guglielmo

WOW, real time 8)

Dunque: mi è già arrivata la eeprom, l'ho "provata" su un nano e riesco a scrivere e leggere senza problemi.

Ora sto provando a leggere quanto scritto con il nano usando un attiny85 con la TinyWireM ma non c'è verso, si blocca lo sketch nel ciclo 'for'

Come debug sono connesso al nano e ricevo le .println che ci sono prima del ciclo

#include <TinyWireM.h>

int add=0;

#include <SoftwareSerial.h>
SoftwareSerial mySerial(3,4);

void setup() {    
  pinMode(3,INPUT);
  pinMode(4,OUTPUT);
  mySerial.begin(9600);
  mySerial.println("EEPROM TEST");
  TinyWireM.begin(); 
}

void loop() {  
  mySerial.println("START READING");
  add=0;
  for(int spot=0 ; spot<10 ; spot++) {
      TinyWireM.beginTransmission(0x50);
      TinyWireM.write(highByte(add));
      TinyWireM.write(lowByte(add));
      TinyWireM.endTransmission();
      add++;
      TinyWireM.requestFrom(0x50,1);      
      if(TinyWireM.available()) {    
        mySerial.print(spot);
        mySerial.print(": ");    
        byte b=TinyWireM.read();        
        mySerial.println(b);        
      }      
  }
  delay(3000);
}

Scusa, che "core" stai usando per gli ATtiny85? Perché, SE ricordo bene e SE non vado errato, il core di Spence Konde (che è il migliore) ha la classica Wire modificata per lavorare con ATtiny senza dover usare altre vecchie librerie.

Guglielmo

:o
A saperlo prima ....

Ho modificato per lavorare con la Wire ma il risultato non cambia.
Sul nano ricevo fino a "START READING" poi si pianta nel ciclo for.

m265:
Ho modificato per lavorare con la Wire ma il risultato non cambia.
Sul nano ricevo fino a "START READING" poi si pianta nel ciclo for.

Controlla i collegamenti e verifica di aver usato i giusti piedini per SCL (pin fisico 7 - PB2) e SDA (pin fisico 5 - PB0) e che le resistenze di pull-up siano presenti ... ::slight_smile:

Guglielmo

Non avevo messo i pull-up :-[ :-[ :-[ :-[ :-[

Dannato nano ti rende la vita troppo semplice ;D

Grazie Guglielmo

m265:
Dannato nano ti rende la vita troppo semplice ;D

Ahahahah :smiley: :smiley: :smiley: ... bene, sono contento che hai risolto !

Guglielmo