<?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=8&amp;t=122&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2012-11-23T15:42:25+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=8&amp;t=122&amp;mode</id>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2012-11-23T15:42:25+01:00</updated>
<published>2012-11-23T15:42:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=122&amp;p=19392#p19392</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=122&amp;p=19392#p19392"/>
<title type="html"><![CDATA[Re: ADS1110 - problem z komunikacja]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=122&amp;p=19392#p19392"><![CDATA[
<div class="quotetitle">greg_leo napisał(a):</div><div class="quotecontent"><br />.. możesz sprecyzować dlaczego ADSy są &quot;jakieś pomylone&quot;?<br /></div><br /><br />No nie da się sprecyzować, w zasadzie , ale jakoś nigdy ich nie lubiłem <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 23 lis 2012, o 15:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[greg_leo]]></name></author>
<updated>2012-11-23T12:19:15+01:00</updated>
<published>2012-11-23T12:19:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=122&amp;p=19384#p19384</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=122&amp;p=19384#p19384"/>
<title type="html"><![CDATA[Re: ADS1110 - problem z komunikacja]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=122&amp;p=19384#p19384"><![CDATA[
Witam. Kolega SunRiver dawno temu napisał:<br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />ja zrobiłem sobie kiedyś do ADS1100 plik nagłówkowy może cię natchnie<br />osobiście nie lubię ADSów są jakieś pomylone<br /></div><br />.. możesz sprecyzować dlaczego ADSy są &quot;jakieś pomylone&quot;?<br /><br />Pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=653">greg_leo</a> — 23 lis 2012, o 12:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Szlast]]></name></author>
<updated>2012-02-21T22:13:47+01:00</updated>
<published>2012-02-21T22:13:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=122&amp;p=3269#p3269</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=122&amp;p=3269#p3269"/>
<title type="html"><![CDATA[Re: ADS1110 - problem z komunikacja]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=122&amp;p=3269#p3269"><![CDATA[
Przetwornik okazał się wadliwy. Temat do zamknięcia. Dziękuję za pomoc i zainteresowanie. Pozdrawiam!<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=163">Szlast</a> — 21 lut 2012, o 22:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Szlast]]></name></author>
<updated>2012-02-08T19:50:33+01:00</updated>
<published>2012-02-08T19:50:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=122&amp;p=2520#p2520</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=122&amp;p=2520#p2520"/>
<title type="html"><![CDATA[Re: ADS1110 - problem z komunikacja]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=122&amp;p=2520#p2520"><![CDATA[
Dzięki SunRiver po testuje Twoja bibliotekę, ale jestem pewien, że na samym TWI powinno się spokojnie go odpalić. Skorzystałem z bibliotek Panaw Mirosława i sprawa wygląda identycznie jak wcześniej. W nocie ads1110 napisali, że gdy (-IN) podłączone jest do GND  to na (+IN) czyta napięcie 0-2,048 V. Ale jesli na ta nozke podaje napiecie 0-2,048 to na wyswietlaczu mam wartość 0 i po paru sekundach program sie zawiesza, a po przekroczeniu 2,048 wyświetla 32767 i sie nie zawiesza:) Możliwe, że układ jest uszkodzony? Może znacie jakiś lepszy przetwornik ADC np 12 bitowy? Pozdrawiam!<br /><br />[syntax]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;stdlib.h&gt;<br />#include &lt;inttypes.h&gt;<br />//#include &quot;TWI.h&quot;<br />#include &quot;LCD.h&quot;<br />#include &quot;i2c_twi.h&quot;<br /><br />#define Write  0x90 //adres ADS1110 do odczytu 0b10010000<br />#define Read  0x91 //adres ADS1110 do zapisu 0b100100001<br />#define Set 0x8c // 15 SPS i gain 1<br /><br />void TWI_inicjacja(void);<br /><br />int main(void)<br />{<br />   //unsigned char High;<br />  // unsigned char Low=0;<br />uint8_t High;<br />uint8_t Low;<br />   uint16_t Rezultat=0;<br /><br />   DDRC |= (1&lt;&lt;PC4)|(1&lt;&lt;PC5);<br />   PORTC &amp;= ~(1&lt;&lt;PC4);<br />   PORTC |= (1&lt;&lt;PC5);<br />   lcd_init();<br />   lcd_cls();<br />   i2cSetBitrate(100);<br />   while(1)<br />   {<br />   TWI_start();<br />   TWI_write(Write);<br />   TWI_write(Set);<br />   TWI_stop();<br />   TWI_start();<br />   TWI_write(Read);<br />   High = TWI_read(ACK);<br />   Low = TWI_read(NACK);<br />   TWI_stop();<br /><br />   Rezultat = (Low | (High &lt;&lt; 8));<br />   lcd_locate(0,0);<br />   lcd_str(&quot;Wynik: &quot;);<br />   lcd_int(Rezultat);<br /><br />   _delay_ms(200);<br />   lcd_cls();<br /><br />   }<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=163">Szlast</a> — 8 lut 2012, o 19:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2012-02-06T21:30:19+01:00</updated>
<published>2012-02-06T21:30:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=122&amp;p=2424#p2424</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=122&amp;p=2424#p2424"/>
<title type="html"><![CDATA[Re: ADS1110 - problem z komunikacja]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=122&amp;p=2424#p2424"><![CDATA[
W sumie mi tez się nie bardzo chce analizować jakieś zlepki <br /><br />ja zrobiłem sobie kiedyś do ADS1100 plik nagłówkowy może cię natchnie<br />osobiście nie lubię ADSów są jakieś pomylone <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />[syntax=c]<br />/*=======================================================================<br />ads1110.h<br />Uproszczone procedury dla ADS1100<br />SunRiver<br />========================================================================*/<br />#define   uchar   unsigned   char<br />#define   uint    unsigned   int<br />/*-----------------------------------------------------------------------<br />ads1100<br />ADRR:1001000   <br />SCK:100kHz  = 10us<br />-----------------------------------------------------------------------*/  <br />#define  scl          PORTA.6         //PORTA.6 <br /><br />#define  out_data     PORTA.5         //PORTA.5  <br />#define  in_data      PINA.5          //PINA.5<br /><br />#define  OUT          1 <br />#define  IN           0<br />#define  io_data      DDRA.5         //DDRA.5<br />#define  ads1100_writeaddr                    0x90<br />#define  ads1100_readaddr                     0x91<br /><br />void     io_dir(uchar dir);<br /><br />void     ads1100_start(void);                                       /*i2c start */<br />void     ads1100_stop(void);                                        /*i2c stop*/<br /><br />uchar    ackby_ads1100(void);                                       /*ads1100<br />void     ackby_master(void);                                        <br /> <br />void     send_frame(uchar framedata);                               /*wysłanie 8bit do ads1100*/<br />uchar    read_frame(void);                                          /*odczyt bbit z ads1100*/<br />void     ads1100_write(unsigned char addr,unsigned char command);   /*zapis rozkazu dla ads1100*/  <br />unsigned int     ads1100_read(unsigned char addr);                  /*odczyt i konwersja danych z  ads1100*/<br /><br />[/syntax]<br /><br /><br />Masz jeszcze kod pliku ADS1100.c  bo znalazłem<br />Możliwe ze dojdziesz;<br /><br />[syntax=c]<br />/* <br />Sunriver<br />komunikacja i2c --&gt; ADS1100 <br />wersja testowa ..<br />*/<br /><br /><br />void     io_dir(uchar dir)<br />{                 <br />   out_data=1;<br />   if(dir==IN)<br />   {<br />      io_data=0;  <br />   }<br />   if(dir==OUT)<br />   {<br />      io_data=1;  <br />   }<br />}<br />/*<br />////////////////////////////////////////////////////////////////////////////////////////////<br />ADS1100_start   ---&gt; Uruchomienie<br />*/<br />void     ads1100_start(void)<br />{  <br /> //inicjalizacja: scl=1,data=1,data =&gt;out<br />  <br /> out_data=0;     //=0<br /> delay_us(5);<br /> scl=0;         //ustwione na sztywno scl=0<br /> delay_us(5);<br /> <br /> //Potem zostanie:  scl=0,data=0,data =&gt;out<br />} <br />/*<br />////////////////////////////////////////////////////////////////////////////////////////////<br />Warunek zatrzymania gdy linia zegara jest w stanie wysokim <br />a linia danych w zboczu wzrastającym.<br />////////////////////////////////////////////////////////////////////////////////////////////<br />*/<br />void     ads1100_stop(void)<br />{            <br />  //---&gt; initial:scl=0 <br />    <br />  //Linie danych w odniesieniu do putout  get bus :data=0 =&gt;out<br />  io_dir(OUT);<br />  delay_us(10);<br />  out_data=0;<br />  delay_us(10);<br />        <br />  // scl=1 data=0=&gt;data=1 --&gt; cos tu sie nie zgadza<br />  scl=1;<br />  delay_us(10);     <br />  out_data=1;<br />  delay_us(10);  <br />  //na koniec:     scl=1,data=1,data =&gt;out<br />} <br />/*<br />////////////////////////////////////////////////////////////////////////////////////////////<br />ACKBY_ADS<br />*/<br />uchar    ackby_ads1100(void)<br />{                        <br /> unsigned char times=0;<br /> <br /> //start:scl=0 data=&gt;out <br /> //najprościej ---&gt; give up bus     setup data in     <br /><br /> io_dir(IN);     <br /> delay_us(5);  //ads1100 juz gotowy ??           <br /> <br /> //czekanie na ACK<br /> scl=1;  <br /> while((in_data==1)&amp;&amp;(times&lt;100))           //czekam na ads ack  --- data=0 <br /> {<br />    times++;<br /> }<br /> <br /> scl=0;                  //gotów<br /> delay_us(5);                             <br /> //czemu to nie działa ?:  scl=0;data &lt;in     <br /> if(times&gt;90)<br /> {<br />    return 0;<br /> }           <br /> else<br /> {<br />    return 1;<br /> }<br />} <br />/*<br />////////////////////////////////////////////////////////////////////////////////////////////<br />ACKBY_MASTER  --- dane ACK do wysłania <br />*/   <br />void     ackby_master(void)<br />{ <br /> //start:scl=0 <br /> //---&gt; get bus<br /> io_dir(OUT);<br /> <br /> //gotowe dane dla ack <br /> out_data=0;<br /> delay_us(5);  //gotowe dane <br /> <br /> scl=1;         //czekanie na ads  <br /> delay_us(10);              <br /> <br /> scl=0;     //gotowy na następne ??<br /> delay_us(5);      <br /> //finalnie powinno być tu: scl=0,data &gt;out<br />}      <br /><br />/*<br />========================================================================================<br />Wysyłka ramki<br />*/<br />void     send_frame(uchar framedata)<br />{<br /> unsigned char i;   <br /> <br /> //initial:scl=0  <br /> //----&gt; get bus<br /> io_dir(OUT);<br /> delay_us(10);<br />  <br />  for(i=0;i&lt;8;i++)<br />  {  <br />     scl=0;             //czekanie na nastepne scl=0      <br />     if(  ( (framedata &lt;&lt; i) &amp; 0x80) ==0 )<br />     {<br />         out_data=0;<br />     }             <br />     else<br />     {<br />         out_data=1;<br />     }      <br />     delay_us(5);     <br />     <br />     scl=1;           //suo shuju <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /> <br />     delay_us(5);     //czekanie az ads1100 odbierze dane            <br />  }                                                   <br />  scl=0;             //czekanie na nastepne  scl=0<br />//finally:scl=0,data getbus   <br />}  <br />/*<br />=============================================================== <br />Odczyt RAMKI<br />*/<br />uchar    read_frame(void)<br />{  <br /> uchar data=0,i; <br /> <br /> //start:scl=0; <br /> //najprościej ---&gt; give up bus     setup data in<br /> io_dir(IN);     <br /> delay_us(5);         //czekanie na gotowość ADS<br /> <br /> for(i=0;i&lt;8;i++)<br /> {<br />     scl=1;<br />     data=data&lt;&lt;1;            //bit0=0<br />     delay_us(5);           <br />     if(in_data==1)<br />     {<br />        data=data+1;<br />     }<br />     scl=0;               <br />     delay_us(5);         //czekanie na gotowość ADS<br /> }                 <br /> //fially:scl=0 data &lt;in <br /> return data;<br />}<br />/*<br />////////////////////////////////////////////////////////////////////////////////////////////<br />ZAPIS<br />*/<br />void     ads1100_write(unsigned char addr,unsigned char command)<br />{<br /> //addr=0x90;                          //1001 000 0<br /> <br /> //start<br /> ads1100_start();<br /> <br /> //wysłanie ramki --- addr      <br /> send_frame(addr); <br /> ackby_ads1100(); <br /> <br /> //wysłanie ramki --- command<br /> send_frame(command);<br /> ackby_ads1100();<br /> <br /> //stop <br /> ads1100_stop(); <br />}<br />/*<br />////////////////////////////////////////////////////////////////////////////////////////////<br />Odczyt <br />*/<br />unsigned int     ads1100_read(unsigned char addr)<br />{<br /> uint  data;<br /> uchar datah,datal,datac;<br /> //addr=0x91;                          //1001 000 1           <br /> <br /> //start<br /> ads1100_start();<br /> <br /> //wysanie ramki    addr      <br /> send_frame(addr);<br /> ackby_ads1100();<br /> <br /> //odczyt 8bitów danych ads1100 -- datah<br /> datah=read_frame();<br /> ackby_master();<br /> <br /> //odczyt 8bitów danych ads1100 -- datal<br /> datal=read_frame(); <br /> ackby_master();<br /> <br /> //odczyt 8bitów danych ads1100 -- datac<br /> datac=read_frame();  <br /> ackby_master(); <br /><br /> //stop <br /> ads1100_stop(); <br /> <br /> data=(((uint)datah)&lt;&lt;8) + datal;<br /> return data;<br />}<br />[/syntax]<br /><br />w każdym razie to mi działało , ale dałem sobie spokój z kostkami ADS11xx<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 6 lut 2012, o 21:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-02-06T21:03:09+01:00</updated>
<published>2012-02-06T21:03:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=122&amp;p=2419#p2419</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=122&amp;p=2419#p2419"/>
<title type="html"><![CDATA[Re: ADS1110 - problem z komunikacja]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=122&amp;p=2419#p2419"><![CDATA[
Przykro mi ale ja jestem w stanie pomóc tylko w przypadku pytań odnośnie bibliotek zawartych w książce. Nie z uwagi na to, że innych nie uznaję ale z prozaicznej przyczyny, nie mam czasu na analizę innego kodu. Dlatego nawet nie będę rozpatrywał co tu nie działa bo nie mam pewności co jest w tych bibliotekach....<br /><br />Proszę spróbować ew w oparciu o te z książki, z uwzględnieniem aktualizacji do kodów z książki/DVD która wprowadziła funkcję do ustawiania prędkości na magistrali I2C w kHz - a wtedy ja będę się mógł odnieść. A teraz to chyba że ktoś z kolegów się podejmie analizy.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 6 lut 2012, o 21:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Szlast]]></name></author>
<updated>2012-02-06T20:47:34+01:00</updated>
<published>2012-02-06T20:47:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=122&amp;p=2416#p2416</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=122&amp;p=2416#p2416"/>
<title type="html"><![CDATA[Re: ADS1110 - problem z komunikacja]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=122&amp;p=2416#p2416"><![CDATA[
Sesja, sesja i po sesji. Można w końcu walczyć dalej. Poćwiczyłem trochę z PCF8583 i ładnie współpracuje. Następnie wróciłem do ADS1110 i trochę udało się zdziałać. Pojawił się nowy problem, który nie jestem w stanie zrozumieć. Zastosowałem bibliotekę TWI z <!-- m --><a class="postlink" href="http://radzio.dxp.pl/twi/">http://radzio.dxp.pl/twi/</a><!-- m -->. Kod wygląda tak:<br /><br />[syntax]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;stdlib.h&gt;<br />#include &lt;inttypes.h&gt;<br />#include &quot;TWI.h&quot;<br />#include &quot;LCD.h&quot;<br /><br />#define Write  0x90 //adres ADS1110 do odczytu 0b10010000<br />#define Read  0x91 //adres ADS1110 do zapisu 0b100100001<br />#define Set 0x8c // 15 SPS i gain 1<br /><br />void TWI_inicjacja(void);<br /><br />int main(void)<br />{<br />   unsigned char High;<br />   unsigned char Low=0;<br />   uint16_t Rezultat=0;<br /><br />   DDRC |= (1&lt;&lt;PC4)|(1&lt;&lt;PC5);<br />   PORTC &amp;= ~(1&lt;&lt;PC4);<br />   PORTC |= (1&lt;&lt;PC5);<br />   lcd_init();<br />   lcd_cls();<br />   TWI_inicjacja();<br /><br />      while(1)<br />      {<br />      twistart();<br />      twiwrite(Write);<br />      twiwrite(Set);<br />      twistop();<br /><br />      twistart();<br />      twiwrite(Read);<br /><br />      High = twiread(ACK);<br />      Low  = twiread(NOACK);<br /><br />      twistop();<br />      Rezultat = (Low | (High &lt;&lt; 8));<br />      lcd_locate(0,0);<br />      lcd_str(&quot;Wynik: &quot;);<br />      lcd_int(Rezultat);<br /><br />      _delay_ms(200);<br />      lcd_cls();<br /><br />      }<br /><br />}<br />void TWI_inicjacja(void)<br />{<br />  TWSR =0b00000000;   <br /><br />  TWBR =0b00100000;<br />}[/syntax]<br /><br />Obecnie układ testuje na atmega8 z wewnętrznym oscylatorem 8MHz. Jesli na nożkę ADS1110 (-IN) dam GND, a (+IN)do potencjometru (czyli tak jak powinno być) , to na wyświetlaczu otrzymuje wartość 32768 i utrzymuje się aż do przekroczenia około 2,8 V zamienia się na 0 i po 5 sekundach program jakby się zawiesza bo wyświetlacz się czyści. Jeśli podłącze na (-IN)  VCC to na wyświetlaczu wraz z potencjometrem zmieniają się wartości z minusem przed liczba i na zakresie 5-3 V. Przy czym 3V to -32768. Dziękuję za zainteresowanie i pomoc!<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=163">Szlast</a> — 6 lut 2012, o 20:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-01-10T15:51:56+01:00</updated>
<published>2012-01-10T15:51:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=122&amp;p=1211#p1211</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=122&amp;p=1211#p1211"/>
<title type="html"><![CDATA[Re: ADS1110 - problem z komunikacja]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=122&amp;p=1211#p1211"><![CDATA[
Poza tym widać, że nie poczytałeś jeszcze dokładnie na temat komunikacji I2C w książce. Masz tam opisane i przygotowane funkcje wyższego rzędu do zapisu/odczytu całego bufora .... przejrzyj je dokładnie. A nie rzucasz niestety jakby na oślep granatem odłamkowym, pisząc jakieś tam TWI_START. READ, WRITE a co ciekawe w pętli głównej wciąż czyścisz LCD, wciąż ustawiasz prędkość na 100kHz - po co? prędkość ustawia się RAZ przy inicjalizacji. Zrozum więc proszę, że pośpiech tu nic nie pomoże - i bez zagłębienia się w temat - nie uda ci się przejść dalej a nam będzie nawet ciężko ci pomóc, chyba że oczekujesz gotowego kodu ? <br /><br />Kolega SunRiver udzielił ci dobrej wskazówki wcześniej, że trzeba najpierw zainicjalizować układ, ustawić rejestry, a gdzie to zrobiłeś/poprawiłeś ? Nic a nic się w tym kodzie nie zmieniło <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> .... Dlatego sam widzisz, że pośpiech jest złym doradcą.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 10 sty 2012, o 15:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2012-01-10T15:26:06+01:00</updated>
<published>2012-01-10T15:26:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=122&amp;p=1207#p1207</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=122&amp;p=1207#p1207"/>
<title type="html"><![CDATA[Re: ADS1110 - problem z komunikacja]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=122&amp;p=1207#p1207"><![CDATA[
nie dziwi mnie to specjalnie<br /><br />1. Nie widzę byś zapisywał konfiguracje do układu czyli tylko zdefiniowałeś sobie adres i to wszystko <br />2. Nie widzę byś cokolwiek odczytywał z układu  po prostu uruchomiłeś TWI i to wszystko<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 10 sty 2012, o 15:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Szlast]]></name></author>
<updated>2012-01-10T13:24:43+01:00</updated>
<published>2012-01-10T13:24:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=122&amp;p=1203#p1203</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=122&amp;p=1203#p1203"/>
<title type="html"><![CDATA[Re: ADS1110 - problem z komunikacja]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=122&amp;p=1203#p1203"><![CDATA[
Trochę się pospieszyłem z tym tematem. Przez sesje ciężko mi znaleźć czas by powalczyć, ale udało mi się zrobić konfigurację dla najmniejszej prędkości odczytu, oraz dla wzmocnienia =1. Układ ma służyć do pomiaru napięcia na termoparze, której sygnał zostanie wzmocniony. Narazie próbuje zmierzyć napięcie na potencjometrze. Adresy się zgadzają, mam układ z napisem na obudowie ED0 - czyli według pdf adresy to 0x90 i 0x91.  <br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;stdlib.h&gt;<br />#include &lt;inttypes.h&gt;<br />#include &quot;i2c_twi.h&quot;<br />#include &quot;LCD.h&quot;<br /><br />#define Write  0x90 //adres ADS1110 do odczytu 0b10010000<br />#define Read  0x91 //adres ADS1110 do zapisu 0b100100001<br />#define Set 0x8c // 15 SPS i gain 1<br /><br />int main(void)<br />{<br />   uint16_t High;<br />  // uint16_t Low=0;<br />  // uint16_t Rezultat = 1;<br /><br />   DDRC |= (1&lt;&lt;PC0)|(1&lt;&lt;PC1);<br />   PORTC |= (1&lt;&lt;PC0)|(1&lt;&lt;PC1);<br /><br />   lcd_init();<br /><br />      while(1)<br />      {<br />      lcd_cls();<br />      i2cSetBitrate(100);<br />      TWI_start();<br /><br />      TWI_write(Read);<br />      TWI_write(Set);<br /><br />      High = TWI_read(Write);<br />      //Low  = TWI_read(Write);<br />      TWI_stop();<br />      //Rezultat = (Low | (High &lt;&lt; 8));<br />      lcd_locate(0,0);<br />      lcd_str(&quot;Wynik: &quot;);<br />      lcd_int(High);<br /><br />      _delay_ms(500);<br /><br />      }<br /><br />}[/syntax]<br /><br />Nie mam narazie możliwości przetestować innych układów na I2C. Obecnie program przechodzi i jest wyświetlana wartość 255 cały czas. próbowałem odpalić inny program na ads1100 i też pojawia się te nieszczęsne 255.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=163">Szlast</a> — 10 sty 2012, o 13:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-01-06T23:45:01+01:00</updated>
<published>2012-01-06T23:45:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=122&amp;p=1102#p1102</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=122&amp;p=1102#p1102"/>
<title type="html"><![CDATA[Re: ADS1110 - problem z komunikacja]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=122&amp;p=1102#p1102"><![CDATA[
Jak można w ogóle rozpocząć &quot;ręcznie w tym przypadku&quot; procedurę odczytu, START, write - a potem dopiero ustawiać prędkość magistrali I2C ? (sorki ale szok).<br /><br />Po drugie musi kolega jednak dokładnie przeczytać rozdział o tym jak dokonuje się odczytu przez I2C na przykładach np z książki ale z pełnym zrozumieniem jak to działa od podstaw - bo widzę, że kolega po prostu - zobaczył jakieś tam biblioteki albo w necie albo w książce i na oślep próbuje coś tam zrobić - nie do końca wiedząc o co chodzi niestety <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br />Po trzecie - trzeba KONIECZNIE poczytać notę PDF swojego scalaka - a szczególnie pierwsze strony mówiące o zaszytych fabrycznych adresach I2C w zależności od modelu scalaka, no i PODSTAWA - szczególnie strony od 9 do 12 w nocie PDF, gdzie jest opisany dokładnie sposób komunikacji z tym scalakiem. Bo to co kolega zrobił tu w tym przykładowym kodzie to jakieś nieporozumienie genetyczne niestety <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br />No i w końcu to co pisze wyżej kolega SunRiver - strona 11 - czyli konfiguracja scalaka.....<br /><br />No tak - bez zrozumienia od podstaw tego wszystkiego to kolega tego nie da rady zrobić. Dlatego na początek warto może sobie kopić czy wyłupać skądś scalaczek PCF8583 i poćwiczyć kody z książki tak od deski do deski żeby dobrze zrozumieć zasady komunikacji I2C. Przynajmniej będzie miał wtedy kolega jakieś porównanie i punkt odniesienia.<br /><br />A tak ????? nie znając ni w ząb zagadnienia, próbuje kolega na chybił trafił jakieś tam polecenia bez składu i ładu wpisywać - to i nie dziwota - że nic nie działa. Zresztą tak na prawdę - to może by kolega napisał - co kolega w ogóle oczekuje po takim odczycie z tego scalaka - bo to jest bardzo ciekawe.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 6 sty 2012, o 23:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2012-01-06T23:10:21+01:00</updated>
<published>2012-01-06T23:10:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=122&amp;p=1101#p1101</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=122&amp;p=1101#p1101"/>
<title type="html"><![CDATA[Re: ADS1110 - problem z komunikacja]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=122&amp;p=1101#p1101"><![CDATA[
Umieszczaj źródła w znacznikach [syntax]  nie [Code] bo analiza czegoś takiego to katastrofa <br />2 chyba coś słabo czytałeś notę układu  -- gdzie masz konfigurację   str 11.  ??<br />jesteś pewny swoich adresów R/W ??     -- str 2.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 6 sty 2012, o 23:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Szlast]]></name></author>
<updated>2012-01-06T21:50:11+01:00</updated>
<published>2012-01-06T21:50:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=122&amp;p=1099#p1099</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=122&amp;p=1099#p1099"/>
<title type="html"><![CDATA[ADS1110 - problem z komunikacja]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=122&amp;p=1099#p1099"><![CDATA[
Witam wszystkich!<br /><br />Próbuje się skomunikować z przetwornikiem ADS1110, ale mimo rożnych kombinacji nie daje rady. Mikrokontroler to atmega32 z zewnętrznym taktowaniem 16MHz. Ukłąd podłączony tak jak nocie katalogowej. Zastosowałem na początku bibliotekę: <!-- m --><a class="postlink" href="http://radzio.dxp.pl/twi/">http://radzio.dxp.pl/twi/</a><!-- m -->, i kod z: <!-- m --><a class="postlink" href="http://www.elektroda.pl/rtvforum/topic1881738.html#9009345">http://www.elektroda.pl/rtvforum/topic1 ... ml#9009345</a><!-- m -->, program tak jakby się zawieszał w linijce gdzie szczytuje się dane:  High = twiread(ACK); jeśli nie ma tej linijki i sczytywania NACK program przechodzi. Zastosowałem następnie podobną bibliotekę Pana Mirosława i ten sam problem, dorzuciłem również funkcję:  i2cSetBitrate(uint16_t bitrateKHz) ustawiając na 100kH, ale nic to nie dało. Oto kod:<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;stdlib.h&gt;<br />#include &lt;inttypes.h&gt;<br />#include &quot;i2c_twi.h&quot;<br />#include &quot;LCD.h&quot;<br /><br />#define Write  0x90 //adres ADS1110 do odczytu 0b10010000<br />#define Read  0x91 //adres ADS1110 do zapisu 0b100100001<br /><br />int main(void)<br />{<br />   uint8_t High;<br />   uint8_t Low;<br />   int Rezultat = 0;<br /><br />   DDRC |= (1&lt;&lt;PC0)|(1&lt;&lt;PC1);<br />   PORTC |= (1&lt;&lt;PC0)|(1&lt;&lt;PC1);<br /><br />   lcd_init();<br /><br />      while(1)<br />      {<br />      TWI_start();<br />      TWI_write(Read);<br />      i2cSetBitrate(100);<br />      High = TWI_read(ACK);<br />      Low  = TWI_read(NACK);<br />      TWI_stop();<br />      Rezultat = (Low | (High &lt;&lt; 8));<br />      lcd_locate(0,0);<br />      lcd_str(&quot;Wynik: &quot;);<br />      lcd_int(Rezultat);<br /><br />      _delay_ms(50);<br /><br />      }<br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=163">Szlast</a> — 6 sty 2012, o 21:50</p><hr />
]]></content>
</entry>
</feed>