Odpowiedz 
 
Ocena wątku:
  • 1 Głosów - 3 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Arduino
SP6AUO Offline
Andrzej
*****

Liczba postów: 1,035
Dołączył: 20-09-2009
Post: #211
RE: Arduino
Port nie potrzebny,ok.
A kwarc jaki wybrać ? Próbowałem i 20MHz i 16MHz.
Na pcb gdzie siedzi 328p jest kwarc 20MHz.
İmage
Na tym 328p jest już wgrana inną metodą ver 1.02p i trx działa.
Dla odmiany próbuję wgrać ver1.02o i nie wychodzi.
Tadeusz zerknij co mam poustawiane,może coś źle wybrałem.
Rysio czy ( #if(F_CPU != 16000000) to o ten wpis chodzi ?

Andrzej
(Ten post był ostatnio modyfikowany: 18-03-2021 18:30 przez SP6AUO.)
18-03-2021 18:30
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP3VPA Offline
Tadeusz
**

Liczba postów: 56
Dołączył: 12-08-2009
Post: #212
RE: Arduino
Andrzej.
Ustawienia są poprawne. Ty pewnie masz ATmegę w obudowie TFQ, 32 pinową i podłączasz programator do płyty? Ja używam zwykłej ATmegi328 w DIP 28. Nie wiem więc jak to się zachowuje w Twoim przypadku. Poza tym spróbuj wgrać do procesora inny bootloader tak jak pisze Guido w szkicu: :"Instalacja UCX: Na czystym układzie scalonym, użyj (standardowych dla Arduino Uno) ustawień bezpieczników (E:FD, HBig GrinE, L:FF), i użyj niestandardowego bootloadera Optiboot dla zegara 20MHz, a następnie prześlij przez interfejs szeregowy (z liniami RX, TX i DTR podłączonymi odpowiednio do pinów 1, 2, 3)" może to pomoże chociaż w kompilacji i zaprogramowaniu wg starej metody . Tak pisał też Paweł. Optiboot jest krótszy a zatem będzie więcej miejsca dla kodu.
Pozdrawiam - Tadeusz.
(Ten post był ostatnio modyfikowany: 18-03-2021 18:52 przez SP3VPA.)
18-03-2021 18:51
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP6AUO Offline
Andrzej
*****

Liczba postów: 1,035
Dołączył: 20-09-2009
Post: #213
RE: Arduino
Nie nie nie.
Mam na pcb 328p 28pinów.
Ja mam dwie metody na wgranie wsadu do328P i obie działają,ale są skomplikowane.
Zaproponowałeś metodę przez USBasp z Arduino i ja się na to zapisałem.
Tylko że coś w tej metodzie nie jest ok.
Metodą dwustopniową zapisałem w jednym 328p ver1.02o
W drugim 328p zapisałem ver 1.02p
Obie ver działają ok.
Twoja metoda wydawała mi się prosta,ale niestety jest nie do końca skuteczna.
W oczekiwaniu na nowe płyty do uSDX przeprowadzałem testy,żeby się nie zanudzić i trochę doszkolić.
Na tym kończę.Dziękuję Wszystkim i serdecznie pozdrawiam.

Andrzej
18-03-2021 19:30
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP6IFN Offline
Ryszard
****

Liczba postów: 455
Dołączył: 23-03-2010
Post: #214
RE: Arduino
(18-03-2021 18:30)SP6AUO napisał(a):  ciach......
Rysio czy ( #if(F_CPU != 16000000) to o ten wpis chodzi ?

Tak, o tym wpisie pisałem.
Ale temat już wyczerpaliśmy, czegoś się nauczyłeś i to najważniejsze.
..............
Rysio!
18-03-2021 20:12
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP6AUO Offline
Andrzej
*****

Liczba postów: 1,035
Dołączył: 20-09-2009
Post: #215
RE: Arduino
No właśnie.Zmieniłem wartość !=16000000 na !=20000000 i dokonałem zapisu pliku standard.hex do 328p.
Zajęcie pamięci wyniosło 95% tak jak u innych a nie jak wcześniej u mnie 100%.
Teraz jest wszystko ok.

Nie wszystko jest ok.
Przywróciłem !=16000000.
Nie mogłem za każdym razem wejść do menu,
Po przywróceniu nastawy 16000000 działa lepiej.

Andrzej
(Ten post był ostatnio modyfikowany: 19-03-2021 15:42 przez SP6AUO.)
19-03-2021 15:42
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SQ8MVY Offline
Paweł
****

Liczba postów: 724
Dołączył: 30-07-2011
Post: #216
RE: Arduino
Witam,

chcę tylko zwrócić uwagę na bardzo ważną rzecz.
Linia o której tu mówicie, czyli
Kod:
#if(F_CPU != 16000000)
w żadnym wypadku nie służy do wybierania taktowania.
Jest to linia dla preprocesora, która powoduje jego określone zachowanie w przypadku spełnienia warunku.
Rzeczywistą wartość taktowania ustawia się w/g założenia autora kodu w niższej linii. Ale i to rozwiązanie jest nie do końca poprawne, przynajmniej w takiej postaci,
w jakiej jest tu użyte.
Jeżeli natomiast zdecydujemy się na taktowanie zegarem 16MHz, to nalezy koniecznie pamiętać o odkomentowaniu linii 40, dla 20MHz linia ma być zakomentowana.
Kod:
#define F_MCU_16MHZ   1   // 16MHz ATMEGA328P crystal  (enable for unmodified Arduino Uno/Nano boards with 16MHz crystal)
oraz zmianie wartości rzeczywistej taktowania w linii 87
Kod:
#define F_CPU 20007000  // Actual crystal frequency of 20MHz XTAL1, note that this declaration

Aby nie trzeba było pamiętać o tym co zakomentować / odkomentować, proponuję, dla chętnych oczywiście, zmienić zawartość linii 83 do 87 na taką:
Kod:
#if(F_CPU == 16000000)
  #define F_MCU_16MHZ   1   // 16MHz ATMEGA crystal  ( for unmodified Arduino Uno/Nano boards with 16MHz crystal)
  #undef F_CPU
  #define F_CPU 16007000  // Skorygować - rzeczywista czętotliwość kwarcu dla taktowania 16 MHz
  #pragma message "TAKTOWANIE 16 MHZ"
#else
  #undef F_CPU
  #define F_CPU 20007000  // Skorygować - rzeczywista czętotliwość kwarcu dla taktowania 20 MHz
  #pragma message "TAKTOWANIE 20 MHz"
#endif
Linie z zawartością #pragma message można całkowicie usunąć. One tylko wyświetlają informacje w terminalu podczas kompilacji.
Teraz odpowiednie ustawienia będą wybierane w zależności jaką platformę do budowania wybierzemy - 16MHz czy 20 MHz.

73 Paweł
(Ten post był ostatnio modyfikowany: 20-03-2021 12:21 przez SQ8MVY.)
20-03-2021 12:21
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP6AUO Offline
Andrzej
*****

Liczba postów: 1,035
Dołączył: 20-09-2009
Post: #217
RE: Arduino
I tak jest. Mam na pcb 20MHz,instaluję program bez zmian i jest dobrze.
Pcb dojechały.Przechodzę do działu uSDX.
Jeszcze raz dzięki za wszelką pomoc.

Andrzej
20-03-2021 13:27
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP6AUO Offline
Andrzej
*****

Liczba postów: 1,035
Dołączył: 20-09-2009
Post: #218
RE: Arduino
Próba zaprogramowania 328p smd i taki komunikat.
İmage
Czy to oznacza ,że 328p do wymiany ?

Andrzej
01-04-2021 12:09
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SQ8MVY Offline
Paweł
****

Liczba postów: 724
Dołączył: 30-07-2011
Post: #219
RE: Arduino
Sprawdź podłączenie programatora oraz zasilanie procka. Zmniejsz prędkość programowania.

Taki komunikat pojawia się w przypadki braku komunikacji programatora z prockiem. Przyczyn może być kilka. Brak lub nie pracujący zewnętrzny kwarc ( jeżeli procek ustawiony jest na zewnętrzne taktowanie), zbyt wysoka prędkość taktowania z programatora ( zdarza się, gdy procek jest taktowany z podziałem / 8 ).

Uszkodzenie procka zostaw na sam koniec, jak żadne inne metody nie dadzą pozytywnego rozwiązania problemu.

73 Paweł
(Ten post był ostatnio modyfikowany: 01-04-2021 12:25 przez SQ8MVY.)
01-04-2021 12:25
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP9RQA Offline
Krzysztof
****

Liczba postów: 370
Dołączył: 30-09-2009
Post: #220
RE: Arduino
Hmm. Piszesz, że chcesz zaprogramować 328, a program pisze, że chce ATMega8. Może z programatorem się nie dogaduje, brak zasilania itp...?
01-04-2021 12:25
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
Odpowiedz 


Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości