ATMEGA161-8PI Atmel, ATMEGA161-8PI Datasheet - Page 152

IC AVR MCU 16K 8MHZ IND 40-DIP

ATMEGA161-8PI

Manufacturer Part Number
ATMEGA161-8PI
Description
IC AVR MCU 16K 8MHZ IND 40-DIP
Manufacturer
Atmel
Series
AVR® ATmegar
Datasheet

Specifications of ATMEGA161-8PI

Core Processor
AVR
Core Size
8-Bit
Speed
8MHz
Connectivity
SPI, UART/USART
Peripherals
POR, PWM, WDT
Number Of I /o
35
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)
4 V ~ 5.5 V
Oscillator Type
External
Operating Temperature
-40°C ~ 85°C
Package / Case
40-DIP (0.600", 15.24mm)
Lead Free Status / RoHS Status
Contains lead / RoHS non-compliant
Data Converters
-
Other names
ATMEGA1618PI
Errata
ATmega161 Rev. E
152
ATmega161(L)
5. PWM not Phase Correct
4. Increased Interrupt Latency
3. Interrupt Return Fails when Stack Pointer Addresses the External Memory
2. Writing UBBRH Affects Both UART0 and UART1
PWM not Phase Correct
Increased Interrupt Latency
Interrupt Return Fails when Stack Pointer Addresses the External Memory
Writing UBBRH Affects both UART0 and UART1
Store Program Memory Instruction May Fail
In phase correct PWM mode, a change from OCRx = TOP to anything less than
TOP does not change the OCx output. This gives a phase error in the following
period.
Problem Fix/Workaround
Make sure this issue is not harmful to the application.
In this device, some instructions are not interruptable, and will cause the interrupt
latency to increase. The only practical problem concerns a loop followed by a two-
word instruction while waiting for an interrupt. The loop may consist of a branch
instruction or an absolute or relative jump back to itself like this:
loop: rjmp loop
<Two-word instruction>
In this case, a dead-lock situation arises.
Problem Fix/Workaround
In assembly, insert a nop instruction immediately after a loop to itself. The problem
will normally be detected during development. In C, the only construct that will give
this problem is an empty “for” loop; “for(;;)”. Use “while(1)” or “do{} while (1)” to avoid
the problem.
When Stack Pointer addresses external memory (SPH:SPL > $45F), returning from
interrupt will fail. The program counter will be updated with a wrong value and thus
the program flow will be corrupted.
Problem Fix/Workaround
Address the stack pointer to internal SRAM or disable interrupts while Stack Pointer
addresses external memory.
Writing UBRRHI updates baud rate generator for both UART0 and UART1. The
baud rate generator's counter is updated each time either UBRR or UBRRHI are
written. Since the UBRRHI regiSter is shared by UART0 and UART1, changing the
baud rate for one UART will affect the operation of the other UART.
Problem Fix/Workaround
Do not update UBRRHI for one UART when transmitting/receiving data on the
other.
1228D–AVR–02/07

Related parts for ATMEGA161-8PI