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 :
pullUpbrancheRPullUpvers une alimentation interneVDD,pullDownbrancheRPullDownvers 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 duMCUobtient 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'ancienMCU, comme leMCUactuel. 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
levelau lieu d'une tension : dansMCU.mo, la sortie vaut toujoursVOHouVOL(numérique, PWM, UART).
Banc d'essai : PinBridgeFullDemo.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Units.SI.Voltage | VDD | 3.3 | Alimentation interne des tirages |
| Modelica.Units.SI.Voltage | VOH | 3.3 | Niveau haut de sortie |
| Modelica.Units.SI.Voltage | VOL | 0 | Niveau bas de sortie |
| Modelica.Units.SI.Resistance | ROut | 100 | Résistance série de sortie |
| Modelica.Units.SI.Resistance | RPullUp | 50e3 | Tirage interne au niveau haut (RP2040 : 50 à 80 kOhm) |
| Modelica.Units.SI.Resistance | RPullDown | 50e3 | Tirage interne au niveau bas (RP2040 : 50 à 80 kOhm) |
| Modelica.Units.SI.Conductance | GOff | 1e-9 | Fuite 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.Voltage | vThreshold | (0.8 + 2.0)/2 | Seuil logique unique, comme MCU.mo |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Blocks.Interfaces.BooleanInput | isOutput | Direction : true = sortie | |
| Modelica.Blocks.Interfaces.BooleanInput | level | Niveau logique écrit (on/off, créneau PWM, bit de trame UART) | |
| Modelica.Blocks.Interfaces.BooleanInput | openDrain | Pin.OPEN_DRAIN : en sortie, un niveau haut relâche la ligne au lieu de la piloter | |
| Modelica.Blocks.Interfaces.BooleanInput | pullUp | Pin.PULL_UP : tirage interne vers VDD | |
| Modelica.Blocks.Interfaces.BooleanInput | pullDown | Pin.PULL_DOWN : tirage interne vers la masse | |
| Modelica.Electrical.Analog.Interfaces.PositivePin | pin | La broche GPx | |
| Modelica.Electrical.Analog.Interfaces.NegativePin | gnd | Masse commune (MCU.GND) | |
| Modelica.Blocks.Interfaces.BooleanOutput | boolIn | Valeur logique lue : Pin.value(), IRQ | |
| Modelica.Blocks.Interfaces.RealOutput | v | Tension de la broche : ADC.read_u16() |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Blocks.Logical.And | release | Drain ouvert et niveau haut : relâcher la ligne | |
| Modelica.Blocks.Logical.Not | notRelease | ||
| Modelica.Blocks.Logical.And | drive | L'étage de sortie est branché : en sortie, sauf ligne relâchée | |
| Modelica.Blocks.Math.BooleanToReal | srcLevel | VOH / VOL | |
| Modelica.Electrical.Analog.Sources.SignalVoltage | src | Source de l'étage de sortie | |
| Modelica.Electrical.Analog.Basic.Resistor | rOut | ||
| Modelica.Electrical.Analog.Ideal.IdealClosingSwitch | sw | Étage de sortie branché ou non | |
| Modelica.Electrical.Analog.Basic.Resistor | rPullUp | ||
| Modelica.Electrical.Analog.Ideal.IdealClosingSwitch | swUp | ||
| Modelica.Electrical.Analog.Sources.ConstantVoltage | vdd | Alimentation interne | |
| Modelica.Electrical.Analog.Basic.Resistor | rPullDown | ||
| Modelica.Electrical.Analog.Ideal.IdealClosingSwitch | swDown | ||
| Modelica.Electrical.Analog.Sensors.VoltageSensor | sns | ||
| Modelica.Blocks.Logical.GreaterThreshold | threshold |