Filtrage sur l'I2C des MACHXO2

Posté le 06 avril 2020 dans Hardware

L'IP I2C des MACHXO2 de Lattice est très utile, surtout pour la programmation de la mémoire FLASH embarquée.

Problème, la communication fonctionne de façon erratique, voire pas du tout.

A l'oscilloscope, pas de problème. Les signaux sont bons. Mais le MACHXO2 ne communique pas correctement. Que se passe t-il ?

J'ai mis longtemps à trouver la solution, d'autant plus qu'elle est bien cachée dans un document que l'on ne pense pas forcément à lire. Encore faut-il savoir que ce document existe. La solution, donc, se trouve dans le document "MachXO2 Hardware Checklist". Il s'agit de l'ajout de filtres RC sur SCL et SDA.

filtre

Au vu des valeurs des composants, le MACHXO2 est sensible à des perturbations de (très) haute fréquence. En pratique, un simple signal d'horloge connecté au MACHXO2 peut suffire à perturber le fonctionnement de l'IP I2C.