Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

adsp-2181 i kilka pytań z nim związanych

18 Sty 2009 22:17 1793 8
  • Poziom 13  
    Witam...

    Na wstępie chciał bym podkreślić iż nie mam doświadczenia w pisaniu oprogramowania na procesory sygnałowe stąd niektóre pytania mogą się wydać trywialne, ale mimo to proszę o pomoc.
    Pisze programik zaliczeniowy (w C !) na ADSP-2181.. wykorzystuje do tego VisualDSP++ 3.5 16bit. Nie liczę na gotowy kod, a na wskazówki i podpowiedzi (chciał bym się też czegoś nauczyć).

    Program to bootloader dla tego procesora, który posiada nastepujące funkcje:

    1. Ładowanie programów (hex) do pamięci flash.
    2. Podgląd dowolnych komórek RAM i FLASH.
    3. Podgląd stanu portów we/wy z możliwością ich modyfikacji (zapewne D0-D23)
    4. Start procesora z uruchomionym programem ładowanym w pkt 1.

    Moje dotychczasowa walka pozwoliła mi napisać fragmenty kodów do kilku pkt. Wszystko co pisze mam możliwość testowania tylko programowym debuggerem - pan dr. stwierdził ze płytka mi do tego nie potrzebna ;)

    ad1)
    Ponieważ nie do końca znam architekturę tego procesora doszedłem do wniosku (czytając manuala) że pamięć flash moge obsłużyć przez BDMA port. Zapisując zawartość hexa w byte memory (BM). Nawet udało mi sie zapisać kilka bajtów do tej pamięci. Nie wiem jednak czy to dobry trop. Jeśli nie, to z czego najlepiej skorzystać ?

    ad2)
    Tutaj sytuacja podobna do tej powyzej. Kożystająć z BDMA moge czytać dowolnie BM (flasha?).... wyczytałem ze jest to w stanie czytać również RAM (PM i DM), ale nie doszedłem jak tego dokonać :(. Wszelkie sugestie wskazane.

    ad3)
    Tutaj nie wiem zupełnie jak sie za to zabrać. Domyślam się ze odczytywać mam również jakieś komórki pamięci (tylko jakie ?)

    ad4)
    Tutaj planuje skorzystać z BDMA booting, tyle że mam problem z implementacją do kodu :(.

    Jeśli ktokolwiek mógł by mi napisać cokolwiek pomocnego był bym naprawdę wdzięczny.

    Pozdrawiam
    Darmowe szkolenie: Ethernet w przemyśle dziś i jutro. Zarejestruj się za darmo.
  • Poziom 26  
    Nie wiem jaką masz płytkę, ale 2181 nie ma wewnętrznej pamięci FLASH - ma sam RAM. Nie wiem też, czy DSP jest jedynym procesorem w układzie i tak ma pracować, czy też współpracuje z jakimś hostem (czyli procesorem głównym, który ładuje program do DSP i odczytuje z niego dane). Pytanie też, czy można wykorzystać port IDMA do komunikacji między hostem a DSP.

    Napisz coś więcej o układzie, to postaram się ci pomóc.
  • Poziom 13  
    Płytka jaką dysponuje uczelnia to moduł uruchomieniowy ADSP-2181 EZ-KIT LITE ale zaznaczam, że pisze program i testuje póki co bez płytki.

    Jeśli się nie mylę to jest tam kostka FLASH podpięta jako pamięć zewnętrzna, i ją mam wykorzystać.

    Płytka będzie podłączona do kompa z uruchomionym VDSP (debug target -> ADSP-2181 EZ-ICE), i przez rs232 będę wysyłał i odbierał dane.

    Z IDMA można korzystać.
  • Poziom 26  
    Ponieważ nie wyjasniłeś swojej koncepcji, ani szczegółów układowych, spróbuje pobawić się w jasnowidza. Jeżeli w czymś się pomylę, to mnie sprostuj.

    Nie masz drugiego procesora. Układ składa się tylko z procesora DSP, a do odczytywania z niego danych chcesz użyć RS232. Program DSP chcesz składować w pamięci FLASH, dołączonej do niego przez port BDMA. Jeżeli się nie mylę, to jest to możliwe, ale progamowanie flasha musi być zewnętrzne. Procesor DSP go nie zaprogramuje, ponieważ nie będzie miał z czego wystartować, jeżeli flash będzie czysty. Chyba że ktoś umieści w nim bootloadera, który pozwoli załadowac kod programu do flasha.
    Nie znam EZ-KIT-a, nigdy go nie używałem. Wszystkie projekty robiłem na własnych zestawach uruchomieniowych. Jeżeli jest tam jakiś bootloader (mam nadzieję, że sprawdzisz, czy jest czy nie), to możesz go wykorzystać do załadowania do flasha twojej aplikacji. W ten sposób byłby załatwiony punkt 1.

    Podgłąd pamięci RAM i FLASH można zrobić bardzo łatwo, wystarczy, żeby twoja aplikacja obsługiwała stosowne komendy przesyłane przez RS232.

    Podgląd stanu portów - tak samo. Twoja aplikacja odczytuje stan portu ze stosownego rejestru i przesyła przez RS232 do PC. Modyfikacja w ten sam sposób - wysyłasz komendę z PC, a twoja aplikacja modyfikuje stosowny rejestr.

    Ostatni punkt - start procesora - nie rozumiem, przecież jeżeli zrobisz 3 wcześniejsze punkty, to ten masz już z głowy....

    A generalnie, na koniec jeszcze jedna uwaga: To wszystko co napisałem da się wyczytać z dokumentacji do procesora, którą warto PRZECZYTAĆ, przynajmniej rozdziały dotyczące startu procesora, dostępu do rejestrów, portu RS232 i obsługi pamięci zewnętrznej. Samo pobieżne przejrzenie nie wystarczy...
    Mam nadzieję, że udało mi się choć trochę ci pomóc.
    Pozdrawiam.
  • Poziom 13  
    Cytat:

    Nie masz drugiego procesora. Układ składa się tylko z procesora DSP, a do odczytywania z niego danych chcesz użyć RS232.


    To się zgadza.

    Cytat:

    Program DSP chcesz składować w pamięci FLASH, dołączonej do niego przez port BDMA. Jeżeli się nie mylę, to jest to możliwe, ale progamowanie flasha musi być zewnętrzne. Procesor DSP go nie zaprogramuje, ponieważ nie będzie miał z czego wystartować, jeżeli flash będzie czysty. Chyba że ktoś umieści w nim bootloadera, który pozwoli załadowac kod programu do flasha.


    To sie zgadza ale nie do końca. Programowanie flasha owszem musi być zewnętrzne i procesor tego nie zrobi. Dlatego musze napisać program który po odpaleniu na komputerze zrobi to za procesor. Ja do procka nic nie wysyłam (żadnych programów), mam tylko napisać aplikacje która bedzie sterowala tym całym zapisem do zewnetrznej pamieci flash z poziomu komputera (z programu VDSP++)

    adsp-2181 i kilka pytań z nim związanych
    Tak wyglada screen z mojego menu ;)

    wciskam 1 -> wysyła zawartość pliku hex do flasha
    wciskam 2 -> wpisuje co chce zczytać -> wyswietla na ekranie wartość zczytanej komórki.
    .
    wciskam 4 -> procesor zaczyna wykonywać program który wysyłałem w pkt.1

    Mam nadzieje ze ma to jakiś sens i jest wykonalne ?.

    Pozdrawiam
  • Poziom 26  
    Ale jakim cudem w takim razie program jest ładowany do flasha? W DSP musi być jakiś rodzaj bootloadera, bo korzystając z portu szeregowego nie dostaniesz siędo flash-a.
    A to co piszesz w VDSP, to nic innego jak aplikacja wykonywana przez procesor DSP.
    Proponowałbym ci się przyjrzeć instrukcji obsługi do VDSP i EZ-KIT. Pewnie znajdziesz tam odpowiedzi na swoje pytania.
  • Poziom 25  
    Intel napisał:
    Płytka jaką dysponuje uczelnia to moduł uruchomieniowy ADSP-2181 EZ-KIT LITE ale zaznaczam, że pisze program i testuje póki co bez płytki.......Płytka będzie podłączona do kompa z uruchomionym VDSP ....., i przez rs232 będę wysyłał i odbierał dane.

    Witam
    mam ten zestaw w domu ale przyznam się, że ostatnio się nim nie bawiłem.

    Jednak ten EZ-KIT nie posiada pamięci FLASH tylko EPROM z zaszytym w niej programem do ładowania i uruchamiania programów przez RS232 (taki mały DSP-BIOS).
    Jeśli masz dokumentacje i soft do zestawu (chyba 2 dyskietki - jak nie to już go kiedyś na elke wrzucałem) to tam znajdziesz żródła bootloadera jednak tylko w asemblerze !!!! (ale nie chodzi mi o VisualDSP++).

    Każdy program po skompilowania do pliku z rozszerzeniem *.exe (odpowiedni format do ładowania - nie uruchamiania !!! na PC) jest ładowany do wewnętrznej pamięci RAM ADSP-eka (a ma on jej 80k-słów) przez prosty programik okienkowy (dział pod DOS i W98, czy XP tego nie wiem - bo nie testowałem).
    Następnie wykonywany jest skok do początku programu (adresy ładowania) i kod (użytkownika, ładowanego programu )zostaje uruchomiony.
    W tym zestawie nie ma innej możliwości (poza zewnętrznym JTAG i BDMA - których sygnały wyprowadzono na złącze).

    Więcej raczej nie pomogę bo pisałem proste programiki w asemblerze na własne potrzeby nie na zaliczenia.

    Opisałem to trochę chaotycznie, ale jak znasz podstawy budowy i działania DSP Analog-a to będziesz wiedział o co chodzi.
  • Poziom 13  
    Małe sprostowanie... Układzik pod który pisze to zmodyfikowany układ uruchomieniowy EZ-kit. Ma on dołożony flash.

    Jako ułatwienie zostałem poinformowany ze mogę skorzystać z gotowego projektu i że napewno bedzie działać ;)

    C:\Program Files\Analog Devices\VisualDSP 3.5 16-Bit\218x\Examples\vcse\FlashMemory

    I tu moje pytanie. Czy trzeba tutaj wielu przeróbek skoro program jest pisany pod 2189 ? Przypominam ze ja pisze pod 2181.

    Pozdrawiam
  • Poziom 26  
    Jak zwykle w takim przypadku, na twoje pytanie jest tylko jedna odpowiedź: przeczytaj datasheeta do obu procków.