Gibberish
Gibberish
Jag har en ATmega8 på ett STK500. Textsrängen som m8:an skickar ut fungerar ibland och ibland blir det bara en massa konstiga tecken. Vad beror detta på, behöver jag ändra ngn inställning för att få det att fungera varje gång? (Använder Bray)
Använder interna oscillatorn (1MHz) och Baudrate = 2400
Behöver jag konfigurera om COM-porten på datorn?
Använder interna oscillatorn (1MHz) och Baudrate = 2400
Behöver jag konfigurera om COM-porten på datorn?
- bengt-re
- EF Sponsor
- Inlägg: 4829
- Blev medlem: 4 april 2005, 16:18:59
- Skype: bengt-re
- Ort: Söder om söder
- Kontakt:
Utan att vet mer är det svårt att gissa, men
ibland måste man lägga till en extra stopbit eller sänka sändningstakten med oförändrad baudrate för att mottagaren skall hinna processa tecknet innan nästa kommer. Pröva det samt det vanliga.. Kablar, lödningar, EMI, dåliga jordar....
-
- Inlägg: 515
- Blev medlem: 31 maj 2003, 10:42:37
- Ort: Helsingborg
- bengt-re
- EF Sponsor
- Inlägg: 4829
- Blev medlem: 4 april 2005, 16:18:59
- Skype: bengt-re
- Ort: Söder om söder
- Kontakt:
Mmm..
Men har man ingen buffer så måste uP processa datat på 1/2400 dels sekund för att vara redo innan nästa startbit kommer och 1MHz i klockfrekvens är lågt. Så jag tror att den inte hinner klart och sen tolkar den någon bit i nästa tecken som startbit och då blir det fel. Testa som sagt att lägga in en delay mellan varje tecken 1ms räcker säkert om det är på gränsen till att fungera utan.
Fast det var väl uC som skickade till PC?
Och den har väl hårdvaru-UART hur som helst, så det finns en buffer på minst ett tecken.
Jag kan inte mycket om Atmel-chip, men om den interna oscillatorn går lite fel så påverkar det lika mycket oberoende av bitrate. För mycket fel och sista databiten hamnar så snett att det inte tas emot korrekt.
Och den har väl hårdvaru-UART hur som helst, så det finns en buffer på minst ett tecken.
Jag kan inte mycket om Atmel-chip, men om den interna oscillatorn går lite fel så påverkar det lika mycket oberoende av bitrate. För mycket fel och sista databiten hamnar så snett att det inte tas emot korrekt.
- bengt-re
- EF Sponsor
- Inlägg: 4829
- Blev medlem: 4 april 2005, 16:18:59
- Skype: bengt-re
- Ort: Söder om söder
- Kontakt:
Oki, såg det nu...
Hmmm.. Har du oscilloscope ? Isf ta och kolla längden på meddelandet, har du ett bra scop så kan man mäta meddeladelängden noggrant och diffar det mer än några procent så kommer det att bli fel tyvärr. Testa om inte annat att skriva ett program som matar ut omväxlande höga och låga signaler. Vet du hur många klockcykler varje instruktion tar så jag du nu kontrollera din klockfrekvens eller om det går ställa din uP så att den matar ut klocka. Problemet är att man inte kan mäta klockfrekvensen på kristallen då proben påverkar mätningen eller i värsta fall stannar resonatorn. Visar det sig att din klockfrekens är lite fel så går det att justera den med liten konding så sjunker frekvensen. Är den för låg vet jag inte vad man hittar på?!
Jag har också haft samma problem som du har. Lösningen är att kalibrera den interna oscillatorn.
använd en liknande kod och notera I värdet, sen är det bara att sätta Osccal lika med I värdet.
Kod: Markera allt
Bascom:
$crystal = 8000000
$baud = 9600
$regfile = "m16def.dat"
Dim I As Byte
Config Portd = Output
For I = 1 To 255 Step 10
Osccal = I
Set Portd.6
Waitms 200
Print "Hello world: " ; I
Reset Portd.6
Waitms 200
Next
- bengt-re
- EF Sponsor
- Inlägg: 4829
- Blev medlem: 4 april 2005, 16:18:59
- Skype: bengt-re
- Ort: Söder om söder
- Kontakt:
Ja, men bara om man kör med intern
klocka... Och den är ju inte så rolig. Kanske är jag gammalmodig, men jag kör alltid med resonator så kan man dels få högre fart (4MHz bara på den interna om jag inte är ute och cyklar) och man kan även sätta dit en lååångsan om man vill spara ström, 18f har ju möjlighet till två klockor - vissa modeller iaf
EDit
fast grundorsaken är ändå att man alltid VET hur fort den går. Även billiga resonatorer är rejält noggranna
EDit
fast grundorsaken är ändå att man alltid VET hur fort den går. Även billiga resonatorer är rejält noggranna
- bengt-re
- EF Sponsor
- Inlägg: 4829
- Blev medlem: 4 april 2005, 16:18:59
- Skype: bengt-re
- Ort: Söder om söder
- Kontakt:
*ler*
Då lärde man sig något nytt då.. Som jag säger, jag är väl en aning trångsynt, kanske borde man utnyttja det oftare, men på det lite större så sitter ju pinnarna där och går inte ha tillnågot annat, värre på 12f serien där man loosar portar om man kör med resonator.. Men till den lusläste jag databladet tyckte jag och hittade inget sätt att få den snabbare än dryga 4MHz, men det skiljer sig säkert mellan modellerna. 12f är ju efterföljare till gamla 10f serien och det är ingen ny serie direkt, över 10 år sedan de kom.