logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

PIC32MZ - Zewnętrzny ADC (65MSPS) podłączony do PIC32MZ

SquallLeonard 01 Lut 2015 17:12 2793 3
REKLAMA
  • #1 14391538
    SquallLeonard
    Poziom 8  
    Posty: 11
    Witam
    Czy ktoś na forum byłby wstanie odpowiedzieć mi na pytanie czy jest jakaś
    możliwość obsłużenia zewnętrznego przetwornika ADC z próbkowaniem 65MSPS za pomocą procesora PIC32MZ, próbowałem już kombinacji:
    EBI -> DMA -> MEM i osiągnąłem około 16MSPS
    PMP -> DMA -> MEM około 50MSPS (pojawiają się problemy przy wywołaniu przerwania, transfer zostaje zatrzymany pomimo: PLIB_DMA_ChannelXAutoEnable)

    Czysto zdroworozsądkowo nie powinno być problemów na procesorze z zegarem 200MHz ale w praktyce są :/
  • REKLAMA
  • #2 14396844
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #3 14397313
    SquallLeonard
    Poziom 8  
    Posty: 11
    Procesor niestety dostałem w "spadku" ja zastosował bym STM32F4 i też kombinował z FPGA. Niestety z uwagi na czas jaki został do końca pozostaje tylko PIC32MZ...

    Zdroworozsądkowo to z uwagi na DMA które może teoretycznie przesyłać z zegarem SYSCLK.
    Właściwie to udało mi się uzyskać 50MHz w układzie PMP -> DMA -> MEM i to jest wystarczające dla tego projektu:

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Widzę na oscyloskopie odczyty z interfejsu PMP z częstotliwością 50MHz, jednak problem pojawia się po przesłaniu "komórki" danych (ADC_TABLE_2SIZE = 32000), pomiędzy jednym a drugim transferem występuje luka 160ns która wydaje się być czasem potrzebnym dma na ponowne wyzwolenie.

    Czy jestem wstanie osiągnąć ciągły transfer z PMP do pamięci bez tego 160ns martwego pola?

    Może zamiast PMP powinienem wybrać bezpośredni transfer z portu np. B wyzwalany przerwaniem zewnętrznego zegara 50MHz.
  • #4 14870824
    SquallLeonard
    Poziom 8  
    Posty: 11
    Problem rozwiązałem przez zastosowanie zewnętrznego fifo na układzie sn74v215, teraz ADC ładuje sample do fifo z częstotliwością zegara ADC, a następnie PIC32MZ pobiera dane z fifo maksymalną częstotliwością PMP i nie mają już w tym przypadku znaczenia "przestoje" przy przeładowaniu DMA :)

    Temat Zamykam.
REKLAMA