EasyMCP2221.Device
- ADC/DAC:
- Fixed bug: when ADC reference is VDD and DAC reference is VRM and a new GPIO configuration is applied, DAC stops working. It seems to be related with a known MCP limitation.
- Fixed bug: Restore DAC reference value after reset.
- In some cases MCP2221A's firmware does not restore DAC or ADC pin assignment when it boots. Software workaround.
- I2C:
- Deprecated
I2C_cancel
andI2C_is_idle
. Bus is now managed automatically. You can use_i2c_release
and_i2c_status
as replacement if needed. - Fixed. Low SCL and low SDA exceptions were swapped.
- When the I2C bus detects SDA activity, the next transfer does not work fine. Prevented via software. See
_i2c_status
.
- Deprecated
- Documentation:
- Instructions and schematic for testing in the
install
section. - Replaced PNG schematics by SVG versions in
examples
. - Troubleshooting section to run as an unprivileged user in Linux (udev rule).
- Added developers section with details about I2C transfers. See
internals
.
- Instructions and schematic for testing in the
- Misc:
- Added test suite.
- Added IOC edge detection setting in device representation.
- Fixed. Bug when reset a device with customized VID/PID.
- Multiple tries to find the device after a
reset
(until timeout).
- Improved USB stability:
- Added timeout in HID read.
- Added retries in send_cmd.
- Better USB trace_commands output format.
- Removed sleep parameter in
send_cmd
.
- GPIO / ADC and DAC:
- GPIO output values given with
GPIO_write
function are now preserved when callingSRAM_config
(like to change DAC value, or pin function). - Restore ADC/DAC Vref when calling
SRAM_config
(seelimitations_bugs
). - Reload Vrm after power-up according to saved configuration.
- GPIO output values given with
- More reliable I2C functions:
- Rewritten
I2C_read
to take into account internal I2C engine status. - Rewritten
I2C_write
to prevent infinite loop, quicker write and ACK checking. - Timeout and early failure check in read and write to prevent infinite loop.
- Custom exceptions for better error handling (see Exceptions in
api_reference
) - Automatically try to recover from an I2C error in past operation.
- Rewritten
- New features:
- Function to save current state:
save_config
. - Added speed parameter in I2C Slave class.
- Function to save current state:
- Documentation:
- Removed self argument from autodoc methods.
- Added pictures and schematics.
- Added MCP2221 pinout guide.
- Added advanced ADC/DAC examples section.
- Added license.
- Corrected typos.
- Formatting.
Released 1.5.1 again by mistake.
Add I2C Slave helper class.
First EasyMCP2221 version.
This project was initially a fork of PyMCP2221A library by Yuta KItagami (https://github.com/nonNoise/PyMCP2221A).
I made a few changes, then a few more, until I ended up rewriting almost all the code. Since the API is no longer compatible with PyMCP2221A, I decided to create a new package.
Tags v1.4 and earlier are from PyMCP2221A.