This schematic shows the AVR ATmega644 circuit as it was built on the test board in its own minimal circuit. The ATmega644 is using its internal 8 MHz RC oscillator (divided by 8). Although not binary compatible with the ATmega16 or ATmega32, the x4 series, which includes the ATmega164, ATmega324, ATmega644, and ATmega1284, having 16k, 32k, 64k, and 128k respectively, are the "upgrade" for the former microcontrollers according to Atmel. They are more versatile, having pin change interrupts, a second USART, and a higher maximum system clock of 20 MHz. They cost marginally (15%) less than their predecessors. The ATmega644 is the most popular of the series, probably because it has the largest memory that can be handled by a typical bootloader. Better bootloaders can handle the ATmega1284 as well.
There is an ExpressPCB design file for a full 40-pin AVR development board, with schematics, that supports the ATmega16, ATmega32, ATmega164, ATmega324, ATmega644 and ATmega1284 microcontrollers. The code you will find there will allow you to use the Arduino environment to program your ATmega32 or ATmega644. All sketches and libraries appear to work with this code.
Here you can find the current ATmega644 datasheet
The pinout also applies to the ATmega164, ATmega324
Below is a minimal circuit for the ATmega644.
Below is a more complicated circuit for the ATmega644, featuring a MAX232 running both serial ports.