Problem med Atmega88 UART (löst typ)

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Virror
Inlägg: 1025
Blev medlem: 28 april 2004, 11:03:14
Ort: Göteborg
Kontakt:

Problem med Atmega88 UART (löst typ)

Inlägg av Virror »

Hej, har problem med min UART, alla tecken på 0x3F och under kommer fram rätt, men skickar jag en ASCII sträng så kapas dom två översta bytesen, tex 's'(0x73) blir '3'(0x33).
Antar att detta har med att göra att jag var dum nog att använda den interna oscillatorn och att den är dåligt kalibrerad? Har skrivit ut UCSR0C registret för att kolla så det verkligen är 8bitars mode som används också.
Senast redigerad av Virror 28 februari 2011, 00:08:20, redigerad totalt 2 gånger.
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4750
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Re: Problem med Atmega8 UART

Inlägg av Swech »

Mer info
Hur fort kör du?
Har du kalibrerat RC oscillatorn?
Vet du att mottagaren är korrekt?
Vet du att du verkligen blir av med biten?
Om du skickar FF vad händer?
Hur ser koden ut?

Swech
Virror
Inlägg: 1025
Blev medlem: 28 april 2004, 11:03:14
Ort: Göteborg
Kontakt:

Re: Problem med Atmega8 UART

Inlägg av Virror »

Kom just på att jag kanske skulle skriva vilken baud jag kör : p
har testat både 9600, 4800 och 2400 med samma resultat.
Använder terminal.exe på PCn för att kolla trafiken, kör via ett FTDI chip.
Den viktiga delen av koden är här:

Kod: Markera allt

void USART_Init(unsigned int baud)
{
  /* Set baud rate */ 
  UBRR0 = 207;
  /* Enable receiver and transmitter */
  UCSR0B = (1<<RXEN0)|(1<<TXEN0);
  /* Set frame format: 8data, 1stop bit */
  UCSR0C = (1<<UCSZ00)|(1<<UCSZ01);
}

Kod: Markera allt

SIGNAL(TIMER1_COMPA_vect)
{
  USB_Send_Byte(0x55);
  USB_Send_Byte(0xAA);
  USB_Send_Byte(UBRR0);
}

Kod: Markera allt

void USB_Init()
{
  DDRD = (1<<6) | (1<<5);//?
  DDRC = 0xFF;
}

Kod: Markera allt

void USB_Send_Byte(unsigned char data)
{
  SETBIT(PORTD,6);
  _NOP();
  PORTC = data;
  _NOP();
  CLEARBIT(PORTD,6);
  while(!( PIND & (1<<4)))
    ;
}

Kom dock på att det finns en chans att det är nått fel med datan som går till USB-chipet också...

Edit: Ska vara Atmega88
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4750
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Re: Problem med Atmega8 UART

Inlägg av Swech »

PortC=Data

öh?

Du skickar data 8 bitar via en port? till ett USB chip?
Vad har då baudraten på din AVR med det hela att göra?
AVR Baudrate är ju för USARTen i AVRen.
Likaså antal bitar som skickas är ju 8 eftersom du kör via en port :humm:

Swech
ie
EF Sponsor
Inlägg: 1375
Blev medlem: 23 oktober 2006, 13:12:57
Ort: Tyresö

Re: Problem med Atmega88 UART

Inlägg av ie »

Har kört ett antal AVR'er utan att någonsin kalibrera dem och bauraten har aldrig strulat. Säger inte att så inte kan vara fallet, men det låter som fel ända att börja leta i.
Virror
Inlägg: 1025
Blev medlem: 28 april 2004, 11:03:14
Ort: Göteborg
Kontakt:

Re: Problem med Atmega88 UART

Inlägg av Virror »

Jag skyller på att det är sent och en längre brist på sömn : /
Snacka om förvirrat : p

Självklart har det inget med USARTen att göra, jag vet inte vad jag tänkte.
Tror jag ska gå och lägga mig och sova : p

Måste vara nått trassel med datalinorna mellan USB-chipet och µCn.
Snacka om pinsam post från en som har universitetsutbildning på detta : )
Mer sömn, godnatt!
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Problem med Atmega88 UART

Inlägg av sodjan »

Varför inte beskriva hur det hela är kopplat redan i *första* inlägget ?
Du slipper man alla dessa undringar och motfrågor på allt som är märkligt.

> men skickar jag en ASCII sträng så kapas dom två översta bytesen, tex 's'(0x73) blir '3'(0x33).

Ser mer ut som de två högsta *bitarna* ? Eller annars får du beskriva det bättre. Vilka "bytes" ?

> kör via ett FTDI chip.

Hur då ? VIlket FTDI-chip (de har fler än en model) ? Och hur är den kopplad ?

Sen så ser det ju inte ut som att du kör via USARTen alls.
Vad har PORTC med det hela att göra ?
Är det parr-varianten (245) av FTDI chippet ?

EDIT:
Såg nu att det hade smitit in ett nytt inlägg innan jag postade.
Håller med, God Natt ! :-)
bearing
Inlägg: 11676
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Problem med Atmega88 UART (löst typ)

Inlägg av bearing »

PORTC har ju bara 6 pinnar på mega88, eller möjligtvis 7 st ifall du använder Reset-pinnen som I/O. Men eftersom att inget över 0x3F fungerar så används sannolikt bara 6 pinnar.
Virror
Inlägg: 1025
Blev medlem: 28 april 2004, 11:03:14
Ort: Göteborg
Kontakt:

Re: Problem med Atmega88 UART (löst typ)

Inlägg av Virror »

Haha, tack bearing, såg nu på schemat att jag gjort en dundermiss.
Schemasymbolen i mitt Eagle bibliotek var lite lurigt gjort, var inte uppmärksam nog : /
Får köra med 6 bitar så, men det går ändå med lite pusslande : )

Bild
Skriv svar