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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-01-30T23:59:51+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=17329&amp;mode</id>
<entry>
<author><name><![CDATA[Batat]]></name></author>
<updated>2017-01-30T23:59:51+01:00</updated>
<published>2017-01-30T23:59:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17329&amp;p=181297#p181297</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17329&amp;p=181297#p181297"/>
<title type="html"><![CDATA[Re: XMEGA128A1U - EBI SRAM LPC 2-port]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17329&amp;p=181297#p181297"><![CDATA[
Problem rozwiązany. <br />Błąd natury sprzętowej zrodzony podczas tworzenia elementu bibliotecznego kości pamięci, zamieniłem wtedy miejscami piny CE i OE, a później podczas weryfikacji nie zauważyłem tego. Wcześniej sprawdzałem wszystko według schematu, a porównując do niego, całość była prawidłowa. Błąd z tych głupich, a takie najtrudniej zlokalizować.<br />Teraz wszystko jest jasne i klarowne, działało prawidłowo, sygnał CS układ dostawał tylko w przypadku odczytu, dlatego zapis się nie dokonywał.<br /><br />Nurtował mnie ten problem tym bardziej, że układ SSD1963 w trybie 8 bitowym po podłączeniu do EBI i modyfikacji programu (przede wszystkim funkcji niskopoziomowych) działał wyśmienicie, nawet po przetaktowaniu uC do 50 MHz (EBI 100 MHz), a zwykła pamięć SRAM już nie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2226">Batat</a> — 30 sty 2017, o 23:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Batat]]></name></author>
<updated>2017-01-15T17:07:53+01:00</updated>
<published>2017-01-15T17:07:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17329&amp;p=179906#p179906</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17329&amp;p=179906#p179906"/>
<title type="html"><![CDATA[XMEGA128A1U - EBI SRAM LPC 2-port]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17329&amp;p=179906#p179906"><![CDATA[
Witam forumowiczów  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br /><br />Mam niemały problem z obsługą pamięci SRAM (<a href="http://www.tme.eu/pl/Document/a3daa9eaabe46ccf602e123a87747c26/AS7C34096A.pdf"  class="postlink">AS7C34096A</a>) podłączonej do uC XMEGA128A1U poprzez interfejs EBI w trybie LPC 2 portowym. Schemat podłączenia jest praktycznie identyczny z modułem &quot;XMEGA A1U Xplained Pro&quot;, którego schemat można znaleźć na stronie atmel.com lub <a href="http://www.avrfreaks.net/sites/default/files/forum_attachments/XMEGA_A1U_Xplained_Pro_design_documentation_release_rev2.pdf"  class="postlink">pod tym linkiem</a>.<br /><br />Teraz do rzeczy - wygląda na to, że komunikacja z układem SRAM działa, dane z konkretnej komórki pamięci program odczytuje zawsze takie same (bez zaniku zasilania pomiędzy odczytami). Jednak przy próbie zapisu (nieważne pod jaki adres) dane nie ulegają zmianie (po odczytaniu nadal mają poprzednią wartość). Nawet próbowałem zapisu całej pamięci jedną wartością, gdyby problemem było adresowanie, ale przy odczycie dane nadal były takie same.<br />Sygnały do układu dochodzą prawidłowe, sprawdzałem analizatorem stanów logicznych.<br /><br />Program nie jest skomplikowany z racji sprzętowej obsługi EBI, tworzony był na podstawie noty katalogowej i książki &quot;AVR Układy peryferyjne&quot;:<br /><br />Inicjalizacja EBI:<br />[syntax=c]#define SRAM_CTRL_PORTPORTH<br />#define SRAM_DATA_PORTPORTJ<br /><br />#define SRAM_ALE12_WE_bmPIN0_bm<br />#define SRAM_ALE12_RE_bmPIN1_bm<br />#define SRAM_ALE12_ALE1_bmPIN2_bm<br />#define SRAM_ALE12_ALE2_bmPIN3_bm<br />#define SRAM_ALE12_A16_bmPIN4_bm<br />#define SRAM_ALE12_A17_bmPIN5_bm<br />#define SRAM_ALE12_A18_bmPIN6_bm<br /><br />void SRAM_Init(void)<br />{<br />SRAM_CTRL_PORT.OUTSET=SRAM_ALE12_WE_bm | SRAM_ALE12_RE_bm |// sygnały RE, WE<br />SRAM_ALE12_ALE1_bm | SRAM_ALE12_ALE2_bm;// ALE1, ALE2 w stanie wysokim<br />SRAM_CTRL_PORT.OUTSET=SRAM_ALE12_A16_bm | SRAM_ALE12_A17_bm;// sygnały A16, A17 w stanie niskim<br />SRAM_CTRL_PORT.DIRSET=0xFF;// sygnały sterujące (oraz adresowe A16, A17) jako wyjścia<br />SRAM_DATA_PORT.DIRSET=0xFF;// linie danych/adresowe jako wyjścia<br /><br />EBI.CTRL=EBI_LPCMODE_ALE12_gc | EBI_IFMODE_2PORT_gc;// tryb SRAM LPC 2 portowy - z wykorzystaniem ALE 1 i 2<br /><br />EBI.CS2.CTRLB=EBI_CS_SRWS_1CLK_gc;// 1 takt oczekiwania<br />EBI.CS2.CTRLA=EBI_CS_ASPACE_256KB_gc | EBI_CS_MODE_LPC_gc;// wielkość pamięci 256KB x 8bit, typ SRAM LPC<br />EBI.CS2.BASEADDR=(0x00000UL &gt;&gt; 8) &amp; 0xFFF0;// adres początku pamięci w przestrzeni adresowej<br />}[/syntax]<br /><br />Main:<br />[syntax=c]volatile uint8_t temp;<br /><br />int main(void)<br />{<br />PORTA.DIRSET=PIN6_bm | PIN7_bm;<br />SRAM_Init();// inicjalizacja pamięci SRAM LPC 2-port<br /><br />//volatile uint8_t *sram_ptr = 0x8001;<br />//*sram_ptr=63;<br />//temp=*sram_ptr;<br /><br />volatile uint8_t val;<br />hugemem_write8(0x10001, 63);<br />val = hugemem_read8(0x10001);<br /><br />if(val == 63) PORTA.OUTSET=PIN6_bm;<br />else PORTA.OUTSET=PIN7_bm;<br /><br />while(1)<br />    {<br />    }<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2226">Batat</a> — 15 sty 2017, o 17:07</p><hr />
]]></content>
</entry>
</feed>