Many changes from 2018
[owSlave2.git] / common / OWDS18B20_DS2438.S
index 109891d..a95559e 100644 (file)
@@ -34,6 +34,8 @@
 #define _CHANGEABLE_ID_\r
 #define _ZERO_POLLING_\r
 #define _HANDLE_CC_COMMAND_\r
+#define _NO_BOOTLOADER_PIN_    \r
+//#define  __4MHZ__\r
 //#define _DB_\r
 \r
 #include "../common/OWConfig.s"\r
 \r
 .extern pack1,8\r
 \r
-//.extern  am2302_temp,2\r
-\r
 #if  defined(__AVR_ATtiny25__)\r
 .extern pack2,16\r
 #else\r
 .extern pack2,64\r
 #endif\r
-.extern  am2302_temp,2\r
-.extern  am2302_hum,2\r
+\r
+\r
+\r
 .comm block,1 ; Block der augegeben, geschrieben wird (Parameter von READ/WRITE Scratchpad)\r
+.comm cpsp,1 ; Copy Scratchpad marker\r
 \r
 \r
 .macro CHIP_INIT       ;r_temp is pushed other Registers should be saved\r
+       ldi r_temp,0\r
+       sts cpsp,r_temp\r
 Init_EEPROM_read:\r
        push r_bytep\r
        push r_rwbyte\r
@@ -79,6 +83,7 @@ Init_EEPROM_read:
                rjmp h_readscratchpad2\r
                rjmp h_writescratchpad_adr2\r
                rjmp h_writescratchpad2\r
+               rjmp h_copyscratchpad_adr2\r
 .endm\r
 \r
 #include "../common/OWRomFunctionsDual.s"\r
@@ -94,6 +99,7 @@ Init_EEPROM_read:
 #define OW_READ_SCRATCHPAD2 OW_FIRST_COMMAND+4\r
 #define OW_WRITE_SCRATCHPAD_ADR2 OW_FIRST_COMMAND+5\r
 #define OW_WRITE_SCRATCHPAD2 OW_FIRST_COMMAND+6\r
+#define OW_COPY_SCRATCHPAD_ADR2 OW_FIRST_COMMAND+7\r
 \r
 \r
 ;---------------------------------------------------\r
@@ -104,8 +110,9 @@ Init_EEPROM_read:
 h_readcommand12:\r
        clr r_bytep\r
        cjmp 0x44,hrc_set_convertT12\r
-       ldi r_mode,OW_SLEEP\r
-       rjmp handle_end\r
+       rjmp h_readcccommand  ;fuehre DS2438 commands aus...\r
+       //ldi r_mode,OW_SLEEP\r
+       //rjmp handle_end\r
 #endif\r
 \r
 \r
@@ -114,9 +121,10 @@ h_readcommand1:
 #ifndef _DIS_FLASH_\r
        FLASH_COMMANDS ; muss zu erst sein....\r
 #endif\r
+       cjmp 0x44,hrc_set_convertT1\r
+h_readcccommand:\r
        cjmp 0xBE,hrc_set_readscratchpad1\r
        cjmp 0x4E,hrc_set_writescratchpad1\r
-       cjmp 0x44,hrc_set_convertT1\r
        cjmp 0x48,hrc_copy_scratchpad1\r
        cjmp 0xB8,hrc_recall_eeprom1\r
        FW_CONFIG_INFO1\r
@@ -145,9 +153,9 @@ hrc_recall_eeprom1:
 hrc_set_convertT12:\r
        ldi r_temp,3\r
        sts gcontrol,r_temp\r
-       lds r_temp,am2302_temp\r
+       lds r_temp,DS2438_2_TEMP\r
        sts pack2+1,r_temp\r
-       lds r_temp,am2302_temp+1\r
+       lds r_temp,DS2438_2_TEMP+1\r
        sts pack2+2,r_temp\r
        rjmp hrc_set_convertT12b\r
 #endif\r
@@ -270,6 +278,7 @@ h_readcommand2:
        cset 0x4E,OW_WRITE_SCRATCHPAD_ADR2\r
        cjmp 0x44,hrc_set_convertT2\r
        cjmp 0xB4,hrc_set_convertV2\r
+       cset 0x48,OW_COPY_SCRATCHPAD_ADR2\r
        FW_CONFIG_INFO2\r
        //cljmp 0x85,hrc_fw_configinfo2\r
 #ifdef _CHANGEABLE_ID_\r
@@ -281,26 +290,28 @@ h_readcommand2:
 hrc_set_convertT2:\r
        ldi r_temp,2\r
        sts gcontrol,r_temp\r
-       lds r_temp,am2302_temp\r
+       lds r_temp,DS2438_2_TEMP\r
        sts pack2+1,r_temp\r
-       lds r_temp,am2302_temp+1\r
+       lds r_temp,DS2438_2_TEMP+1\r
        sts pack2+2,r_temp\r
        rjmp handle_end_sleep\r
 hrc_set_convertV2:\r
+       ldi r_temp,4\r
+       sts gcontrol,r_temp\r
        lds r_temp,pack2\r
        sbrs r_temp,3\r
        rjmp hrc_set_convertVV2\r
-       ldi r_temp,0xF4\r
+       lds r_temp,DS2438_2_VDD\r
        sts pack2+3,r_temp\r
-       ldi r_temp,0x01\r
+       lds r_temp,DS2438_2_VDD+1\r
        sts pack2+4,r_temp\r
        rjmp hrc_set_convertend2\r
 hrc_set_convertVV2:\r
-       ldi r_temp,3\r
+       ldi r_temp,8\r
        sts gcontrol,r_temp\r
-       lds r_temp,am2302_hum\r
+       lds r_temp,DS2438_2_VAD\r
        sts pack2+3,r_temp\r
-       lds r_temp,am2302_hum+1\r
+       lds r_temp,DS2438_2_VAD+1\r
        sts pack2+4,r_temp\r
 hrc_set_convertend2:\r
        rjmp handle_end_sleep\r
@@ -367,7 +378,10 @@ h_writescratchpad_all2:
        rjmp handle_end_sleep\r
 \r
 \r
-\r
+h_copyscratchpad_adr2:\r
+       ori r_rwbyte,0x80 ;hoechstes bit ist 1 zum Testen\r
+       sts cpsp,r_rwbyte\r
+       rjmp handle_end_sleep\r
 \r
 \r
 \r