Maciej Rajtar / Mbed 2 deprecated OneWireDrv

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers onewire.h Source File

onewire.h

00001 typedef unsigned char BYTE;
00002 
00003 
00004 #define MAXSENSORS 8
00005 // rom-code size including CRC
00006 #define OW_ROMCODE_SIZE 8
00007 
00008 
00009 
00010 
00011 BYTE ow_reset(void);
00012 BYTE ow_rom_search( BYTE diff, BYTE *id );
00013 void ow_command( BYTE command, BYTE *id );
00014 //void DS18X20_find_sensor(BYTE *diff, BYTE id[]);
00015 BYTE DS18X20_get_power_status(uint8_t id[]);
00016 
00017 extern void DS18X20_show_id_uart( uint8_t *id, size_t n );
00018 extern void DS18X20_find_sensor(uint8_t *diff, uint8_t id[]);    
00019 extern uint8_t    DS18X20_get_power_status(uint8_t id[]);
00020 extern uint8_t DS18X20_start_meas( uint8_t with_external, uint8_t id[]);
00021 extern uint8_t DS18X20_read_meas(uint8_t id[], uint8_t *subzero, uint8_t *cel, uint8_t *cel_frac_bits);
00022 extern uint8_t DS18X20_read_meas_single(uint8_t familycode, uint8_t *subzero, uint8_t *cel, uint8_t *cel_frac_bits);
00023 extern uint8_t DS18X20_meas_to_cel( uint8_t fc, uint8_t *sp, uint8_t* subzero, uint8_t* cel, uint8_t* cel_frac_bits);
00024 extern uint16_t DS18X20_temp_to_decicel(uint8_t subzero, uint8_t cel, uint8_t cel_frac_bits);
00025 extern int8_t DS18X20_temp_cmp(uint8_t subzero1, uint16_t cel1, uint8_t subzero2, uint16_t cel2);
00026 
00027 
00028 extern void ow_parasite_enable(void);
00029 extern void ow_parasite_disable(void);
00030 
00031 #define DEBUG 1
00032 
00033 #define ONEWIRE_PIN  p12
00034 
00035 
00036 #define OW_MATCH_ROM    0x55
00037 #define OW_SKIP_ROM     0xCC
00038 #define OW_SEARCH_ROM    0xF0
00039 
00040 
00041 #define OW_SHORT_CIRCUIT  0xFF
00042 #define OW_SEARCH_FIRST    0xFF        // start new search
00043 #define OW_PRESENCE_ERR    0x01
00044 #define OW_DATA_ERR     0xFE
00045 #define OW_LAST_DEVICE    0x00        // last device found
00046 //            0x01 ... 0x40: continue searching
00047 
00048 // rom-code size including CRC
00049 #define OW_ROMCODE_SIZE 8
00050 
00051 
00052 #define DS18X20_POWER_PARASITE 0x00
00053 #define DS18X20_POWER_EXTERN   0x01
00054 
00055 /* DS18X20 specific values (see datasheet) */
00056 #define DS18S20_ID 0x10
00057 #define DS18B20_ID 0x28
00058 #define DS18X20_CONVERT_T    0x44
00059 #define DS18X20_READ        0xBE
00060 #define DS18X20_WRITE        0x4E
00061 #define DS18X20_EE_WRITE    0x48
00062 #define DS18X20_EE_RECALL    0xB8
00063 #define DS18X20_READ_POWER_SUPPLY 0xB4
00064 
00065 #define DS18X20_OK          0x00
00066 #define DS18X20_ERROR       0x01
00067 #define DS18X20_START_FAIL  0x02
00068 #define DS18X20_ERROR_CRC   0x03
00069 
00070 
00071 #define DS18B20_CONF_REG    4
00072 #define DS18B20_9_BIT       0
00073 #define DS18B20_10_BIT      (1<<5)
00074 #define DS18B20_11_BIT      (1<<6)
00075 #define DS18B20_12_BIT      ((1<<6)|(1<<5))
00076 
00077 // indefined bits in LSB if 18B20 != 12bit
00078 #define DS18B20_9_BIT_UNDF       ((1<<0)|(1<<1)|(1<<2))
00079 #define DS18B20_10_BIT_UNDF      ((1<<0)|(1<<1))
00080 #define DS18B20_11_BIT_UNDF      ((1<<0))
00081 #define DS18B20_12_BIT_UNDF      0
00082 
00083 // conversion times in ms
00084 #define DS18B20_TCONV_12BIT      750
00085 #define DS18B20_TCONV_11BIT      DS18B20_TCONV_12_BIT/2
00086 #define DS18B20_TCONV_10BIT      DS18B20_TCONV_12_BIT/4
00087 #define DS18B20_TCONV_9BIT       DS18B20_TCONV_12_BIT/8
00088 #define DS18S20_TCONV            DS18B20_TCONV_12_BIT
00089 
00090 // constant to convert the fraction bits to cel*(10^-4)
00091 #define DS18X20_FRACCONV         625
00092 
00093 #define DS18X20_SP_SIZE  9
00094 
00095 // DS18X20 EEPROM-Support
00096 #define DS18X20_WRITE_SCRATCHPAD  0x4E
00097 #define DS18X20_COPY_SCRATCHPAD   0x48
00098 #define DS18X20_RECALL_E2         0xB8
00099 #define DS18X20_COPYSP_DELAY      10 /* ms */
00100 #define DS18X20_TH_REG      2
00101 #define DS18X20_TL_REG      3