Skip to content
Snippets Groups Projects

Modified the scripts to run on Raspberry Pi.

1 file
+ 60
48
Compare changes
  • Side-by-side
  • Inline
+ 60
48
# MDIO Interface to the ethernet Switch
# MDIO Interface to the ethernet Switch
import RPi.GPIO as GPIO
import RPi.GPIO as GPIO
 
import time as time
ClockPin =23
ClockPin = 23
DataPin = 22
DataPin = 22
 
print("write data")
 
 
phy_reg = 0x16
 
phy_reg_bits = "{:0>5b}".format(phy_reg)
 
stri = "Phy reg bits is {}".format(phy_reg_bits)
 
print(stri)
 
 
phy_addr = 0x1E
 
phy_addr_bits = "{:0>5b}".format(phy_addr)
 
stri = "Phy addr bits is {}".format(phy_addr_bits)
 
print(stri)
 
 
phy_data = 0x16
 
phy_data_bits = "{:0>16b}".format(phy_reg)
 
stri = "Phy data bits is {}".format(phy_data_bits)
 
print(stri)
 
 
# Set IO pins to right mode
GPIO.setmode(GPIO.BCM)
GPIO.setmode(GPIO.BCM)
GPIO.setup = (ClockPin, GPIO.OUT)
GPIO.setup(ClockPin, GPIO.OUT)
GPIO.setup = (DataPin, GPIO.OUT)
GPIO.setup(DataPin, GPIO.OUT)
# Preamble
# Preamble
GPIO.output(DataPin, GPIO.LOW)
GPIO.output(DataPin, False)
GPIO.output(ClockPin, GPIO.LOW)
GPIO.output(ClockPin, False)
for preamble_cnt in range(32):
for preamble_cnt in range(32):
GPIO.output(ClockPin, GPIO.HIGH)
GPIO.output(ClockPin, True)
GPIO.output(ClockPin, GPIO.LOW)
# time.sleep(0.1)
GPIO.output(ClockPin, False)
 
# time.sleep(0.1)
 
# Start of Frame
# Start of Frame
GPIO.output(DataPin, GPIO.LOW)
GPIO.output(DataPin, False)
GPIO.output(ClockPin, GPIO.HIGH)
GPIO.output(ClockPin, True)
GPIO.output(ClockPin, GPIO.LOW)
GPIO.output(ClockPin, False)
GPIO.output(DataPin, GPIO.LOW)
GPIO.output(DataPin, True)
GPIO.output(ClockPin, GPIO.HIGH)
GPIO.output(ClockPin, True)
GPIO.output(ClockPin, GPIO.HIGH)
GPIO.output(ClockPin, True)
# Operant Write
# Operant Write
GPIO.output(DataPin, GPIO.LOW)
GPIO.output(DataPin, False)
GPIO.output(ClockPin, GPIO.HIGH)
GPIO.output(ClockPin, True)
GPIO.output(ClockPin, GPIO.LOW)
GPIO.output(ClockPin, False)
GPIO.output(DataPin, GPIO.LOW)
GPIO.output(DataPin, False)
GPIO.output(ClockPin, GPIO.HIGH)
GPIO.output(ClockPin, True)
GPIO.output(ClockPin, GPIO.HIGH)
GPIO.output(ClockPin, True)
# Phy address
# Phy address
phy_addr = 0x1E
phy_addr_bits = "{:0>5b}".format(phy_addr)
for bit in phy_addr_bits:
for bit in phy_addr_bits:
if bit:
if bit == '1':
GPIO.output(DataPin, GPIO.HIGH)
GPIO.output(DataPin, True)
else:
else:
GPIO.output(DataPin, GPIO.LOW)
GPIO.output(DataPin, False)
GPIO.output(ClockPin, GPIO.HIGH)
GPIO.output(ClockPin, True)
GPIO.output(ClockPin, GPIO.LOW)
GPIO.output(ClockPin, False)
# phy reg
# phy reg
phy_reg = 0x16
phy_reg_bits = "{:0>5b}".format(phy_reg)
for bit in phy_reg_bits:
for bit in phy_reg_bits:
if bit:
if bit == '1':
GPIO.output(DataPin, GPIO.HIGH)
GPIO.output(DataPin, True)
else:
else:
GPIO.output(DataPin, GPIO.LOW)
GPIO.output(DataPin, False)
GPIO.output(ClockPin, GPIO.HIGH)
GPIO.output(ClockPin, True)
GPIO.output(ClockPin, GPIO.LOW)
GPIO.output(ClockPin, False)
# TA
# TA
GPIO.output(ClockPin, GPIO.HIGH)
GPIO.output(ClockPin, True)
GPIO.output(ClockPin, GPIO.LOW)
GPIO.output(ClockPin, False)
GPIO.output(ClockPin, GPIO.HIGH)
GPIO.output(ClockPin, True)
GPIO.output(ClockPin, GPIO.LOW)
GPIO.output(ClockPin, False)
#data
#data
phy_data = 0x16
phy_data_bits = "{:0>16b}".format(phy_reg)
for bit in phy_data_bits:
for bit in phy_data_bits:
if bit:
if bit == '1':
GPIO.output(DataPin, GPIO.HIGH)
GPIO.output(DataPin, True)
else:
else:
GPIO.output(DataPin, GPIO.LOW)
GPIO.output(DataPin, False)
GPIO.output(ClockPin, GPIO.HIGH)
GPIO.output(ClockPin, True)
GPIO.output(ClockPin, GPIO.LOW)
GPIO.output(ClockPin, False)
GPIO.cleanup()
GPIO.cleanup()
 
\ No newline at end of file
Loading