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.

Kable na ISP

30 Paź 2004 19:47 1233 8
  • Poziom 11  
    Ostatnio spotkałem się z czymś bardzo głupim, co do teraz nie daje mi spokoju. Dotychczas korzystałem ze zmontowanej na szybko prowizorki i chciałem wreszcie zrobić sobie porządny kabel do programowania przez ISP mikrokontrolerów AT89S (aec_isp). Do montażu posłużył mi zwykły kabel od drukarki. Wszystko fajnie działało przez jakiś czas. Po pewnym czasie przez kabel można było tylko już odczytywać dane z pamięci mikrokontrolera, nie dało się go natomiast zaprogramować. Na kablu nie ma żadnych przerw, ani zwarć, bo wszystko dokładnie pomierzyłem. Mikrokontroler też jest sprawny, bo sprawdzałem na innym kablu. Podejrzewam, że chyba coś się zaindukowało w kablu. Może ktoś spotkał się już z czymś takim lub ktoś potrafi to w prosty sposób wyjaśnić? Wspomnę jeszcze, że kiedyś próbowałem zrobić taki sam programator na taśmie i nie chciał zadziałać.
  • Użytkownik usunął konto  
  • VIP Zasłużony dla elektroda
    Stawiam na zimny lut na linii MOSI, trzeba dobrze luty "przegrzać" z dużą ilością topnika, np. kalafonii. Ewentualnie kabel jest za długi w stosunku do grubości żył, mój ISP jest na taśmie od starego "śledzia" od portu RS232 9 pin (rozwiązanie 10-pinowe) i ma długość ok 25 cm, do tego podłączam 1.2m przedłużacz do drukarki.
    gajerz napisał:
    spróbuj przy procku wrzucic na szyne danych po kondensatorku 100p. do masy oczywiscie. nie wiem czy to pomoze, ale kiedys słyszałem taki patent

    Zamiast kondensatorów 100p - równie dobrze możesz przewiązać kabel wstążką... Albo zawołać wróżkę, aby kładła kamyczki w łazience na żyły wodne (autentyczne, miałem wezwanie do klienta że sieć mu nie chce działać i próbował, zanim mu ją prawidłowo podłączyłem, takiego właśnie sposobu) :) Procesor zwykle jest przy tej formie programowania umieszczony w układzie, w którym pracuje (ISP = In System Programmer) i te kondensatory "na szynie danych" (autor nie zadał sobie chyba nawet trudu, aby dowiedzieć się jakie są nazwy poszczególnych linii w ISP i na które konkretnie te 100p trzeba "przypiąć") mogą tylko pogorszyć transfer(obniżenie stromości zbocza sygnału). Poza tym transfer jest zatkany tylko w zapisie, więc coś musi być z MOSI, bo SCK jest potrzebne i pzy zapisie i przy odczycie, a MISO przy odczycie, wiec te linie są raczej OK.
  • Poziom 18  
    A ja sądzę że kolega gajerz ma rację - spotkalem się z podobnym problemem przy programowaniu AT89S8252 (SPI) - kondensatorki załatwiły problem

    pozdrawiam
  • VIP Zasłużony dla elektroda
    Ale tutaj coś działało i przestało działać, i to tylko na jednej linii, oczywiście mozna jeszcze zawiązać supełek na kablu, albo i 3, i też zadziała, bo się zmieniły parametry kabla na korzystne... :) Najlepiej jednak znaleźć przyczynę.
  • Poziom 11  
    W końcu doszedłem do przyczyny i już wiem dlaczego nie dało się zaprogramować mikroprocesorka. Przyczyną nie jest sam kabel, a wadliwy program aec_isp.exe, którego uszkodzona wersja od dłuższego czasu krąży po Internecie. Wcześnie kilku kolegów zwróciło na to uwagę, lecz nikt do końca tego nie potwierdził. Uruchomiłem programu, który pochodził z pewnego źródła i kabel normalnie zaczął działać.
  • Poziom 34  
    skrzat napisał:
    Po pewnym czasie przez kabel można było tylko już odczytywać dane z pamięci mikrokontrolera, nie dało się go natomiast zaprogramować.

    LightHouser napisał:
    Stawiam na zimny lut na linii MOSI, trzeba dobrze luty "przegrzać" z dużą ilością topnika, np. kalafonii. Ewentualnie kabel jest za ...

    LightHouser: chciał bym ciebie wyczulić na drobne błędy... skoro układ można odczytywać, ale niemożna zapisywać, to nieoznacza że to uszkodzony jest MOSI (master output slave input...).. gdyby ten pin niebył sprawny to układ wogóle by niewchodził w tryb programowania SPI, nieodbierał by poleceń odczytu, wpisu adresu itp.., a przecież autor tematu wyraźnie napisał że odczyt jest możliwy...
    jeśli odczyt działa to znaczy że wszystkie piny są sprawne.. SCK taktuje dane, MOSI wysyła polecenia a MISO zwraca dane..
    w takim wypadku jedynie może być uszkodzony kontroler docelowy, albo komputer/oprogramowanie... no.. ale temat się rozwiązał z powodu oprogramowania..
  • VIP Zasłużony dla elektroda
    OK, my fault, :oops: dzięki tobie wiem więcej... :) Do tej pory nie wnikałem w protokół SPI. Ogólnie miałem na myśli zimny lut na połączeniu, nie tylko pinie, czy to tak nie mogłoby się objawiać w jakimś poszczególnym wypadku (np. wchodzenie w stan programowania odbywałoby się wolniej, niż już samo programowanie, przez co byłoby odporniejsze na zakłócenia) ?
    skrzat napisał:
    Mikrokontroler też jest sprawny, bo sprawdzałem na innym kablu.

    To mnie zmyliło, postawiłem na niesprawne połączenie, skoro na innym kablu działało... :)
  • Poziom 34  
    LightHouser napisał:
    czy to tak nie mogłoby się objawiać w jakimś poszczególnym wypadku (np. wchodzenie w stan programowania odbywałoby się wolniej, niż już samo programowanie, przez co byłoby odporniejsze na zakłócenia) ?

    właściwie wejście w tryb programowania ogranicza sie do wpisania 2 bajtów do mikrokontrolera, i odbiorze 2 bajtów potwierdzających wejście kontrolera w tryb isp... (samo wejście w isp jest pozytywnym testem poprawności połączenia) warstwa komunikacji SPI ogranicza się do 2 funkcji: 'wpisz_bajt' i 'odbierz_bajt' .. niewiem kto by sie męczył z pisaniem 'wpisz_bajt_z_mniejsza_predkoscia' zeby wejsc w tryb programowania... to niema sensu, a pozatym zakłócenia występujące podczas inicjacji isp są takie same jak podczas wymiany danych..