AT90USB647 Atmel Corporation, AT90USB647 Datasheet - Page 16

no-image

AT90USB647

Manufacturer Part Number
AT90USB647
Description
Manufacturer
Atmel Corporation
Datasheets

Specifications of AT90USB647

Flash (kbytes)
64 Kbytes
Pin Count
64
Max. Operating Frequency
16 MHz
Cpu
8-bit AVR
# Of Touch Channels
16
Hardware Qtouch Acquisition
No
Max I/o Pins
48
Ext Interrupts
16
Usb Transceiver
1
Usb Speed
Full Speed
Usb Interface
Device + OTG
Spi
2
Twi (i2c)
1
Uart
1
Graphic Lcd
No
Video Decoder
No
Camera Interface
No
Adc Channels
8
Adc Resolution (bits)
10
Adc Speed (ksps)
15
Analog Comparators
1
Resistive Touch Screen
No
Temp. Sensor
No
Crypto Engine
No
Sram (kbytes)
4
Eeprom (bytes)
2048
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
4
Output Compare Channels
10
Input Capture Channels
1
Pwm Channels
9
32khz Rtc
Yes
Calibrated Rc Oscillator
Yes

Available stocks

Company
Part Number
Manufacturer
Quantity
Price
Company:
Part Number:
AT90USB647-16AE
Quantity:
8
Part Number:
AT90USB647-16AU
Manufacturer:
HITACHI
Quantity:
2 000
Part Number:
AT90USB647-AU
Manufacturer:
MURATA
Quantity:
1 000
Part Number:
AT90USB647-AU
Manufacturer:
Atmel
Quantity:
10 000
Part Number:
AT90USB647-AUR
Manufacturer:
Atmel
Quantity:
1 951
Part Number:
AT90USB647-AUR
Manufacturer:
Atmel
Quantity:
10 000
Part Number:
AT90USB647-MU
Manufacturer:
AAT
Quantity:
18 240
Part Number:
AT90USB647-MUR
Manufacturer:
AD
Quantity:
2 747
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

Related parts for AT90USB647