AT90USB162 Atmel Corporation, AT90USB162 Datasheet - Page 16
![no-image](/images/manufacturer_photos/0/0/79/atmel_corporation_sml.jpg)
AT90USB162
Manufacturer Part Number
AT90USB162
Description
Manufacturer
Atmel Corporation
Specifications of AT90USB162
Flash (kbytes)
16 Kbytes
Pin Count
32
Max. Operating Frequency
16 MHz
Cpu
8-bit AVR
Hardware Qtouch Acquisition
No
Max I/o Pins
22
Ext Interrupts
21
Usb Transceiver
1
Usb Speed
Full Speed
Usb Interface
Device
Spi
2
Uart
1
Graphic Lcd
No
Video Decoder
No
Camera Interface
No
Analog Comparators
1
Resistive Touch Screen
No
Temp. Sensor
No
Crypto Engine
No
Sram (kbytes)
0.5
Eeprom (bytes)
512
Self Program Memory
YES
Dram Memory
No
Nand Interface
No
Picopower
No
Temp. Range (deg C)
-40 to 85
I/o Supply Class
2.7 to 5.5
Operating Voltage (vcc)
2.7 to 5.5
Fpu
No
Mpu / Mmu
no / no
Timers
2
Output Compare Channels
5
Input Capture Channels
1
Pwm Channels
4
32khz Rtc
No
Calibrated Rc Oscillator
Yes
Available stocks
Company
Part Number
Manufacturer
Quantity
Price
Company:
Part Number:
AT90USB162-16AU
Manufacturer:
Atmel
Quantity:
30 024
Part Number:
AT90USB162-16AU
Manufacturer:
MICROCHIP/微芯
Quantity:
20 000
Company:
Part Number:
AT90USB162-16AUR
Manufacturer:
Atmel
Quantity:
2 751
Company:
Part Number:
AT90USB162-16MU
Manufacturer:
Atmel
Quantity:
42 926
Part Number:
AT90USB162-16MU
Manufacturer:
ATMEL/爱特梅尔
Quantity:
20 000
Company:
Part Number:
AT90USB162-16MUR
Manufacturer:
TT
Quantity:
400 000
16
The API are located at absolute addresses in the USB bootloader firmware and accept specific
registers values as parameters. These parameters are compatible with a C compiler calling con-
vention and thus can be called directly with function pointer declared as in the example below:
The full assembly code for the flash API drivers is given in
C Code Example
#if (FLASH_END==0x1FFFF) //128K bytes parts
#elif (FLASH_END==0xFFFF)//64K bytes parts
#else
#endif
/
void (*boot_flash_page_erase_and_write)(unsigned long adr)=(void (*)(unsigned
long))(LAST_BOOT_ENTRY-12);
U8 (*boot_flash_read_sig) (unsigned long adr)=(U8 (*)(unsigned
long))(LAST_BOOT_ENTRY-10);
U8 (*boot_flash_read_fuse) (unsigned long adr)=(U8 (*)(unsigned
long))(LAST_BOOT_ENTRY-8);
void (*boot_flash_fill_temp_buffer) (unsigned int data,unsigned int adr)=(void
(*)(unsigned int, unsigned int))(LAST_BOOT_ENTRY-6);
void (*boot_flash_prg_page) (unsigned long adr)=(void (*)(unsigned
long))(LAST_BOOT_ENTRY-4);
void (*boot_flash_page_erase) (unsigned long adr)=(void (*)(unsigned
long))(LAST_BOOT_ENTRY-2);
void (*boot_lock_wr_bits) (unsigned char val)=(void (*)(unsigned
char))(LAST_BOOT_ENTRY);
// This function writes 0x55AA @ 0x1200 in the on-flash calling flash drivers located
in USB bootloader
void basic_flash_access(void)
{
}
/ These functions pointers are used to call functions entry points in bootloader
unsigned long address;
unsigned int temp16;
temp16=0x55AA;
address=0x12000;
(*boot_flash_fill_temp_buffer)(temp16,address);
(*boot_flash_page_erase)(address);
(*boot_flash_prg_page)(address);
#define
#define
#error You must define FLASH_END in bytes.
LAST_BOOT_ENTRY
LAST_BOOT_ENTRY
0xFFFE
0x7FFE
“Appendix-B” on page
20.
7618C–AVR–07/08