msphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget&/translations/zh_CN/w1/slaves/w1_thermmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget&/translations/zh_TW/w1/slaves/w1_thermmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget&/translations/it_IT/w1/slaves/w1_thermmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget&/translations/ja_JP/w1/slaves/w1_thermmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget&/translations/ko_KR/w1/slaves/w1_thermmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget&/translations/sp_SP/w1/slaves/w1_thermmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhsection)}(hhh](htitle)}(hKernel driver w1_thermh]hKernel driver w1_therm}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhh@/var/lib/git/docbuild/linux/Documentation/w1/slaves/w1_therm.rsthKubh paragraph)}(hSupported chips:h]hSupported chips:}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh block_quote)}(h* Maxim ds18*20 based temperature sensors. * Maxim ds1825 based temperature sensors. * GXCAS GX20MH01 temperature sensor. * Maxim MAX31850 thermoelement interface. h]h bullet_list)}(hhh](h list_item)}(h(Maxim ds18*20 based temperature sensors.h]h)}(hhh]h(Maxim ds18*20 based temperature sensors.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhubah}(h]h ]h"]h$]h&]uh1hhhubh)}(h'Maxim ds1825 based temperature sensors.h]h)}(hhh]h'Maxim ds1825 based temperature sensors.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhubah}(h]h ]h"]h$]h&]uh1hhhubh)}(h"GXCAS GX20MH01 temperature sensor.h]h)}(hjh]h"GXCAS GX20MH01 temperature sensor.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hjubah}(h]h ]h"]h$]h&]uh1hhhubh)}(h(Maxim MAX31850 thermoelement interface. h]h)}(h'Maxim MAX31850 thermoelement interface.h]h'Maxim MAX31850 thermoelement interface.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hjubah}(h]h ]h"]h$]h&]uh1hhhubeh}(h]h ]h"]h$]h&]bullet*uh1hhhhKhhubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(h.Author: Evgeniy Polyakov h](hAuthor: Evgeniy Polyakov <}(hj?hhhNhNubh reference)}(hjohnpol@2ka.mipt.ruh]hjohnpol@2ka.mipt.ru}(hjIhhhNhNubah}(h]h ]h"]h$]h&]refurimailto:johnpol@2ka.mipt.ruuh1jGhj?ubh>}(hj?hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh)}(hhh](h)}(h Descriptionh]h Description}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjchhhhhKubh)}(hdw1_therm provides basic temperature conversion for ds18*20, ds28ea00, GX20MH01 and MAX31850 devices.h]hdw1_therm provides basic temperature conversion for ds18*20, ds28ea00, GX20MH01 and MAX31850 devices.}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjchhubh)}(hSupported family codes:h]hSupported family codes:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjchhubhtable)}(hhh]htgroup)}(hhh](hcolspec)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubhtbody)}(hhh](hrow)}(hhh](hentry)}(hhh]h)}(hW1_THERM_DS18S20h]hW1_THERM_DS18S20}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h0x10h]h0x10}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(hW1_THERM_DS1822h]hW1_THERM_DS1822}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h0x22h]h0x22}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(hW1_THERM_DS18B20h]hW1_THERM_DS18B20}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj*ubah}(h]h ]h"]h$]h&]uh1jhj'ubj)}(hhh]h)}(h0x28h]h0x28}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjAubah}(h]h ]h"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(hW1_THERM_DS1825h]hW1_THERM_DS1825}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjaubah}(h]h ]h"]h$]h&]uh1jhj^ubj)}(hhh]h)}(h0x3Bh]h0x3B}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjxubah}(h]h ]h"]h$]h&]uh1jhj^ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(hW1_THERM_DS28EA00h]hW1_THERM_DS28EA00}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h0x42h]h0x42}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]colsKuh1jhjubah}(h]h ]h"]h$]h&]uh1jhjchhhhhNubh)}(hXSupport is provided through the sysfs entry ``w1_slave``. Each open and read sequence will initiate a temperature conversion, then provide two lines of ASCII output. The first line contains the nine hex bytes read along with a calculated crc value and YES or NO if it matched. If the crc matched the returned values are retained. The second line displays the retained values along with a temperature in millidegrees Centigrade after t=.h](h,Support is provided through the sysfs entry }(hjhhhNhNubhliteral)}(h ``w1_slave``h]hw1_slave}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhX|. Each open and read sequence will initiate a temperature conversion, then provide two lines of ASCII output. The first line contains the nine hex bytes read along with a calculated crc value and YES or NO if it matched. If the crc matched the returned values are retained. The second line displays the retained values along with a temperature in millidegrees Centigrade after t=.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjchhubh)}(hAlternatively, temperature can be read using ``temperature`` sysfs, it returns only the temperature in millidegrees Centigrade.h](h-Alternatively, temperature can be read using }(hjhhhNhNubj)}(h``temperature``h]h temperature}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhC sysfs, it returns only the temperature in millidegrees Centigrade.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK'hjchhubh)}(hXA bulk read of all devices on the bus could be done writing ``trigger`` to ``therm_bulk_read`` entry at w1_bus_master level. This will send the convert command to all devices on the bus, and if parasite powered devices are detected on the bus (and strong pullup is enabled in the module), it will drive the line high during the longer conversion time required by parasited powered device on the line. Reading ``therm_bulk_read`` will return 0 if no bulk conversion pending, -1 if at least one sensor still in conversion, 1 if conversion is complete but at least one sensor value has not been read yet. Result temperature is then accessed by reading the ``temperature`` entry of each device, which may return empty if conversion is still in progress. Note that if a bulk read is sent but one sensor is not read immediately, the next access to ``temperature`` on this device will return the temperature measured at the time of issue of the bulk read command (not the current temperature).h](h50k), this command should be used wisely.h](h1To store the current resolution in EEPROM, write }(hj?hhhNhNubj)}(h``0``h]h0}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?ubh to }(hj?hhhNhNubj)}(h ``w1_slave``h]hw1_slave}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?ubh]. Since the EEPROM has a limited amount of writes (>50k), this command should be used wisely.}(hj?hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKJhjchhubh)}(hAlternatively, resolution can be read or written using the dedicated ``resolution`` entry on each device, if supported by the sensor.h](hEAlternatively, resolution can be read or written using the dedicated }(hjqhhhNhNubj)}(h``resolution``h]h resolution}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubh2 entry on each device, if supported by the sensor.}(hjqhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKNhjchhubh)}(hSome non-genuine DS18B20 chips are fixed in 12-bit mode only, so the actual resolution is read back from the chip and verified.h]hSome non-genuine DS18B20 chips are fixed in 12-bit mode only, so the actual resolution is read back from the chip and verified.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKQhjchhubh)}(hENote: Changing the resolution reverts the conversion time to default.h]hENote: Changing the resolution reverts the conversion time to default.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKThjchhubh)}(hThe write-only sysfs entry ``eeprom_cmd`` is an alternative for EEPROM operations. Write ``save`` to save device RAM to EEPROM. Write ``restore`` to restore EEPROM data in device RAM.h](hThe write-only sysfs entry }(hjhhhNhNubj)}(h``eeprom_cmd``h]h eeprom_cmd}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh0 is an alternative for EEPROM operations. Write }(hjhhhNhNubj)}(h``save``h]hsave}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh% to save device RAM to EEPROM. Write }(hjhhhNhNubj)}(h ``restore``h]hrestore}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh& to restore EEPROM data in device RAM.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKVhjchhubh)}(h``ext_power`` entry allows checking the power state of each device. Reads ``0`` if the device is parasite powered, ``1`` if the device is externally powered.h](j)}(h ``ext_power``h]h ext_power}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh= entry allows checking the power state of each device. Reads }(hjhhhNhNubj)}(h``0``h]h0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh$ if the device is parasite powered, }(hjhhhNhNubj)}(h``1``h]h1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh% if the device is externally powered.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKZhjchhubh)}(hXJSysfs ``alarms`` allow read or write TH and TL (Temperature High an Low) alarms. Values shall be space separated and in the device range (typical -55 degC to 125 degC). Values are integer as they are store in a 8bit register in the device. Lowest value is automatically put to TL. Once set, alarms could be search at master level.h](hSysfs }(hj1hhhNhNubj)}(h ``alarms``h]halarms}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubhX: allow read or write TH and TL (Temperature High an Low) alarms. Values shall be space separated and in the device range (typical -55 degC to 125 degC). Values are integer as they are store in a 8bit register in the device. Lowest value is automatically put to TL. Once set, alarms could be search at master level.}(hj1hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK]hjchhubh)}(hXThe module parameter strong_pullup can be set to 0 to disable the strong pullup, 1 to enable autodetection or 2 to force strong pullup. In case of autodetection, the driver will use the "READ POWER SUPPLY" command to check if there are pariste powered devices on the bus. If so, it will activate the master's strong pullup. In case the detection of parasite devices using this command fails (seems to be the case with some DS18S20) the strong pullup can be force-enabled.h]hXThe module parameter strong_pullup can be set to 0 to disable the strong pullup, 1 to enable autodetection or 2 to force strong pullup. In case of autodetection, the driver will use the “READ POWER SUPPLY” command to check if there are pariste powered devices on the bus. If so, it will activate the master’s strong pullup. In case the detection of parasite devices using this command fails (seems to be the case with some DS18S20) the strong pullup can be force-enabled.}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKchjchhubh)}(hXIf the strong pullup is enabled, the master's strong pullup will be driven when the conversion is taking place, provided the master driver does support the strong pullup (or it falls back to a pullup resistor). The DS18b20 temperature sensor specification lists a maximum current draw of 1.5mA and that a 5k pullup resistor is not sufficient. The strong pullup is designed to provide the additional current required.h]hXIf the strong pullup is enabled, the master’s strong pullup will be driven when the conversion is taking place, provided the master driver does support the strong pullup (or it falls back to a pullup resistor). The DS18b20 temperature sensor specification lists a maximum current draw of 1.5mA and that a 5k pullup resistor is not sufficient. The strong pullup is designed to provide the additional current required.}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKlhjchhubh)}(hXThe DS28EA00 provides an additional two pins for implementing a sequence detection algorithm. This feature allows you to determine the physical location of the chip in the 1-wire bus without needing pre-existing knowledge of the bus ordering. Support is provided through the sysfs ``w1_seq``. The file will contain a single line with an integer value representing the device index in the bus starting at 0.h](hXThe DS28EA00 provides an additional two pins for implementing a sequence detection algorithm. This feature allows you to determine the physical location of the chip in the 1-wire bus without needing pre-existing knowledge of the bus ordering. Support is provided through the sysfs }(hjmhhhNhNubj)}(h ``w1_seq``h]hw1_seq}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmubhs. The file will contain a single line with an integer value representing the device index in the bus starting at 0.}(hjmhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKthjchhubh)}(hX#``features`` sysfs entry controls optional driver settings per device. Insufficient power in parasite mode, line noise and insufficient conversion time may lead to conversion failure. Original DS18B20 and some clones allow for detection of invalid conversion. Write bit mask ``1`` to ``features`` to enable checking the conversion success. If byte 6 of scratchpad memory is 0xC after conversion and temperature reads 85.00 (powerup value) or 127.94 (insufficient power), the driver returns a conversion error. Bit mask ``2`` enables poll for conversion completion (normal power only) by generating read cycles on the bus after conversion starts. In parasite power mode this feature is not available. Feature bit masks may be combined (OR). More details in Documentation/ABI/testing/sysfs-driver-w1_thermh](j)}(h ``features``h]hfeatures}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhX sysfs entry controls optional driver settings per device. Insufficient power in parasite mode, line noise and insufficient conversion time may lead to conversion failure. Original DS18B20 and some clones allow for detection of invalid conversion. Write bit mask }(hjhhhNhNubj)}(h``1``h]h1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh to }(hjhhhNhNubj)}(h ``features``h]hfeatures}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh to enable checking the conversion success. If byte 6 of scratchpad memory is 0xC after conversion and temperature reads 85.00 (powerup value) or 127.94 (insufficient power), the driver returns a conversion error. Bit mask }(hjhhhNhNubj)}(h``2``h]h2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhX enables poll for conversion completion (normal power only) by generating read cycles on the bus after conversion starts. In parasite power mode this feature is not available. Feature bit masks may be combined (OR). More details in Documentation/ABI/testing/sysfs-driver-w1_therm}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK{hjchhubh)}(hXGX20MH01 device shares family number 0x28 with DS18*20. The device is generally compatible with DS18B20. Added are lowest 2\ :sup:`-5`, 2\ :sup:`-6` temperature bits in Config register; R2 bit in Config register enabling 13 and 14 bit resolutions. The device is powered up in 14-bit resolution mode. The conversion times specified in the datasheet are too low and have to be increased. The device supports driver features ``1`` and ``2``.h](h}GX20MH01 device shares family number 0x28 with DS18*20. The device is generally compatible with DS18B20. Added are lowest 2 }(hjhhhNhNubh superscript)}(h :sup:`-5`h]h-5}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh, 2 }(hjhhhNhNubj)}(h :sup:`-6`h]h-6}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhX temperature bits in Config register; R2 bit in Config register enabling 13 and 14 bit resolutions. The device is powered up in 14-bit resolution mode. The conversion times specified in the datasheet are too low and have to be increased. The device supports driver features }(hjhhhNhNubj)}(h``1``h]h1}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh and }(hjhhhNhNubj)}(h``2``h]h2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjchhubh)}(hMAX31850 device shares family number 0x3B with DS1825. The device is generally compatible with DS1825. The higher 4 bits of Config register read all 1, indicating 15, but the device is always operating in 14-bit resolution mode.h]hMAX31850 device shares family number 0x3B with DS1825. The device is generally compatible with DS1825. The higher 4 bits of Config register read all 1, indicating 15, but the device is always operating in 14-bit resolution mode.}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjchhubeh}(h] descriptionah ]h"] descriptionah$]h&]uh1hhhhhhhhKubeh}(h]kernel-driver-w1-thermah ]h"]kernel driver w1_thermah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksjfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjwerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(jRjOjJjGu nametypes}(jRjJuh}(jOhjGjcu footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log] decorationNhhub.