<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<copyright>Copyright 1998 - 2023 DPG Media B.V.</copyright>
		<pubDate>Thu, 12 Jan 2023 00:28:30 GMT</pubDate>
		<lastBuildDate>Thu, 12 Jan 2023 00:28:30 GMT</lastBuildDate>
		<docs>https://tweakers.net/reviews/76</docs>
		<description>Tweakblogs.net is de weblog service van Tweakers, de grootste hardwaresite en techcommunity van Nederland.</description>
		<image>
			<link>https://tweakblogs.net/</link>
			<title>Tweakblogs.net</title>
			<url>https://tweakers.net/g/if/logo.gif</url>
			<height></height><width></width>
			<description>Tweakblogs.net</description>
		</image>
		<language>nl-nl</language>
		<link>https://xmega.tweakblogs.net</link>
		<title>Xmega blog</title>
		<webMaster>gathering@tweakers.net</webMaster>
		<item>
			<title>Wat is een Xmega? </title>
			<link>https://xmega.tweakblogs.net/blog/9657/wat-is-een-xmega.html#r_134572</link>
			<description>Dat klopt allemaal,  had ik gisteren maar even eerst een tabel opgezocht in de datasheet, begon namelijk al te twijfelen of de TOP waarde altijd fixed was. 

Wist dat CTC niet fixed was, en dat je 8, 9, en 10bit kon kiezen ook, maar OCA voor pwm was me even ontschoten. 

Wat gebeurd er dan met pin output van OC1A en OC1B(PB2 en PB3) als je die instelt als top waarde? Gebruik die namelijk altijd PWM mode met fixed TOP en dan gebruik je de OC1A en OC1B gewoon om je duty cyclus te bepalen. 

Maar goed je hebt dus twee keuze, en als je niet precies op bepaalde frequentie hoeft te werken zoals bij led dimmers, waar resolutie belangrijker is, dan is die mode ook niet interessant, als je bepaalde motors wilt aanstuur weer wel, maar daar heb ik bijna geen ervaring mee, stuur eigenlijk nooit motors aan op die manier, dus vandaar dat ik die pwm mode niet in mijn hoofd had zitten. 

Zo zie je maar weer dat je echt datasheet er altijd bij moet pakken, al denk je zeker te zijn, één blik op de tabel en was gelijk duidelijk. </description><dc:creator>mad_max234</dc:creator>
			<category></category>
			<comments>https://xmega.tweakblogs.net/blog/9657/wat-is-een-xmega.html#r_134572#reacties</comments>
			<guid isPermaLink="false">https://xmega.tweakblogs.net/blog/9657#r_134572</guid>
			<pubDate>Sat, 14 Dec 2013 17:37:22 GMT</pubDate>
		</item>
		<item>
			<title>USART part 1, schrijven naar usart. (Xmega)</title>
			<link>https://xmega.tweakblogs.net/blog/9660/usart-part-1-schrijven-naar-usart-punt-(xmega).html#r_134568</link>
			<description>Inderdaad puntje van aandacht als je bandbreedte gaat aanpassen als je programma doorloopt, leuk onderwerp voor andere post, iets van bandbreedte switch bouwen of zo, zal even nadenken voor leuke toepassing.  

Maar dat is niet van toepassing bij deze code. Zal het even onderbouwen voor mensen die afvragen waarom niet, je kan n dit geval niet de bandbreedte veranderen zonder de code opnieuw te uploaden en daarmee dus ook verplicht je programma te stoppen en opnieuw te starten waardoor initialiseren ook altijd weer opnieuw zal plaatsvinden. CTRLC is bij default namelijk 0, dus start je met juist waarde, zet pas na instellen van bandbreedte later naar 0x03 en dan enable we pas de usart. 


Interrupts gestuurde usart komt later aanbod, net als interrupts in het algemeen.

Ga elke week één of meerder stukjes code posten en die kunnen dan besproken worden, verzoekjes mag. </description><dc:creator>mad_max234</dc:creator>
			<category></category>
			<comments>https://xmega.tweakblogs.net/blog/9660/usart-part-1-schrijven-naar-usart-punt-(xmega).html#r_134568#reacties</comments>
			<guid isPermaLink="false">https://xmega.tweakblogs.net/blog/9660#r_134568</guid>
			<pubDate>Sat, 14 Dec 2013 17:01:22 GMT</pubDate>
		</item>
		<item>
			<title>USART part 1, schrijven naar usart. (Xmega)</title>
			<link>https://xmega.tweakblogs.net/blog/9660/usart-part-1-schrijven-naar-usart-punt-(xmega).html#r_134550</link>
			<description>Wat ook noemenswaardig is, ze noemen in de manual van bijv. de *A4U serie, een volgorde waarin je de USART moet initialiseren. 
Dit is vrij belangrijk.

Als je bijv. na initialisatie wil wisselen van baudrate, moet eerst CTRLC op 0 gezet worden, en vervolgens de baudrate, de mode setting en dan pas weer enabelen.

Wellicht is het ook leuk om naar de interrupts te gaan kijken, want je kunt daar in de xmega serie echt heel veel mooie dingen mee doen.</description><dc:creator>Infant</dc:creator>
			<category></category>
			<comments>https://xmega.tweakblogs.net/blog/9660/usart-part-1-schrijven-naar-usart-punt-(xmega).html#r_134550#reacties</comments>
			<guid isPermaLink="false">https://xmega.tweakblogs.net/blog/9660#r_134550</guid>
			<pubDate>Sat, 14 Dec 2013 13:50:29 GMT</pubDate>
		</item>
		<item>
			<title>Wat is een Xmega? </title>
			<link>https://xmega.tweakblogs.net/blog/9657/wat-is-een-xmega.html#r_134543</link>
			<description>Atmega328p datasheet, pagina 136. Daar staat dat lijstje.. Zelfs een attiny48 heeft dezelfde 16-bit timer als de atmega328p en ondersteunt deze modus. 

De top waarde is de waarde waar de timer gaat resetten naar 0. Met PWM kan je dan de output laten setten. De OCR1x waarde is het punt waar de output weer reset. Je kan dan OC1A en OC1B gebruiken met afzonderlijke duty cycles.
Je kan de timer instellen op verschillende modussen: 8-bit, 9-bit of 10-bit. Dat is dan ook de waarde van de top: 0xFF, 0x1FF, 0x3FF.
Maar je kan ook zeggen, ik ga OCR1A of ICR1 gebruiken om mijn top waarde in te zetten. Je kan dan de periode tijd varieren.. 

De output gaat dan hoog op TMRx=0, en laag bij TMRx=OCR1B. (of inverted). TMRx wordt 0 als TMRx=TOP=ICR1 of OCR1A.

Omdat je dus dan zelf kan bepalen hoever de timer doortelt, kan je de resolutie en frequentie wijzigen. De resolutie is beperkt tot hoever jij kan doortellen. Als je een TOP van 5000 hebt, heb je geen 16-bit resolutie, maar ln(5000)/ln(2) bits. Immers heb je 5000 stapjes, geen 65535.</description><dc:creator>Hans1990</dc:creator>
			<category></category>
			<comments>https://xmega.tweakblogs.net/blog/9657/wat-is-een-xmega.html#r_134543#reacties</comments>
			<guid isPermaLink="false">https://xmega.tweakblogs.net/blog/9657#r_134543</guid>
			<pubDate>Sat, 14 Dec 2013 12:51:52 GMT</pubDate>
		</item>
		<item>
			<title>Wat is een Xmega? </title>
			<link>https://xmega.tweakblogs.net/blog/9657/wat-is-een-xmega.html#r_134539</link>
			<description>Kan je TOP van timer eigenlijk aanpassen in PWM mode? Dacht van niet, en zit je vast aan lijstje, fast pwm, 8bit pwm, 9bit pwm, etc. 

Je kan wel met CTC iets in elkaar zet zodat je semi software pwm krijgt dan kan resolutie van timer ook aanpassen, maar dacht in pwm mode dat je vast zit aan TOP(FF of FFFF)</description><dc:creator>mad_max234</dc:creator>
			<category></category>
			<comments>https://xmega.tweakblogs.net/blog/9657/wat-is-een-xmega.html#r_134539#reacties</comments>
			<guid isPermaLink="false">https://xmega.tweakblogs.net/blog/9657#r_134539</guid>
			<pubDate>Fri, 13 Dec 2013 23:42:45 GMT</pubDate>
		</item>
		<item>
			<title>Wat is een Xmega? </title>
			<link>https://xmega.tweakblogs.net/blog/9657/wat-is-een-xmega.html#r_134536</link>
			<description>Je maakt grote denk fout. 

Je weet vast  wel hoe timer werkt icm met pwm? De timer telt gewoon door.
http://www.extremeelectro...images/pwm_wave_timer.gif

Vanaf de compare waarde zal pin laag zijn en daarvoor hoog, je hebt gewoon volle 16bit resolutie.

Timer begin bij 0, pin is dan hoog
telt tot compare waarde, pin gaat vanaf dat moment laag
telt gaat door met tellen tot zijn register vol is(8bit of 16bit) en krijgt een overflow, en beginnen weer overnieuw. 

&quot;8bit timer, OCR = 204, tijdbase 1Hz&quot;
teller begint bij 0, pin hoog 0.8sec hoog
telt naar 200, pin gaat laag, 0.2sec laag
teller telt door naar 255 en overflow, alles begint weer overnieuw. 

PWM van 80%

Edit
Leesvoer. 
http://maxembedded.com/20...r-timers-pwm-mode-part-i/</description><dc:creator>mad_max234</dc:creator>
			<category></category>
			<comments>https://xmega.tweakblogs.net/blog/9657/wat-is-een-xmega.html#r_134536#reacties</comments>
			<guid isPermaLink="false">https://xmega.tweakblogs.net/blog/9657#r_134536</guid>
			<pubDate>Fri, 13 Dec 2013 22:28:59 GMT</pubDate>
		</item>
		<item>
			<title>USART part 1, schrijven naar usart. (Xmega)</title>
			<link>https://xmega.tweakblogs.net/blog/9660/usart-part-1-schrijven-naar-usart-punt-(xmega).html#r_134534</link>
			<description>Snap je vraag niet helemaal, kan je die wat beter stellen. Heb namelijk nog nooit gehoord van uart_destruct.</description><dc:creator>mad_max234</dc:creator>
			<category></category>
			<comments>https://xmega.tweakblogs.net/blog/9660/usart-part-1-schrijven-naar-usart-punt-(xmega).html#r_134534#reacties</comments>
			<guid isPermaLink="false">https://xmega.tweakblogs.net/blog/9660#r_134534</guid>
			<pubDate>Fri, 13 Dec 2013 21:35:51 GMT</pubDate>
		</item>
		<item>
			<title>Wat is een Xmega? </title>
			<link>https://xmega.tweakblogs.net/blog/9657/wat-is-een-xmega.html#r_134533</link>
			<description>Dat is niet helemaal correct. Kan bijvoorbeeld nog steeds volledige 16bit gebruiken van de timer als atmega op 200Khz draait net zoals het kan op 20Mhz. Timer resolutie staat gewoon vast, het is hardwarematig iets, namelijk register grote(16bits breed) die fysiek in de chip zit. De tijdsduur is afhankelijk van frequentie waarop de atmega(en dividers en/of PLL) draait, de timer zal stuk trager worden bij 200Khz dan bij 20Mhz.Als ik die zin terug lees is het misschien handiger geweest om de zin omgekeerd te schrijven: de periode tijd is afhankelijk van de klokfrequentie en ingestelde resolutie. 

f_pwm = f_clk / (prescaler * [compare waarde])

Bvb 16M, compare van 16000 -&gt; f_pwm = 16M/16k=1kHz.
Resolutie -&gt; ln(16000)/ln(2) , iets minder dan 14-bits.

Het is wel zo dat de atxmega meer van alles heeft, plus meer opties per peripheral, en dat is zeker mooi.</description><dc:creator>Hans1990</dc:creator>
			<category></category>
			<comments>https://xmega.tweakblogs.net/blog/9657/wat-is-een-xmega.html#r_134533#reacties</comments>
			<guid isPermaLink="false">https://xmega.tweakblogs.net/blog/9657#r_134533</guid>
			<pubDate>Fri, 13 Dec 2013 21:34:39 GMT</pubDate>
		</item>
		<item>
			<title>USART part 1, schrijven naar usart. (Xmega)</title>
			<link>https://xmega.tweakblogs.net/blog/9660/usart-part-1-schrijven-naar-usart-punt-(xmega).html#r_134531</link>
			<description>uart_destruct?</description><dc:creator>analog_</dc:creator>
			<category></category>
			<comments>https://xmega.tweakblogs.net/blog/9660/usart-part-1-schrijven-naar-usart-punt-(xmega).html#r_134531#reacties</comments>
			<guid isPermaLink="false">https://xmega.tweakblogs.net/blog/9660#r_134531</guid>
			<pubDate>Fri, 13 Dec 2013 20:49:55 GMT</pubDate>
		</item>
		<item>
			<title>USART part 1, schrijven naar usart. (Xmega)</title>
			<link>https://xmega.tweakblogs.net/blog/9660/usart-part-1-schrijven-naar-usart-punt-(xmega).html#r_134521</link>
			<description>Dat zal voor meerderheid opgaan denk ik. 

Is ook bedoeld voor de tweakers die zich bezig houden met elektronica, is geen algemeen blogje maar specifiek voor bepaald groepje tweakers, al is iedereen welkom tweaker of niet. 
En  is zelfs specifiek voor bepaalde &quot;cpu&quot;(micro controller), echt niche hoekje dus. 

Maar als je lang genoeg meeleest zul je vanzelf leren waar het over gaat. 

Edit/
@	afraca
Of in header plaatje. &quot;Alles over Atmel Xmega AVR&quot;
Of rechts in about. &quot;Blog waar Atmel atXmega serie word besproken, codes, hardware, etc.&quot;

</description><dc:creator>mad_max234</dc:creator>
			<category></category>
			<comments>https://xmega.tweakblogs.net/blog/9660/usart-part-1-schrijven-naar-usart-punt-(xmega).html#r_134521#reacties</comments>
			<guid isPermaLink="false">https://xmega.tweakblogs.net/blog/9660#r_134521</guid>
			<pubDate>Fri, 13 Dec 2013 15:45:35 GMT</pubDate>
		</item>
		<item>
			<title>USART part 1, schrijven naar usart. (Xmega)</title>
			<link>https://xmega.tweakblogs.net/blog/9660/usart-part-1-schrijven-naar-usart-punt-(xmega).html#r_134520</link>
			<description>Voor enige context kun je natuurlijk naar de vorige blogpost van hem kijken, die op twee manieren op deze pagina ook vermeld staat, maar voor het gemak: 

Xmega blog: Wat is een Xmega? </description><dc:creator>afraca</dc:creator>
			<category></category>
			<comments>https://xmega.tweakblogs.net/blog/9660/usart-part-1-schrijven-naar-usart-punt-(xmega).html#r_134520#reacties</comments>
			<guid isPermaLink="false">https://xmega.tweakblogs.net/blog/9660#r_134520</guid>
			<pubDate>Fri, 13 Dec 2013 15:42:29 GMT</pubDate>
		</item>
		<item>
			<title>USART part 1, schrijven naar usart. (Xmega)</title>
			<link>https://xmega.tweakblogs.net/blog/9660/usart-part-1-schrijven-naar-usart-punt-(xmega).html#r_134519</link>
			<description>Volgens mij vertel je een hoop interessants, maar ik snap er niks van. </description><dc:creator>levik7</dc:creator>
			<category></category>
			<comments>https://xmega.tweakblogs.net/blog/9660/usart-part-1-schrijven-naar-usart-punt-(xmega).html#r_134519#reacties</comments>
			<guid isPermaLink="false">https://xmega.tweakblogs.net/blog/9660#r_134519</guid>
			<pubDate>Fri, 13 Dec 2013 15:39:04 GMT</pubDate>
		</item>
		<item>
			<title>Wat is een Xmega? </title>
			<link>https://xmega.tweakblogs.net/blog/9657/wat-is-een-xmega.html#r_134503</link>
			<description>Dat klopt allemaal ik heb het meer over atmega in algemeen, hebben niet allemaal hetzelfde aantal timers en resolutie. Maar de atmega328p heeft inderdaad één timer1 en twee timer0, 16bit en twee 8bit timers dus. Kan je 6 pwm van maken zijn dan allemaal 8bit maximaal en moet je niet een andere timer nodig hebben voor iets anders. Je moet de 16bit timer1 dan opdelen in twee 8bit. 

Xmega heeft 4 compartors per timer(inverting en non inverting), twee meer dan mega heeft. En heeft over hele serie gezien meer timers dan atmega serie heeft. 

De timers van Xmega zijn veel geavanceerde en flexibeler dan die van atmega. meeste timers kunnen alles wat de 16bit timer ook kan van atmega, en dan al het extra&#039;s wat Xmega brengt naar de timers. De PWM resolutie is dan ook afhankelijk van de klokfrequentie en de periode tijd (dus frequentie).Dat is niet helemaal correct. Kan bijvoorbeeld nog steeds volledige 16bit gebruiken van de timer als atmega op 200Khz draait net zoals het kan op 20Mhz.  Timer resolutie staat gewoon vast, het is hardwarematig iets, namelijk register grote(16bits breed) die fysiek in de chip zit. De tijdsduur is afhankelijk van frequentie waarop de atmega(en dividers en/of PLL) draait, de timer zal stuk trager worden bij 200Khz dan bij 20Mhz.

Je kan resolutie van de 16bit timer uiteraard wel kleiner maken door output comparator waard te verlagen naar andere waarde, OCR1A = 1024 zal 10bit resolutie geven. Maar dan verlaag je gewoon van output comparator, van 16bit(65535) naar 10bit(1024). 

En zoals ik al zie heb je bij de atmega328p één 16bit timer, maar die zul je moeten opsplitsen in twee 8bit om alle 6 pwm te krijgen, of je hebt 1 16bit en 4 8bit. 

Xmega heeft voor de 8bit timers een extra extension(Hi-Res Extension) waarmee je de 8bit timer een 10bit timer word, dus heeft voor alle ouputs minimaal 10bit, atmega 8bit. Overigens zijn meeste timers van Xmega 16bit. 

Ook is het nu mogelijk om 32bit timer op te zetten, heb daar zelf nog geen ervaring mee opgedaan. 

Verder hebben de timers van de Xmega een Advanced Waveform Extension (AWeX), daarmee kan je makkelijk waveforms genereren, gebeurd hardwarematig heeft dus geen invloed op je code.

Edit/
Xmega timer links
http://www.atmel.com/Images/doc8045.pdf</description><dc:creator>mad_max234</dc:creator>
			<category></category>
			<comments>https://xmega.tweakblogs.net/blog/9657/wat-is-een-xmega.html#r_134503#reacties</comments>
			<guid isPermaLink="false">https://xmega.tweakblogs.net/blog/9657#r_134503</guid>
			<pubDate>Fri, 13 Dec 2013 13:01:53 GMT</pubDate>
		</item>
		<item>
			<title>Wat is een Xmega? </title>
			<link>https://xmega.tweakblogs.net/blog/9657/wat-is-een-xmega.html#r_134501</link>
			<description>De atmega328p (bijvoorbeeld) heeft 1x 16-bit PWM met een 16-bit timer hoor, of 10-bit wil je 2 PWM outputs hebben. 

De timer heeft namelijk 2 compare modules. Je kan hem configureren dat hij met een vast ingestelde periode werktt (bvb 10bits) en 2 compar eoutputs hebt. Je kan ook hem instellen dat je compare 1 voor de periode gebruikt, en compare 2 voor de PWM output.

De PWM resolutie is dan ook afhankelijk van de klokfrequentie en de periode tijd (dus frequentie).
Bvb je klok is 8MHz, en de timer telt tot 1024 (10-bits) -&gt; 8M/1024=7.8125kHz PWM
Of, je kiest zelf een waarde: klok 8M, periode tijd is 65535 (0xFFFF) -&gt; 122Hz. Maar wel 16-bits resolutie!

Uiteindelijk gaat het dus om de flexibiliteit van de timer module en de klok frequentie die bepaald hoe veelzijdig die is.</description><dc:creator>Hans1990</dc:creator>
			<category></category>
			<comments>https://xmega.tweakblogs.net/blog/9657/wat-is-een-xmega.html#r_134501#reacties</comments>
			<guid isPermaLink="false">https://xmega.tweakblogs.net/blog/9657#r_134501</guid>
			<pubDate>Fri, 13 Dec 2013 12:22:46 GMT</pubDate>
		</item>
	</channel>
</rss>