avr at90sub162 UART

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
gripner
Inlägg: 1169
Blev medlem: 4 december 2007, 14:47:39
Ort: Lidingö

Inlägg av gripner »

tack thepirate, ska se om jag får tillfälle att kolla påt
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> for(i=1; i < 10000001; i++)

> addering tar tydlingen likt de allra flesta instruktioner 1 klockcykel.

ja, en *8-bitars* ADD kanske gör det.
Men din loop går ju till 1.000.000, så där räcker inte 8 bitar speciellt långt...
Inte ens 16-bitar, utan det går åt 3 bytes vilket ger (minst) 3 ADD per loop.

> dvs, hur många instruktioner behöver en for-loop?

Det går inte att ge ett generellt svar på det, det beror helt på start
och slut värdet.

> som lopar igenom 10000000 simpla adderingar,

Ja, 1.000.000 enkla/simpla 8-bitars ADD's går mycket snabbare.
gripner
Inlägg: 1169
Blev medlem: 4 december 2007, 14:47:39
Ort: Lidingö

Inlägg av gripner »

skrev ett litet mail till olimex och hörde om klockfreqvens, snabbare än att testa ut det själv, fick ett svar, kanske lite oförskämt sådant men dock ett svar.

Hi Leif,

the schematic is on our web and there is clearly seen 8 Mhz crystal connected to the microcontroller, why do you suppose we'll put crystal on board and use internal oscillator?

best regards
Tsvetan / Olimex

----- Original Message -----
From: Leif Gripner
To: devrfq@olimex.com
Sent: Sunday, August 17, 2008 1:20 AM
Subject: AVR-USB-162

hello

i got one of the AVR-USB-162 dev boards, cant find any information on if it uses the internal or external ocilator. and does it use any modifiation of the ocilators freq?

/ Leif
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Men, oasvett om det sitter en kristall där eller inte så kan
man väl ändå välja att köra med kristall eller intosc i sin
egen kod !?

Sen så kan jag rent personligen tycka att om man kan skriva
ett mail till ett företag där man frågar om hjälp så använder
men normala skrivregler. Det ser t.ex för dj--vligt ut med "i"
istället för "I" i första meningen. *Det* är mer oförskämt
än Olimex svar. Att du är lika slarvig på forumet går väl
kanske att leva med, även om det ser lika illa ut. Det säger
bara att "min tid är viktigare än alla er andras tid".

Hur som helst, om man skriver ett lite mer officiellt mail
till ett föratag så är det min rekomendation att inte
bara slarva iväg något man har krafsat ner i all hast. Ta
det som ett tips, och så kanske även svaren blir bättre
i framtiden.
eqlazer
Inlägg: 923
Blev medlem: 22 september 2007, 13:53:45
Ort: Göteborg

Inlägg av eqlazer »

Vilken slags oscillator som används ställs in med med programmeraren, tex en ISP. Det man kan göra via sin egen kod är att avaktivera den prescalern som ställer ner interna RC från 8 till 1 MHz, om det nu är den som används.

gripner: Har du ingen programmerare så du kan läsa ut fuses?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

OK, med "i sin egen kod" menade jag igentligen "själv".
D.v.s att det inte är beroende av hur hårdvaran ser ut (att
man kan köra med intern osc även om det finns en
kristall monterad). Om sedan bestämmer det i koden
eller i programmeringsverktygen spelar kanske mindre roll...
Användarvisningsbild
björn
EF Sponsor
Inlägg: 2570
Blev medlem: 29 mars 2004, 23:09:55

Inlägg av björn »

Man kan köra antingen på kristall eller den interna genom att ändra fusebitarna. Nu har jag inte läst igenom allt som skrivits men med en vanlig ISP så kan man läsa ut fusebitarna och få klarhet i vad den kör på.
gripner
Inlägg: 1169
Blev medlem: 4 december 2007, 14:47:39
Ort: Lidingö

Inlägg av gripner »

har ingen programerare som kommer åt bootloader elle fuses settings. har inget i min kod som moddar/ändrar klockan från va nu default är
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> har ingen programerare som kommer åt bootloader elle fuses settings.

Då lär det inte hjälpa mycket att fråga här heller... :-)

Jag måste ha missat något, men jag hade inte förstått att
du körde en bootloader. I så fall så bör "fuses" inställningarna
hänga ihop med bootloadern, inte med din applikation. Bootloadern
är ju antagligen beroende på att det är satt på ett visst sätt.

> har inget i min kod som moddar/ändrar klockan från va nu default är

Ditt problem är att överyga alla andra om det. Ett enkelt påstående
brukar normalt inte göra det. Det brukar behövas "hard facts".
gripner
Inlägg: 1169
Blev medlem: 4 december 2007, 14:47:39
Ort: Lidingö

Inlägg av gripner »

min kod är postad i denna tråd, så går lätt att se att den ej innehåller någon mod av klockan.


bootloaderns instälningar är gjorda av olimex och av deras svar så kör dom omodifierat på externa 8MHz ocilatorn.

ska se om jag kan lyckas få lite tid att testa lite till idag, men vet inte riktigt vad jag skall testa, summerat ser ju allt ut att vara rätt
ett 'U' loopat ut på usartens txd ger 2.5v, max232 rs232 sida ut ger ca 0v
koden är så vitt jag och andra ser rätt, databladet upger klart och tydligt baudrate registret skall sättas med 51, vilket jag gjort
ändå ger 9600baud i hyperterm eller annat rs232 proggy skräp medan 1200baud ger 100 funktionalitet
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> max232 rs232 sida ut ger ca 0v

(MAX232 och RS232...)

Det ska den aldrig göra.
Antingen ca *plus* 10V *eller* ca *minus* 10 V.
Aldrig 0 V...

Och vad exakt är "proggy skräp" och "100 funktionalitet" ?

Äh, skit samma. Det är ditt problem...
Användarvisningsbild
björn
EF Sponsor
Inlägg: 2570
Blev medlem: 29 mars 2004, 23:09:55

Inlägg av björn »

gripner skrev:nu fattar jag ingenting.

I databladet står det i tabel 17-11 att 51 är 9600baud vid 8MHz

jag har satt 51, jag har 8MHz kristall

testar att köra med 1200baud i pc:n och det funkar!!! borde ju funka på 9600 o inget annat!
Detta säger ju att du kör på 1 MHz.

1000000/16(51+1)=1201,9 Klart som korvspad kan tyckas.

EDIT:Eller så räknar vi bakvägen -> BAUD*16*(UBRRn+1) == 1200*16*52=998400 Hz ~1 MHz
Användarvisningsbild
anrhm
Inlägg: 371
Blev medlem: 3 november 2005, 15:13:33
Ort: Norrtälje

Inlägg av anrhm »

Ur databladet:

6.3.1 Default Clock Source
The device is shipped with internal RC oscillator at 8.0 MHz and with the fuse CKDIV8 programmed,
resulting in 1.0 MHz system clock. The startup time is set to maximum and time-out
period enabled. (CKSEL = "0010", SUT = "10", CKDIV8 = "0"). The default setting ensures that
all users can make their desired clock source setting using any available programming interface.
gripner
Inlägg: 1169
Blev medlem: 4 december 2007, 14:47:39
Ort: Lidingö

Inlägg av gripner »

loopar man output av et 'U' som beskrivet tidigare i denna tråd ger 1:or och 0:or ut i en sån följda att det mätt med en multimeter blir "mitt emellan" 1:a och 0:a
DVS på ttl 2.5volt, på max232 som i mitt fall ger +9volt eller -9volt blir det ca 0volt.

björn, aldrig sagt att jag kör på 1MHz, dock trott/spelulerat att kanske så är fallet iom att baudraten inte blir rätt. Där av försöken att hitta smidigt sätt att kolla det när man som jag saknar en riktig programerare.

anrhmn, atmel levererar så, men jag använder ett lab-kort från en leverantör som lagt till en extern ocilator vilken dom påstår sig använda, så dom har ändrat bootloader/fuse settings
Användarvisningsbild
björn
EF Sponsor
Inlägg: 2570
Blev medlem: 29 mars 2004, 23:09:55

Inlägg av björn »

Nej, jag vet att *du* aldrig har sagt det. Men *jag* säger *att* du gör det (kör på 1 MHz) om du får ~1200 baud med 51 i UBRR. Jag har testat så många gånger för att säkerställa vilken frekvens controllern snurrar på.

ps. jag skulle tro att det är prescalern som är satt till Fclk/8, kolla i databladet hur den ställs till 1 (går att göra i mjukvaran, åtminstonde på vanliga AVR) Se CLKPR.
Senast redigerad av björn 18 augusti 2008, 20:12:03, redigerad totalt 1 gång.
Skriv svar