Go Down

Topic: [Lib] Testato_SoftI2CMaster (Read 63 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

Go Up