Professional Documents
Culture Documents
USII2CSLAVEforATtinyCPUs|AVRFreaks
Signup
Login
Whatareyouinterestedin?
EntireSite
Search
http://community.atmel.com/projects/usii2cslaveattinycpus
1/3
3/10/2016
USII2CSLAVEforATtinyCPUs|AVRFreaks
Fivestar widget
Total votes: 1
COMPLETE ASSEMBLER CODE FOR USI I2C SLAVE for ATtiny CPUs
USE external pullups for SDA,SCL pins (4.7k to V+)
USAGE:
I2C WRITE DATA TO SLAVE
1byte: ADDRESS (=0xAC)
2byte: SUBADDRESS (=< SRAM SIZESTACK from 0 to 120 for ATtiny2313)
3byte: DATA (will be written to SRAM position =SRAM_START+SUBADDRESS)
4byte: DATA (will be written to SRAM position =SRAM_START+SUBADDRESS+1)
5byte: DATA (will be written to SRAM position =SRAM_START+SUBADDRESS+2)
...
etc.
I2C READ DATA FROM SLAVE
1byte: ADDRESS+1 (=0xAC+1)
2byte: DATA (read from SRAM position =SRAM_START+SUBADDRESS)
3byte: DATA (read from SRAM position =SRAM_START+SUBADDRESS+1)
...
etc.
I2C WRITE SUBADDRESS TO SLAVE, READ DATA FROM SLAVE
1byte: ADDRESS (=0xAC)
2byte: SUBADDRESS (=< SRAM SIZESTACK)
Repeated Start
1byte: ADDRESS+1 (=0xAC+1)
2byte: DATA (read from SRAM position =SRAM_START+SUBADDRESS)
3byte: DATA (read from SRAM position =SRAM_START+SUBADDRESS+1)
...
etc.
I HAVE SPENDED A LOT OF TIME AND THEN FIND BUG IN ALL ATMEL DOCS:
SCL DDR and PORT MUST BE ALWAYS =1 !!!!!!!!!!!!!!!!! *
SDA PORT MUST BE ALWAYS =1 !!!!!!!!!!!!!!!!! *
ATtiny2313 memory use summary [bytes]:
Segment Begin End Code Data Used Size Use%
Attachment(s):
usi.zip(http://community.atmel.com/sites/default/files/project_files/usi.zip)
Tags:
http://community.atmel.com/projects/usii2cslaveattinycpus
2/3
3/10/2016
USII2CSLAVEforATtinyCPUs|AVRFreaks
Complete code
,
AVR Studio 4
http://community.atmel.com/projects/usii2cslaveattinycpus
3/3