AT90CAN32 Automotive Atmel Corporation, AT90CAN32 Automotive Datasheet - Page 184

no-image

AT90CAN32 Automotive

Manufacturer Part Number
AT90CAN32 Automotive
Description
Manufacturer
Atmel Corporation

Specifications of AT90CAN32 Automotive

Flash (kbytes)
32 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
53
Ext Interrupts
8
Usb Speed
No
Usb Interface
No
Spi
1
Twi (i2c)
1
Uart
2
Can
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)
2
Eeprom (bytes)
1024
Self Program Memory
YES
Dram Memory
No
Nand Interface
No
Picopower
No
Temp. Range (deg C)
-40 to 125
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
8
Input Capture Channels
2
Pwm Channels
7
32khz Rtc
Yes
Calibrated Rc Oscillator
Yes
17.7.2
17.7.3
184
AT90CAN32/64/128
Sending Frames with 9 Data Bit
Transmitter Flags and Interrupts
If 9-bit characters are used (UCSZn = 7), the ninth bit must be written to the TXB8n bit in UCS-
RnB before the low byte of the character is written to UDRn. The following code examples show
a transmit function that handles 9-bit characters. For the assembly code, the data to be sent is
assumed to be stored in registers R17:R16.
Notes:
The ninth bit can be used for indicating an address frame when using multi processor communi-
cation mode or for other protocol handling as for example synchronization.
The USARTn Transmitter has two flags that indicate its state: USART Data Register Empty
(UDREn) and Transmit Complete (TXCn). Both flags can be used for generating interrupts.
Assembly Code Example
C Code Example
USART0_Transmit:
void USART0_Transmit (unsigned int data)
{
}
; Wait for empty transmit buffer
lds
sbrs
rjmp
; Copy 9th bit from r17-bit0 to TXB80 via T-bit of SREG
lds
bst
bld
sts
; Put LSB data (r16) into buffer, sends the data
sts
ret
/* Wait for empty transmit buffer */
while ( !( UCSR0A & (1<<UDRE0)));
/* Copy 9th bit to TXB8 */
UCSR0B &= ~(1<<TXB80);
if ( data & 0x0100 )
/* Put data into buffer, sends the data */
UDR0 = data;
1. These transmit functions are written to be general functions. They can be optimized if the con-
2. The example code assumes that the part specific header file is included.
UCSR0B |= (1<<TXB80);
tents of the UCSR0B is static. For example, only the TXB80 bit of the UCSRB0 Register is
used after initialization.
r18, UCSR0A
r18, UDRE0
USART0_Transmit
r18, UCSR0B
r17, 0
r18, TXB80
UCSR0B, r18
UDR0, r16
(1)(2)
(1)(2)
7682C–AUTO–04/08

Related parts for AT90CAN32 Automotive