1 Naposledy upravil: qidorv (2012-12-18 19:53:13)

Téma: sys[350] - hodnota po restartu

pokud odpojim jiz nactena  teplotni čidla a restartuji SDS-mikro, tak v sys[350] je hodnota 8, ale podle wiki bych ocekaval spise 0, 16 nebo 32


verze : Toto je *BETA-VERSION* *RC4* verze hw SoC-ARM REV4 100Mbit DF7, ze dne 17.12.2012.

výpis
CONSOLE:
restart
Konec cteni T_voda "init" - errorcode :8, teplota :16777216
Konec cteni T_vzduch "init" - errorcode :8, teplota :16777216

program:
var  t_vody;
var  t_vzduch;
var  ds_error;

init
{
   echo('restart');
  sys[64] = 10;  //max 10s cekani
label cek1:
  if (sys[350] == 2) goto ini2; // teplota vody prectena
  if (sys[64] != 0) goto cek1;
  ds_error = sys[350];
  label ini2:
  t_vody = sys[310];
  echo('Konec cteni T_voda "init" - errorcode :',ds_error,', teplota :', t_vody );
  sys[64] = 10;  //max 10s cekani
label cek2:
  if (sys[351] == 2) goto ini3; // teplota vzduchu prectena
  if (sys[64] != 0) goto cek2;
  ds_error = sys[351];
label ini3:
  t_vzduch = sys[311];
  echo('Konec cteni T_vzduch "init" - errorcode :',ds_error,', teplota :', t_vzduch);
}

main
{

}

2

Re: sys[350] - hodnota po restartu

Tady je význam jednotlivých hodnot"

 0 = DSERR_NONE   - default, nevim nic
 2 = DSERR_ALLOK  - vse ok, komunikuje, odpovida, a prave se podarilo ziskat hodnotu (teplotu)
 4 = DSERR_PRESENCE - vim jen ze existuje (romcode je v seznamu)
 8 = DSERR_MEASSTARTOK - zacal prevod, ok
 16 = DSERR_MEASSTARTFAIL - nepovedlo se zacit prevod
 32 = DSERR_CRCERR - prijato neplatne CRC

Takže 8 je v pořádku, znamená to, že SDS v ten okamžik poslalo příkaz do čidla, aby se sputil převod teploty (viz funkce čidla, kdy nejprve se spustí měření (převod), pak se chvíli počká (podle požadované přesnosti, čím větší přesnost, tím déle převod trvá) a nakonec se čte hodnota).
Hodnoty 2 a 8 se budou neustále střídat, dokud bude čidlo v pořádku a dokud bude komunikovat. Při problému (chybě) se předá např. 32.

Pochlubte se - popište jak využíváte své zařízení SDS zde ! Můžete si bezplatně přidat svou reklamu !

3 Naposledy upravil: qidorv (2012-12-20 22:06:22)

Re: sys[350] - hodnota po restartu

ale ty čidla nejsou fyzicky připojena, takže jak může úspěšně začít převod?

wiki  :   8 = začal další převod, čidlo je OK, komunikuje (správný stav)

4

Re: sys[350] - hodnota po restartu

Dobrá připomínka.
Asi je to špatně popsáno na mé straně, hm, asi určite.
Jenže jak to popsat lépe...

Jde o to, že 1-Wire protokol nemá zpětnou odezvu na začátek převodu.
Zařízení SDS po 1-Wire pošle příkaz, a neví jestli se ztratil nebo ne (viz datasheet pro DS18B20 a jeho komunikační protokol).
V okamžik odeslání příkazu se nastaví 8.
To zda-li čidlo je přítomno a zda-li se skutečně příkaz provedl, se zjistí až následovně při (téměř ihned) následném čtení teploty - čidlo buď odpoví se správnou hodnotou (zabezpečenou CRC) a pak je stav 2 nebo čidlo chybí (či jiná chyba) a pak je stav 16 nebo 32.

Pokud je čidel více, tak jsou postupně, jedno po druhém, obsluhována. Potom než se projde celé kolečko, má každé čidlo jednu z výsledných hodnot (2,16,32), a to které se právě zpracovává (ale ještě nemá výsledek) má 8.

Doufám že to aspoň trochu pomohlo, nějak to určitě dáme dohromady... částečným problém je právě ta omezená možnost komunikace přes 1-Wire sběrnici.

Pochlubte se - popište jak využíváte své zařízení SDS zde ! Můžete si bezplatně přidat svou reklamu !

5

Re: sys[350] - hodnota po restartu

To ale znamená že se nekotroluje presence puls a nevyužívá match rom příkaz před povelem k převodu teploty.
Toto pro mně to není problém, hlavně že už vím, jak programově zkontrolovat funkčnost / přítomnost čidel.
Jen bych se přimlouval v další HW verzi SDS osadit driver sběrnice z rodiny DS248x.  Trochu se zvýší cena, ale určitě se zlepší čitelnost 1-wire na delší vzdálenosti a sníží nároky na kvalitu kabeláže.

6

Re: sys[350] - hodnota po restartu

Jo jo ty kontroly v rámci komunikace tam jsou, a pak vždy po stavu 8 když je chyba by mělo naskočit 16.
Asi to zkreslím do nějakého grafu, ať jdou jednotlivé kroky v závislosti na komunikaci na 1-Wire vidět. Teď na to bude trochu čas.

Pochlubte se - popište jak využíváte své zařízení SDS zde ! Můžete si bezplatně přidat svou reklamu !