Sida 1 av 2
Problem med FTDI
Postat: 17 april 2008, 19:19:21
av HMG
Jag får bara skräp när jag skickar text från ATtiny2313. "øxxxþxþxþxxxxÿxxüxþxxpüxþøxàøxxà"
Har en ATtiny2313 där tx är kopplat direkt till rx på ftdi-kabeln. Kretsen matas från ftdi-kabelns vcc med en 5V spänningsregulator emellan.
När jag testar att tända och släcka en liten lampa och ber kretsen vila i 1 sekund vilar den istället i ca 3 sekunder. För att komma ner till 1 sekund måste jag sätta vilotiden lägre.
Har kollat baud osv...
vad kan vara fel?
Postat: 17 april 2008, 19:34:25
av thepirateboy
Hur ser koden ut? Kristall eller intern oscillator? Skiss på inkoppling?
Postat: 17 april 2008, 19:48:31
av HMG
skrivit en mycket enkel basic kod till att börja med
Kod: Markera allt
$regfile = "ATtiny2313.dat"
$baud = 9600
Main:
Print "Hej"
Waitms 500
Goto Main
Ska försöka få upp en bild men det är bara en avr som försörjs med 5V från usb porten och portd.1 kopplad till ftdi-kabelns rx.
vad jag har förstått ska det inte behövas någon max232 för att det ska funka.
Postat: 17 april 2008, 19:52:26
av HMG
vad är det som avgör om det fungerar eller inte?
Viktigast kanske är hur jag får det at fungera.
Postat: 17 april 2008, 19:57:41
av MadModder
Haha! Så tokigt... Nu tog jag bort mitt inlägg, precis innan du hann svara.

Jag vet inte riktigt vad det är som avgör om det funkar till serieporten eller inte, men nu har ju inte det något att göra med ditt bygge vad jag förstår.
Jag tog bort inlägget för jag kom ju på att FTDI-chip inte kopplas till seroeporten, utan till USB-porten, och mellan AVR och FTDI-chip ska man definitivt inte ha någon max232.
Ang. serieporten (com1 t.ex) så har jag hört att det inte funkar med TTL-nivåer till laptops och andra datorer som har 3,3V-nivåer...
Kan man ställa in den virtuella serieporten på datorn? Är den isf inställd på 9600 baud, helt utan någon handskakning?
Postat: 17 april 2008, 20:10:49
av thepirateboy
Kolla att du kör Tinyn på rätt frekvens.
Postat: 17 april 2008, 20:16:47
av HMG
Man kan ställa den virituella porten och den är rätt men det borde väl inte spela någon roll egentligen eftersom den agerar precis som en rs232 när program lyssnar till den. fel?
har kollat frekvensen och även provat olika frekvenser men det är ingen skillnad.
Postat: 17 april 2008, 20:23:12
av HMG
hur vet jag förresten vilken som är "rätt" frekvens i det här fallet
är det avgörande för hur datorn kan läsa av det som skickas?
Postat: 17 april 2008, 20:23:40
av thepirateboy
Koppla ihop RX och TX på FTDI:n och skicka data från PC så ska det komma tillbaka, då vet du att det fungerar så långt.
Använd gärna Bray terminal
http://braypp.googlepages.com/terminal
Vad som är rätt frekvens anger man i koden och genom att programmera fuses, annars kommer det aldrig fungera, om du inte har tur förstås. Har inte en aning om hur man gör detta i din utvecklingsmiljö. Det verkar som du kör nån basic-variant

Postat: 17 april 2008, 20:27:07
av RDX*
Jag brukar få samma problem med RS232 kommunikation. Då brukar det vara den interna klockan som måste kalibreras.
Hur man enkelt gör det finns beskrivet
här.
Postat: 17 april 2008, 20:32:08
av HMG
Testade med den rekomenderade terminalen och "hej" skickas och kommer tillbaka precis som det ska.
Ska ta en till på interna klockan och hoppas på en lösning.
Postat: 17 april 2008, 20:32:48
av micke.prag
Finns bitar i configen att invertera datat som skickas. Testa att sätta dom med MProg.
Postat: 17 april 2008, 20:42:55
av thepirateboy
Oki bra, då vet du att kommunikationen fungerar från PC till FTDI. Då är det troligen klockan som är felinställd.
Postat: 17 april 2008, 22:14:02
av Andax
För att seriekommunikationen ska funka måste ATtiny2313 köras på rätt frekvens och ganska stabilt. Så kör man med intern RC-oscillator kommer det inte funka om man inte kalibrerat den via OSCCAL.
Klockfrekvensen måste vara rätt inom ca 2% för att seriell kommunikation ska funka. De 2% ska även inkludera det fel som beror på nerdelningen för aktuell baudrate. Se
tabell 56 och 57
Kan det vara fel upsatt antal databitar eller stoppbitar?
Postat: 21 april 2008, 10:07:38
av HMG
Tack för alla tips.
Lyckades få rätt på osccal till sist.
Ett problem som jag sprang på är att det verkar som om jag bara kan få rätt på UART vid 1Mhz. Jag tycker att det är märkligt att jag sätter fuses till att använda intern rc på 4 Mhz men att den frekvensen inte kan användas för UART sedan.