Instrukcja do bootloadera dla sterownika SU 1.2

Schemat blokowy połączenia

Niniejsza instrukcja opisuje stosowanie bootloadera dla sterownika SU 1.2, w którym jednostką centralną jest procesor ATMEGA32.

Opisany bootloader umożliwia programowanie procesora ATMEGA32 w sterowniku SU 1.2, za pomocą interefejsu szeregowego RS-232.

Za pomocą dowolnego programu terminalowego (np. Tera Term) i złącza RS-232 można przesłać plik programu w postaci *.bin do sterownika. W ten sposób program bootloader-a umożliwia aktualizację oprogramowania w sterowniku, bez konieczności jego demontażu.

Za pomocą złącza ISP lub JTAG należy zaprogramować procesor programem bootloader-a (plik bootloader12.hex) oraz odpowiednio ustawić bity konfiguracyjne:

  • wektor inicjalizacji programu bootloader-a ustawić tak, aby zaczynał się od adresu $3F00, ponieważ program bootloader-a zajmuje ostatnie 256 słów (512 bajtów) pamięci programu procesora (BOOTSZ1=1, BOOTSZ0=1),
  • wektor zerowania procesora przenieść do początku programu bootloader-a (BOOTRST=0).

Program bootloader-a programuje pamięć programu aplikacji procesora ATmega32 od adresu $0000 do adresu $3EFF (32256 bajtów). Pozostałą część pamięci programu (od adresu $3F00 do adresu $3FFF – 512 bajtów) zajmuje program bootloader-a. Aby zapewnić komunikację sterownika z komputerem, należy połączyć porty RS-232 obu urządzeń za pomocą kabla 3-żyłowego. Wszystkie komunikaty bootloader-a wyświetlane są w programie terminalowym na monitorze komputera.

Parametry interfejsu RS-232, jakie należy ustawić w programie terminalowym na komputerze PC (np. Tera Term):

  • prędkość transmisji 4800 baud,
  • 8 bitów danych,
  • bit parzystości typu odd (nieparzysty),
  • 1 bit stopu,
  • brak sterowania przepływem.

Wejście w tryb programowania sterownika za pomocą programu bootloader-a następuje poprzez przytrzymanie wciśniętych jednocześnie dwóch klawiszy sterownika ESC i OK oraz wykonanie jednej z następujących czynności:

  • reset sprzętowy sterownika (np. wyłączenie i załączenie zasilania sterownika),
  • z poziomu aplikacji wykonanie instrukcji skoku pod adres $3F00.

Szczegółowa instrukcja obsługi programu bootloader-a:

  • KROK 1: Po wejściu w program bootloader-a, sterownik wyśle zapytanie: Programować flash ?
  • KROK 2: W tym miejscu należy potwierdzić bądź zrezygnować z programowania pamięci procesora:
    • aby zrezygnować z programowania pamięci należy wcisnąć klawisz ESC sterownika. Sterownik wyśle komunikat: Wyjscie. Następnie program bootloader-a wykona instrukcje skoku w pamięci programu pod adres $0000.
    • aby potwierdzić programowanie pamięci należy wcisnąć jednocześnie klawisze UP i DOWN sterownika. Sterownik wyśle komunikat: Wyslij plik *.bin … Sterownik będzie oczekiwał na wysłanie pliku z programem.
  • KROK 3: Należy uruchomić procedurę wysyłania pliku typu ASCII z programu terminalowego i wysłać plik programu aplikacji w formacie *.bin (postać binarna). Plik programu w formacie *.bin, bez względu na rozmiar aplikacji, powinien zawsze mieć objętość 32768 bajtów. Podczas transmisji pliku programu, sterownik wysyła zwrotnie pasek postępu: 1 wysłany znak █ równy jest 128 odebranych bajtów. Jeśli podczas programowania wystąpi błąd transmisji, sterownik wyśle komunikat Blad transmisji ! i program booloader-a zostanie zatrzymany.
  • KROK 4: Sterownik po zaprogramowaniu pamięci programu wyśle komunikat Weryfikacja, ponownie wyślij plik *.bin … Sterownik będzie oczekiwał na ponowne wysłanie pliku z programem aplikacji, które pozwoli na zweryfikowanie zaprogramowanej pamięci programu. Podczas ponownej transmisji pliku programu, sterownik wysyła zwrotnie pasek postępu: 1 wysłany znak  równy jest 128 odebranych bajtów. Jeśli podczas weryfikacji wystąpi niezgodność pamięci programu aplikacji z zawartością pliku programu, sterownik wyśle komunikat Blad weryfikacji ! i program boolader-a przejdzie do kroku nr 1 niniejszej instrukcji.
  • KROK 5: Jeśli weryfikacja pamięci programu przebiegnie pomyślnie, sterownik wyśle komunikat Sukces i wykona instrukcję skoku w pamięci programu pod adres $0000.
Scroll to Top