Väldigt ofta måste man kalibrera den internaoscillatorn för att kunna använda UART. När jag använder serieporten så kalibrerar jag avr:en med detta program.
Jag har ett liknande problem. Får bara rapparkalja när jag skriver till seriellporten. Anväder ett ftdi-chip så usb istället för seriell. Använder en avr isp mkII. Jag kan programmera och radera kretsen men kan inte verifiera.
Provade exempelkoden ovan med oscal men fick ingen signal till hyperterminalen alls.
Hmm många vettiga ideer är det...men om det är fel frekvens, hur kommer det sig då att den klara av att ta emot och returnera valfritt tecken mot PCn men inte när tecknet kommer ifrån GPS mottagaren...
för attt förtydliga det hela....
PC-> AVR-> PC = Helt ok
GPS->AVR->PC = Kajko
GPS->PC = Helt Ok
känns tveksamt till att det skulle vara klockan .... men jag får nog prova det (för att verkligen kunna utesluta det)
Har du dubbelkontrollerat med oscilloskop att du verkligen har rätt pinne från GPS'n kopplad till atmegan? Det är lätt gjort att bli fintad av raka/korskopplade seriekablar.
Pc'n kan tolerera mer variation i klockan hos Atmelen än vad GPS- atmel klarar... har haft samma problem.. funkade mot PC men inte mot "hemmabyggd" terminal...
Så - om du kör med STK500 ... läs av kalibreringsfaktorn för frekvensen du kör med, och lägg in i OSCCAL... detta löser alla gånger ditt problem
Även med HW-UART så måste man ha koll på hur nära önkad baudrate man kommer med delningskoficienter så att man hamnar max någon procent fel i baudrate, med sw-uart så MÅSTE man köra med oscilloscop för att bekräfta, så lätt så lätt att tänka en aning fel så att det inte stämmer.
För övrigt är oscilloskop nästan ett nödvändigt tillbehör vid uC programering...