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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-12-23T17:42:55+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=5240&amp;mode</id>
<entry>
<author><name><![CDATA[Janadamis]]></name></author>
<updated>2013-12-23T17:42:55+01:00</updated>
<published>2013-12-23T17:42:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5240&amp;p=62154#p62154</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5240&amp;p=62154#p62154"/>
<title type="html"><![CDATA[Re: Atmega32 i obsługa pamięci SRAM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5240&amp;p=62154#p62154"><![CDATA[
Słuchajcie ale babola zrobiłem... Sam w to nie mogę uwierzyć.<br />Przy odczycie danych z pamięci SRAM ja odczytywałem z PORTA zamiast PINA. A to jest duża różnica. Ale ze mnie gapa....<br />Teraz program działa świetnie i nie ma w nim ani jednej funkcji &quot;nop&quot;. Dla potwierdzenia komunikacji z SRAM zapisałem do niej 12wartości do 12 komórek po czym je odczytałem. Wszystkie dane odczytane zgadzają się.<br />Wielkie dzięki wszystkim za pomoc. A szczególnie koledze Zaba <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=288">Janadamis</a> — 23 gru 2013, o 17:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Janadamis]]></name></author>
<updated>2013-12-23T12:18:04+01:00</updated>
<published>2013-12-23T12:18:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5240&amp;p=62128#p62128</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5240&amp;p=62128#p62128"/>
<title type="html"><![CDATA[Re: Atmega32 i obsługa pamięci SRAM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5240&amp;p=62128#p62128"><![CDATA[
rafik+ a mógłbyś pokazać samą funkcje do odczytywania z pamięci?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=288">Janadamis</a> — 23 gru 2013, o 12:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Janadamis]]></name></author>
<updated>2013-12-23T10:24:24+01:00</updated>
<published>2013-12-23T10:24:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5240&amp;p=62119#p62119</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5240&amp;p=62119#p62119"/>
<title type="html"><![CDATA[Re: Atmega32 i obsługa pamięci SRAM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5240&amp;p=62119#p62119"><![CDATA[
Witam<br />Wielkie dzięki za pomoc.<br />Kolega Zaba podał mi świetny link do projektu analizatora który posiada pamięć SRAM 32kB. Tam jest podobna pamięć ale sygnały sterujące jak i formy zapisu/odczytu ma te same. Udało mi się zdobyć program od tego analizatora tam w programie jest to w prosty sposób przedstawione. Są tam również bramki ale to jest akurat mi niepotrzebne. Więc jest to najlepsza propozycja. Wielkie dzięki.<br /><br />Co do pracy krokowej to pomyślę nad tym ale najpierw przetestuje program z EP<br /><br />rafik- Ja latcha nie posiadam bo poco mi? Skoro uC wystawia stabilne stany. Mówisz że ty zrobiłeś taką obsługę, ale sprzętowo czy programowo? Bo ja nie mogę tego zrobić sprzętowo bo za dużo kombinacji by było gdyż jest to nieco rozbudowany projekt.<br />Schematu nie pokaże bo nie mam eagla. A po za tym nie wiem czy on posiada taką obudowę pamięci SRAM.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=288">Janadamis</a> — 23 gru 2013, o 10:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rafik]]></name></author>
<updated>2013-12-23T08:25:43+01:00</updated>
<published>2013-12-23T08:25:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5240&amp;p=62113#p62113</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5240&amp;p=62113#p62113"/>
<title type="html"><![CDATA[Re: Atmega32 i obsługa pamięci SRAM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5240&amp;p=62113#p62113"><![CDATA[
pokaż schemat ,będzie łatwiej ..<br /><br />po za tym ,mam podobną konfigurację (M32+SRAM) i w kodzie trzeba dodać asm volatile (&quot;nop&quot;); przy sterowaniu latchem(zakładam że masz) ,oraz przy sterowaniu pinem RD/WR pamięci<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=899">rafik</a> — 23 gru 2013, o 08:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[micky]]></name></author>
<updated>2013-12-22T23:42:29+01:00</updated>
<published>2013-12-22T23:42:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5240&amp;p=62104#p62104</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5240&amp;p=62104#p62104"/>
<title type="html"><![CDATA[Re: Atmega32 i obsługa pamięci SRAM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5240&amp;p=62104#p62104"><![CDATA[
Ram przy starcie ma smieci. Dlatego zawsze komputerki ja sprawdzaja a potem inicjalizuja <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> RAM obsluzysz bez problemu. Roznica miedzy obsluga sprzetowa a programowa polega na szybkosci i wygody uzycia (na korzysc obslugi sprzetowej). Potestuj tak jak proponuje kolega Krish - bedziesz mial wtedy podglad co sie dzieje. Jezeli przy pracy krokowej wszystko bedzie dzialac prawidlowo to problemem beda zaleznosci czasowe. <br />Wpadl mi jeszcze inny pomysł - ale to tak na marginesie - mozna zrobic przystawke typu SloMo <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> wtedy bys sobie spowolnil procka. <br /><br /><br />Sent from my mobile.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1546">micky</a> — 22 gru 2013, o 23:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krish]]></name></author>
<updated>2013-12-22T22:20:56+01:00</updated>
<published>2013-12-22T22:20:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5240&amp;p=62095#p62095</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5240&amp;p=62095#p62095"/>
<title type="html"><![CDATA[Re: Atmega32 i obsługa pamięci SRAM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5240&amp;p=62095#p62095"><![CDATA[
Witam<br />Jeżeli inne metody zawiodły, to w takim przypadku można zastosować metodę krokową,<br />to jest:<br />1. wystawić na linie adresowe stan 0x00<br />2. wystawić na linię danych np. 0x55 lub 0xaa ( STOP)<br />3. sprawdzić próbnikiem stanów (lub w ostateczności woltomierzem ) czy na pinach pamięci są prawidłowe stany! <br />4. wystawić sygnały sterujące na &quot;0&quot; ( /CE, /OE i /WE ) (STOP)<br />5. sprawdzić te stany na pinach pamięci.<br />6.  wystawić sygnały sterujące na &quot;1&quot; ( /CE, /OE i /WE )<br />po tym kroku mamy zapisane np. 0xaa w komórce o adresie 0.<br />następnie wykonujemy podobne kroki dla operacji odczytu.<br />Oczywiście metoda  ta wymaga oprogramowania np. przycisku do wykonania kroku ( do kolejnego STOP ), lub wgrywania do procesora kolejnych wersji programu.<br />A propos kodu to w funkcji  Write_Data  najpierw należy ustawić ADRES_PORT i DATA_PORT a potem dopiero przełączać wyjście sterujące IC_WE.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2273">krish</a> — 22 gru 2013, o 22:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Zaba]]></name></author>
<updated>2013-12-22T20:53:22+01:00</updated>
<published>2013-12-22T20:53:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5240&amp;p=62081#p62081</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5240&amp;p=62081#p62081"/>
<title type="html"><![CDATA[Re: Atmega32 i obsługa pamięci SRAM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5240&amp;p=62081#p62081"><![CDATA[
Tego niestety też nie wiem ale <br />ram na początku to pewnie ma śmieci tak jak w PC<br />To są wszystko tylko moje domysły jeszcze nie próbowałem<br />takiej obsługi pamięci przez uC.<br />Może to trochę Ci pomoże ,podejście inne ale artykół<br />w podobnym temacie<br /><a href="http://ep.com.pl/files/4124.pdf"  class="postlink">http://ep.com.pl/files/4124.pdf</a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1044">Zaba</a> — 22 gru 2013, o 20:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Janadamis]]></name></author>
<updated>2013-12-22T20:42:21+01:00</updated>
<published>2013-12-22T20:42:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5240&amp;p=62080#p62080</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5240&amp;p=62080#p62080"/>
<title type="html"><![CDATA[Re: Atmega32 i obsługa pamięci SRAM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5240&amp;p=62080#p62080"><![CDATA[
<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />powodzenia ...<br /></div><br />Nie robiłem nigdy obsługi takiej pamięci więc nie mam dobrej znajomości z tego zakresu. Co według ciebie tutaj się nie uda? Co powinienem wiedzieć a czego nie wiem? Skąd mam wziąć te wiedzę? Czemu to według mojego planu nie ma prawa działać?<br /><br /><br />Zaba- Fakt trochę zajmuje czasu to, ale przecież moja atmega nie jest aż taka szybka. Spróbuję dać jakieś opóźnienia. Tylko że dla odczytu lub zapisu w nocie pdf są podane 2 rodzaje form i nie wiem od czego one zależą. oraz jakie wartości ma na początku w każdej komórce. Wtedy Skupił bym się na odczycie a potem na zapisie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=288">Janadamis</a> — 22 gru 2013, o 20:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Zaba]]></name></author>
<updated>2013-12-22T19:39:04+01:00</updated>
<published>2013-12-22T19:39:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5240&amp;p=62072#p62072</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5240&amp;p=62072#p62072"/>
<title type="html"><![CDATA[Re: Atmega32 i obsługa pamięci SRAM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5240&amp;p=62072#p62072"><![CDATA[
Witam<br />Może czasowo coś nie pasuje (przy zapisie/odczycie) pomiędzy ustalaniem adresu i danych<br /><br />Spróbuj wstawić jakieś opóźnienia (wait state) żeby poczekać na ustalenie danych<br /><br />Nie jestem pewien w jakim czasie AVR zmienia stany na wyjściach ale według<br />pdf-a który podałeś najdłuższy czas jest pomiędzy zboczem opadającym<br />a zboczem narastającym sygnału WE 10ns (pulse width low) , no i oczywiście<br />czas ustalenia danych tDW zanim sygnał WE zatrzaśnie dane w rejestrach.<br /><br />Może się mylę ale warto sprawdzić <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=1044">Zaba</a> — 22 gru 2013, o 19:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2013-12-22T19:32:14+01:00</updated>
<published>2013-12-22T19:32:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5240&amp;p=62070#p62070</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5240&amp;p=62070#p62070"/>
<title type="html"><![CDATA[Re: Atmega32 i obsługa pamięci SRAM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5240&amp;p=62070#p62070"><![CDATA[
powodzenia ...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 22 gru 2013, o 19:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Janadamis]]></name></author>
<updated>2013-12-22T18:48:53+01:00</updated>
<published>2013-12-22T18:48:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5240&amp;p=62065#p62065</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5240&amp;p=62065#p62065"/>
<title type="html"><![CDATA[Re: Atmega32 i obsługa pamięci SRAM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5240&amp;p=62065#p62065"><![CDATA[
Wiem ze atmega32 nie obsługuje zewnętrznej pamięci. Ja chcę ja obsłużyć programowo tak jak normalnie urządzenie podpięte do uC.<br />Czemu muszę użyć multiplexera? 64k? Chodzi Ci oto że braknie mi miejsca na podłączenie wszystkich bitów linii adresowych?. Na razie mnie to nie obchodzi gdyż chcę najpierw obsłużyć tę pamięć<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=288">Janadamis</a> — 22 gru 2013, o 18:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2013-12-22T18:38:56+01:00</updated>
<published>2013-12-22T18:38:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5240&amp;p=62062#p62062</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5240&amp;p=62062#p62062"/>
<title type="html"><![CDATA[Re: Atmega32 i obsługa pamięci SRAM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5240&amp;p=62062#p62062"><![CDATA[
Ale ty wiesz o tym że m32 nie obsługuje zewnętrznej pamięci ?? <br />tylko kilka Atmeg to potrafi  128, 162 np ale i tak musisz uzyć multplexera i masz dostęp do 64k<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 22 gru 2013, o 18:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Janadamis]]></name></author>
<updated>2013-12-22T18:24:28+01:00</updated>
<published>2013-12-22T18:24:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5240&amp;p=62060#p62060</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5240&amp;p=62060#p62060"/>
<title type="html"><![CDATA[Atmega32 i obsługa pamięci SRAM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5240&amp;p=62060#p62060"><![CDATA[
Witam<br />Kilka dni temu przyszły do mnie nowe pamięci SRAM. Od tamtej pory próbuje ja uruchomić lecz bezskutecznie <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br />Na początek wypis danych:<br />pamięć SRAM  AS7C34096A-10TCN   <a href="http://www.tme.eu/pl/Document/a3daa9eaabe46ccf602e123a87747c26/AS7C34096A.pdf"  class="postlink">http://www.tme.eu/pl/Document/a3daa9eaabe46ccf602e123a87747c26/AS7C34096A.pdf</a><br />Atmega32 taktowany wewnętrznie 8Mhz<br />Biblioteka do obsługi wyświetlacza lcd jest z książki.<br /><br />Pamięć ta posiada 8bitową magistralę danych którą podłączyłem do całego portu A w uC. Natomiast magistralę danych 19bitową rozdzieliłem na 8bitów młodszych podłączyłem do uC na cały port D a resztę bitów podłączyłem bezpośrednio do masy. Piny sterujące podłączyłem do portu B. Wyczytałem w nocie pdf że wszystkie jej porty są kompatybilne TTL więc podłączone są bezpośrednio pod uC. Natomiast zasilanie pamięci jest podłączone poprzez stabilizator na 3,3V.<br />I napisałem prosty program który zapisuje dwie wartości do dwóch komórek a następnie je odczytuje. Jednak on nie działa.<br />Program:<br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 2013-12-20<br /> *      Author: Janadamis<br /> */<br /><br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &quot;LCD/lcd44780.h&quot;<br /><br /><br />//konfiguracja pinów sterujących pamięć SRAM<br />#define IC_CE (1&lt;&lt;PB0)<br />#define IC_WE (1&lt;&lt;PB1)<br />#define IC_OE (1&lt;&lt;PB2)<br /><br /><br />//konfiguracja szyn danych oraz adresowych<br />#define DATA_PORT PORTA<br />#define DATA_IO_PORT DDRA<br /><br />#define ADRES_PORT PORTD<br />#define ADRES_IO_PORT DDRD<br /><br /><br />inline void Write_Data(uint8_t adres, uint8_t data)<br />{<br />DATA_IO_PORT = 0xff;//Ustawienie szyny danych na wyjście<br />PORTB &amp;= ~IC_CE;<br />ADRES_PORT = adres;<br />PORTB &amp;= ~IC_WE;<br />DATA_PORT = data;<br />PORTB |= IC_WE;<br />PORTB |= IC_CE;<br />DATA_IO_PORT = 0x00;//Ustawienie szyny danych na wejście<br />}<br /><br />inline uint8_t Read_Data(uint8_t adres)<br />{<br />uint8_t data;<br />ADRES_PORT = adres;<br />PORTB &amp;= ~IC_CE;<br />PORTB &amp;= ~IC_OE;<br />data = DATA_PORT;<br />PORTB |= IC_CE;<br />PORTB |= IC_OE;<br />return data;<br />}<br /><br />uint8_t wynika=2;<br />uint8_t wynikb=8;<br /><br />int main(void)<br />{<br />lcd_init();// Inicjalizacja LCD<br />lcd_on();// Włączenie podświetlenia dla LCD<br /><br />lcd_locate(0,1);<br />lcd_str(&quot;Test pamieci SRAM&quot;);<br /><br />DDRB |= (1&lt;&lt;IC_CE) | (1&lt;&lt;IC_WE) | (1&lt;&lt;IC_OE);//Piny sterujące jako wyjścia<br />PORTB |= (1&lt;&lt;IC_CE) | (1&lt;&lt;IC_WE) | (1&lt;&lt;IC_OE);//Pociągnięcie do VCC<br /><br />ADRES_IO_PORT = 0xff;//Szyna adresowa jako wyjście<br /><br />DATA_PORT= 0xff;//Pociągnięcie szyny danych do VCC<br />ADRES_PORT= 0xff;//Pociągnięcie szyny adresowej do VCC<br /><br /><br />DDRB |= (1&lt;&lt;PB3);//Wyjscie dioda led kontrolna<br />PORTB |= (1&lt;&lt;PB3);//Pociągnięcie do VCC<br />/////////////////////////////////////////////////////////////////////////////////////////////<br /><br /><br /><br />Write_Data(5,25);//Zapis do pamięci SRAM<br />Write_Data(7,83);//Zapis do pamięci SRAM<br /><br />_delay_ms(100);<br /><br />wynika = Read_Data(5);//Odczyt z pamięci SRAM<br />wynikb = Read_Data(7);//Odczyt z pamięci SRAM<br /><br /><br />lcd_locate(1,2);<br />lcd_int(wynika);//Wyświetl pierwszy wynika<br />lcd_locate(2,2);<br />lcd_int(wynikb);//Wyświetl drugi wynikb<br /><br /><br />while(1)<br />{<br />PORTB &amp;= ~(1&lt;&lt;PB3);//Zapal diodę<br />_delay_ms(1000);<br />PORTB |= (1&lt;&lt;PB3);//Zgaś diodę<br />_delay_ms(1000);<br />}<br />}[/syntax]<br />Program w pętli while jest tylko tak dla zobrazowania czy uC działa poprawnie.<br />Jako pierwszy i drugi wynik na wyświetlaczu jest napisane 83. Domyślam się ze jest to powodem tego ze jest to druga wartość jaką uC zapisuje do pamięci, więc ona pozostaje na portach uC. Z tego widać że pamięć nic nie wysyła na tych liniach<br />To znaczy że pamięć w ogóle nie daje znaku życia. <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br />Na pewno coś pokopałem z ustawieniem kolejności podawania adresu danych i sygnałów sterujących.<br />Dlatego proszę o pomoc<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=288">Janadamis</a> — 22 gru 2013, o 18:24</p><hr />
]]></content>
</entry>
</feed>