Andrzeju,
MkAVRCalculator, którego używasz jest tylko nakładką na program
avrdude.
Chcąc się dowiedzieć, co który przełącznik robi należy zacząć od zapoznania się z opisem obsługi
avrdude. Nawet tak podstawowa pomoc, którą wyświetla
avrdude wiele wyjaśnia.
Wracając do tych przełączników. Przełączik
-b służy do ustawiania prędkości portu szeregowego RS-232 ( UART ) przez który prowadzona jest komunikacja między komputerem a programatorem. Zauważ, że
avrdude obsługuje bardzo wiele różnych programatorów. Jedne komunikują się po USB ( za pomocą biblioteki libusb ) inne komunikują się za pomocą RS-232 ( FT232- uart ). Więc przełącznik
-b ma wpływ na działanie tylko i wyłącznie przy programatorach z komunikacją rs-232
Przełącznik
-B natomiast ma bardzo duże znaczenie w przypadku określania prędkości z jaką pracuje szyna SCK między programatorem a programowaną ATmegą.
Aby przejść dalej, należy wiedzieć, że taktowanie z programatora linii SCK musi być nie większe niż 1/4 prędkości taktowania rdzenia ATmegi. Jeżeli atmega taktowana jest z prędkością 8 MHz czy 16 MHz to w zasadzie nie trzeba używać przełącznika
-B, bowiem programator usbasp nie jest w stanie tak szybko taktować linii SCK.
Inaczej sprawa wygląda, jeżeli programowana ATMega taktowana jest niską częstotliwością zegara ( 4MHz czy 1 MHz lub niższą ) na wskutek np. ustawionych fusebitów (np. aktywny dzielnik zegara przez 8 i ustawiony wewnętrzny generator) lub gdy zależy nam na taktowaniu np z zegara 32.768 kHz. Wtedy domyślnie programator będzie za szybko prowadził proces komunikacji z programowaną ATMegą, co w rezultacie uniemożliwi poprawną komunikację między programatorem a programowaną ATMegą.
I w tym miejscu zastosowanie ma ten magiczny przełącznik
-B wraz z dodatkowym parametrem, który określa jak bardzo ma być spowolniona komunikacja programatora z programowaną ATmegą, aby cały proces programowania zakończył się pełnym sukcesem bez błędów.
Ale, aby przełącznik
-B zadziałał, firmware programatora musi go obsługiwać. Problem w tym, że chińskie programatory usbasp mają tak stare firmware, że nie obsługują programowo spowalniania taktowania przy komunikacji z programowanym układem. O ile pamiętam od tego jest sprzętowa zworka na programatorze. Stąd też zasugerowałem, abyś zaktualizował firmware w swoim programatorze. Bardzo dużą wadą tych chińskich programatorów jest również brak układu separującego / dostosowującego poziomy napięć między programatorem a programowanym układem docelowym.
No i te magiczne
fusbit-y. Tu kłania się niestety dokumentacja od ATmeg-i. Ale na sucho jak najbardziej można się pobawić - są nawet podpowiedzi z małym opisem poszczególnych bitów w MkAVRCalculator ( nalezy najechać myszką na daną pozycję i pojawi się dymek z opisem ). Pozmieniaj zawartość przełączników w zakładkach
Fusy właściwości czy
Fusy manualnie i zobacz jak zmieniają się wartości w okienkach LOW i HIGH w MkAVRCalculator. Opisy poszczególnych bitów w
fusbit doczytaj w dokumentacji. Również autor MkAVRCalculator-a gdzieś to omawia ( o ile się nie mylę )...
Andrzeju, skoro już używasz programu MkAVRCalculator, to zaglądnij na stronę autora tego softu i oglądnij jakiś jego film, na którym omawia obsługę MkAVRCalculator. Zapewniam Cię, że wiele się rozjaśni.