I3C est-ce nouveau pour vous ?

Bonjour à tous,

lisant la discussion d'un ignare voulant ... je fus curieux et m'en fut visiter les descriptions tech de certains composants cités. J'y ai découvert l'existence d'un protocole i3c. Via le détour sus-mentionné, j'ai découvert que le composant BMM350 dispose d'un port i3c

Avez-vous eu à jouer avec du i3c ?
Si oui, racontez svp.

Pensez-vous qu'à terme i3c remplacera totalement i2c ?
Ce me semble raisonnable de penser de la sorte, mais il me semble que le remplacement des composant prenne un temps vraimmmmmmmment long.

hello, il y a surement des stooooooooooooooooocks de composants à liquider

Au fait, quelle différence faites-vous entre i2c et i3c ?
Pour ma part, je n'y vois que ceci:

  • i3c permet la connexion à chaud, ce que ne permet pas i2c.
  • moindre consommation d'énergie

source iA

3. Différences essentielles I²C vs I3C

Caractéristique I²C I3C
Débit max 400 kHz / 1 MHz (Fast+) > 10 MHz
Pull-up externes Obligatoires Non
Adressage Statique Dynamique
Multi-maître Complexe Natif
Consommation Plus élevée Optimisée
Interruptions Ligne dédiée In-Band Interrupt (IBI)
Compatibilité Compatible I²C

Première chose à faire comprendre les sigles.

I2C = Inter Integrated Circuit -> IIC ou I2C
I3C = Improve Inter Integrated Circuit -> IIIC ou I3C

L'I3C reste de l'I2C mais "Improve".

Deuxième point : quelle amélioration ?
J'ai fait une recherche avec un moteur de recherche, pas d'IA.
Dans la liste, je vois le site de Microchip.
Je me dis : un concepteur de circuit intégré est une bonne personne chez qui aller chercher de l'information.

Et je lis :
Unlike I2C, which is purely open-drain, I3C automatically switches between open-drain and push-pull using pull-up resistors that are integrated in the primary controller.
I3C can operate at much higher clock speeds (12.5 MHz max)

Ah, mais j'ai compris et j'explique ce que j'ai compris :

Le schéma équivalent.
je représente le transistor par un contact pour simplifier.

Cas de l'I2C.
Quand le transistor est commandé, il est saturé et la sortie est à 0 V à quelques mV près.
Quand le transistor n'est pas commandé, la sortie est à Vcc par l'intermédiaire de la résistance, (par exemple 5 k).
Le montage est un montage en émetteur commun.
En électronique on démontre que dans montage en émetteur commun, l'impédance de sortie est égale à la résistance de collecteur, c'est à dire cette "pull-up" qu'il faut ajouter pour terminer le circuit.
Cette résistance de collecteur est entre 5 k et 10 k.

Conséquence quand il y a de la capacité sur la ligne, soit dans les fils, soit celle des pins d'entrée des composants, appelons-la "C", il y a un temps de charge du condensateur qui dépend du produit RC.
Le signal met du temps à s'établir, il ne faut pas utiliser des fréquences SCL trop rapides.
Sinon on n'obtient qu'un signal plat d'amplitude "moyenne".
Si C, c'est des picofarads, ne pas oublier que R, c'est des kilos ohms.

Cas de l' I3C.
La "pull up" R n'est plus active dans la transmission.
L'étage de sortie des composants est un montage à transistors FET complémentaires (push pull).
Le schéma équivalent de sortie se réduit à :

L'important est que la résistance 5 k ohms a été remplacée par la résistance Rdson du transistor FET actif. Rdson est de l'ordre de 20 à 30 ohms.
Le produit RC étant beaucoup plus faible, les fréquences atteignables sont proches de celle du SPI.

Document : https://www.microchip.com/en-us/products/microcontrollers/8-bit-mcus/peripherals/communication-connectivity/i3c

Edit:
Par contre je n'ai pas d'information sur le maintien de la fonction " OU câblé"

L'I3C est donné compatible I2C. Le bus est par défaut en collecteur ouvert et toutes les transactions commencent dans ce mode avant de basculer en push-pull si nécessaire.

Les transferts rapides se font en push-pull et le hardware de nos micros ne semblent pas gérer cela.

l’ESP32-P4 ,qui fera sans doute sa place sur ce forum, est annoncé ‘compatible I3C ‘

avec peut être des limites à découvrir dans sa Data Sheet……

@Patriboom : en réponse au titre du fil, je découvre tout juste l’existence de l’I3C :

https://www.digikey.fr/fr/maker/tutorials/2024/demystifying-i3c-a-technical-guide

Idem, je n’en avais pas entendu parler. @Patriboom Merci de l'avoir mentionné !

Pour dire vrai, quand j'ai lu I3C, le système correcteur d'erreur de mon cerveau a corrigé en mode reflexe I3C en I2C.
C'est aussi la question de Patriboom qui m'a fait réagir.

pourquoi pas , dans une trentaine d’années …

Bonjour,

Comme l'I3C a été spécifié il y a des lustres (The I3C standard was first released to the public at the end of 2017), je pense qu'il n'a aucun avenir car à cheval entre l'I2C et le SPI.

Maintenant, je me trompe peut-être mais je ne perdrai pas mon temps à le mettre en oeuvre (c'est la vie des protocoles qui n'accrochent pas ;-)

NB: Idem pour moi, jamais entendu parlé de l'I3C avant ce fil de discussion

A suivre...

À mon avis, comme I3C est plus rapide, consomme moins et gère mieux plusieurs périphériques qu’I2C, il remplacera progressivement I2C dans les systèmes modernes exigeants, tandis qu’I2C perdurera pour les applications basiques. I2C reste simple, compatible et très répandu donc il n'est pas prêt de disparaître.

Mon avis d'électronicien :

Je vois un avantage à l' I3C : les dialogues en mode push-pull, c'est-à-dire sous une faible impédance pour l'émission, qui devraient permettre de bénéficier de la simplicité de l' I2C sur des distances plus longues.

Je ne pense pas que le paramètre vitesse d'horloge soit le principal argument.
Le SPI est plus adapté à la vitesse.
Coté émission maître, le protocole I2C oblige à envoyer deux octets dont celui de l'adresse de l'esclave qui ne véhicule aucune information, en SPI la désignation de l'esclave est confiée à un GPIO.
L'entropie du message du maître I2C n'est que de 50 %.

En principe les avantages de l’I3C sur l’I2C auraient du lui ouvrir les portes des smarphones (capteurs multiples , éventuelle diversite de tensions de fonctionnement des divers capteurs…)

Il semble que cela ne soit pas le cas et que le coût total de l’adoption par l’industrie (license MIPI, puces , formation…) ait été perçu comme excessif par rapport à ‘ce qui fonctionne déjà’ ).
Faire ‘mieux’ ne suffit pas à convaincre.

Quand une avancée technologique répond , a un coût acceptabke, a un besoin exprimé elle est rapidement adoptée.

Certains SoC modernes, notamment Qualcomm et MediaTek, intègrent un contrôleur I3C, donc on peut penser que ça finira par percer côté android

ok côté SOCs avec les IP de Cadence et autres mais côté capteurs l’offre reste encore timide au bout de 8 ans

Pour ceux que cela intéressent, ci-après une liste non exhaustive de capteurs et autres processeur intégrant l'I3C: I3C circuits

Après avoir balayé quelques datasheets, je pense que l'I3C est vraiment réservé aux industriels (packaging, fournisseur, mise en œuvre, etc.)

Sommes-nous donc 8 ans en retard dans notre découverte du i3c ?

Cela n'a rien d'anormal.
Professionnellement, j'ai connu les CI sous 3,3V avant l'an 2000.
Depuis combien de temps se sont-ils généralisés pour les amateurs ?

Quand verrons-nous les circuits 2,5 V qui existent déjà depuis plusieurs années ?
Quand verrons-nous des ESP32 alimenté sous 1,8 V qui est l'étape d'après ?

La remarque d' @al1fch est très juste :
il a les découvertes techniques
il y a ou il n'y a pas de marché pour ces nouveautés.
il y a les royalties à verser aux inventeurs.

Ça prend ou ça ne prend pas immédiatement ou plus tard.

Je me rappelle qu'à la fin du millénaire passé mon entreprise a voulu utiliser l'I2C (c'est à cette occasion que j'en ai entendu parler de très loin).
Pour avoir une adresse I2C il a fallu adhérer au consortium I2C (dirigé par Philips, maintenant par NXP) et payer un ticket d'entrée.

Pourquoi Atmel ne parlait pas d'I2C mais de TWO-Wire compatible I2C ?
Je ne suis pas dans les petits papiers d'Atmel mais probablement pour ne pas payer puisqu'un microcontrôleur n'a pas besoin d'une adresse.

hello,
Pour moi le gros avantage de l'I3C outre sa vitesse de transmission, c'est aussi son faible nombre de lignes (2 comme l'I2C, moins que le SPI). Il dispose aussi d'autres nombreux avantages comme l'adressage dynamique, mais aussi de groupe. Il est aussi plus robuste que l'I2C ou le SPI avec des commandes spéciales et un systeme interruption (que n'a pas l'I2C ou le SPI).
Par contre il a aussi de nombreux désavantages : il ne peut tenir que peu de capacitance de ligne, le protocole est plus complexe que l'I2C et le SPI.
Et attention ! L'I3C n'est pas compatible avec tout les composants I2C ! Ceux ci doivent embarquer un "spike filter".
Tout a été fait pour faciliter son adption (pas de licence comme l'I2C avec Philips dans les années 2000) .
Bonne journée à tous :)