Numery modułów w jakim systemie liczbowym ?

Marcin
Posts: 200
Joined: 16 Sep 2011, 13:05

Numery modułów w jakim systemie liczbowym ?

Post by Marcin »

Cześć.

Mam problem z numerowaniem modułów w bootloaderze.
Pierwsze moduły do nr 11 mam zapiasne tak:
od 0x01 do 0x11
w ten sposób mam nr od 1 do 11 ale to chyba był mój błąd bo teraz wpisując w bootloaderze
0x12 mam w HAPCAN PROGRAMMER moduł o numerze 18, więc zapisałem to 0x0c
Problem zaczyna się przy module o numerze 16, szesnastkowy zapis to 0x10, natomiast ja mam już moduł o takim numerze 0x10 i w H.P. pokazuje mi nr 10
Jak mam zaprogramować moduły większe oo 11?
Czy muszę pozmieniac wszystkie bootloadery? W systemie szesnastkowym 10 zapisujemy literą A, a u mnie moduł ma zaprogramowany 0x10 i H.P pokazuje jako nr 10 a nie 16, nie pojmuję.

Wesołych świąt.
Last edited by Marcin on 17 Apr 2017, 15:58, edited 1 time in total.
Pozdrawiam,
Marcin.
Bartek
Posts: 326
Joined: 14 Jul 2011, 19:36
Location: Wrocław
Contact:

Re: Numery modułów w jakim systemie?

Post by Bartek »

Mówisz o wartościach Node i Group?
Marcin
Posts: 200
Joined: 16 Sep 2011, 13:05

Re: Numery modułów w jakim systemie?

Post by Marcin »

Jasne.
Pozdrawiam,
Marcin.
Bartek
Posts: 326
Joined: 14 Jul 2011, 19:36
Location: Wrocław
Contact:

Re: Numery modułów w jakim systemie?

Post by Bartek »

W programerze ustawia się te wartości przecież w systemie dziesiętnym, więc jak ustawisz 10 to w monitorze będzie widać 0x0A, ustawiłem 11 i mam 0x0B.
Marcin
Posts: 200
Joined: 16 Sep 2011, 13:05

Re: Numery modułów w jakim systemie?

Post by Marcin »

Bartek wrote:W programerze ustawia się te wartości przecież w systemie dziesiętnym, więc jak ustawisz 10 to w monitorze będzie widać 0x0A, ustawiłem 11 i mam 0x0B.
Bartku, moduły buduję sam, od Jacka Kupuję tylko PCB, procesory mam "czyste" z próbek Microchip,a więc bootloader programuję do czystego procesora.
Kiedys Jacek pisał że trzeba sobie pozmieniać wartości ID2 i ID3 w pliku 'boot_3-4.asm' aby zmienić domyślny nr i grupę modułu, więc je sobie zmieniałem i każdy moduł np: przekaźnika miał swój kolejny nr porządkowy, nie musiałem już zmieniać nr w H.P w sekcji Ustawień podstawowych modułu.
Numery wpisywałem kolejno po 0x liczby dziesiętne tak jak tu:

Code: Select all

#define     ID2     0x01           ;node serial number MODUŁ 
#define     ID3     0x01            ;node serial number LSB GRUPA
i tak zapisałem numery modułów od 1 do 11 i na liście modułów H.P pokazywały się elegancko od 1 do 11
( Tu teraz zauważyłem że przecież po wpisaniu 0x10 i 0x11 moduł powinien zameldować się jako 16 i 17 a mnie meldują się jako 10 i 11)

Przy numerze 12 pojawił się problem gdy zapisałem go tak:

Code: Select all

#define     ID2     0x12           ;node serial number MODUŁ 
#define     ID3     0x01            ;node serial number LSB GRUPA
w Progrmmerze zameldował się nie jako 12 lecz 18, wychodzi na to że powinienem go zapisac tak:

Code: Select all

#define     ID2     0x0c           ;node serial number MODUŁ 
#define     ID3     0x01            ;node serial number LSB GRUPA
i tak zrobiłem, zameldował się pięknie jako '12' i tak dalej w systemie szesnastkowym do 15.
Przy numerze 16 pojawił się kolejny problem , powinienem zapisać go szesnastkowo tak:

Code: Select all

#define     ID2     0x10           ;node serial number MODUŁ 
#define     ID3     0x01            ;node serial number LSB GRUPA
bo liczba 10 w systemie szesnastkowym to 16 w dziesiętnym, a mnie melduje się moduł o numerze 10 a nie 16.

I dalej nie wiem co zrobić.
Pozdrawiam,
Marcin.
Bartek
Posts: 326
Joined: 14 Jul 2011, 19:36
Location: Wrocław
Contact:

Re: Numery modułów w jakim systemie?

Post by Bartek »

Tak podejrzewałem, ale brakowało mi tej informacji :).

Z tego co pamiętam analizując kod bootloadera to domyślnie zwracana była informacja o numerze modułu zapisana w definach szesnastkowo. Zatem jeśli podałeś 0x10 a nie 10 to numer powinien być 16. Nie wiem w którym momencie i czy w ogóle bootloader Hapcana przepisuje domyślne numery do eeproma, w mojej implementacji Hapcanuino przy starcie jeśli w eepromie o adresach noda i grupy są wpisane 0xFF to zapisują się tam wartości ustawione w definie w numerze seryjnym. Potem wszelkie requesty o numer noda i grupy brane są z eeproma.

Być może masz w eepromie wpisane inne wartości, które znalazły się tam na etapie uruchamiania.
Jacek
Posts: 560
Joined: 17 Feb 2007, 18:00

Re: Numery modułów w jakim systemie?

Post by Jacek »

To jest numer seryjny modułu definiowany w bootloaderze https://github.com/hapcan/UNIV_3_Bootlo ... sm#L28-L29
Podczas programowania bootloadera zapisuje się on także do pamięci eeprom https://github.com/hapcan/UNIV_3_Bootlo ... -4.inc#L66
Sprawdziłem programowanie z numerem modułu 0x10 i moduł zgłasza się w HP jako 16
Untitled.png
Sprawdź czy w pamięci eeprom (kliknij prawym na module i wybierz "Pamięć procesora") masz prawidłowe wartości.
Regards
Jacek
Marcin
Posts: 200
Joined: 16 Sep 2011, 13:05

Re: Numery modułów w jakim systemie?

Post by Marcin »

Jacku, wyniki:

Moduł oznaczony w H.P jako 10,1 nr. seryjny: 00001001h
1001.jpg
Moduł oznaczony jako 16,1 nr. seryjny: 00001001h
1601.jpg
i zrzut z Programmera, takie same nr seryjne, inne numery modułów:
serial num.jpg
Pozdrawiam,
Marcin.
Jacek
Posts: 560
Joined: 17 Feb 2007, 18:00

Re: Numery modułów w jakim systemie?

Post by Jacek »

Marcin wrote: Moduł oznaczony w H.P jako 10,1 nr. seryjny: 00001001h
Nie ma wyjścia, musiałeś zmienić w ustawieniach ogólnych Hapcan Programatora numer modułu z 0x10 (16) na 0x0A (10).
Marcin wrote: Moduł oznaczony jako 16,1 nr. seryjny: 00001001h
Tu moduł ma domyślny numer wynikający z numeru seryjnego.

Trzymaj się zasady, żeby nie programować dwóch modułów o tym samym numerze seryjnym.
Regards
Jacek
Marcin
Posts: 200
Joined: 16 Sep 2011, 13:05

Re: Numery modułów w jakim systemie?

Post by Marcin »

Właśnie do tego doszedłem, musiałem zmienić nr w ustawieniach ogólnych.
Wygląda na to iż rok temu nie mogłem sobie poradzić z zapisem szesnastkowym i ręcznie zmieniłem nr.
zmana ser.jpg
Sprawa się wyjaśniła.
Trzymaj się zasady, żeby nie programować dwóch modułów o tym samym numerze seryjnym.
Właśnie z tąd wnikł problem:)

Wesołych Swiąt.
Pozdrawiam,
Marcin.
Marcin
Posts: 200
Joined: 16 Sep 2011, 13:05

Re: Numery modułów w jakim systemie liczbowym ?

Post by Marcin »

Jacku, jak to naprawic?

Czy w Pamięć procesora wystarczy zczytać i zapisać pamieć flasch, następinie wgrać nowy bootloader z prawidłowym numerem modułu i zapisać z pliku zczytany flach do procesora?
Rozumiem że eepromu nie czytac i nie zapisywać?
Pozdrawiam,
Marcin.
Jacek
Posts: 560
Joined: 17 Feb 2007, 18:00

Re: Numery modułów w jakim systemie liczbowym ?

Post by Jacek »

Możesz użyć funkcji backupu konfiguracji w ustawieniach ogólnych.
1. Backup przeczyta pamięć flash i eeprom i zapisze do pliku *.hac. Trochę to trwa, bo czytana jest pełna pamięć konfiguracji
2. Później wgraj bootloader z prawidłowym numerem seryjnym.
3. Wgraj firmware
4. Następnie wykorzystaj funkcję przywracania backup-u z pliku i możesz zaznaczyć aby zachował aktualny numer ID modułu.
Untitled.png
Przetestuj najpierw na jednym module i daj znać czy backup działa prawidłowo. Pamiętam, że robiłem tylko szybkie testy...
Regards
Jacek
Marcin
Posts: 200
Joined: 16 Sep 2011, 13:05

Re: Numery modułów w jakim systemie liczbowym ?

Post by Marcin »

Sprawdziłem działanie backup'u, działa, aczkolwiek po odczytaniu konfiguracji boxów nie mam zaznaczonych boxów używanych boxów.
Pozdrawiam,
Marcin.
Jacek
Posts: 560
Joined: 17 Feb 2007, 18:00

Re: Numery modułów w jakim systemie liczbowym ?

Post by Jacek »

Sprawdź to jeszcze proszę. Otwórz plik backup-u (plik *.hac) w oknie pamięci procesora i zobacz czy w polu zielonym (używane boksy) są same zera.
Untitled.png
Regards
Jacek
Marcin
Posts: 200
Joined: 16 Sep 2011, 13:05

Re: Numery modułów w jakim systemie liczbowym ?

Post by Marcin »

Załączam zrzut ekranu
test.jpg
Pozdrawiam,
Marcin.
Post Reply