<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=4&amp;t=16751&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-11-12T07:21:49+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=16751&amp;mode</id>
<entry>
<author><name><![CDATA[dawid75_75]]></name></author>
<updated>2016-11-12T07:21:49+01:00</updated>
<published>2016-11-12T07:21:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16751&amp;p=174511#p174511</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16751&amp;p=174511#p174511"/>
<title type="html"><![CDATA[Re: Xmega128A3, nieprawidłowości w konwersji ADC.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16751&amp;p=174511#p174511"><![CDATA[
Policzyłeś ok wg mnie. I ja też tak liczyłem <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Jednakże w nocie jak i w pliku &quot;ioax128.h&quot; jak byk stoi &quot;VCC/1.6&quot;. Procesor mam w module &quot;mmxmega&quot; firmy Propox a tam jest na pokładzie jakiś LDO 3V3, który na wyjściu daje bardzo stabilne 3.26V (sprawdziłem oscyloskopem). Tak więc vcc/1.6 =~ 2.04V i nie chce być inaczej. Może i wynik jest poprawny, ale vref na pewno nie jest wtedy takie jak w nocie. A że nocie ufałem to szukałem błędu u siebie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11277">dawid75_75</a> — 12 lis 2016, o 07:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daro69]]></name></author>
<updated>2016-11-12T01:22:28+01:00</updated>
<published>2016-11-12T01:22:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16751&amp;p=174505#p174505</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16751&amp;p=174505#p174505"/>
<title type="html"><![CDATA[Re: Xmega128A3, nieprawidłowości w konwersji ADC.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16751&amp;p=174505#p174505"><![CDATA[
momento, ?<br /><br />A jakie jest napięcie  VCC ? i czy jest stabilne.?<br />Bo Vref to &quot;VCC/1,6&quot; czyli ile. może w obliczeniach coś nie uwzględnione,<br />skoro dla wewnętrznego 1V jest ok.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 43 minutach ]</span></strong><br /><br />dla przykładu z pierwszego postu :<br />8 bit,<br />1,28V,<br />oczekiwane ~160 ADC,<br />=1,6 V_REF ? to zasilanie VCC 2,56 ?<br /><br />dalej z ostatniego postu:<br />12_bit signed <br />VCC 2,56 V<br />V_out 0,69 V za wtórnikiem<br />to ADC ~= (0,69 * 2048) / (2,56 /1,6)<br />= ~ 895 ?<br />czy coś pochrzaniłem ?  <img src="https://forum.atnel.pl/images/smilies/icon_e_confused.gif" alt=":?" title="Boi się" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11549">Daro69</a> — 12 lis 2016, o 01:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[dawid75_75]]></name></author>
<updated>2016-11-11T17:35:02+01:00</updated>
<published>2016-11-11T17:35:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16751&amp;p=174473#p174473</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16751&amp;p=174473#p174473"/>
<title type="html"><![CDATA[Re: Xmega128A3, nieprawidłowości w konwersji ADC.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16751&amp;p=174473#p174473"><![CDATA[
<strong>Daro69</strong> - tak, napisałem to celowo: <br />[syntax=c]ADCB_CTRLB   = 0b00010000;[/syntax]<br />i to jest prawidłowe ustawienie. Chciałem mieć tryb signed oraz 12bit rozdzielczości, który wg noty jest wtedy, gdy wyzerujemy bity 1 i 2. I przyznaję, pisałem o 8-bit, ale w międzyczasie zmieniłem koncepcję, bo brakowało mi pomysłów na miejsca, gdzie mogłem zrobić błąd. Zapomniałem o tym napisać i przepraszam za to <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Wyniki miałem złe zarówno dla 12bit jak i 8 bit.<br /><br />Udało mi się dziś odpalić ten ADC i uzyskać prawidłowe wyniki, ale na innej konfiguracji, oto ona:<br />[syntax=c]ADCB.CTRLA=ADC_ENABLE_bm;<br />ADCB.CTRLB=ADC_CONMODE_bm; //Rozdzielczość 12 bitów, tryb ze znakiem<br /><br />ADCB.REFCTRL=ADC_REFSEL_INT1V_gc | ADC_BANDGAP_bm; //Referencja 1V<br /><br />//ADCB.EVCTRL=ADC_SWEEP_0_gc | ADC_EVSEL_0123_gc | ADC_EVACT_CH0_gc; //Wyzwalanie kanałów 0, 1, 2 i 3 przez EVCH0<br />//ADCB.EVCTRL=ADC_SWEEP_01_gc | ADC_EVSEL_0123_gc | ADC_EVACT_SWEEP_gc; //Wyzwalanie kanałów 0 i 1 przez EVCH0<br />ADCB.PRESCALER=ADC_PRESCALER_DIV4_gc;     //CLKADC=250kHz<br />ADCB.CALL=ReadCalibrationByte(offsetof(NVM_PROD_SIGNATURES_t, ADCBCAL0));<br />ADCB.CALH=ReadCalibrationByte(offsetof(NVM_PROD_SIGNATURES_t, ADCBCAL1));<br />ADCB.CALL=ReadCalibrationByte(offsetof(NVM_PROD_SIGNATURES_t, ADCBCAL0));<br />ADCB.CALH=ReadCalibrationByte(offsetof(NVM_PROD_SIGNATURES_t, ADCBCAL1));<br /><br />ADC_CH_Init(&amp;ADCB.CH0, ADC_CH_MUXPOS_PIN2_gc);   //Zainicjuj poszczególne kanały ADC[/syntax]<br /><br />Żeby przejść na v_ref = 1V musiałem dolutować szeregowo jeszcze dwa rezystory 1k. Więc teraz dzielnik to pięć rezystorów szeregowo 1k każdy. Oto wyniki:<br />V_bat = 3,44V<br />V_out = 0.69V (napięcie na wyjściu wtórnika podawane na ADC)<br />ADC = 1415<br />V = 1415/2048 = 0,69V.<br /><br />Czy możliwy jest jakiś błąd w strukturze przy tym REFSEL = VCC/1.6 ? Przy ustawieniu identycznym jw. ale z  REFSEL = VCC/1.6 wyniki mam nieprawidłowe.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11277">dawid75_75</a> — 11 lis 2016, o 17:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daro69]]></name></author>
<updated>2016-11-11T03:01:53+01:00</updated>
<published>2016-11-11T03:01:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16751&amp;p=174434#p174434</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16751&amp;p=174434#p174434"/>
<title type="html"><![CDATA[Re: Xmega128A3, nieprawidłowości w konwersji ADC.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16751&amp;p=174434#p174434"><![CDATA[
Witam,<br />Może nic ważnego, ale na w razie czego. <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br />jest wpis ustawiający signed zamiast unsigned , <br />[syntax=c]ADCB_CTRLB   = 0b00010000;[/syntax]<br />Ale przecież w tym rejestrze jest jeszcze ustawianie rozdzielczości.<br />Czy to planowane 12-Bit ? bo tu się zerują dwa bity &quot;RESOLUTION&quot;, a coś chyba było pisane o 8-bit. ?<br /><br />Co prawda nie znam tych poleceń i co się dzieje dalej w kodzie,<br />ale czy nie lepiej pisać podobnie tak jak jest dalej przy ustawianiu VCC_1,6V <br />gdzie dla pewności jest zdublowane ustawianie bitu w rejestrze REFCTRL,<br /> z zastosowaniem operatora OR ?<br />Nie wiem czy w tym kodzie jest to właściwe wpisywanie, ale może jakoś np.<br />[syntax=c]ADCB_CTRLB   |=  0b00010000;[/syntax]<br />wtedy nie ma obawy że coś przypadkowo skasujemy,<br />a bit_1 ustawiający na rozdzielczość ADC 8_bit pozostanie nie tknięty.?<br />A może to tak specjalnie napisane  <img src="https://forum.atnel.pl/images/smilies/icon_e_confused.gif" alt=":?" title="Boi się" /> <br />pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11549">Daro69</a> — 11 lis 2016, o 03:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[dawid75_75]]></name></author>
<updated>2016-11-10T22:14:41+01:00</updated>
<published>2016-11-10T22:14:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16751&amp;p=174420#p174420</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16751&amp;p=174420#p174420"/>
<title type="html"><![CDATA[Re: Xmega128A3, nieprawidłowości w konwersji ADC.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16751&amp;p=174420#p174420"><![CDATA[
Jak najbardziej:<br />[syntax=c]PORTB.DIRCLR = PIN2_bm;[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11277">dawid75_75</a> — 10 lis 2016, o 22:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Situs]]></name></author>
<updated>2016-11-10T17:09:58+01:00</updated>
<published>2016-11-10T17:09:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16751&amp;p=174363#p174363</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16751&amp;p=174363#p174363"/>
<title type="html"><![CDATA[Re: Xmega128A3, nieprawidłowości w konwersji ADC.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16751&amp;p=174363#p174363"><![CDATA[
ustawienie pb2 jako we masz?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14339">Situs</a> — 10 lis 2016, o 17:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[dawid75_75]]></name></author>
<updated>2016-11-10T16:44:08+01:00</updated>
<published>2016-11-10T16:44:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16751&amp;p=174358#p174358</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16751&amp;p=174358#p174358"/>
<title type="html"><![CDATA[Re: Xmega128A3, nieprawidłowości w konwersji ADC.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16751&amp;p=174358#p174358"><![CDATA[
Sprawdziłem wszystkie i wyniki są stabilne  (ale niezgodne z rzeczywistością) od 64 do 256.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11277">dawid75_75</a> — 10 lis 2016, o 16:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Situs]]></name></author>
<updated>2016-11-10T15:17:33+01:00</updated>
<published>2016-11-10T15:17:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16751&amp;p=174356#p174356</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16751&amp;p=174356#p174356"/>
<title type="html"><![CDATA[Re: Xmega128A3, nieprawidłowości w konwersji ADC.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16751&amp;p=174356#p174356"><![CDATA[
Spróbuj zmniejszyć preskaler bądź zwiększyć<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14339">Situs</a> — 10 lis 2016, o 15:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[dawid75_75]]></name></author>
<updated>2016-11-10T00:17:32+01:00</updated>
<published>2016-11-10T00:17:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16751&amp;p=174322#p174322</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16751&amp;p=174322#p174322"/>
<title type="html"><![CDATA[Re: Xmega128A3, nieprawidłowości w konwersji ADC.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16751&amp;p=174322#p174322"><![CDATA[
Poprawiłem ustawienia zegarów ale wynik dalej bez sensu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11277">dawid75_75</a> — 10 lis 2016, o 00:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kicajek]]></name></author>
<updated>2016-11-10T00:09:01+01:00</updated>
<published>2016-11-10T00:09:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16751&amp;p=174321#p174321</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16751&amp;p=174321#p174321"/>
<title type="html"><![CDATA[Re: Xmega128A3, nieprawidłowości w konwersji ADC.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16751&amp;p=174321#p174321"><![CDATA[
Witam<br />Może tutaj coś znajdziesz: <a href="http://www.sunduino.pl/wordpress/xmega-adc-ogolnie-czesc-2"  class="postlink">http://www.sunduino.pl/wordpress/xmega-adc-ogolnie-czesc-2</a><br />Czytając tak bez zrozumienia  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />  kilka razy wpadłem na stwierdzenie &quot; ...i tu ciekawa rzecz&quot; więc może Ty dojrzysz tam coś o czym zapomniałeś.<br /><br />Pozdr.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=826">kicajek</a> — 10 lis 2016, o 00:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[dawid75_75]]></name></author>
<updated>2016-11-09T21:37:52+01:00</updated>
<published>2016-11-09T21:37:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16751&amp;p=174304#p174304</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16751&amp;p=174304#p174304"/>
<title type="html"><![CDATA[Re: Xmega128A3, nieprawidłowości w konwersji ADC.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16751&amp;p=174304#p174304"><![CDATA[
Na ADC idzie sygnał z wtórnika napięciowego na WO w taki sposób:<br /><a href="https://obrazkiforum.atnel.pl/11277/18d30f3eb436420df9f098d0cc0604e1.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/11277/18d30f3eb436420df9f098d0cc0604e1.png" alt="Obrazek" /></a><br />więc to raczej nie problem za dużej rezystancji wyjściowej badanego układu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11277">dawid75_75</a> — 9 lis 2016, o 21:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[micky]]></name></author>
<updated>2016-11-09T21:12:25+01:00</updated>
<published>2016-11-09T21:12:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16751&amp;p=174295#p174295</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16751&amp;p=174295#p174295"/>
<title type="html"><![CDATA[Re: Xmega128A3, nieprawidłowości w konwersji ADC.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16751&amp;p=174295#p174295"><![CDATA[
A jaka jest rezystancja wejscia ADC?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1546">micky</a> — 9 lis 2016, o 21:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[dawid75_75]]></name></author>
<updated>2016-11-09T20:26:04+01:00</updated>
<published>2016-11-09T20:26:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16751&amp;p=174281#p174281</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16751&amp;p=174281#p174281"/>
<title type="html"><![CDATA[Re: Xmega128A3, nieprawidłowości w konwersji ADC.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16751&amp;p=174281#p174281"><![CDATA[
Zmieniłem trochę ustawienia zegarów i ADC:<br />1) Ustawienie generatora 32MHz i zegarów clk_per:<br />[syntax=c]OSC_CTRL |= OSC_RC32MEN_bm;<br />while(!(OSC_STATUS &amp; OSC_RC32MRDY_bm));<br />CPU_CCP = CCP_IOREG_gc;<br />CLK.CTRL     =    CLK_SCLKSEL_RC32M_gc;// zmiana źródła sygnału na RC 32MHz<br />CPU_CCP = CCP_IOREG_gc;<br />CLK_PSCTRL = ((CLK_PSCTRL &amp; (~(CLK_PSADIV_gm | CLK_PSBCDIV1_bm | CLK_PSBCDIV0_bm)))| CLK_PSADIV_1_gc | CLK_PSBCDIV_2_2_gc);[/syntax]<br /><br />Konfiguracja ADC:<br />[syntax=c]PR.PRPB &amp;= ~0x02; // Clear ADC bit in Power Reduction Port B Register<br /><br />ADCB.CALL = ReadCalibrationByte( offsetof(NVM_PROD_SIGNATURES_t, ADCBCAL0) );<br />ADCB.CALH = ReadCalibrationByte( offsetof(NVM_PROD_SIGNATURES_t, ADCBCAL1) );<br />ADCB.CALL = ReadCalibrationByte( offsetof(NVM_PROD_SIGNATURES_t, ADCBCAL0) );<br />ADCB.CALH = ReadCalibrationByte( offsetof(NVM_PROD_SIGNATURES_t, ADCBCAL1) );<br /><br />ADCB_CH0_CTRL    = ADC_CH_INPUTMODE_SINGLEENDED_gc;// 0x01 single-ended tryb<br />ADCB_CH0_MUXCTRL= ADC_CH_MUXPOS_PIN2_gc;// wejście na pin PB2;<br />ADCB_CTRLB= 0b00010000;<br />ADCB_PRESCALER= ADC_PRESCALER_DIV64_gc;// ustawienia preskalera taktowania modułu ADC<br />ADCB_REFCTRL= ADC_REFSEL_INTVCC_gc | (1&lt;&lt;2);<br />ADCB_EVCTRL= 0x00;<br />ADCB_INTFLAGS= ADC_CH0IF_bm;// 0x01<br />ADCB_CH0_INTCTRL= ADC_CH_INTLVL1_bm | ADC_CH_INTLVL0_bm;// 0x03 wybór przerwania<br />ADCB_CTRLA= ADC_ENABLE_bm;[/syntax]<br /><br />Jednakże wyniki dalej o 0.4V rozbieżne z rzeczywistością. Uprzejmie proszę o jakiekolwiek sugestie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11277">dawid75_75</a> — 9 lis 2016, o 20:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[dawid75_75]]></name></author>
<updated>2016-11-07T18:41:07+01:00</updated>
<published>2016-11-07T18:41:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16751&amp;p=174054#p174054</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16751&amp;p=174054#p174054"/>
<title type="html"><![CDATA[Xmega128A3, nieprawidłowości w konwersji ADC.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16751&amp;p=174054#p174054"><![CDATA[
Szanowni Forumowicze,<br />po przeczytaniu kilku artykułów i dokumentu od Atmela chciałem uruchomić ADC celem zmierzenia napięcia baterii na dzielniku rezystorowym.<br />Konfiguracja:<br />- dzielnik rezystorowy, w szeregu 3 oporniki 1k;<br />- wtórnik napięciowy na WO;<br />- wyjście wtórnika podłączone do pinu PB2;<br />- procesor taktowany wewnętrznym zegarem 32MHz;<br />- adc w trybie signed i single-ended;<br /><br />Funkcja inicjalizująca ADC:<br />[syntax=c]void adcConfig(void){<br />PR.PRPB &amp;= ~0x02; // Clear ADC bit in Power Reduction Port B Register<br /><br />// Calibration values are stored at production time<br />// Load stored bytes into the calibration registers<br />// First NVM read is junk and must be thrown away<br />ADCB.CALL = ReadCalibrationByte( offsetof(NVM_PROD_SIGNATURES_t, ADCBCAL0) );<br />ADCB.CALH = ReadCalibrationByte( offsetof(NVM_PROD_SIGNATURES_t, ADCBCAL1) );<br />ADCB.CALL = ReadCalibrationByte( offsetof(NVM_PROD_SIGNATURES_t, ADCBCAL0) );<br />ADCB.CALH = ReadCalibrationByte( offsetof(NVM_PROD_SIGNATURES_t, ADCBCAL1) );<br /><br />CLK.PSCTRL= CLK_PSADIV0_bm;// ustawienie taktowania modułu ADC<br />ADCB.CH0.CTRL= ADC_CH_INPUTMODE0_bm;// 0x01 single-ended tryb<br />ADCB.CH0.MUXCTRL= ADC_CH_MUXPOS1_bm;// wejście na pin PB2;<br />ADCB.CTRLB= 0b10010100;<br />ADCB.PRESCALER= ADC_PRESCALER_DIV128_gc;// ustawienia preskalera taktowania modułu ADC<br />ADCB.REFCTRL= ADC_REFSEL_INTVCC_gc;// AREF = VCC/1.6<br />ADCB.EVCTRL= 0x00;<br />ADCB.INTFLAGS= ADC_CH0IF_bm;// 0x01<br />ADCB.CH0.INTCTRL= ADC_CH_INTLVL1_bm | ADC_CH_INTLVL0_bm;// 0x03 wybór przerwania<br />ADCB.CTRLA= ADC_ENABLE_bm;// uruchomienie adc<br />}[/syntax]<br /><br />Wykonuję ją na początku programu, przed uruchomieniem przerwań. <br /><br />Wywołuję za każdym razem jednorazowy pomiar:<br />[syntax=c]// pomiar napięcia baterii<br />ADCB.CH0.CTRL |= 0x80;[/syntax]<br /><br />Obsługa przerwania z gotowym wynikiem:<br />[syntax=c]ISR(ADCB_CH0_vect) {<br />tempBuffer&#91;12&#93; = ADCB.CH0.RES;<br />}[/syntax]<br />Nie potrzebuję dużej dokładności, stąd wybór 8bit rozdzielczości, oraz nie potrzebuję trybu free-run, gdyż to ma być jedynie wskaźnik napięcia na baterii pokazujący stan naładowania. Kilka procent błędu względem wyniku normalnego mi w zupełności wystarczy.<br />Dzielnik, jak wspominałem, to 3 rezystory szeregowo, napięcie mierzę na ostatnim (za nim GND). I jakie wyniki? Dla napięcia 1,28V na rezystorze otrzymuję ADC = 112. Po przeliczeniu na napięcie, wg wzoru: V_in = ADC*V_ref/256 otrzymuję wynik ok. 0.89V. Wynik jest skandaliczny. Nie wiem jednak, gdzie popełniam błąd. ADC powinno wynosić ok. 160.<br />Co więcej, jak podłączę pin PB2 do masy, to wynikiem ADC jest 254. Wygląda, jakby wyniki były na odwrót (255 dla 0V) jednak przecież w trybie signed minus ADC mam podłączony do masy.<br /><br />Proszę uprzejmie o wskazówki i pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11277">dawid75_75</a> — 7 lis 2016, o 18:41</p><hr />
]]></content>
</entry>
</feed>