Net Overview
Nets are automatically generated during the instrumentation process. You can list available nets for your development hardware either through the CLI tool, or via a Python script.
~ lager nets --dut 1
name type channel
SPI.MOSI analog 1
MOTOR_DR analog 1
V3.3 analog 1
SPI.MISO analog 2
V5 analog 2
SPI.CLK analog 3
SPI.CS analog 4
I2C.SDA logic 0
I2C.SCL logic 1
RST_BTN gpio
PWR power-supply
VBAT battery
from lager import Net
nets = Net.list_all()
for net in nets:
print(net)
~ lager python list_nets.py --dut 1
{'name': 'SPI.MOSI', 'type': 'analog', 'channel': 1}
{'name': 'MOTOR_DR', 'type': 'analog', 'channel': 1}
{'name': 'V3.3', 'type': 'analog', 'channel': 1}
{'name': 'SPI.MISO', 'type': 'analog', 'channel': 2}
{'name': 'V5', 'type': 'analog', 'channel': 2}
{'name': 'SPI.CLK ', 'type': 'analog', 'channel': 3}
{'name': 'SPI.CS', 'type': 'analog', 'channel': 4}
{'name': 'I2C.SDA', 'type': 'logic', 'channel': 0}
{'name': 'I2C.SCL', 'type': 'logic', 'channel': 1}
{'name': 'RST_BTN', 'type': 'gpio', 'channel': 0}
{'name': 'PWR', 'type': 'power-supply', 'channel': 0}
{'name': 'VBAT', 'type': 'battery', 'channel': 0}
~
Net Types
Each net has a corresponding type. Different types enable different functionality on a given net.
Analog
The Analog net type enables a given net to be inspected with an oscilloscope. This allows users to look at live trace captures for that net.
Logic
The Logic net type enables a given net to be inspected with a logic analyzer.
Note
Additionally both Analog and Logic nets can be combined into a communication bus type.
Power Supply
Power Supply nets can be controlled from a power supply. These nets are typically what a user would connect directly to a power supply.
Battery
Battery nets are nets that are typically connected to a 2 terminal battery. These nets can be controlled with a battery simulator either in dynamic mode which simulates the output of discharging or charging battery, or in static mode which simulates the output of a battery for a consant state of charge (SOC).
GPIO
GPIO net types can be controlled by the user, e.g. a reset line that the user can toggle. Or they can be read by the user, e.g. a FAULT line on a PMIC.
E-Load
E-Load nets can be electronically loaded with the following: - Constant Voltage - Constant Current - Constant Resistance - Constant Power
Debug
The Debug net type indicates that this net will be hooked up to either a JTAG or SWD debug probe.
Serial Logging
Serial Logging nets are used to capture log data from the development hardware. Normally these nets are assigned to UART or USB lines.
Instantiating a Net
When working with nets using the Python library, they first need to be instantiated before they can be used.
from lager import Net, NetType
def setup_nets(net, device):
print("performing any necessary setup on nets being enabled")
def teardown_nets(net, device):
print("performing any necessary teardown on nets being disabled")
mosi = Net.get('SPI.MOSI',
type=NetType.Analog,
setup_function=setup_nets,
teardown_function=teardown_nets)
sda = Net.get('I2C.SDA',
type=NetType.Logic,
setup_function=setup_nets,
teardown_function=teardown_nets)
pwr = Net.get('PWR',
type=NetType.PowerSupply,
setup_function=setup_nets,
teardown_function=teardown_nets)
battery = Net.get('VBAT',
type=NetType.Battery,
setup_function=setup_nets,
teardown_function=teardown_nets)
Enabling and Disabling a Net
Before using a net it needs to be enabled. Enabling a net will trigger the setup callback function that is assigned during Instantiating a Net. Disabling a net will trigger the teardown callback function that is assigned.
from lager import Net, NetType
battery.enable()
sda.enable()
mosi.enable()
battery.disable()
sda.disable()
mosi.disable()