Sida 2 av 2

Re: Är det här en 16 MHz kristall?

Postat: 29 november 2013, 18:06:22
av Swech
http://swechtrading.se/zencart/index.ph ... cts_id=444

Ligger i din låda på måndag...... om du beställer i helgen
och inte orkar vänta på de andra...

Swech

Re: Är det här en 16 MHz kristall?

Postat: 29 november 2013, 18:42:20
av Al_Bundy
Lasp skrev:Det är detta språkbruk, som gör oss misstänksamma!
Det är inga problem att köra med 11.
Så säger du att det skall kommuniceras. Med en enhet!
Ena säger andra och andra säger ena.
Jag har för mig att jag har 20 Mhz kristaller liggandes någonstans.

Jag vet att det inte är några problem att köra med en 11 Mhz kristall. Men det handlar väll om att kristallen ska fungera ihop med processorn utan några överdrivna störningar?

Re: Är det här en 16 MHz kristall?

Postat: 29 november 2013, 18:43:10
av Al_Bundy
Swech skrev:http://swechtrading.se/zencart/index.ph ... cts_id=444

Ligger i din låda på måndag...... om du beställer i helgen
och inte orkar vänta på de andra...

Swech
40 kr för 10 stycken! Dyrt! Nä skojjar bara.
Jag har redan beställt 10 stycken till ett pris av 13.8 kr :)

Re: Är det här en 16 MHz kristall?

Postat: 29 november 2013, 18:48:14
av Icecap
Det handlar om att kristallen ska svänga med rätt frekvens och sedan kan man anpassa vissa inställningar i programmet så att t.ex. baudrate blir rätt osv. Vissa kristallfrekvenser kan dock bli besvärliga att få rätt baudrate med men det kan man ju räkna ut per hand.

De kristaller du redan har på 11,nånting är anpassat för att vara "binära", alltså passa till att få rätt baudrate med liten felmarginal om man ger de rätta inställningar i registerna.

Men du kör ju den nya industristandard så det går ju inte...

(Och jo, det går ganska säkert utmärkt m man bara kolla lite i databladet... men då är det ju inte industristandarden längre)

Re: Är det här en 16 MHz kristall?

Postat: 29 november 2013, 18:49:31
av TomasL
Al_Bundy skrev: 40 kr för 10 stycken! Dyrt! Nä skojjar bara.
Jag har redan beställt 10 stycken till ett pris av 13.8 kr :)
Hoppas att du inte får 11 MHz kristaller igen då.

Re: Är det här en 16 MHz kristall?

Postat: 29 november 2013, 19:19:54
av Al_Bundy
Det vore en riktig synd. Men denna gång är det en annan säljare.
Jag fick dessutom tillbaka alla pengarna också från förra säljaren.

Re: Är det här en 16 MHz kristall?

Postat: 29 november 2013, 19:24:40
av Al_Bundy
Icecap skrev:Det handlar om att kristallen ska svänga med rätt frekvens och sedan kan man anpassa vissa inställningar i programmet så att t.ex. baudrate blir rätt osv. Vissa kristallfrekvenser kan dock bli besvärliga att få rätt baudrate med men det kan man ju räkna ut per hand.

De kristaller du redan har på 11,nånting är anpassat för att vara "binära", alltså passa till att få rätt baudrate med liten felmarginal om man ger de rätta inställningar i registerna.

Men du kör ju den nya industristandard så det går ju inte...

(Och jo, det går ganska säkert utmärkt m man bara kolla lite i databladet... men då är det ju inte industristandarden längre)
Industristandarden?

Re: Är det här en 16 MHz kristall?

Postat: 1 december 2013, 01:15:32
av jesse
>Industristandarden?
Ja, Arduino.

Processorn i sig har inga problem med vilken kristall du sätter dit - allt mellan några hundra kilohertz upp till 20 MHz fungerar utmärkt. Det är (antagligen) Arduino - programmeringsmiljön som ger dig problem om du väljer "fel" frekvens. Det är i så fall en begränsning i Arduino.

Hacking my Arduino's CLOCK source

Re: Är det här en 16 MHz kristall?

Postat: 1 december 2013, 11:08:35
av Icecap
Al_Bundy: baudrate ställs vid att ladda ett visst register med ett visst värde, ibland är det ett par register som måste ställas.

Väldigt många av de problem du har beror helt enkelt på att du har noll koll på vad du lekar med och hur en µC fungerar men hade du kollat i databladet hade du kanske hittat lite beskrivning av USART. I det datablad jag har för en ATmega 168 finns det ett register som kallas UBRR0, däri ställs delningen av systemklockan så att man får rätt baudrate med USART0.

För 11.0592MHz får man 9600 baud vid ett värde av 71 i UBRR0 vid U2X0 = 0, fel: ±0,0%.
För 16MHz får man 9615,38 baud vid ett värde av 103 i UBRR0 vid U2X0 = 0, fel: +0,16% mot 9600.

Formeln för detta står mycket tydligt i databladet också: UBRR0 = (Fosc/(16*baudrate)) - 1

Slutsatsen är alltså att 11,0592MHz kristallen är mer exakt om du ska uppnå 9600 baud än 16MHz kristallen - och det är mycket ofta därför dessa kristaller med "sned" frekvens tillverkas.

Förvisso är felet så pass litet vid 16MHz så det inte har någon verklig betydelse men det enda som skiljer i baudrate är inställningen i UBRR0.

Självklart kommer exekveringshastigheten att vara lägre också (30,88% lägre), använder man timer-interrupt är det likaledes bara att trimma till rätt värde i rätt register och använder man delay() i någon form gör man oftast fel ändå...

EDIT: och lite C-kod för att göra allt enklare:

Kod: Markera allt

#define X_TAL 11059200
#define BAUDRATE 9600

UBRR0 = (X_TAL / (16*BAUDRATE)) - 1;
Svårare än så är det inte att släppa Arduino-träsket...

Likaså kan man räkna andra hållet:
Baudrate = X_TAL / (16*(UBRR0+1))

Och ja: "industristandard". Det var ju vad nu ungdomar utropade Arduino till samtidig som ni var framtidens hopp.
"Framtidens hopp" kan jag hålla med om, jag kommer inte att sluta hoppas att ni lär er något någon gång i framtiden...

Skulle Arduino bli svensk industris standard lär det gå käpprätt åt fanders med Sverige och jag kommer nog att flytta till Kina eller Indien, där håller de på med moderna grejer istället.

Re: Är det här en 16 MHz kristall?

Postat: 1 december 2013, 17:56:23
av Lennart Aspenryd
Bra inlägg Icecap
Det borde kanske finnas en gilla knapp Om vi nu har tagit åt oss för mycket av FaceBook.
Men kanske TS borde läsa svaret mer än en gång! Jag gillar det där 30,88