Go Down

Topic: [Lib] Testato_SoftI2CMaster (Read 306 times) previous topic - next topic

Testato

Dec 20, 2014, 10:32 pm Last Edit: Dec 21, 2014, 08:28 pm by Testato
Piccolo regalo natalizio  :D
Libreria I2C Software, per usare dispositivi I2C su qualsiasi pin.

Partendo da una libreria che non risultava funzionare sui miei LCD, ho strumentalmente constatato che il problema era nella forma d'onda generata in bitbanging.
Ho sistemato la forma d'onda, ma era lentissima. L'ho quindi ulteriormente modificata prima per andare ai classici 100kHz, e poi per poter manualmente selezionare la velocita' voluta tra i 30Hz ed i 140kHz

Esempi di velocita' settabili:
// 0=maxspeed=140kHz (tested on 328P@16MHz)
// 1=120kHz
// 2=100kHz (default)
// 7=50kHz
// 47=10kHz
// 97=5kHz
// 500=1kHz
// 5000=100Hz
// 16383=minspeed=30Hz  - delayMicroseconds() max value reference arduino



Ver 1.2
- Aggiunto file keywords.txt (grazie leo72)
Ver 1.1
- Velocita' bus I2C selezionabile (30Hz-140kHz)
Ver 1.0
- Funzionamento su LCD con controller ST7032i
- modificata la forma d'onda di uscita per aderire maggiormente allo standard I2C
- modificata velocita' standard a 100kHz

Downloads precedenti: 7
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH


leo72

Quindi rispetto alla SoftI2CMaster la tua permette velocità più elevate? Bene, ottimo.
Può tornarmi utile.

Ah, ti allego il file keywords.txt da mettere nella cartella dellal libreria, per la colorazione delle parole chiave da parte dell'IDE di Arduino, spero tu gradisca  :P

Testato

#3
Dec 21, 2014, 07:25 pm Last Edit: Dec 21, 2014, 07:29 pm by Testato
grazie leo del keyword, mi scocciavo di farlo  :D

ci sono tre differenze importanti, la prima e' proprio la ricostruzione della forma d'onda, l'originale era talmente raffazonata che (fortunatamente) sui miei lcd cog non funzionava. se avesse funzionato, per questioni di tolleranza, non me ne sarei accorto.
La seconda e' la velocita' superiore, ma di molto non ricordo a quanto fosse inizialmente, ma qui siamo di default a 100kHz, come nella Wire.
La terza e' la possibilia' di selezionare manualmente la velocita' direttamente dalla API, quindi utile quando ad esempio si hanno dubbi su problemi saltuari dovuti alla velocita', in un click la cambi.

L'estensione della scelta, a partire da 30Hz, cioe' talmente lenta da poter seguire quasi ad occhio l'andamento del bus, fino al massimo di 170kHz puo' essere utile in fase di test.
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Testato

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH


Testato

Non ne ha bisogno perché non è bloccante
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Ho utilizzato la nuova libreria Testato_SoftI2CMaster e la libreria Testato_ST7032i_LCD_I2C v.2.0 per pilotare un LCD MIDAS MCCOG21605C6W-SPTLYI utilizzando diversi pin oltre a quelli standard previsti per la I2C.
Il tutto funziona perfettamente anche con diverse velocità come indicato negli esempi e nei files README contenuti nelle librerie:
- LCD pilotato da Arduino UNOR3 da pin A4 e A5 con libreria Testato_ST7032i_LCD_I2C + Testato_SoftI2CMaster
- LCD pilotato da Arduino UNOR3 da pin D6 e D7 con libreria Testato_ST7032i_LCD_I2C + Testato_SoftI2CMaster
- LCD pilotato da Arduino MICRO da pin D2 e D3 con libreria Testato_ST7032i_LCD_I2C + Testato_SoftI2CMaster
- LCD pilotato da Arduino MICRO da pin D6 e D7 con libreria Testato_ST7032i_LCD_I2C + Testato_SoftI2CMaster
Grazie a Testato per tutte le modifiche che hanno reso possibile l'impiego di diversi pin per collegare l'LCD

I used the new library Testato_SoftI2CMaster and the new library Testato_ST7032i_LCD_I2C v.2.0 to drive an LCD MIDAS MCCOG21605C6W-SPTLYI using alternative pins instead of those provided for the standard I2C. Everything works perfectly even with different speeds, as shown in the examples and in README files content in the library folders:
- LCD controlled by Arduino UNOR3 pin A4 and A5 with library Testato_ST7032i_LCD_I2C + Testato_SoftI2CMaster
- LCD controlled by Arduino UNOR3 pin D6 and D7 with library Testato_ST7032i_LCD_I2C + Testato_SoftI2CMaster
- LCD controlled by Arduino MICRO pin D2 and D3 with library Testato_ST7032i_LCD_I2C + Testato_SoftI2CMaster
- LCD controlled by Arduino MICRO pin D6 and D7 with library Testato_ST7032i_LCD_I2C + Testato_SoftI2CMaster
Thanks to "Testato" for all the changes that have made possible the use of alternative pins to connect the LCD


Testato

grazie dell'esaustivo feedback  ;)
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy