ATMEGA169L-8MI Atmel, ATMEGA169L-8MI Datasheet - Page 180

no-image

ATMEGA169L-8MI

Manufacturer Part Number
ATMEGA169L-8MI
Description
IC MCU AVR 16K LV 8MHZ IND 64QFN
Manufacturer
Atmel
Series
AVR® ATmegar
Datasheets

Specifications of ATMEGA169L-8MI

Core Processor
AVR
Core Size
8-Bit
Speed
8MHz
Connectivity
SPI, UART/USART, USI
Peripherals
Brown-out Detect/Reset, LCD, POR, PWM, WDT
Number Of I /o
53
Program Memory Size
16KB (8K x 16)
Program Memory Type
FLASH
Eeprom Size
512 x 8
Ram Size
1K x 8
Voltage - Supply (vcc/vdd)
2.7 V ~ 5.5 V
Data Converters
A/D 8x10b
Oscillator Type
Internal
Operating Temperature
-40°C ~ 85°C
Package / Case
64-MLF®, 64-QFN
For Use With
ATAVRISP2 - PROGRAMMER AVR IN SYSTEMATAVRBFLY - KIT EVALUATION AVR BUTTERFLYATSTK502 - MOD EXPANSION AVR STARTER 500
Lead Free Status / RoHS Status
Contains lead / RoHS non-compliant
Other names
ATMEGA169L-4MI
ATMEGA169L-4MI
SPI Master Operation
Example
180
ATmega169V/L
The Three-wire mode timing is shown in Figure 77. At the top of the figure is a USCK
cycle reference. One bit is shifted into the USI Shift Register (USIDR) for each of these
cycles. The USCK timing is shown for both external clock modes. In External Clock
mode 0 (USICS0 = 0), DI is sampled at positive edges, and DO is changed (Data Regis-
ter is shifted by one) at negative edges. External Clock mode 1 (USICS0 = 1) uses the
opposite edges versus mode 0, i.e., samples data at negative and changes the output at
positive edges. The USI clock modes corresponds to the SPI data mode 0 and 1.
Referring to the timing diagram (Figure 77.), a bus transfer involves the following steps:
1. The Slave device and Master device sets up its data output and, depending on
2. The Master generates a clock pulse by software toggling the USCK line twice (C
3. Step 2. is repeated eight times for a complete register (byte) transfer.
4. After eight clock pulses (i.e., 16 clock edges) the counter will overflow and indi-
The following code demonstrates how to use the USI module as a SPI Master:
The code is size optimized using only eight instructions (+ ret). The code example
assumes that the DO and USCK pins are enabled as output in the DDRE Register. The
value stored in register r16 prior to the function is called is transferred to the Slave
device, and when the transfer is completed the data received from the Slave is stored
back into the r16 Register.
The second and third instructions clears the USI Counter Overflow Flag and the USI
counter value. The fourth and fifth instruction set Three-wire mode, positive edge Shift
Register clock, count at USITC strobe, and toggle USCK. The loop is repeated 16 times.
the protocol used, enables its output driver (mark A and B). The output is set up
by writing the data to be transmitted to the Serial Data Register. Enabling of the
output is done by setting the corresponding bit in the port Data Direction Regis-
ter. Note that point A and B does not have any specific order, but both must be at
least one half USCK cycle before point C where the data is sampled. This must
be done to ensure that the data setup requirement is satisfied. The 4-bit counter
is reset to zero.
and D). The bit value on the slave and master’s data input (DI) pin is sampled by
the USI on the first edge (C), and the data output is changed on the opposite
edge (D). The 4-bit counter will count both edges.
cate that the transfer is completed. The data bytes transferred must now be
processed before a new transfer can be initiated. The overflow interrupt will wake
up the processor if it is set to Idle mode. Depending of the protocol used the
slave device can now set its output to high impedance.
SPITransfer:
SPITransfer_loop:
sts
ldi
sts
ldi
sts
lds
sbrs
rjmp
lds
ret
USIDR,r16
r16,(1<<USIOIF)
USISR,r16
r16,(1<<USIWM0)|(1<<USICS1)|(1<<USICLK)|(1<<USITC)
USICR,r16
r16, USISR
r16, USIOIF
SPITransfer_loop
r16,USIDR
2514H–AVR–05/03

Related parts for ATMEGA169L-8MI