Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Europejski lider sprzedaży techniki i elektroniki.
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

komunikacja pomiędzy dwoma STR7

jedrek_1981 11 Wrz 2007 08:23 1421 6
  • #1 11 Wrz 2007 08:23
    jedrek_1981
    Poziom 12  

    Witam.
    W projekcie wykorzystuje dwa procesory ARM firmy STMicroelectronics (STR711 i STR712). Teraz muszę zrealizować komunikację pomiędzy nimi. W jednym z procesorów mam wszystkie UART-y zajęte, więc komunikacja szeregowa UART odpada. Procesory będą umieszczone na jednej płytce lub ewentualnie na dwóch płytkach połączonych krótką taśemką. Chodzi tutaj więc o jakąś lokalną magistralę. Prędkość komunikacji pomiędzy nimi powinna być w miarę szybka (powyżej 1Mb/s). Zatem I2C też odpada. Czy zatem pozostaje mi SPI tylko?? Bo łączenie za pomocą portów I/O to chyba za dużo zabawy i programowa obsługa przy takich prędkościach to zbyt duże obciążenie. Chętnie posłucham jakiś waszych propozycji.

    0 6
  • #2 11 Wrz 2007 08:55
    Dr_DEAD
    Poziom 28  

    SPI to wspaniały interfejs, właśnie do takich celów stworzony, doprawdy nie wiem czemu z taką niechęcią na niego patrzysz. Nawet bym nie spojżał na nic innego. Chcesz mieć bezpieczną komunikację? Składasz sobie własną ramkę, dodajesz sumę kontrolną na końcu i po sprawie.

    0
  • #3 11 Wrz 2007 09:29
    jedrek_1981
    Poziom 12  

    Nie to, żebym się bał tego interfejsu, bo z mojego punktu widzenia wydaje się najlepszym i najłatwiejszym rozwiązaniem. Ale może ktoś ma inne równie dobre pomysły?:)

    0
  • #4 11 Wrz 2007 09:52
    markosik20
    Poziom 33  

    Cytat:
    Zatem I2C też odpada

    Dlaczego, I2C umożliwia przesył do 3Mb/s (400kB/s). Jednak jak wspomniał kolega Dr_DEAD najlepszym rozwiązaniem w Twoim przypadku to SPI i nie ma co szukać innych pomysłów :wink:. Jest to dokładny (brak przekłamań) i idealny do szybkiego przesyłania danych interfejs dla krótkich połączeń dwóch urzadzeń. Możesz jeszcze wykonać równoległy interfejs (przesyłanie 8bitów naraz) ale nie wiem czy nie uzyskasz tej samej prędkości co na sprzętowym SPI no i dodatkowo masz zajęte min. 8 pinów portu.

    0
  • #5 11 Wrz 2007 10:14
    jedrek_1981
    Poziom 12  

    markosik20 napisał:

    Dlaczego, I2C umożliwia przesył do 3Mb/s (400kB/s).

    Z tego co mi wjadomo to w I2C zegar SCL może mieć maksymalnie 400kHz (tryb Fast Mode) czyli maksymalna transmisja 400kb/s.

    0
  • #6 11 Wrz 2007 10:29
    markosik20
    Poziom 33  

    :oops: No tak pomyliłem "kHz" z "kB".

    0
  • #7 13 Wrz 2007 08:05
    Ch.M.
    Poziom 27  

    Nie no nie przesadzajcie nawet z typowym RTC osiągnąłem przesył danych przy SCL 500kHz i zegarze mastera 8MHz (procek AVR - M128)
    A układ jest wykonany na płytce rozwojowej połączony kabelkami po 10cm. Przy starannym wykonaniu połączenia wyciśniesz 1Mbit. jakby coś nie bardzo działało to dodajesz szybkie bramki do polepszania kształtu sygnałów i powinno działać

    Linki do oscylogramu połączenia PCF8586z M128, pullupy 1k:
    https://obrazki.elektroda.pl/93_1189491222.gif

    Edit:
    W specyfikacjach i2c nie masz nigdzie maksymalnej prędkości przesyłu, tylko zalecane albo gwarantowane. Masz natomiast takie warunki jak szybkość procka, szybkość narastania czy czas trwania sygnałów. Dla AVR być może to wszystko co da się wycisnąć, ale myślę, że ARM może trochę więcej.
    Pozdrawiam

    0
TME logo Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME
TME Logo