Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 19 maja 2025, o 00:59


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 2 ] 
    Autor Wiadomość
    PostNapisane: 9 maja 2017, o 09:51 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 17 paź 2014
    Posty: 233
    Lokalizacja: Rzeszów
    Pomógł: 11

    Witam

    Chciałbym przedstawić Wam moją wersję programatora STK500v2. Przy jej wykonaniu bazowałem na projekcie ze strony:
    http://we.easyelectronics.ru/Asticon/stk500v2---new-edition.html
    Wspomagałem się także materiałami z tej strony:
    http://tuxgraphics.org/electronics/200705/article07052.shtml#07052lfindex0
    W porównaniu z pierwowzorem
    - zrezygnowałem z bootloadera
    - interfejs ISP oparty jest na sofcie (nie używam wbudowanego SPI). Dlatego też wyższe częstotliwości programowania (1,8MHz i 460kHz) nie są dostępne. Maksymalna częstotliwość linii SCK wynosi ok 375kHz (zmierzona).
    - zastosowałem CH340G – jest tani

    Co zmieniłem:
    - poprawiłem niektóre linie w kodzie, tak aby mi było lepiej go analizować.
    - zmieniłem bufory na 74LVC125A i 74AHC1G126
    - dodałem przycisk do ręcznego włączania generatora wyjściowego. Dodatkowo jego wciśnięcie powoduje zmianę częstotliwości linii SCK na 115kHz. Ponowne przyciśnięcie wyłącza generator i ustawia częstotliwość SCK na max.
    - dorobiłem automatyczną zmianę częstotliwości programowania pod avrdude (pod atmel studio działa zmiana częstotliwości bez tej protezy). Po „autoustawieniu” częstotliwość ta jest pamiętana do momentu restartu programatora (wyjęcie i włożenie do portu USB) lub do momentu wciśnięcia przycisku (zapalenie się czerwonej diody) – ustawiane jest 115kHz, ponowne przyciśnięcie ustawia częstotliwość maksymalną.
    - zmieniłem rozmiar płytki – jest wielkości pendrive’a. Pociąga to za sobą pewne konsekwencję – rozmiary elementów SMD w większości to 805 dodatkowo umieszczone bardzo blisko siebie i przelotki są na polach lutowniczych elementów – cóż – coś za coś. Zależało mi na miniaturyzacji.

    Co mi się nie udało
    - nie wyłapałem wszystkich chochlików z kodu – tzn. programator działa, ale np. gdzieś autor projektu włączył jakiś timer, który nie wiadomo co robi i tak zostało – a ja to przeoczyłem.
    - pod avrdude przy „dziwnych” częstotliwościach procesora jest problem z odczytaniem jego sygnatury. Częstotliwość SCK się nie zmienia – bo poprawnie procesor wchodzi w stan programowania (błąd przy wejściu w stan programowania wymusza zmianę częstotliwości SCK), ale przy odczycie sygnatury pojawiają się błędy. Problem do pewnego stopnia udało się wyeliminować – Doszedłem do wniosku, że stan wysoki i niski linii SCK musi trwać tyle samo (w miarę możliwości)
    Depending on CKSEL Fuses, a valid clock must be present. The minimum low and high periods
    for the Serial Clock (SCK) input are defined as follows:
    Low:> 2 CPU clock cycles for fck <12MHz, 3 CPU clock cycles for fck >=12MHz
    High:> 2 CPU clock cycles for fck <12MHz, 3 CPU clock cycles for fck >=12MHz
    Nie mam oscyloskopu – kartka papieru, plik .lss i na piechotkę liczyłem takty……
    Tam, gdzie uznałem to za stosowne dodałem NOP’y i metodą prób doszedłem do wartości optymalnej. Czasem zdarzy się błąd przy odczycie, ale za każdym razem udawało i się zmienić fusebity w procku. Nie jest to rozwiązanie, nie potrafię sobie jednak z tym poradzić. Nie wiem jak wymusić, aby avrdude wysyłało w przypadku błędu komendę do STK500 przetaktowującą linię SCK (tak jak robi to atmel studio). Zawsze można spróbować wciskając przycisk uruchamiający generator i przetaktowujący linię SCK na 115kHz. Ale są to naprawdę rzadkie przypadki – tam, gdzie częstotliwość linii SCK jest sporo mniejsza od czterokrotnie większą częstotliwością taktowania procesora, a mimo to udaje się wejść w tryb programowania (np.. attiny85 z częstotliwością 800kHz - 6,4/8 – za każdym razem wchodził w tryb programowania przy SCK 375kHz – chodź nie powinien, ale w czasie programowania wywalał błędy z sygnaturą. Dziwna sprawa, bo za każdym razem udawało mi się mimo to zmienić fusebity).
    - minimalna częstotliwość pracy pod avrdude to ok 4,1 kHz. Niżej nie udało mi się zejść – wywalają się timeouty w avrdude. Ale bez problemu zaprogramowałem (wielokrotnie) procka taktowanego zegarem wewnętrznym 16kHz. W atmel studio można zejść do ok. 1,6kHz – taką częstotliwość zmierzyłem.
    Jakie są zalety:
    - sterownik do CH340G instaluje się łatwo (jakiś czas temu były z nim problemy – to ten sam sterownik jak przy klonach arduino)
    - działa w miarę szybko
    - małe wymiary
    - współpracuje z avrdude i atmel studio (w tym drugim można sprawdzić napięcie zasilające procek, zmienić częstotliwość taktowania SCK, wałczyć i przeprogramować częstotliwość generatora zewnętrznego)

    Schematu nie mam – robiłem na podstawie pierwowzoru gotową płytkę nanosząc zmiany w trakcie pracy. Za ewentualne błędy w kodzie (zwłaszcza ortograficzne) – przepraszam. Niektóre komentarze są niegramatyczne – kopiuj wklej z translatora gogle – projekt wyjściowy tworzony był w cyrylicy – autor jest Rosjaninem.
    Autor projektu zamieścił kod, ja zrobię to samo – podając jednocześnie jego adres WWW.
    Reasumując – wiem, że jest to stara konstrukcja, ale bawiłem się nią w celach poznawczych. Może kiedyś wezmę na tapetę MK2 z projektu LUFA. Zobaczymy.
    UWAGA – na schemacie wkradł się błąd – użyty procesor to ATMEGA328 (nie ATMEGA8) !!!
    Można zastosować inne taktowanie (przyjazne dla USART) np. fosc = 11.0592MHz lub fosc = 18.4320MHz, tracimy jednak wówczas wartości generatora wyjściowego zbliżone do tych podawanych przez atmel studio. Prototyp robiłem dla fosc = 18.4320MHz.

    ObrazekObrazek


    Załączniki:

    Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.

    _________________
    Mr. Nobody



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 10 maja 2017, o 10:29 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 17 paź 2014
    Posty: 233
    Lokalizacja: Rzeszów
    Pomógł: 11

    Przez pomyłkę umieściłem "roboczą" i niedokończoną wersję pliku źródłowego. Już zostało to poprawione.....
    PRZEPRASZAM

    _________________
    Mr. Nobody



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 2 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości


    Nie możesz rozpoczynać nowych wątków
    Nie możesz odpowiadać w wątkach
    Nie możesz edytować swoich postów
    Nie możesz usuwać swoich postów
    Nie możesz dodawać załączników

    Szukaj:
    Skocz do:  
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO