diff --git a/AS5600.cpp b/AS5600.cpp index 4477c28..ad9f86d 100644 --- a/AS5600.cpp +++ b/AS5600.cpp @@ -1,7 +1,7 @@ // // FILE: AS56000.cpp // AUTHOR: Rob Tillaart -// VERSION: 0.5.2 +// VERSION: 0.6.0 // PURPOSE: Arduino library for AS5600 magnetic rotation meter // DATE: 2022-05-28 // URL: https://github.com/RobTillaart/AS5600 diff --git a/AS5600.h b/AS5600.h index 5bcdb94..f0323ee 100644 --- a/AS5600.h +++ b/AS5600.h @@ -2,7 +2,7 @@ // // FILE: AS5600.h // AUTHOR: Rob Tillaart -// VERSION: 0.5.2 +// VERSION: 0.6.0 // PURPOSE: Arduino library for AS5600 magnetic rotation meter // DATE: 2022-05-28 // URL: https://github.com/RobTillaart/AS5600 @@ -12,7 +12,7 @@ #include "Wire.h" -#define AS5600_LIB_VERSION (F("0.5.2")) +#define AS5600_LIB_VERSION (F("0.6.0")) // default addresses diff --git a/CHANGELOG.md b/CHANGELOG.md index db97fbf..8cae9d1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,9 +5,10 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/). -## [0.5.2] - 2024-01-25 +## [0.6.0] - 2024-01-25 - add experimental error handling - add **int lastError()** so user can check the status of last I2C actions. +- update readme.md - update examples - minor edits diff --git a/README.md b/README.md index 5c67c37..3c0f744 100644 --- a/README.md +++ b/README.md @@ -118,6 +118,7 @@ See more in the sections Analog OUT and PWM OUT below. ##### Note: (From Zipdox2 - See issue #36) + Some AS5600 modules seem to have a resistor between **PGO** and **GND**. This causes the AS5600 to disable the output (to use it for programming, see datasheet). This resistor needs to be removed to use the **OUT** pin. @@ -137,6 +138,8 @@ See **Make configuration persistent** below. ## I2C +The I2C address of the **AS5600** is always 0x36. + #### Address | sensor | address | changeable | @@ -150,6 +153,32 @@ The **AS5600L** supports the change of I2C address, optionally permanent. Check the **setAddress()** function for non-permanent change. +#### I2C multiplexing + +Sometimes you need to control more devices than possible with the default +address range the device provides. +This is possible with an I2C multiplexer e.g. TCA9548 which creates up +to eight channels (think of it as I2C subnets) which can use the complete +address range of the device. + +Drawback of using a multiplexer is that it takes more administration in +your code e.g. which device is on which channel. +This will slow down the access, which must be taken into account when +deciding which devices are on which channel. +Also note that switching between channels will slow down other devices +too if they are behind the multiplexer. + +- https://github.com/RobTillaart/TCA9548 + +Alternative could be the use of a AND port for the I2C clock line to prevent +the sensor from listening to signals on the I2C bus. + +Finally the sensor has an analogue output **OUT**. +This output could be used to connect multiple sensors to different analogue ports of the processor. + +**Warning**: If and how well this analog option works is not verified or tested. + + #### Performance | board | sensor | results | notes | @@ -633,21 +662,6 @@ with enough precision to get the max resolution. When PWM OUT is selected **readAngle()** will still return valid values. -## Multiplexing - -The I2C address of the **AS5600** is always 0x36. - -To use more than one **AS5600** on one I2C bus, one needs an I2C multiplexer, -e.g. https://github.com/RobTillaart/TCA9548. -Alternative could be the use of a AND port for the I2C clock line to prevent -the sensor from listening to signals on the I2C bus. - -Finally the sensor has an analogue output **OUT**. -This output could be used to connect multiple sensors to different analogue ports of the processor. - -**Warning**: If and how well this analog option works is not verified or tested. - - ---- ## AS5600L class diff --git a/library.json b/library.json index 882b80a..d8398ef 100644 --- a/library.json +++ b/library.json @@ -15,7 +15,7 @@ "type": "git", "url": "https://github.com/RobTillaart/AS5600.git" }, - "version": "0.5.2", + "version": "0.6.0", "license": "MIT", "frameworks": "*", "platforms": "*", diff --git a/library.properties b/library.properties index 9457a9b..9e8d083 100644 --- a/library.properties +++ b/library.properties @@ -1,5 +1,5 @@ name=AS5600 -version=0.5.2 +version=0.6.0 author=Rob Tillaart maintainer=Rob Tillaart sentence=Arduino library for AS5600 and AS5600L magnetic rotation meter.