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

ISP a SPI – różnice między In-System Programming a Serial Peripheral Interface

Tanaka_san 31 Sty 2006 17:17 5139 12
REKLAMA
  • #1 2241871
    Tanaka_san
    Poziom 14  
    Posty: 146
    Pomógł: 5
    Ocena: 2
    niemoge rozszyfrowac roznicy, czytalem ze ISP to in-system programmable czyli podlaczenie programatora np STK 200 i programowanie przez port LPT, czym wiec jest SPI? Serial Peripheral Interface - szeregowy interfejs urządzeń peryferyjnych; moze ktos wyjasni po krotce roznice bede wdzieczny...
  • REKLAMA
  • #2 2242121
    _Matik_
    Poziom 19  
    Posty: 390
    Pomógł: 25
    Ocena: 7
    Z tego co ja rozumiem to ISP to sposob programowania procesora w ukladzie docelowym. A wykorzystuje on do tego celu magistrale SPI (ktora sama w sobie nie tylko do programowania procesora ale takze do komunikacji pomiedzy urzadzeniami).
    A podobienstwo nazw to tylko przypadek ;].
  • #3 2244219
    Tanaka_san
    Poziom 14  
    Posty: 146
    Pomógł: 5
    Ocena: 2
    hmm trudno powiedziec bo jak wytlumaczyc sytuacje w ktorej w danych producenta mikrokontoler ma ISP a roznoczesnie nieposiada interfejsu SPI ? zagadaka...
  • REKLAMA
  • #4 2244455
    szymtro
    Poziom 30  
    Posty: 1421
    Pomógł: 101
    Ocena: 59
    Jest to sytuacja bardzo częsta.
    Nalezy tu rozróżnić dwa stany procesora:
    - stan gdzy aktywny jest sygnał resetu
    - i stan normalnej pracy

    Nie są to dwa identyczne stany.
    Bardzo często jest tak że w procku albo są dwa układy (jeden normalny rdzeń i rejestry) a drugi to domontowany automat do programowania.
    ISP to tylko transmisja synchroniczna (zegar+dane) wiec łatwo jest cos takiego zrobić na zwykłych rejestarch cmos (łatwo dla konstruktoów mikrokontorlerów)

    SPI natomiast wymaga paru dodatkowych funkcji, pare rejestrów, wektor przerwań, generator baudrate itp.
    To są dodatkowe funkcje na których mozna dodatkowo zarobić, albo zmusić użytkownika do zakupu zupełnie innego modelu.
  • #5 2244839
    Sinbad23
    Poziom 10  
    Posty: 37
    Z tego co ja wiem SPI sklada sie tylko z trzech lini MISO MOSI i SCK sa to linie do transmisji jesli chodzi o ISP to dzieki niemu mozemy programowac mikrokontrolery a wiec aby bylo to mozliwe do tych trzech lin z SPI doprowadzany jest sygnal Reset który w stanie niskim umozliwia programowanie, napiecie zasilania Vcc i masa zeby trnasmisja odbyla sie bez przeszkod
    A wiec standardowo SPI ma trzy linie ISP ma 6.
  • REKLAMA
  • #6 2244859
    GienekS
    Poziom 32  
    Posty: 1971
    Pomógł: 139
    Ocena: 15
    Sinbad23 napisał:

    A wiec standardowo SPI ma trzy linie ISP ma 6.
    A o sygnale /SS to kolega zapomniał ??
  • #7 2245437
    _myszon
    Poziom 15  
    Posty: 119
    Pomógł: 13
    Ocena: 18
    Tanaka_san napisał:
    hmm trudno powiedziec bo jak wytlumaczyc sytuacje w ktorej w danych producenta mikrokontoler ma ISP a roznoczesnie nieposiada interfejsu SPI ? zagadaka...


    Poza tym nie zawsze programowanie w systemie (ISP) musi odbywać sie po magistrali SPI.
  • #8 2245783
    LordBlick
    VIP Zasłużony dla elektroda
    Posty: 5438
    Pomógł: 549
    Ocena: 69
    ISP to tylko idea programowania, równie dobrze można sobie zrobić, w projektowanym układzie, przełączany zewnętrznym sygnałem interface do programowania równoległego, podłączyć do odpowiedniego specjalnego gniazda i też to będzie ISP (In System Programming), jako, że układ nie będzie nigdzie wyciągany, tylko programowany "w miejscu pracy".
  • #9 2247474
    Sinbad23
    Poziom 10  
    Posty: 37
    Jesli moge zapytac to co to za nowy sygnal /SS. Mi sie wydaje ze wymienilem wszystkie?
  • #10 2247801
    szymtro
    Poziom 30  
    Posty: 1421
    Pomógł: 101
    Ocena: 59
    Light-I i to sa własnie te drugie rozwiazania nie wymienione przeze mnie. Npa najdroższe 51 atmela czy 51 philipsa czy nawet seria aduc. Tam pewnie jest wbudowany program (cos jak bootloader ale u philipsa nie mozna go zmieniać) któremu zwiera sie dodatkowy pin i w ten sposób mozna programować po rs - też jest ISP (In System Programming).

    Zaraz się pewnie okaże że atmel ma jakis patent na uzywanie nazwy ISP.
  • #11 2249916
    _myszon
    Poziom 15  
    Posty: 119
    Pomógł: 13
    Ocena: 18
    Sinbad23 napisał:
    Jesli moge zapytac to co to za nowy sygnal /SS. Mi sie wydaje ze wymienilem wszystkie?


    Slave Select - używana przy magistarli z kilkama urządzeniami podrzędnymi, uaktywnia odbiór/nadawanie tylko w wybranym urządzeniu podrzędnym, reszta urządzen podrzędnych wystawia na swoje linie MISO stan wysoki.
    Moderowany przez Light-I:

    Kolorem czerwonym zaznaczyno nieprawdziwe twierdzenie. Przykładowy materiał do analizy : doc2512.pdf(ATmega8515), s. 126 :

    Cytat:
    When configured as a Slave, the SPI interface will remain sleeping with MISO tri-stated as long as the SS pin is driven high.

  • REKLAMA
  • #12 2252242
    LordBlick
    VIP Zasłużony dla elektroda
    Posty: 5438
    Pomógł: 549
    Ocena: 69
    SPI - Serial Peripheral Interface
    MISO - Master Input Slave Output
    MOSI - Master Output Slave Input
    /SS - Slave Select
    Urządzenia Slave gdy na ich linii /SS jest stan wysoki, na MISO niczego nie wystawiają - linia jest w staniej wysokiej impedancji, co umożliwia komunikację z wieloma urządzeniami Slave na jednej magistrali SPI, ale tylko z jednym w danej chwili - tylko z tym wywołanym "do odpowiedzi". Oczywiście zrozumiałe jest, że nie można więcej niż dla jednego urzadzenia Slave na raz ustawiać stanu niskiego na /SS.
    --
    Pozdrawiam, Daniel
  • #13 2252848
    _myszon
    Poziom 15  
    Posty: 119
    Pomógł: 13
    Ocena: 18
    Racja, za błąd przepraszam. Pomyliłem sprzętową z programową obsługą SPI.

Podsumowanie tematu

✨ ISP (In-System Programming) to metoda programowania mikrokontrolera bez konieczności wyjmowania go z układu, często realizowana przez specjalny interfejs programatora, np. podłączanego do portu LPT. ISP jest koncepcją programowania "w systemie" i nie jest ograniczone do konkretnego protokołu komunikacyjnego. SPI (Serial Peripheral Interface) to natomiast synchroniczny, szeregowy interfejs komunikacyjny służący do wymiany danych między mikrokontrolerem a urządzeniami peryferyjnymi. Magistrala SPI składa się z linii MISO, MOSI, SCK oraz dodatkowo linii /SS (Slave Select) do wyboru urządzenia podrzędnego. W wielu mikrokontrolerach ISP wykorzystuje magistralę SPI do programowania, jednak ISP może być realizowane także innymi metodami, np. programowaniem równoległym lub przez inne interfejsy (np. RS). Różnice wynikają także ze stanu procesora podczas programowania (np. aktywny reset) oraz z dodatkowych funkcji i rejestrów wymaganych przez SPI, które nie są konieczne do samego ISP. W praktyce ISP to idea i sposób programowania w układzie docelowym, a SPI to konkretny protokół komunikacyjny, który może być używany do ISP, ale ma też inne zastosowania. W dyskusji wspomniano także o bootloaderach i różnych implementacjach ISP w mikrokontrolerach 8051 (Atmel, Philips) oraz o różnicach w liczbie linii sygnałowych między SPI (3 linie) a ISP (zwykle 6 linii, w tym reset, zasilanie i masa).
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA