eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronika › XMega, DMA i sygnał strobe
Ilość wypowiedzi w tym wątku: 11

  • 1. Data: 2010-06-27 19:00:21
    Temat: XMega, DMA i sygnał strobe
    Od: Dariusz Zolna <a...@u...com>

    Mam do XMega128A1 podłączony wyświetlacz z interfejsem równoległym, do
    obsługi którego chciałbym zaprząc DMA, jednak po ustawieniu danych na
    wyjściu muszę puścić sygnał strobe. Myślałem żeby zrobić to w przerwaniu
    DMA, ale jest ono generowane po przesłaniu bloku danych, a nie paczki
    (burst). W sumie mógłbym przesyłać te dane właśnie blokami po 2 bajty
    (16-bitowy interfejs do LCD) i w przerwaniu uruchamiać DMA dla kolejnych
    2 bajtów, ale nie wiem czy to będzie szybsze od standardowego
    przesyłania w pętli.
    Choć z drugiej strony bufor obrazu mam w zewnętrznym SDRAM, DMA ma
    24-bitowe adresy, a GCC tylko 16, więc tu pewnie byłby zysk.
    W każdym razie moje pytanie brzmi - czy jest jakaś możliwość
    wygenerowania sygnału strobe po każdej paczce (burst) przesłanej przez DMA?

    Dariusz Żołna


  • 2. Data: 2010-06-27 21:35:33
    Temat: Re: XMega, DMA i sygnał strobe
    Od: "newxmega" <m...@m...mm>


    "Dariusz Zolna" <a...@u...com> wrote in message
    news:i08744$88o$1@inews.gazeta.pl...

    Dobrze że się trafiłeś :-) ja ci nie pomogę z xmega, bo dopiero robię na nim
    projekt, właśnie na 128A1 ale chciałbym cie o coś zapytać jako, że jesteś o
    krok dalej :-) Zwykłe AVR-y znam dobrze :-)

    1. Czy to DMA w xmega kradnie cykle procesorowi? Czy jeżeli zapuszczę
    kopiowanie dużego obszaru zewnętrznej pamięci do innego obszaru tej pamięci
    lub do wewnętrznego SRAM czy procek idzie w odstawkę na ten czas?. jakoś
    nigdzie nie jest to jasno opisane czy np transfer DMA od SPi do UART-u
    (przykładowo) absorbuje egzekucję rozkazów z pamięci programów i dostep do
    rejestrów?

    2. Gdzie i za ile kupiłeś tani SDRAM? Jaki? 4 czy 8 bitowy? jaka pojemność?


  • 3. Data: 2010-06-27 23:56:35
    Temat: Re: XMega, DMA i sygnał strobe
    Od: "Marcin Wasilewski" <j...@a...pewnie.je.st>

    Użytkownik "newxmega" <m...@m...mm> napisał w wiadomości
    news:i08g5v$1g1$1@opal.futuro.pl...

    > 1. Czy to DMA w xmega kradnie cykle procesorowi? Czy jeżeli zapuszczę
    > kopiowanie dużego obszaru zewnętrznej pamięci do innego obszaru tej
    > pamięci lub do wewnętrznego SRAM czy procek idzie w odstawkę na ten
    > czas?. jakoś nigdzie nie jest to jasno opisane czy np transfer DMA od
    > SPi do UART-u (przykładowo) absorbuje egzekucję rozkazów z pamięci
    > programów i dostep do rejestrów?

    Jakby procek szedł w odstawkę to... to już by nie było DMA. Ponieważ
    pamięć programu jest inna (FLASH) to procek sobie normalnie wykonuje swój
    program, a jak potrzebuje odwołać się do SRAM, to przejmuje kontrolę nad
    magistralą pobiera dane i zwalnia magistralę, a wtedy kontroler DMA dalej
    dłubie swoje, a jak skończy to wygeneruje przerwanie, że znów się nudzi :)

    Więc jedyne co ci grozi to oczekiwanie 1 cyklu na przejęcie magistrali
    przez procesor, w momencie odwołania do SRAM.


  • 4. Data: 2010-06-28 12:49:32
    Temat: Re: XMega, DMA i sygnał strobe
    Od: "newxmega" <m...@m...mm>


    "Marcin Wasilewski" <j...@a...pewnie.je.st> wrote in message
    news:i08ofd$o07$1@news.task.gda.pl...
    > Użytkownik "newxmega" <m...@m...mm> napisał w wiadomości

    > Więc jedyne co ci grozi to oczekiwanie 1 cyklu na przejęcie magistrali
    > przez procesor, w momencie odwołania do SRAM.

    A peryferia? Przecież są zamapowane do przestrzeni wewnętrznej pamięci
    danych. Jeżeli procek -rdzeń się odwołuje dużo do ramu wewnątrz to co z
    uartami i innymi?


  • 5. Data: 2010-06-28 14:27:27
    Temat: Re: XMega, DMA i sygnał strobe
    Od: "Marcin Wasilewski" <j...@a...pewnie.je.st>

    Użytkownik "newxmega" <m...@m...mm> napisał w wiadomości
    news:i0a5nn$bhv$1@opal.futuro.pl...

    >> Użytkownik "newxmega" <m...@m...mm> napisał w wiadomości
    >> Więc jedyne co ci grozi to oczekiwanie 1 cyklu na przejęcie
    >> magistrali przez procesor, w momencie odwołania do SRAM.

    > A peryferia? Przecież są zamapowane do przestrzeni wewnętrznej pamięci
    > danych. Jeżeli procek -rdzeń się odwołuje dużo do ramu wewnątrz to co z
    > uartami i innymi?

    Nie jest to tak do końca jedna przestrzeń (przynajmniej dla części
    urządzeń I/O), gdyż działają dla nich instrukcje IN, OUT, które się
    wykonują w jednym cyklu, dla porównania STS i LDS (ich ekwiwalent dla
    urządzeń spoza I/O) wykonuje się 4 cykle (LD, ST - dwa cykle). Poza tym
    pomiędzy przestrzenią I/O i SRAM jest jeszcze przestrzeń EEPROM.

    Atmel jest niestety bardzo powściągliwy w swojej dokumentacji, niemniej
    DMA ma także dostęp do przestrzeni I/O i EEPROM. Więc tak do końca nie
    wiadomo jak to będzie.
    Jednak jest pewne, że:

    - to CPU ma wyższy priorytet nad DMA,
    - jeśli DMA zajmuje szynę, to CPU go od razu nie wytnie, tylko dopiero po
    zakończeniu aktualnego cyklu dostępu do pamięci, jednakże z uwagi na
    3-stopniwy pipelining procesor wie kilka taktów wcześniej, że będzie
    potrzebny dostęp do pamięci, więc pewnie jakieś działania w tym kierunku
    podejmuje. Kłopot może być w przypadku pętli i instrukcji wykonywanych
    bezpośrednio po skoku, ale jak pisałem, jedyne co ci grozi to +1 cykl
    oczekiwania na zwolnienie magistrali systemowej.





  • 6. Data: 2010-06-28 18:10:02
    Temat: Re: XMega, DMA i sygnał strobe
    Od: "newxmega" <m...@m...mm>


    "Marcin Wasilewski" <j...@a...pewnie.je.st> wrote in message
    news:i0abgb$2gg$1@news.task.gda.pl...

    > Atmel jest niestety bardzo powściągliwy w swojej dokumentacji, niemniej
    > DMA ma także dostęp do przestrzeni I/O i EEPROM. Więc tak do końca nie

    Właśnie. Ale czy widzisz jednak pomocną dłoń ze strony tego DMA?
    Gdyby pamięć była wieloportowa, rejestry też z możliwością odczytu
    równoczesnego z innymi to by coś to DMA dało ale jeżeli piszesz między dwoma
    SPI po DMA wielkimi burstami to czy możesz korzystać z z trzeciego SPI przez
    procesor i jak to wpływa jedno na drugie?


  • 7. Data: 2010-06-28 19:35:01
    Temat: Re: XMega, DMA i sygnał strobe
    Od: "Marcin Wasilewski" <j...@a...pewnie.je.st>

    Użytkownik "newxmega" <m...@m...mm> napisał w wiadomości
    news:i0aogk$sd1$1@opal.futuro.pl...
    >> Atmel jest niestety bardzo powściągliwy w swojej dokumentacji,
    >> niemniej DMA ma także dostęp do przestrzeni I/O i EEPROM. Więc tak do
    >> końca nie
    > Właśnie. Ale czy widzisz jednak pomocną dłoń ze strony tego DMA?

    Jest o tyle pomocna, że gdy potrzebujesz skopiować jakiś obszar pamięci
    (również z EEPROM do RAM), to inicjujesz proces i o nim "zapominasz". Jest
    też na pewno bardziej wydajne niż kopiowanie danych w pętli raz, że nie
    zajmujemy wtedy procesora, dwa, że odpada sprawdzanie warunku pętli, na co
    normalnie odpada trochę cykli.

    > Gdyby pamięć była wieloportowa, rejestry też z możliwością odczytu

    Tego nie możesz wykluczyć. To że w AT(X)MEGACH dostęp do rejestrów
    procesora i pewnej przestrzeni I/O jest dualny (wszystkie rejestry procesora
    oraz pewna część I/O widziana jest zarówno jako rejestry, jak też zarówno
    jako zwykła pamięć), tzn. że i "mov R17,R16" i "lds R17,16" i "sts 17,R16"
    da nam taki sam efekt:

    Proponuję obejrzeć w debugerze wykonanie poniższego kodu:

    ldi R16,$55
    mov R17,R16
    clr R17
    lds R17,16
    clr R17
    sts 17,R16

    To że dostęp do przestrzni I/O można zrobić poprzez instrukcje IN, OUT, czy
    też odwołać się do tego jak do zwykłej pamięci SRAM (z inną adresacją)
    oznacza raczej, że są jakieś mechanizmy dublujące dostęp do tego obszaru, co
    więcej instrukcje IN/OUT/MOV są szybsze, tak więc być może istnieje jakaś
    druga magistrala systemowa o np. szynie adresowej szerokości 7 bitów
    wspomagająca dostęp do tego obszaru. Kłopot w tym, że ATMEL nic szerzej na
    temat nie pisze, wspominając jedynie o podwójnym bycie tego obszaru.
    Zastanawiające jest, że nawet rejestry typu SPL/SPH, SR są umieszczone w
    przestrzeni I/O, a przecież wydawało by się, że są to rejestry bardzo silnie
    związane z jądra procesora.

    Chociaż teraz gdy w procku istnieje DMA łatwo to sprawdzić - zrobić
    procedurkę która cały czas mielić będzie po tym obszarze i liczyć po ilu
    taktach skończy się kopiować inny obszar po DMA.

    > równoczesnego z innymi to by coś to DMA dało ale jeżeli piszesz między
    > dwoma SPI po DMA wielkimi burstami to czy możesz korzystać z z
    > trzeciego SPI przez procesor i jak to wpływa jedno na drugie?

    No to pozostaje sprawdzić w realu niestety.


  • 8. Data: 2010-06-28 20:30:55
    Temat: Re: XMega, DMA i sygnał strobe
    Od: "newxmega" <m...@m...mm>


    "Marcin Wasilewski" <j...@a...pewnie.je.st> wrote in message
    news:i0ath1$8af$1@news.task.gda.pl...

    ja właśnie dumam nad urządzeniem. Zbawiennym okazało się 16 wejść ADC i 12
    bitów. Właściwie z tego powodu go biorę i z powodu 100 nóżek, no może 2
    sztuki SPI się przydadzą naraz.

    Czy używasz do czegoś tego mechanizmu zdarzeń routowanych niezależnie między
    peryferiami?

    I wracając do DMA. Czy dużp jest zachodu żeby zapuścić transfer ?

    Jak wygląda sprawa WINAVR 2010 i tego procka ? Czy są jakieś gotowe funkcje
    pod niego?


  • 9. Data: 2010-06-28 21:20:17
    Temat: Re: XMega, DMA i sygnał strobe
    Od: "Marcin Wasilewski" <j...@a...pewnie.je.st>

    Użytkownik "newxmega" <m...@m...mm> napisał w wiadomości
    news:i0b0on$hma$1@opal.futuro.pl...

    > Czy używasz do czegoś tego mechanizmu zdarzeń routowanych niezależnie
    > między peryferiami?

    Ja dopiero do przesiadki na ATXMEGA dojrzewam...

    Ale właśnie dotarłem do
    http://www.atmel.com/dyn/resources/prod_documents/do
    c8077.pdf
    i na stronie 23 i 24 jest opis, z którego jasno wynika, że jest bardzo
    dobrze:

    Data Memory and Bus Arbitration

    As the Data Memory organized as four separate sets of memories, the
    different bus masters

    (CPU, DMA Controller read and DMA Controller write) can access different
    memories at the

    same time. As Figure 4-3 on page 24 shows, the CPU can access the External
    Memory while

    the DMA (DMA) Controller is transferring data from Internal SRAM to I/O
    Memory.

    Czyli wynika do tego, że dostęp do:

    - wewnętrznej SRAM
    - zewnętrznej SRAM
    - I/O
    - EEPROM

    jest możliwy w tym samym czasie.

    > I wracając do DMA. Czy dużp jest zachodu żeby zapuścić transfer ?
    > Jak wygląda sprawa WINAVR 2010 i tego procka ? Czy są jakieś gotowe
    > funkcje pod niego?

    Nie wiem, ja to lubie sobie w assemblerze dłubać, do C się dopiero
    przymierzam.
    Co do zapuszczenia transferu, to kilka rejestrów wypełnić trzeba.


  • 10. Data: 2010-06-28 23:56:41
    Temat: Re: XMega, DMA i sygnał strobe
    Od: "newxmega" <m...@m...mm>


    "Marcin Wasilewski" <j...@a...pewnie.je.st> wrote in message
    news:i0b3md$bhq$1@news.task.gda.pl...

    > Czyli wynika do tego, że dostęp do:
    >
    > - wewnętrznej SRAM
    > - zewnętrznej SRAM
    > - I/O
    > - EEPROM

    Ten eeprom to i tak ma małe znaczenie.
    Fajnie, że procek umie wystawić adres w środku i na zewnątrz w pamieci
    danych, równocześnie. Czyli przyspieszenie jest.chociaż jak DMA się przyśsie
    do ramu, a procek będzie chciał wewnętrzny RAM -> LD, LDS, ST, STS to co się
    stanie ?
    Albo masz DMA pomiędzy dwoma SPI ale w środku siedzi szyfrowanie AES.
    Strumień sanych niczego sobie. Można sie pokusić o drugi taki strumień tylko
    z DES-em pośrodku. Co w takim razie sie stanie z przestrzenią I/O i z
    rywalizacją o busa?
    To są ciekawe zagadnienia :-) Może ktoś to gdzieś już opisał. Trzeba
    poszukać :-)

    > Nie wiem, ja to lubie sobie w assemblerze dłubać, do C się dopiero
    > przymierzam.

    Ja od wielu lat tylko w ASM pisałem. W C mam dopiero 1 projekt ale następny
    też będzie musiał być w C ze wzgledu na matematykę. Już się nie da pisać w
    asmie tego co chcę teraz.

    No i te PDF-y są jakby inaczej pisane niż tamte do zwykłych AVR-ów. tam
    zwykle były przykłady od razu. Szukałeś np TWI i był przykład jak
    zainicjować i jak wysłac. Tutaj rozdrobnili to na wiele plików.
    Coś tam sobie skrobię na nim. Jak DMA nie ruszy od razu to później bedę
    sukcesywnie przerabiał.

strony : [ 1 ] . 2


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: