modelPinBridgeFull

Pont de broche avec tirages internes (PULL_UP/PULL_DOWN, faits dans MCU) et prototype du mode drain ouvert (OPEN_DRAIN, pas encore dans MCU), en blocs standard

Information

Prototype, non utilisé par MCU : le pont de PinBridge complété de ce que l'API machine.Pin du RP2040 offre. Depuis le 2026-10-01, MCU.mo réalise les tirages internes et la fuite de 1 GOhm, avec des conductances commandées plutôt que des interrupteurs (décision « Tirages internes » de requirements.md) ; le drain ouvert reste à faire (TODO).

  • Tirages internes : pullUp branche RPullUp vers une alimentation interne VDD, pullDown branche RPullDown vers la masse. Ils agissent quelle que soit la direction, comme sur le RP2040.
  • Drain ouvert : avec openDrain, un niveau bas tire la ligne à VOL, un niveau haut débranche l'étage de sortie (haute impédance). C'est ce que le maître I2C du MCU obtient aujourd'hui en basculant la direction.
  • Vraie haute impédance : fuite des interrupteurs GOff = 1 nS (1 GOhm) au lieu des 100 kOhm de l'ancien MCU, comme le MCU actuel. Une entrée en l'air n'a donc plus de niveau défini ; il faut un tirage, interne ou externe.
  • L'étage de sortie prend un niveau logique level au lieu d'une tension : dans MCU.mo, la sortie vaut toujours VOH ou VOL (numérique, PWM, UART).

Banc d'essai : PinBridgeFullDemo.

Parameters

TypeNameDefaultDescription
Modelica.Units.SI.VoltageVDD3.3Alimentation interne des tirages
Modelica.Units.SI.VoltageVOH3.3Niveau haut de sortie
Modelica.Units.SI.VoltageVOL0Niveau bas de sortie
Modelica.Units.SI.ResistanceROut100Résistance série de sortie
Modelica.Units.SI.ResistanceRPullUp50e3Tirage interne au niveau haut (RP2040 : 50 à 80 kOhm)
Modelica.Units.SI.ResistanceRPullDown50e3Tirage interne au niveau bas (RP2040 : 50 à 80 kOhm)
Modelica.Units.SI.ConductanceGOff1e-9Fuite des interrupteurs ouverts : 1 GOhm, une vraie haute impédance (la valeur par défaut de la MSL, 1e-5 S, fait 100 kOhm)
Modelica.Units.SI.VoltagevThreshold(0.8 + 2.0)/2Seuil logique unique, comme MCU.mo

Connectors

TypeNameDefaultDescription
Modelica.Blocks.Interfaces.BooleanInputisOutputDirection : true = sortie
Modelica.Blocks.Interfaces.BooleanInputlevelNiveau logique écrit (on/off, créneau PWM, bit de trame UART)
Modelica.Blocks.Interfaces.BooleanInputopenDrainPin.OPEN_DRAIN : en sortie, un niveau haut relâche la ligne au lieu de la piloter
Modelica.Blocks.Interfaces.BooleanInputpullUpPin.PULL_UP : tirage interne vers VDD
Modelica.Blocks.Interfaces.BooleanInputpullDownPin.PULL_DOWN : tirage interne vers la masse
Modelica.Electrical.Analog.Interfaces.PositivePinpinLa broche GPx
Modelica.Electrical.Analog.Interfaces.NegativePingndMasse commune (MCU.GND)
Modelica.Blocks.Interfaces.BooleanOutputboolInValeur logique lue : Pin.value(), IRQ
Modelica.Blocks.Interfaces.RealOutputvTension de la broche : ADC.read_u16()

Components

TypeNameDefaultDescription
Modelica.Blocks.Logical.AndreleaseDrain ouvert et niveau haut : relâcher la ligne
Modelica.Blocks.Logical.NotnotRelease
Modelica.Blocks.Logical.AnddriveL'étage de sortie est branché : en sortie, sauf ligne relâchée
Modelica.Blocks.Math.BooleanToRealsrcLevelVOH / VOL
Modelica.Electrical.Analog.Sources.SignalVoltagesrcSource de l'étage de sortie
Modelica.Electrical.Analog.Basic.ResistorrOut
Modelica.Electrical.Analog.Ideal.IdealClosingSwitchswÉtage de sortie branché ou non
Modelica.Electrical.Analog.Basic.ResistorrPullUp
Modelica.Electrical.Analog.Ideal.IdealClosingSwitchswUp
Modelica.Electrical.Analog.Sources.ConstantVoltagevddAlimentation interne
Modelica.Electrical.Analog.Basic.ResistorrPullDown
Modelica.Electrical.Analog.Ideal.IdealClosingSwitchswDown
Modelica.Electrical.Analog.Sensors.VoltageSensorsns
Modelica.Blocks.Logical.GreaterThresholdthreshold