欢迎访问ic37.com |
会员登录 免费注册
发布采购

90USB1287-16AU 参数 Datasheet PDF下载

90USB1287-16AU图片预览
型号: 90USB1287-16AU
PDF下载: 下载PDF文件 查看货源
内容描述: 单片机具有ISP功能的Flash和USB控制器64 / 128K字节 [Microcontroller with 64/128K Bytes of ISP Flash and USB Controller]
分类和应用: 微控制器
文件页数/大小: 434 页 / 3172 K
品牌: ATMEL [ ATMEL ]
 浏览型号90USB1287-16AU的Datasheet PDF文件第227页浏览型号90USB1287-16AU的Datasheet PDF文件第228页浏览型号90USB1287-16AU的Datasheet PDF文件第229页浏览型号90USB1287-16AU的Datasheet PDF文件第230页浏览型号90USB1287-16AU的Datasheet PDF文件第232页浏览型号90USB1287-16AU的Datasheet PDF文件第233页浏览型号90USB1287-16AU的Datasheet PDF文件第234页浏览型号90USB1287-16AU的Datasheet PDF文件第235页  
AT90USB64/128  
Table 2.  
Assembly Code Example  
C Example  
TWCR = (1<<TWINT)|(1<<TWSTA)|  
Comments  
ldi r16,  
(1<<TWINT)|(1<<TWSTA)|  
(1<<TWEN)  
1
2
Send START condition  
(1<<TWEN)  
out TWCR, r16  
wait1:  
while (!(TWCR & (1<<TWINT)))  
Wait for TWINT Flag set. This  
indicates that the START  
condition has been transmitted  
in  
r16,TWCR  
;
sbrs r16,TWINT  
rjmp wait1  
in  
r16,TWSR  
if ((TWSR & 0xF8) != START)  
Check value of TWI Status  
Register. Mask prescaler bits. If  
status different from START go to  
ERROR  
andi r16, 0xF8  
cpi r16, START  
brne ERROR  
ERROR();  
3
4
5
ldi r16, SLA_W  
out TWDR, r16  
TWDR = SLA_W;  
Load SLA_W into TWDR  
Register. Clear TWINT bit in  
TWCR to start transmission of  
address  
TWCR = (1<<TWINT) |  
(1<<TWEN);  
ldi r16, (1<<TWINT) |  
(1<<TWEN)  
out TWCR, r16  
wait2:  
while (!(TWCR & (1<<TWINT)))  
Wait for TWINT Flag set. This  
indicates that the SLA+W has  
been transmitted, and  
in  
r16,TWCR  
;
sbrs r16,TWINT  
rjmp wait2  
ACK/NACK has been received.  
in  
r16,TWSR  
if ((TWSR & 0xF8) !=  
MT_SLA_ACK)  
Check value of TWI Status  
Register. Mask prescaler bits. If  
status different from  
andi r16, 0xF8  
cpi r16, MT_SLA_ACK  
brne ERROR  
ERROR();  
MT_SLA_ACK go to ERROR  
ldi r16, DATA  
out TWDR, r16  
TWDR = DATA;  
TWCR = (1<<TWINT) |  
(1<<TWEN);  
Load DATA into TWDR Register.  
Clear TWINT bit in TWCR to start  
transmission of data  
ldi r16, (1<<TWINT) |  
(1<<TWEN)  
out TWCR, r16  
wait3:  
while (!(TWCR & (1<<TWINT)))  
Wait for TWINT Flag set. This  
indicates that the DATA has been  
transmitted, and ACK/NACK has  
been received.  
in  
r16,TWCR  
;
6
7
sbrs r16,TWINT  
rjmp wait3  
in  
r16,TWSR  
if ((TWSR & 0xF8) !=  
MT_DATA_ACK)  
Check value of TWI Status  
Register. Mask prescaler bits. If  
status different from  
andi r16, 0xF8  
cpi r16, MT_DATA_ACK  
brne ERROR  
ERROR();  
MT_DATA_ACK go to ERROR  
ldi r16,  
(1<<TWINT)|(1<<TWEN)|  
TWCR = (1<<TWINT)|(1<<TWEN)|  
(1<<TWSTO);  
Transmit STOP condition  
(1<<TWSTO)  
out TWCR, r16  
231  
7593A–AVR–02/06  
 复制成功!