Skip to content

AleksandrYMin/smi-avr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

smi-avr

Based on Sternhelden/Arduino-SMI-Library
SMI (Serial Management Interface) read and write functions for 8-bit AVR microcontrollers (ATtiny13).
DDR and PORT registers must be specified in smi.h (SMI_PORTDDR and SMI_PORT) according to the location of SMI pins.

void SMIinit(uint8_t clockPin, uint8_t dataPin) - initializes pin variables
void smiWrite(uint8_t HB, uint8_t LB, uint8_t target[]) - writes data to SMI bus
void smiRead(uint8_t HB, uint8_t LB, uint8_t target[]) - read data from SMI bus

In both smiRead and smiWrite functions:
HB[1:0] - bits [4:3] of PHY address, other bits are not used
LB[7:5] - bits [2:0] of PHY address
LB[4:0] - bits [5:0] of register address
target[] - 2-byte data array

MARVELL Multichip functions:
void readMultiChip(uint8_t device, uint8_t reg, uint8_t regvalue[2])
void writeMultiChip(uint8_t device, uint8_t reg, uint8_t regvalue[2])
uint8_t device - PHY address;
uint8_t reg - register addres;
uint8_t regvalue[2] - 2-byte data array
#define SMI_ADDR 0x02 - multichip address of MARVELL IC

About

SMI read and write functions for 8-bit AVR microcontrollers (ATtiny13)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages