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

USBasp ProgISP V1.7.2 - Jak zaprogramować i odczytać AT80S51 (AT89S51/AT89S52)

Folxs 26 Maj 2020 14:40 1290 4
  • #1 18719546
    Folxs
    Poziom 13  
    Witam, próbuję jakoś połączyć się poprzez USBasp żeby odczytać i ew. zaprogramować kilka układów serii 80S51, a konkretnie:
    AT89S52 oraz P87C52 (OTP)

    Wgrałem najnowszy firmware na USBasp, sterowniki USB są ok bo inne rzeczy robi tylko nie chce się połączyć z niczym z rodziny 80S51/89S51/89S52/87C52

    Wyświetla mi się ciągle błąd: "Chip enable program error"

    Wyczytałem że trzeba dać RESET na stan wysoki, co uczyniłem i nie pomaga nadal nic, zaczynam myśleć czy mam dobry schemat podłączenia do uC:
    dla obudowy DIP40 robię tak:
    rezonator 12MHz (wiem że prędkość programowania musi być 16x mniejsza od rezonatora więc max 0,75MHz)
    MOSI z USBasp na PIN 6 (P1.5)
    MISO z USBasp na PIN 7 (P1.6)
    SCK z USBasp na PIN 8 (P1.7)
    RST z USBasp na PIN 9 (RST)
    Vcc=5V na PIN40 oraz PIN31 (EA/VPP)

    Czy ktoś może podpowiedzieć co jeszcze mogę robić nie tak?
    Sprawdzałem na kilku różnych układach więc raczej wina hardware
  • #3 18720148
    Folxs
    Poziom 13  
    A co z PINEM31 Vpp? W powietrzu?
    Próbowałem dawać reset do stanu wysokiego na zworkę ale nie pomogło.

    Instruction input po stronie USBasp to MOSI? Tak samo data output to MISO na USBasp?

    Jeśli tak to mam tak połączone.
    Może być w tej samej chwili reset z programatora podłączony i podciągnięty do +5V? Czy przerwać ścieżkę i dać tylko +5V?
  • #4 18720162
    tronics
    Poziom 38  
    Vpp jest do podania napięcia podczas programowania równoległego, natomiast podczas normalnej pracy powinno być do Vcc jeśli korzystamy z wewnętrznego flasha, albo do GND jeśli korzystamy z zewnętrznej pamięci programu. W końcu taka jest druga funkcja pinu - EA - external access enable.
    Teraz co do resetu - żaden stan wysoki, wymuszając stan wysoki wymuszasz reset cały czas. USBasp ma sam kontrolować reset. W przeciwieństwie do AVR czy ARM mikrokontrolery na rdzeniu '51 mają wysoki aktywny reset.
  • #5 18720175
    Folxs
    Poziom 13  
    tronics napisał:
    Vpp jest do podania napięcia podczas programowania równoległego, natomiast podczas normalnej pracy powinno być do Vcc jeśli korzystamy z wewnętrznego flasha, albo do GND jeśli korzystamy z zewnętrznej pamięci programu. W końcu taka jest druga funkcja pinu - EA - external access enable.
    Teraz co do resetu - żaden stan wysoki, wymuszając stan wysoki wymuszasz reset cały czas. USBasp ma sam kontrolować reset. W przeciwieństwie do AVR czy ARM mikrokontrolery na rdzeniu '51 mają wysoki aktywny reset.


    To jak zostanie na tych 5V to nie zaszkodzi? Czy sam się zrobi w stan wysokiej impedancji jak odepnę?

    Z tym resetem trafiłem na filmiki i wpisy ludzi że słabo kontroluje reset USBasp i niektórym pomaga danie go na stałe ręcznie do plusa ale to akurat nie rozwiązało mojego problemu
REKLAMA