Ich würde am FTDI erstmal den Ausgang mit dem Eingang verbinden und per Terminal Programm testen, ob das, was gesendet wird auch wieder zurückgeschickt wird. Dann würde ich per Max232 den Atmega an den Comport Stöpseln und testen, ob alles so läuft wie es soll. Ich nutze bei Verwendung des FTDI232RL einen externen 16 MHZ Quarz und 38400 Baud ohne Probleme. Selbst 57600 liefen im Test fehlerfrei, habe aber wieder zurückgeschaltet, da ich an dem Programm immer wieder mal rumbastele und die Software per Bootloader einspiele und da die niedrigere Fehlerquote bevorzuge. (Bootloader lief aber auch mit 57600 ohne Probleme) Den Taktgenerator des FTDI habe ich noch nicht benutzt. Ich kommuniziere nur beim Bootloader per virtuellem Comport, sonst nutze ich die Kommunikation per ftd2xxl.dll.
edit:
Da fällt mir noch etwas ein:
Wenn ich per Comport kommuniziere arbeite ich immer mit den Eingangsbuffern, denn das Data_Arrival Ereignis wird erst bei vollem Buffer ausgelöst. Um Fehler zu vermeiden sende ich immer ein bestimmtest ASCiI Zeichen als Anfang und ein Anderes am Ende des Strings, so werden fehlerhafte Übertragungen ignoriert.
Lesezeichen