-
1. Data: 2024-10-09 02:47:03
Temat: masowe programowanie AVR
Od: sundayman <s...@p...onet.pl>
Rozmnaża się toto po kątach i muszę programować coraz więcej AVR. A
dokładniej M2561. No i mam pytanie :
Używam Atmel Studio 6.2 z Atmel ICE na ISP. Wszystko fajnie. Tyle, że
program zajmuje cały flash i przy domyślnej prędkości ISP 125 kHz trwa
to wieczność. A bez wcześniejszego przeprogramowania fusów szybciej nie
pójdzie.
Jak przestawię fusy na docelowe to mogę programować np. na 3MHz i
gitara. Tyle, że jak to robię "jednoklikowo" korzystając z production
file no to tak się nie da bo oczywiście nie wpadli na to, żeby móc
ustawić prędkość po zaprogramowaniu fusów.
Czyli trzeba najpierw ręcznie na 125kHz zaprogramować fusy, przestawić
prędkość i dopiero wtedy programować resztę.
No to jest do dupy.
Jest jakieś narzędzie proste żeby mi najpierw zaprogramowało fusy a
potem na większej szybkości resztę ( czyli flash + lock ) ?
Żebym się nie musiał doktoryzować z tego pisząc jakieś skrypty ?
-
2. Data: 2024-10-09 15:28:05
Temat: Re: masowe programowanie AVR
Od: a...@h...invalid (Arnold Ziffel)
sundayman <s...@p...onet.pl> wrote:
> Czyli trzeba najpierw ręcznie na 125kHz zaprogramować fusy, przestawić
> prędkość i dopiero wtedy programować resztę.
>
> No to jest do dupy.
>
> Jest jakieś narzędzie proste żeby mi najpierw zaprogramowało fusy a
> potem na większej szybkości resztę ( czyli flash + lock ) ?
> Żebym się nie musiał doktoryzować z tego pisząc jakieś skrypty ?
Użyj avrdude. Przykład z głowy:
avrdude -B 125kHz -p atmega2561 -c usbasp -e -U lfuse:w:0xaa:m -U hfuse:w:0xbb:m
avrdude -B 3MHz -p atmega2561 -c usbasp -U flash:w:file.hex -U lock:w:0xcc:m
Za 0xaa i 0xbb podstaw wartości fusebitów, za 0xcc wartości lockbitów, za
file.hex plik do zaprogramowania. Za usbasp podstaw swój programator,
możesz też potrzebować -p (port) lub -i zamiast -B (jeśli programator to
jakiś bitbang, parametrem -i jest opóźnienie w mikrosekundach między każdą
zmianą bitu.
Jak nie zadziała, to dodaj jakiegoś sleepa między tymi komendami (np.
sleep .1 żeby poczekać 100 ms).
--
Po operacji chirurg pyta pacjenta:
- Czy jest pan przesądny?
- Nie, panie doktorze...
- To dobrze, bo od jutra będzie pan wstawał z łóżka tylko lewą nogą.
-
3. Data: 2024-10-09 22:40:44
Temat: Re: Re:masowe programowanie AVR
Od: sundayman <s...@p...onet.pl>
> Avrdude, 2 linijki; ot cały skrypt.
> No chyba, że coś źle zrozumiałem
panowie, ja nie mam czasu na eksperymenty - potrzebne mi rozwiązanie dla
debila. Klikam i działa.
Ponoć było GUI dla atprogram do ściągnięcia od microchipa. Ale nie mogę
znaleźć.
Toto się nazywało AVR_massproduction_programming_tool_with_atmelice.zi
p
Ktoś ma ?
-
4. Data: 2024-10-10 11:47:11
Temat: Re: Re:masowe programowanie AVR
Od: heby <h...@p...onet.pl>
On 09/10/2024 22:40, sundayman wrote:
>> Avrdude, 2 linijki; ot cały skrypt.
>> No chyba, że coś źle zrozumiałem
> panowie, ja nie mam czasu na eksperymenty
To nie są eksperymenty tylko poprawne, proste i działajace rozwiązanie.
Jesli jesteś na windowsie, możesz sobie plik bat z tymi poleceniam też
2x kliknąć i masz automat. A potem dodać pętlę w środku, która czeka na
pacnięcie klawisza i programuje nastepny.
Nie da się nic prostszego, w szczególniości jeśli potrzebujesz dla
debili, zrobić.
W czasie kiedy szukałes jakeigoś bezuzytecznego programu z GUI, mogłeś
stworzyć plik bat, wkleić, co dostałeś na grupie i używać.
-
5. Data: 2024-10-10 14:00:30
Temat: Re: Re:masowe programowanie AVR
Od: a...@h...invalid (Arnold Ziffel)
sundayman <s...@p...onet.pl> wrote:
>> Avrdude, 2 linijki; ot cały skrypt. No chyba, że coś źle zrozumiałem
>
> panowie, ja nie mam czasu na eksperymenty - potrzebne mi rozwiązanie dla
> debila. Klikam i działa.
Przecież dostałeś praktycznie gotowca. Jak się tak upierasz, to podaj:
- nazwę programatora
- ścieżkę do pliku hex
- wartości fusebitów
- wartości lockbitów
A podam ci zawartość pliku .bat z poleceniami avrdude. Klikasz .bat i masz
zaprogramowany AVR. Nie sądzę, żeby dało się prościej.
--
Profesor przerywa wyklad i zwraca się do studentow siedzacy w ostatnim
rzedzie:
- Kategorycznie zabraniam rozwiazywania krzyzowek podczas moich
wykladow!!
Na to ktos z sali:
- Czy na tle rebusow ma pan podobne kompleksy?
-
6. Data: 2024-10-10 23:56:36
Temat: Re: Re:masowe programowanie AVR
Od: sundayman <s...@p...onet.pl>
> Przecież dostałeś praktycznie gotowca. Jak się tak upierasz, to podaj:
>
> - nazwę programatora
> - ścieżkę do pliku hex
> - wartości fusebitów
> - wartości lockbitów
>
> A podam ci zawartość pliku .bat z poleceniami avrdude. Klikasz .bat i masz
> zaprogramowany AVR. Nie sądzę, żeby dało się prościej.
No spróbujmy.
Programator to Atmel ICE na USB rzecz jasna. Kąkuter z WIN7 jeśli to ma
jakieś znaczenie.
Fusy :
EXT : FC
HI : D8
LO : FF
Lock : FC
ścieżka niech będzie C:\FOLDER
to sobie zmienię
szybkość programowania fusów 125kHz
szybkość programowania flash 3MHz
Poproszę ślicznie :)
-
7. Data: 2024-10-12 03:04:32
Temat: Re: Re:masowe programowanie AVR
Od: sundayman <s...@p...onet.pl>
wziąłem tego AVRDUDE. Oczywiście zaczyna się zabawa : ani Dragon ani
AtmelICE nie jest widoczny.
Pamiętam tą walkę, że jak programator jest widoczny pod AS to nie ma go
pod avrdude i odwrotnie. I to jest właśnie to o co mi chodziło - trzeba
spędzać godziny nad tym.
Oczywiście już nie pamiętam teraz, muszę odkopywać...
-
8. Data: 2024-10-12 05:25:18
Temat: Re: Re:masowe programowanie AVR
Od: sundayman <s...@p...onet.pl>
No dobra, zwalczyłem. Niestety jak przewidywałem największy problem z
drajwerami do programatora żeby go AVRDUDE widział...
A sam skrypt to jednak ciut więcej niż 2 linijki, żeby toto sensownie
działało i żeby mieć sygnalizację błędów, bo śledzenie tego czy coś tam
się nie wykrzaczyło to nie jest dobra rzecz przy 100 procesorach
Wrzucam ku pamięci potomnych :
@echo off
REM Ustawienie ścieżki do AVRDUDE
set AVRDUDE_PATH=C:\AVRDUDE_6
REM Funkcja sprawdzająca kod błędu i przerywająca skrypt w razie błędu
setlocal enabledelayedexpansion
REM Programowanie fuse bitów z prędkością 125 kHz
%AVRDUDE_PATH%\avrdude -c atmelice_isp -P usb -p m2561 -B 8 -U
lfuse:w:0xFF:m -U hfuse:w:0xD8:m -U
efuse:w:0xFC:m
IF ERRORLEVEL 1 (
echo ****************** FUSE PROGRAMMING ERROR *****************
pause
exit /b 1
)
REM Odczekaj pół sekundy
timeout /T 1 >nul
REM Programowanie pamięci flash z prędkością 3 MHz bez wstępnego
kasowania pamięci
%AVRDUDE_PATH%\avrdude -c atmelice_isp -P usb -p m2561 -B 0.33 -D -U
flash:w:C:\HEX\program.hex:i
IF ERRORLEVEL 1 (
echo ****************** FLASH PROGRAMMING ERROR *****************
pause
exit /b 1
)
REM Programowanie pamięci EEPROM
%AVRDUDE_PATH%\avrdude -c atmelice_isp -P usb -p m2561 -B 0.33 -U
eeprom:w:C:\HEX\eeprom.eep:i
IF ERRORLEVEL 1 (
echo ****************** EEPROM PROGRAMMING ERROR *****************
pause
exit /b 1
)
REM Ustawienie Lock bit na FC
%AVRDUDE_PATH%\avrdude -c atmelice_isp -P usb -p m2561 -B 0.33 -U
lock:w:0xFC:m
IF ERRORLEVEL 1 (
echo ****************** LOCK PROGRAMMING ERROR *****************
pause
exit /b 1
)
echo >>>>>>>>> SUCCESS ! <<<<<<<<
pause
exit /b 0
-
9. Data: 2024-10-12 05:55:06
Temat: Re: Re:masowe programowanie AVR
Od: sundayman <s...@p...onet.pl>
zobaczcie, do czego mnie doprowadziliście...
dodałem jeszcze melodyjkę w przypadku błędu, żeby nie przeoczyć.
Kurła mać.
@echo off
REM Ustawienie ścieżki do AVRDUDE
set AVRDUDE_PATH=C:\AVRDUDE_6
REM Funkcja sprawdzająca kod błędu i przerywająca skrypt w razie błędu
setlocal enabledelayedexpansion
REM Funkcja do generowania melodyjki w przypadku błędu
set playMelody=powershell -c "[console]::beep(659,300); Start-Sleep
-Milliseconds 100; [console]::beep(523,300); Start-Sleep -Milliseconds
100; [console]::beep(587,300); Start-Sleep -Milliseconds 100;
[console]::beep(784,500)"
REM Programowanie fuse bitów z prędkością 125 kHz
%AVRDUDE_PATH%\avrdude -c atmelice_isp -P usb -p m2561 -B 8 -U
lfuse:w:0xFF:m -U hfuse:w:0xD8:m -U efuse:w:0xFC:m
IF ERRORLEVEL 1 (
echo **************** FUSE ERROR ! ****************
FOR /L %%i IN (1,1,10) DO (%playMelody%)
pause
exit /b 1
)
REM Odczekaj pół sekundy
timeout /T 1 >nul
REM Programowanie pamięci flash z prędkością 3 MHz bez wstępnego
kasowania pamięci
%AVRDUDE_PATH%\avrdude -c atmelice_isp -P usb -p m2561 -B 0.33 -D -U
flash:w:C:\HEX\program.hex:i
IF ERRORLEVEL 1 (
echo **************** FLASH ERROR ! ****************
FOR /L %%i IN (1,1,10) DO (%playMelody%)
pause
exit /b 1
)
REM Programowanie pamięci EEPROM
%AVRDUDE_PATH%\avrdude -c atmelice_isp -P usb -p m2561 -B 0.33 -U
eeprom:w:C:\HEX\eeprom.eep:i
IF ERRORLEVEL 1 (
echo **************** EEPROM ERROR ! ****************
FOR /L %%i IN (1,1,10) DO (%playMelody%)
pause
exit /b 1
)
REM Ustawienie Lock bit na FC
%AVRDUDE_PATH%\avrdude -c atmelice_isp -P usb -p m2561 -B 0.33 -U
lock:w:0xFC:m
IF ERRORLEVEL 1 (
echo **************** LOCK ERROR ! ****************
FOR /L %%i IN (1,1,10) DO (%playMelody%)
pause
exit /b 1
)
echo ===================== PROGRAMMING SUCCESS !! =====================
pause
exit /b 0
-
10. Data: 2024-10-12 10:35:06
Temat: Re: Re:masowe programowanie AVR
Od: Pixel(R)?? <m...@p...onet.pl>
W dniu 12.10.2024 o 05:55, sundayman pisze:
> echo ===================== KURWA DZIALA !! =====================
> pause
> exit /b 0
Fiu, fiu, 05:55 dobry czas :D
--
Pixel(R)??