Re: Výpočet CRC u Dallas teploměru DS18S20

Pavel hw@itherm.cz
Úterý Leden 12 20:21:37 CET 2010


ten program je opsany nekde z netu, nebo app note, nikdy jsem v podstate 
nezkoumal jak funguje.
pouzivam jej i v emulatorech 1wire slave zarizeni a chodi v pohode.

Pavel

----- Original Message ----- 
From: "Kručinský Ladislav" <ladislav.krucinsky@linde-mh.cz>
To: "HW-news" <hw-list@list.hw.cz>
Sent: Tuesday, January 12, 2010 3:05 PM
Subject: RE: Výpočet CRC u Dallas teploměru DS18S20


Začínám "něco" tušit - proč XORujete hodnotou 0x18 a ne Dallas polynomem 
který je 0x31 ?
V nějakém aplikačním listu jsem na tuto hodnotu narazil ale nepochopil jsem 
jak vznikla. V HW posuvném registru jsou 3 XOR hradla tak jsem se domníval, 
že polynom by měl mít 3 jedničky.


L. Kručinský

-----Original Message-----
From: hw-list-bounces@list.hw.cz [mailto:hw-list-bounces@list.hw.cz] On 
Behalf Of Pavel
Sent: Tuesday, January 12, 2010 12:38 PM
To: HW-news
Subject: Re: Výpočet CRC u Dallas teploměru DS18S20

Výpočet CRC u Dallas teploměru DS18S20dole je primo to co mam ve svych 
programech.

do W se vkladaji hodnoty
v CRC pak mate vysledek.

Pavel


 movwf crctmp   ; Save byte
 movlw 8   ; 8 bits
 movwf crccit   ; store counter
 movf crctmp,w  ; byte to W
CRC8_L1 xorwf crc,w   ; xor
 movwf del1   ; temp store
 rrf del1,w
 movf crc,w   ; fetch last CRC
 skpnc    ; if not C, skip
 xorlw 0x18   ; xor with fixed
 movwf crc   ; store new CRC
 rrf crc,f   ; update new CRC
 clrc    ; clear carry
 rrf crctmp,f  ; next bit
 movf crctmp,w
 decfsz crccit,f  ; count bits
 goto CRC8_L1   ;
 return



----- Original Message -----
From: Kručinský Ladislav
To: HW-news
Sent: Tuesday, January 12, 2010 11:01 AM
Subject: Výpočet CRC u Dallas teploměru DS18S20


Zdravíčko kolegové.
Trápím se tady s výpočtem CRC v procesoru PIC - ačkoliv jsem si stáhl
Aplikační listy jak od Dallasu tak i od Microchipu, nejsem nějak 100
pochopit algoritmus výpočtu pomocí posouvání registru. Nemám kapacitu abych
to řešil tabulkou (je potřeba 256 registrů) a tak tady čmárám po
čtverečkovaných papírech jedničky a nuly a nevychází mi to. Respektive - ze
čtyř Dallas čipů jsem si vyčetl ROM se sériovým číslem, číslem rodiny a CRC.
U dvou mi výpočet funguje, u dvou nikoliv.
Nechci prudit celou konferu ukázkami algoritmu, nedělali jste to někdo v PIC
assembleru ideálně pro PIC16F676 a pod ? Nechci celý program, jenom bych rád
věděl kde to vorám...
Zdravím
Ing. Ladislav Kručinský





_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz
Hw-list@list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list

_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz
Hw-list@list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list
_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz
Hw-list@list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list 



More information about the Hw-list mailing list