<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=22&amp;t=18370&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-05-10T10:29:06+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=22&amp;t=18370&amp;mode</id>
<entry>
<author><name><![CDATA[APAP75]]></name></author>
<updated>2017-05-10T10:29:06+01:00</updated>
<published>2017-05-10T10:29:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18370&amp;p=188786#p188786</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18370&amp;p=188786#p188786"/>
<title type="html"><![CDATA[Re: SKC500v2 - resuscytacja staruszka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18370&amp;p=188786#p188786"><![CDATA[
Przez pomyłkę umieściłem &quot;roboczą&quot; i niedokończoną wersję pliku źródłowego. Już zostało to poprawione.....<br />PRZEPRASZAM<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6195">APAP75</a> — 10 maja 2017, o 10:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[APAP75]]></name></author>
<updated>2017-05-09T09:51:57+01:00</updated>
<published>2017-05-09T09:51:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18370&amp;p=188732#p188732</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18370&amp;p=188732#p188732"/>
<title type="html"><![CDATA[SKC500v2 - resuscytacja staruszka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18370&amp;p=188732#p188732"><![CDATA[
Witam<br /><br />Chciałbym przedstawić Wam moją wersję programatora STK500v2. Przy jej wykonaniu bazowałem na projekcie ze strony:<br /><a href="http://we.easyelectronics.ru/Asticon/stk500v2---new-edition.html"  class="postlink">http://we.easyelectronics.ru/Asticon/stk500v2---new-edition.html</a><br />Wspomagałem się także materiałami z tej strony:<br /><a href="http://tuxgraphics.org/electronics/200705/article07052.shtml#07052lfindex0"  class="postlink">http://tuxgraphics.org/electronics/200705/article07052.shtml#07052lfindex0</a><br />W porównaniu z pierwowzorem <br />- zrezygnowałem z bootloadera<br />- 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).<br />- zastosowałem CH340G – jest tani<br /><br />Co zmieniłem:<br />- poprawiłem niektóre linie w kodzie, tak aby mi było lepiej go analizować.<br />- zmieniłem bufory na 74LVC125A i 74AHC1G126<br />- 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.<br />- 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ą.<br />- 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.<br /><br />Co mi się nie udało<br />- 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.<br />- 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)<br />Depending on CKSEL Fuses, a valid clock must be present. The minimum low and high periods<br />for the Serial Clock (SCK) input are defined as follows:<br />Low:&gt; 2 CPU clock cycles for fck &lt;12MHz, 3 CPU clock cycles for fck &gt;=12MHz<br />High:&gt; 2 CPU clock cycles for fck &lt;12MHz, 3 CPU clock cycles for fck &gt;=12MHz<br />Nie mam oscyloskopu – kartka papieru, plik .lss i na piechotkę liczyłem takty……<br />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).<br />- 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.<br />Jakie są zalety:<br />- sterownik do CH340G instaluje się łatwo (jakiś czas temu były z nim problemy – to ten sam sterownik jak przy klonach arduino)<br />- działa w miarę szybko<br />- małe wymiary<br />- 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)<br /><br />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. <br />Autor projektu zamieścił kod, ja zrobię to samo – podając jednocześnie jego adres WWW.<br />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.<br /><strong>UWAGA – na schemacie wkradł się błąd – użyty procesor to ATMEGA328 (nie ATMEGA8) !!!</strong><br />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.<br /><br /><a href="https://obrazkiforum.atnel.pl/6195/51faf2acdd570eac09f2c126a7db0fe8.jpg"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/6195/51faf2acdd570eac09f2c126a7db0fe8.jpg" alt="Obrazek" /></a><a href="https://obrazkiforum.atnel.pl/6195/53c08531cdaef8a496d1d41dd078085d.jpg"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/6195/53c08531cdaef8a496d1d41dd078085d.jpg" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6195">APAP75</a> — 9 maja 2017, o 09:51</p><hr />
]]></content>
</entry>
</feed>