DS2755(3)

๐Ÿ‘‘ DS2755(3) โ€” One-Wire File System, but make it a vibe ๐Ÿ‘‘

okay bestie, buckle up ๐Ÿ’– this is the manual page for DS2755(3) (and its glow-up twin DS2756(3)), living in the One-Wire File System. It's giving battery fuel gauge, it's giving thermocouple, it's giving "I read the datasheet so you don't have to" โœจ


๐ŸŒธ NAME ๐ŸŒธ

DS2755, DS2756 โ€” Multichemistry Battery Fuel Gauge ๐ŸŽ€

Like, it gauges fuel. For batteries. Multiple chemistries of them. Iconic behavior, no cap.


โœจ SYNOPSIS โœจ

๐ŸŒก๏ธ Temperature Voltage, Current, Memory, and Switch.

35 [.]XXXXXXXXXXXX[XX][/[ alarm_set/[volthigh|voltlow|temphigh|templow]
| lock.[0-2|ALL] | memory | pages/page.[0-2|ALL] | PIO | sensed |
temperature | vbias | vis | volt | volthours |
defaultpmod | pie0 | pie1 | rnaop | ios | uben | ovd | pmod | por | uven
|
address | crc8 | id | locator | r_address | r_id | r_locator | type ]]

๐Ÿงš Thermocouple

35 [.]XXXXXXXXXXXX[XX][/[ temperature | typeX/range_low |
typeX/range_high | typeX/temperature
bestie the second block's brackets do not balance in the original and I am NOT about to fix it, that's not my job, I'm just the messenger ๐Ÿซถ

๐Ÿ’… FAMILY CODE ๐Ÿ’…

35

That's it. That's the family code. Short queen. ๐Ÿ‘‘


๐Ÿฆ‹ SPECIAL PROPERTIES ๐Ÿฆ‹

alarm_set/templow alarm_set/temphigh

read-write, integer

The high and low alarm settings for temperature. You set the vibes, it watches the vibes. ๐ŸŒก๏ธ

alarm_set/voltlow alarm_set/volthigh

read-write, floating point

High and low alarm settings for volts. Voltage boundaries but make it dramatic. โšก

lock.[0-2|ALL]

read-write, yes-no

Locks any of the three eprom pages so nobody can write to them anymore. And like... apparently setting lock is permanent. ๐Ÿ˜ญ So maybe don't do it casually?? fr fr think about it first.

memory

read-write, binary

Full access to the entire 256 byte memory range. Lowkey a lot of this space is reserved or special-use, and the actual user space is the page area. See the DATASHEET for a full memory map โ€” I'm not summarizing that for you, go look ๐Ÿ’€

pages/pages.[0-2|ALL]

read-write, binary

Three 32 byte areas of memory for your user application. The lock property can stop you from altering them further, so mind your business carefully.

NOTE that the page property is different from the common OWFS implementation, in that all of memory is not accessible. Read that twice. I said what I said. ๐Ÿ™ˆ

PIO

write-only, yes-no

Controls the PIO pin, which lets you do external switching. Write "1" and the PIO pin turns on (conducting). Write "0" and the pin becomes non-conducting. The logical state of the voltage can be read with the sensed property. And heads up: sensed reflects the current voltage at the pin, NOT the value you sent to PIO. Sneaky.

Also note that PIO will also be altered by the power-status of the DS2670. See the datasheet for the details, bestie. ๐Ÿ“„

sensed

read-only, yes-no

The logical voltage sitting at the PIO pin. Only actually useful if the PIO property is set to "0" (non-conducting). Value will be 0 or 1 depending on the voltage threshold. Binary. On brand. ๐Ÿ’…

temperature

read-only, floating point

Temperature read by the chip at high resolution (~13 bits). Units come from the invoking command line โ€” see owfs(1) or owhttpd(1) for your choices. Default is Celsius. Conversion is continuous, so it's always serving fresh data. โœจ

vbias

read-write, floating point

A fixed offset applied to every vis measurement. Used for the volthours value. Units are in Volts. Range is -2.0mV to 2.0mV. Tiny little number, big little job. ๐ŸŽ€

vis

read-only, floating point

The current sensor reading (with an unknown external resistor). It measures the voltage gradient between the Vis pins. Units are in Volts.

The vis readings get integrated over time to provide the volthours property. The current reading is derived from vis assuming the internal 25 mOhm resistor is employed. And there is no way to know this through software. So like... it assumes. That's the situation. ๐Ÿ˜ญ

volt

read-only, floating point

Voltage read at the voltage sensor. This is separate from the vis voltage that's used for current measurement. Units are Volts. Range is between 0 and 4.75V. ๐ŸŒˆ

volthours

read-write, floating point

The integral of vis - vbias over time. Units are in volthours. Math girlies rise ๐Ÿงฎโœจ


๐ŸงŠ THERMOCOUPLE ๐ŸงŠ

typeX/

directory

A thermocouple circuit using the DS2755 to read the Seebeck voltage and the reference temperature. Since the type interpretation of the values read depends on the type of thermocouple, you must choose the correct directory. Supported thermocouple types include types B, E, J, K, N, R, S and T. Pick your fighter. ๐ŸฅŠ

typeX/range_low typeX/ranges_high

read-only, floating point

The lower and upper temperature supported by this thermocouple (at least by the conversion routines). In the globally chosen temperature units.

typeX/temperature

read-only, floating point

The thermocouple temperature. Requires a voltage and temperature conversion. Returned in the globally chosen temperature units.

Note: there are two types of temperature measurements possible. The temperature value in the main device directory is the reference temperature read at the chip. The typeX/temperature value is at the thermocouple junction, which is probably remote from the chip. Two different temperatures, two different locations, do not confuse them ๐Ÿ’€

๐Ÿ“ OBSCURE PROPERTIES ๐Ÿ“

pmod por uven pie0 pie1 ios uben ovd rnaop

varies, yes-no

Bit flags corresponding to various battery management functions of the chip. See the DATASHEET for details of the identically named entries. In general, writing "0" corresponds to a 0 bit value, and non-zero corresponds to a 1 bit value. Simple as. โœ…

defaultpmod

read-write, yes-no

The default power-on state for the corresponding properties. โœจ


๐Ÿ’œ STANDARD PROPERTIES ๐Ÿ’œ

address r_address

read-only, ascii

The entire 64-bit unique ID, given as upper case hexadecimal digits (0-9A-F).

address starts with the family code.

r_address is the address in reverse order, which is often used in other applications and labeling. ๐Ÿ”

crc8

read-only, ascii

The 8-bit error correction portion. Uses a cyclic redundancy check. Computed from the preceding 56 bits of the unique ID number. Given as upper case hexadecimal digits (0-9A-F). Check yourself before you wreck yourself โœจ

family

read-only, ascii

The 8-bit family code. Unique to each type of device. Given as upper case hexadecimal digits (0-9A-F). ๐Ÿ 

id r_id

read-only, ascii

The 48-bit middle portion of the unique ID number. Does not include the family code or CRC. Given as upper case hexadecimal digits (0-9A-F).

r_id is the id in reverse order, which is often used in other applications and labeling. ๐Ÿ”

locator r_locator

read-only, ascii

Uses an extension of the 1-wire design from iButtonLink company that associated 1-wire physical connections with a unique 1-wire code. If the connection is behind a Link Locator, the locator will show a unique 8-byte number (16 character hexadecimal) starting with family code FE. If there's no Link Locator between the device and the master, the locator field will be all FF.

r_locator is the locator in reverse order. ๐Ÿ”

present (DEPRECATED)

read-only, yes-no

Is the device currently present on the 1-wire bus? (It's deprecated, bestie โ€” don't build your whole personality on it. ๐Ÿ’€)

type

read-only, ascii

Part name assigned by Dallas Semi. E.g. DS2401. Alternative packaging (iButton vs chip) will not be distinguished. Same energy, different outfit ๐Ÿ’…


๐Ÿ”ฅ ALARMS ๐Ÿ”ฅ

Temperature and voltage.

That's the whole section. Two things. Both alarming. ๐Ÿšจ


๐Ÿซถ DESCRIPTION ๐Ÿซถ

1-Wire

1-wire is a wiring protocol and series of devices designed and manufactured by Dallas Semiconductor, Inc. The bus is a low-power, low-speed, low-connector scheme where the data line can also provide power. Efficiency queen. โšก

Each device is uniquely and unalterably numbered during manufacture. There are a wide variety of devices, including memory, sensors (humidity, temperature, voltage, contact, current), switches, timers and data loggers. More complex devices (like thermocouple sensors) can be built with these basic devices. There are also 1-wire devices that have encryption included. ๐Ÿ”

The 1-wire scheme uses a single bus master and multiple slaves on the same wire. The bus master initiates all communication. The slaves can be individually discovered and addressed using their unique ID. Main character master, supporting cast slaves. ๐Ÿ‘‘

Bus masters come in a variety of configurations including serial, parallel, i2c, network or USB adapters.

OWFS design

OWFS is a suite of programs designed to make the 1-wire bus and its devices easily accessible. The underlying principle is to create a virtual filesystem, with the unique ID being the directory, and the individual properties of the device represented as simple files that can be read and written. It's giving "everything is a file" but cuter. ๐Ÿ“โœจ

Details of the individual slave or master design are hidden behind a consistent interface. The goal is to provide an easy set of tools for a software designer to create monitoring or control applications. There are some performance enhancements in the implementation, including data caching, parallel access to bus masters, and aggregation of device communication. Still, the fundamental goal has been ease of use, flexibility and correctness rather than speed. Correct > fast, periodt. ๐Ÿ’…

DS2755 DS2756

The DS2755 (3) and DS2756 (3) are battery charging controllers similar to the DS2751 (3) except no internal resistor option and a larger EEPROM memory. Glow-up complete.

The DS2756 (3) adds suspend modes (pie0 pie1) to the DS2755 (3). Extra features, extra slay.

A number of interesting devices can be built with the DS2755 (3) and DS2756 (3) including thermocouples. Support for thermocouples is built into the software, using the embedded thermister as the cold junction temperature. ๐Ÿ”ฅ


๐ŸŒˆ ADDRESSING ๐ŸŒˆ

All 1-wire devices are factory assigned a unique 64-bit address. This address is of the form:

  • Family Code โ€” 8 bits
  • Address โ€” 48 bits
  • CRC โ€” 8 bits

Addressing under OWFS is in hexadecimal, of form:

01.123456789ABC

where 01 is an example 8-bit family code, and 12345678ABC is an example 48 bit address.

The dot is optional, and the CRC code can be included. If included, it must be correct. No typos allowed, bestie. ๐Ÿšซ


๐Ÿ“„ DATASHEET ๐Ÿ“„

http://pdfserv.maxim-ic.com/en/ds/DS2755.pdf
http://pdfserv.maxim-ic.com/en/ds/DS2756.pdf

Go read them. I know. But go. ๐Ÿ™ˆ


๐Ÿ‘€ SEE ALSO ๐Ÿ‘€

Programs

  • owfs (1) owhttpd (1) owftpd (1) owserver (1) owdir (1) owread (1) owwrite (1) owpresent (1) owtap (1)

Configuration and testing

  • owfs (5) owtap (1) owmon (1)

Language bindings

  • owtcl (3) owperl (3) owcapi (3)

Clocks

  • DS1427 (3) DS1904 (3) DS1994 (3) DS2404 (3) DS2404S (3) DS2415 (3) DS2417 (3)

ID

  • DS2401 (3) DS2411 (3) DS1990A (3)

Memory

  • DS1982 (3) DS1985 (3) DS1986 (3) DS1991 (3) DS1992 (3) DS1993 (3) DS1995 (3) DS1996 (3) DS2430A (3) DS2431 (3) DS2433 (3) DS2502 (3) DS2506 (3) DS28E04 (3) DS28EC20 (3)

Switches

  • DS2405 (3) DS2406 (3) DS2408 (3) DS2409 (3) DS2413 (3) DS28EA00 (3) InfernoEmbedded (3)

Temperature

  • DS1822 (3) DS1825 (3) DS1820 (3) DS18B20 (3) DS18S20 (3) DS1920 (3) DS1921 (3) DS1821 (3) DS28EA00 (3) DS28E04 (3) EDS0064 (3) EDS0065 (3) EDS0066 (3) EDS0067 (3) EDS0068 (3) EDS0071 (3) EDS0072 (3) MAX31826 (3)

Humidity

  • DS1922 (3) DS2438 (3) EDS0065 (3) EDS0068 (3)

Voltage

  • DS2450 (3)

Resistance

  • DS2890 (3)

Multifunction (current, voltage, temperature)

  • DS2436 (3) DS2437 (3) DS2438 (3) DS2751 (3) DS2755 (3) DS2756 (3) DS2760 (3) DS2770 (3) DS2780 (3) DS2781 (3) DS2788 (3) DS2784 (3)

Counter

  • DS2423 (3)

LCD Screen

  • LCD (3) DS2408 (3)

Crypto

  • DS1977 (3)

Pressure

  • DS2406 (3) TAI8570 (3) EDS0066 (3) EDS0068 (3)

Moisture

  • EEEF (3) DS2438 (3)

๐Ÿ’– AVAILABILITY ๐Ÿ’–

http://www.owfs.org

๐ŸŽ€ AUTHOR ๐ŸŽ€

Paul Alfille (paul.alfille@gmail.com)


okay that's the whole thing, bestie, you made it to the end ๐Ÿฅนโœจ this was DS2755(3), from the OWFS Manpage, dated 2003 โ€” and the header at the top of the original said DS2755(3) in the One-Wire File System section, which is exactly where we started, so we've come full circle ๐Ÿฆ‹ go forth and gauge that fuel ๐Ÿ’…๐Ÿ’–