AVR_USI_I2C_slave_ASM
所属分类:单片机开发
开发工具:Asm
文件大小:9KB
下载次数:5
上传日期:2014-06-23 20:18:58
上 传 者:
jimwoo07
说明: Software I2C slave using AVR USI (AVR Studio Project)
文件列表:
PowerMCU.hex (833, 2012-03-22)
PowerMCU.map (15037, 2012-03-22)
PowerMCU.obj (1456, 2012-03-22)
powermcu.aws (239, 2012-03-22)
PowerMCU.aps (3462, 2012-03-22)
AvrBuild.bat (378, 2012-03-22)
labels.tmp (2435, 2012-03-22)
PowerMCU.asm (4618, 2012-03-22)
AVR.INC (4389, 2011-07-01)
COMPLEAT ASSEMBLER CODE FOR I2C SLAVE IN ASSEMBLER
USE external pullups for SDA,SCL pins (4.7k to V+)
USAGE:
I2C WRITE DATA TO SLAVE
1byte: ADDRESS (=0xAC)
2byte: SUBADDRESS (=< SRAM SIZE-STACK; 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 SIZE-STACK)
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 SPEND 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%
---------------------------------------------------------------
[.cseg] 0x000000 0x000132 278 0 278 2048 13.6%
[.dseg] 0x000060 0x000061 0 1 1 128 0.8%
[.eseg] 0x000000 0x000000 0 0 0 128 0.0%
近期下载者:
相关文件:
收藏者: