Fórum | MyPower.CZ | Obnovitelné zdroje energie - energetická soběstačnost | Poslední návštěva: pon říj 21, 2019 2:19 am


ATtiny85 + Uno komunikácia

Automatizace, řízení, měření, logování a programování s využitím platformy Arduino.
PředchozíDalší

Re: ATtiny85 + Uno komunikácia

Příspěvekod rottenkiwi » pon úno 11, 2019 8:06 pm

Balancovacie LED aj balancovanie idú OK, ale komunikácia nie.
https://www.youtube.com/watch?v=QfEChUgx-uI

Ktorý z tých merákov potrebujem, aby som zobrazil komunikáciu ?
https://www.esat.sk/dielna/meracia-tech ... FilterPart
Dělej vše, jak nejlépe dovedeš. Ale ne lépe. 4. dohoda.
Si anode Spectrum BMS SEI formation Float Ochrana High SOC deg. MPPT Život Radko
Uživatelský avatar
rottenkiwi
 
Příspěvky: 2915
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK

Re: ATtiny85 + Uno komunikácia

Příspěvekod rottenkiwi » úte úno 12, 2019 8:18 pm

Už to komunikuje aj tam aj spať, ale 3. a 4. znak sa pri prebudení stráca.
Nemáte oprávnění prohlížet přiložené soubory.
Dělej vše, jak nejlépe dovedeš. Ale ne lépe. 4. dohoda.
Si anode Spectrum BMS SEI formation Float Ochrana High SOC deg. MPPT Život Radko
Uživatelský avatar
rottenkiwi
 
Příspěvky: 2915
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK

Re: ATtiny85 + Uno komunikácia

Příspěvekod rottenkiwi » stř úno 13, 2019 11:41 pm

Zatiaĺ mám naprogramované toto:

ATtiny majú adresy:
0. FFFF, 1. FFFD, 2. FFFB etc.
1. príkaz : 888A 1036 nastaví balančné napatie pre
všetky moduly na 4150 mV, lebo 0x1036 = 4150
2. príkaz : 888B 0FF0 nastaví balančnú konštantu
pre všetky moduly pre napatie 4080 mV
3. príkaz : 88AA 1036 FFFF, nastaví
balančné napatie na hodnotu 4150 mV pre modul s adresou : FFFF
4. príkaz : 88BB 0FF0 FFFD, nastaví
balančnú konštantu na 4080 mV pre modul s adresou FFFD
5. príkaz AAAA z UNA prinúti odpovedať prvé dva moduly
6. príkaz BBBB z UNA prinúti odpovedať ďalšie 2 moduly etc., takže odpoveď
sa mi zmestí do 37 byteového buffra.



Odpoveď modulu je napr.:
BBBB FFFB 0FEE 1036 0000 FFF9 0FFB 1036 0000
kde BBBB je úvodná postupnosť, FFFB adresa, 0FEE aktualne napatie článku, 1036 je bal. napatie
a 0000 je balančný prúd, ktorý je zatiaľ nula, lebo z toho pinu mi zatiaĺ nejdú hodnoty

Video je dole v podpise.

Hodnoty globálneho bal. napatia, glob. bal. konštanta, bal. nap. pre modul a lokálna bal. konštanta
pre modul sú zapísané do EEPROM každého ATtiny počas prvých 30 sec.. potom je možné UNO odpojiť
a keď odpojíme moduly a znova ich pripojíme, tak už balancujú autonómne.
Nemáte oprávnění prohlížet přiložené soubory.
Dělej vše, jak nejlépe dovedeš. Ale ne lépe. 4. dohoda.
Si anode Spectrum BMS SEI formation Float Ochrana High SOC deg. MPPT Život Radko
Uživatelský avatar
rottenkiwi
 
Příspěvky: 2915
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK

Re: ATtiny85 + Uno komunikácia

Příspěvekod rottenkiwi » čtv úno 14, 2019 4:21 pm

Veľa odpovedí, ako programovať ATtiny, mi dal tento článok.
https://github.com/SpenceKonde/ATTinyCore

Ale stále neviem, prečo mi tento kód nečíta teplotu:
Kód: Vybrat vše

float chipTemp() {
 float tmp,avg;

 ADMUX = _BV(REFS1) | _BV(REFS0) | _BV(MUX3);   // Set internal 1.1V reference, temperature reading
 delay(10);  // wait for analog reference to stabilize
 chipTempRaw(); // discard first sample

 avg =chipTempRaw(); // use next sample as initial average
 // average 1000 samples
 for (int i=2;i<1000;i++) {
   tmp=chipTempRaw();  // get next sample
   avg=avg+(tmp-avg)/(float)i; // calculate running average
 }
 return avg; // return averaged temperature reading
}

int chipTempRaw(void) {
 ADCSRA |= _BV(ADSC);               // Start conversion
 while((ADCSRA & _BV(ADSC)));    // Wait until conversion is finished
 return(ADCL | (ADCH << 8));
}



Ďalej som zistil, že hoci každé ATtiny má rovnaký kód, tak 3. čerpá z článkov najviac,
2. menej, 1. ešte menej a 0. veľmi málo, lebo spí najdlhšie, hoci kód pre všetky je spať rovnako.
Tomu celkom nerozumiem.
Dělej vše, jak nejlépe dovedeš. Ale ne lépe. 4. dohoda.
Si anode Spectrum BMS SEI formation Float Ochrana High SOC deg. MPPT Život Radko
Uživatelský avatar
rottenkiwi
 
Příspěvky: 2915
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK

Re: ATtiny85 + Uno komunikácia

Příspěvekod DanoP » pát úno 15, 2019 7:18 am

A ostatne bity ADMUX maju ake hodnoty, je vobec AD prevodnik aktivny? Ak sa pouziva uvedena kniznica je tam priamo prikaz na citanie teploty co nastavi vsetko potrebne vratane referencie (aspon tak sa mi zda) - toto funguje? Spotrebu asi urcuje seriova komunikacia. Ten for pre 1000x je zbytocny, resp tak ako vyzera byt to nedava velky zmysel a zbytocne blokuje procesor. Treba si uvedomit ze jedno meranie trva cca 2 az 4us, ked sa to opakuje 1000 po sebe (2 az 4 ms) bez moznosti spracovat medzitym napriklad udaje zo seriovej komunikacie moze to byt pruser. Lepsie je nastartovat AD prevod, vratit sa do hlavnej loop a kontrolovat ci uz je pripraveny vysledok a az vtedy ho zobrat (samozrejme bez zaspatia). V loope zatial moze prebehnut spracovanie seriovych udajov.
1770Wp monokryštál + PIP4048MS + 10kWh LiFePO4
DanoP
 
Příspěvky: 230
Registrován: stř črc 06, 2016 11:27 am
Bydliště: Trnava, Slovensko

Re: ATtiny85 + Uno komunikácia

Příspěvekod rottenkiwi » pát úno 15, 2019 5:00 pm

Ešte som vyskúšal na teplotu toto, ale v *C to dáva 0xEC čo je 236 *C, takže asi to treba nejako nakalibrovať,
len neviem k tomu násjť nejaký popis v angličtine.
Kód: Vybrat vše

#define TEMPERATURE_ADJUSTMENT 30
#define EXTREMES_RATIO 5
#define TEMPERATURE_SAMPLES 30
#define MAXINT 32767
#define MININT -32767

int offset=TEMPERATURE_ADJUSTMENT;
float coefficient=1;
int readings[TEMPERATURE_SAMPLES];
int pos=0;

void InternalTemperatureSensor() {

  //analogReference( INTERNAL1V1 );

  // ATTiny85 datasheet p140 (17.13.2), p137 (17.12)

  // Configure ADMUX

  ADMUX = B1111;                // Select temperature sensor

  ADMUX &= ~_BV( ADLAR );       // Right-adjust result

  ADMUX |= _BV( REFS1 );                      // Set Ref voltage

  ADMUX &= ~( _BV( REFS0 ) | _BV( REFS2 ) );  // to 1.1V

  //ADMUX &= ~( _BV( REFS0 ) );  // to 1.1V

  // Configure ADCSRA

  ADCSRA &= ~( _BV( ADATE ) |_BV( ADIE ) ); // Disable autotrigger, Disable Interrupt

  ADCSRA |= _BV(ADEN);                      // Enable ADC

  ADCSRA |= _BV(ADSC);          // Start first conversion

  // Seed samples

  int raw_temp;

  while( ( ( raw_temp = raw() ) < 0 ) );

  for( int i = 0; i < TEMPERATURE_SAMPLES; i++ ) {

    readings[i] = raw_temp;

  }

}

int in_lsb() {
  int readings_dup[30];
  int raw_temp;
  // remember the sample
  if( ( raw_temp = raw() ) > 0 ) {
    readings[pos] = raw_temp;
    pos++;
    pos %= 30;
  }
  // copy the samples
  for( int i = 0; i < 30; i++ ) {
    readings_dup[i] = readings[i];
  }
  // bubble extremes to the ends of the array
  int extremes_count = 6;
  int swap;
  for( int i = 0; i < extremes_count; ++i ) { // percent of iterations of bubble sort on small N works faster than Q-sort
    for( int j = 0;j<29;j++ ) {
      if( readings_dup[i] > readings_dup[i+1] ) {
        swap = readings_dup[i];
        readings_dup[i] = readings_dup[i+1];
        readings_dup[i+1] = swap;
      }
    }
  }
  // average the middle of the array
  int sum_temp = 0;
  for( int i = extremes_count; i < 30 - extremes_count; i++ ) {
    sum_temp += readings_dup[i];
  }
  return sum_temp / ( 30 - extremes_count * 2 );
}

int in_c() {
  return in_k() - 273;
}

int in_f() {
  return in_c() * 9 / 5 + 32;
}

int in_k() {
  return in_lsb() + offset; // for simplicty I'm using k=1, use the next line if you want K!=1.0
  //return (int)( in_lsb() * coefficient ) + offset;
}

int raw() {
  if( ADCSRA & _BV( ADSC ) ) {
    return -1;
  } else {
    int ret = ADCL | ( ADCH << 8 );   // Get the previous conversion result
    ADCSRA |= _BV(ADSC);              // Start new conversion
    return ret;
  }
}
Dělej vše, jak nejlépe dovedeš. Ale ne lépe. 4. dohoda.
Si anode Spectrum BMS SEI formation Float Ochrana High SOC deg. MPPT Život Radko
Uživatelský avatar
rottenkiwi
 
Příspěvky: 2915
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK

Re: ATtiny85 + Uno komunikácia

Příspěvekod rottenkiwi » sob úno 16, 2019 5:29 pm

Ako by bolo vhodné pri pálení do Attiny nastaviť CLK procesora a LTO, EEPROM a BOD ?
CLK dať 8 Mhz ? Či existuje aj SoftSerial.h, kde by 1 MHz nevadil ?
Pri napaľovaní vždy premazať aj EEPROM ?
A BOD nastaviť na 1.8 V alebo na 2.7 V ?
Ak na 2.7, tak sa Attiny pri 2.7 V vypnú a ušetria baterku ?
Dělej vše, jak nejlépe dovedeš. Ale ne lépe. 4. dohoda.
Si anode Spectrum BMS SEI formation Float Ochrana High SOC deg. MPPT Život Radko
Uživatelský avatar
rottenkiwi
 
Příspěvky: 2915
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK

Re: ATtiny85 + Uno komunikácia

Příspěvekod DanoP » sob úno 16, 2019 6:11 pm

Pouzivam default z vyroby 1MHz, SoftwareSerial 4800 v pohode, 9600 uz nebolo spolahlive. Pouzivam AttinyCore od SpenceKonde. BOD mam 1,8V - napaluje sa to cez napalovanie bootloaderu (v skutocnosti to len nastavi configuracne fuses). 2,7V sa mi zdalo vysoko, ked horna hranica moze byt az 2,9V. EEPROM mam nastavene nechat tak bez resetu (default z vyroby), v EEPROM su z vyroby hodnoty FF... Ak napatie spadne pod BOD ( je tam tusim hysterezia okolo 50mV) a nizka uroven trva dlhsie ako 2uS tak sa zastavi. Nabieha to tiez spolahlivo bez pouzitia reset pinu, aj pri pomalom naraste napatia, mam skor problem, ze napriklad pri 1,9V mi este nebezi 100% referencia (potrebujem aspon 2,1V), ale vacsi problem je ze pri tomto napati mi vypadava seriova komunikacia ( odchylka oscilatora, budenie optoclenov ??). Vzhladom na to ze od 2,1V to bezi opat OK, tak to neriesim.
1770Wp monokryštál + PIP4048MS + 10kWh LiFePO4
DanoP
 
Příspěvky: 230
Registrován: stř črc 06, 2016 11:27 am
Bydliště: Trnava, Slovensko

Re: ATtiny85 + Uno komunikácia

Příspěvekod rottenkiwi » sob úno 16, 2019 6:59 pm

Tak teraz to testujem na 4S 18650 Li-ion, BOD 1.8, CLK 1 MHz, Comm. 4800 baudov,
pri blikaní TX to má 38 mA.
Pri spánku na 8 sec. to žerie 7080 uA.

Keď sa zmení napatie na A1, tak sa to resetne, prijíma to príkazy 60 sec. a potom
znova pošle dáta, spí .... atď.

Nechám to do zajtra a uvidím, ako to vyšťaví 18650-ky.
Dělej vše, jak nejlépe dovedeš. Ale ne lépe. 4. dohoda.
Si anode Spectrum BMS SEI formation Float Ochrana High SOC deg. MPPT Život Radko
Uživatelský avatar
rottenkiwi
 
Příspěvky: 2915
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK

Re: ATtiny85 + Uno komunikácia

Příspěvekod kodl69 » ned úno 17, 2019 7:24 pm

myslím si, že pokud nejsou vybitý už teď tak jeden den nic neznamená...
ostrov 4600Wp neustále ve stádiu zrodu: 6x noark CHSM6610P250, 6x250Wp z I4wifi, 6xTratek 275Wp, 4x auria 120Wp, midnite classic 150 lite+whizbang jr., 16S a různě P cca 300Ah Winston, Powerjack 8kW (reálně 6kW po úpravě). 48V DC rozvody a spotřebiče.
kodl69
 
Příspěvky: 3951
Registrován: sob črc 19, 2014 7:56 pm

Re: ATtiny85 + Uno komunikácia

Příspěvekod rottenkiwi » pon úno 18, 2019 6:40 pm

Dal by sa ako riadiaci modul použiť buď Nano alebo dokonca ATtiny85 ?
Potrebujeme signalizovať len, že aspoň jeden článok je nad limitX a aspoň jeden
článok je pod limitY.
Dělej vše, jak nejlépe dovedeš. Ale ne lépe. 4. dohoda.
Si anode Spectrum BMS SEI formation Float Ochrana High SOC deg. MPPT Život Radko
Uživatelský avatar
rottenkiwi
 
Příspěvky: 2915
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK

Re: ATtiny85 + Uno komunikácia

Příspěvekod kodl69 » pon úno 18, 2019 7:57 pm

To je základ, arduino nano je zbytečně moc drahý, to spíš samotenej atmega procesor (s krystalem), když už se dělá deska, je to jedno. Nano zvládne i třeba nějakej displej, ale zobrazení na web rozhraní, logování na SD, odeslání dat do nějakýho nadřazenýho systému...to už asi bude málo.
Tady by to asi chtělo nějakej základ SW stvořit formou podprogramu, knihovny nebo tak něco, aby bylo od čeho se odpíchnout a třeba ať si to každej udělá podle svýho. Někdo dával odkaz na BMS, kde poslední modul byl jinačí, a byla tam buď atmega, a nějaký výstupy pro spínání vytěžovače, odpojení nabíjení, zátěže, a nebo ESP8266 pro web rozhraní. Sice se mi zrovna tohle řešení úplně moc nelíbí (ten jeden článek bude víc vybíjenej) ale je to taky možnost.

P.S: díval jsem se na prográmek, a tohle není moc univerzální řešení. Podle mě by to mělo fungovat tak, že když vyměním kterejkoliv modul, a nastavím příkazem ref. napětí a bal. napětí, tak to musí posílat korektní data. Adresy nahraný natvrdo do programu jsou cesta do pekel.
ostrov 4600Wp neustále ve stádiu zrodu: 6x noark CHSM6610P250, 6x250Wp z I4wifi, 6xTratek 275Wp, 4x auria 120Wp, midnite classic 150 lite+whizbang jr., 16S a různě P cca 300Ah Winston, Powerjack 8kW (reálně 6kW po úpravě). 48V DC rozvody a spotřebiče.
kodl69
 
Příspěvky: 3951
Registrován: sob črc 19, 2014 7:56 pm

Re: ATtiny85 + Uno komunikácia

Příspěvekod rottenkiwi » pon úno 18, 2019 8:41 pm

Meral som teraz spotrebu uspaného Una, to je cca. 5.2 mA.
Skúsim tam pripojiť Eht. Shield a skúsiť logovať, či to pojde.

Ale web interfejs tam nenarvem, na to je tam málo pamate.

No ak je to s tými adresami zle, tak sa pozriem čo navrhuje DanoP
a skúsim nad tým v noci dumať.

Ono, ak nemáme adresy, nemože byť rozne bal. napatie, ani rozna kalibrácia
pre každý modul zvlásť, potom budú len 2 príkazy a keď si to uloží veci do
EEPROM, tak to bude bez riadiaceho modulu balancovať.

Ak pripojíme riad. modul, získame napatia článov vzhľadom na jednu balančnú
konštantu, takže budú vačšie rozdiely ako by boli s bal. konštantou, resp. nejakou
tabuľkou pre rozne napatia pre každý modul zvlášť.
Dělej vše, jak nejlépe dovedeš. Ale ne lépe. 4. dohoda.
Si anode Spectrum BMS SEI formation Float Ochrana High SOC deg. MPPT Život Radko
Uživatelský avatar
rottenkiwi
 
Příspěvky: 2915
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK

Re: ATtiny85 + Uno komunikácia

Příspěvekod kodl69 » pon úno 18, 2019 11:41 pm

Tady asi někdo spal. Proč by nešel nastavit každej modul zvlášť? když bude zpráva sestavená např ze 16 ti paketů a každej modul, co ji přečte, si jeden paket nechá a zbytek pošle dál. Stejně tak bude vyčítání, prostě přijde zpráva, modul ji načte a při odesílání dál na konec přidá svoje data. Každej modul 4byte, 1 byte označuje typ zprávy, další dva jsou napětí a poslední nevím, třeba lbal. proud a teplota, nebo nějaký stavový slovo... na konce zprávy se přidá nějakej spec. byte, aby se vědělo, že je to konec (třeba @) a je to celý. No a první byte může být klidně "R" pro read, "B" pro balanční napětí a třeba "c" pro kalibraci, a "D" pro default bal. napětí v eeprom, ale co to přesně bude za znaky je asi jedno to je asi jedno, jenom je potřeba se domluvit, jak to teda bude. Potom pro zprovoznění balancování ani nepotřebuju žádnej řídící modul, ale prostě tam pošlu zprávu vypadající takhle (pro 4s):
<řídící znak> <MSB napětí> <LSB napětí> <nevímco> a dlaší 4 byte pro další modul, až na konec "@". takže prakticky
"B" 0x0D 0x7A 0x00 "B" 0x0D 0xAC 0x00 "B" 0x0D 0x7A 0x00 "B" 0x0D 0x7A 0x00 "@"
je nastavení bal. napětí pro články od prvního 3450, 3450, 3500, 3450 milivoltů.
naopak pro vyčtení dat by zpráva od řídícího modulu vypadala "R" 0x00 0x00 0x00 "@" za prvním modulem už bude třeba "R" 0x00 0x00 0x00 "R" 0x0D 0x05 0x00 "@" a tak dále. Když to funguje jinejm s PICem, proč by to nejelo s attiny...
ostrov 4600Wp neustále ve stádiu zrodu: 6x noark CHSM6610P250, 6x250Wp z I4wifi, 6xTratek 275Wp, 4x auria 120Wp, midnite classic 150 lite+whizbang jr., 16S a různě P cca 300Ah Winston, Powerjack 8kW (reálně 6kW po úpravě). 48V DC rozvody a spotřebiče.
kodl69
 
Příspěvky: 3951
Registrován: sob črc 19, 2014 7:56 pm

Re: ATtiny85 + Uno komunikácia

Příspěvekod pete » úte úno 19, 2019 9:09 am

Já mám protokol navrženej a vpodstatě už i implementovanej tak, aby šlo komunikovat jak s jednotlivým modulem tak i se všema naráz a posílat z modulů asynchronní události. Žádná adresa se do modulu nahrávat nemusí, je daná jeho pořadím na zřetězené sériové lince.

Na prvním bajtu zprávy je adresa modulu jako číslo 0..127 nebo speciální broadcast adresa (-128). Modul se ke zprávě chová tak, že provádí jen příkazy ze zpráv s adresou broadcast nebo s nulovou adresou. Všechny ostatní zprávy neprovádí, jen je přeposílá dál s o jedničku dekrementovanou adresou. Do mastera se broadcast adresa vrátí jako broadcast a cílená adresa jako záporný číslo, ze kterýho se původní adresa spočítá jednoduše přičtením počtu modulů. Asynchronní událost modul odešle s adresou -1 a do mastera to dorazí zase tak, že si adresu odesílatele dopočítá stejným způsobem.

Na druhým bajtu je pak kód příkazu a pak případný parametry, data z modulů a na konci dva bajty CRC. Žádná ukončovací značka není potřeba, takže nejkratší příkaz má délku jenom čtyři bajty včetně CRC.
pete
 
Příspěvky: 58
Registrován: úte srp 04, 2015 8:19 pm

Re: ATtiny85 + Uno komunikácia

Příspěvekod kodl69 » úte úno 19, 2019 9:55 am

Pěkně, vidím, že jsi to vzal z úplně jinýho konce. Tohle asi bude dost dobrý řešení. Pokud bys měl nějakou betaverzi aspoň se základní funkčností, tak bych to odzkoušel. Přešel jsi kvůli spolehlivosti komunikace na 4800bd, nebo vyměnil odpory z 2k2 na 1k u optočlenů? Máš nějak vymyšlený zapsání adresy do eeprom danýho modulu, aby se to nemuselo řešit před instalací? A nebo tam ty adresy nejsou, a vlastně ten modul ani neví, jakou tu adresu má, díky tomu odečítání? Ale v každým případě dobrej nápad. Nezabere moc paměti to CRC? Co se stane, když přijde některýmu modulu zpráva s chybným CRC? zahodí se, nebo následuje nějaká reakce?
Chystám se osadit si dalších 14 modulů a provádět ostrej test na 16s 60Ah winstonech. Ale tenhle týden to asi nedám, je to předse jenom pár hodin práce a nejlepší je to udělat na jeden zátah...
ostrov 4600Wp neustále ve stádiu zrodu: 6x noark CHSM6610P250, 6x250Wp z I4wifi, 6xTratek 275Wp, 4x auria 120Wp, midnite classic 150 lite+whizbang jr., 16S a různě P cca 300Ah Winston, Powerjack 8kW (reálně 6kW po úpravě). 48V DC rozvody a spotřebiče.
kodl69
 
Příspěvky: 3951
Registrován: sob črc 19, 2014 7:56 pm

Re: ATtiny85 + Uno komunikácia

Příspěvekod pete » úte úno 19, 2019 10:56 am

Pošlu ti funkční verzi, kde je implementovanej protokol a základní nastavování parametrů. Chybí tam digitální filtrace měření, optimalizace spotřeby ve spánku a nějaký další věci, ale základ chodí.
Jo musel jsem přejít na 4800bd, protože na 9600 padalo dost chyb, ale problém nebude ve zkreslení na optočlenech, ale v knihovně NeoSWSerial, je tam někde asi chyba v časování Tx, protože to stejně chybuje i když napřímo propojím tiny rx-tx za sebou. Knihovnu jsem musel přiohnout, protože neumí 4800bd, ale je to změna na jednom řádku.
Adresy se nikam nezapisujou, modul svou adresu nepotřebuje znát. CRC nezabere skoro žádnou paměť. Odhaduju že tak tři čtvrtiny kódu je hotových a zabírá to necelou půlku flash a asi třetinu RAM, takže prostoru na případný další rozšiřování funkcionality zbude dost.
Když přijde zpráva s neplatným CRC, tak se přepošle dál, před CRC se připojí chybová značka "EC" a za ni to přijaté vadné CRC, takže i další moduly to rozpoznají jako chybu a připojí každej svou chybovou značku "EC". Z počtu EC značek se pozná, kde došlo k první chybě.
pete
 
Příspěvky: 58
Registrován: úte srp 04, 2015 8:19 pm

Re: ATtiny85 + Uno komunikácia

Příspěvekod kodl69 » úte úno 19, 2019 1:19 pm

A co klasická knihovna software serial? Pokud jsem nedělal pokusy s uspáváním a watchdogem, tak mi prošlo 130 znaků 9k6 jako nic... S tím, že se to ukládalo do stringu a potom odesílalo. Přibal kdyžtak i tu knihovnu, nebo aspoň podrobnej popis, co s ní provést.
ostrov 4600Wp neustále ve stádiu zrodu: 6x noark CHSM6610P250, 6x250Wp z I4wifi, 6xTratek 275Wp, 4x auria 120Wp, midnite classic 150 lite+whizbang jr., 16S a různě P cca 300Ah Winston, Powerjack 8kW (reálně 6kW po úpravě). 48V DC rozvody a spotřebiče.
kodl69
 
Příspěvky: 3951
Registrován: sob črc 19, 2014 7:56 pm

Re: ATtiny85 + Uno komunikácia

Příspěvekod pete » úte úno 19, 2019 1:40 pm

SoftwareSerial neumí duplex, takže musíš přijmout celou zprávu a pak teprve můžeš odesílat. To klade nároky na paměť a limituje maximální délku zprávy. Taky pak celá komunikace trvá delší dobu.. NeoSWSerial umí duplex, takže zpráva se průchodem přes modul zdrží jen o nějaký dva tři znaky a není třeba řešit jak je dlouhá. Modul zajímá jen začátek, kde je adresa, příkaz a jeho parametry a pak až CRC na konci. Tohle si uloží a všechno ostatní jenom tupě předává ze vstupu na výstup. Tehle výhody bych se nerad vzdával. Až to bude hotový tak se v té knihovně zkusím ještě povrtat a zprovoznit těch 9600 bez chyb.
pete
 
Příspěvky: 58
Registrován: úte srp 04, 2015 8:19 pm

Re: ATtiny85 + Uno komunikácia

Příspěvekod rottenkiwi » sob úno 23, 2019 9:54 pm

Nechal som BMS na baterkách 18650 - LG 2200 mAh, 4S a za týždeň je graf napatia takýto:

Dá sa z toho usúdiť koľko z toho je samovybíjanie a koľko spotreba BMS ?
Koĺko dní to odhadom vydrží do cut off voltage : 3.00 V , na jednom z článov ?
Nemáte oprávnění prohlížet přiložené soubory.
Dělej vše, jak nejlépe dovedeš. Ale ne lépe. 4. dohoda.
Si anode Spectrum BMS SEI formation Float Ochrana High SOC deg. MPPT Život Radko
Uživatelský avatar
rottenkiwi
 
Příspěvky: 2915
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK

PředchozíDalší

Zpět na Arduino

Kdo je online

Uživatelé procházející toto fórum: Google [Bot] a 1 návštěvník

Reputation System ©'