[riot-notifications] [RIOT-OS/RIOT] drivers: support for NXP PCA9685 I2C 16-channel, 12-bit PWM controller (#10556)
notifications at github.com
Sun Sep 15 15:15:53 CEST 2019
Hey there, thanks for the patience and sorry for the delay! I've tested this and all looks good from a general perspective. However, I've experienced a slight issue here which is probably only relevant for me - it does however make this driver unusable to me. Let me explain:
For every PWM action a write is being performed. Write then acquires I2C, sets writes the data to the registers and releases the I2C again. That's basically how most drivers run and it's totally fine. In my case, I need to set multiple channels at once, with either identical or different computed values. Hence the poor-man's-driver I wrote for the PCA [contains a small hack](https://github.com/twostairs/RIOT-drivers/blob/master/pca9685/pca9685.c#L168) which allows me to specify whether I2C should be kept acquired. If I was to release the I2C channel between setting PWM for the multiple channels I could end up with a different thread/device acquiring the I2C and blocking it for a certain amount of time, leaving me with a couple of channels set to the new PWM values, while the rest of the channels are still running on the old values.
So, long story short: This driver can be merged as it looks good. However, unfortunately I won't be able to use it in this form, because of the issue that I just described.
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the notifications