Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Pickit3 - czy możliwe jest zaprogramowanie PIC-a 24 bez nadpisywania eepromu?

adam220 16 Paź 2017 13:26 564 10
  • #1 16 Paź 2017 13:26
    adam220
    Poziom 14  

    Witam,
    mam PICKit 3 i PIC24 oraz MPLABX IDE i IPE.

    Nie mogę go tak zaprogramować aby zachować dane w EEpromie.
    Dostępna opcja w MPLABX IPE o nazwie "Preserve EEPROM" wydaje się nie działać.
    eeprom jest i tak zamazywany.

    Podobnie jest z opcją wyboru pamięci do programowania (select memory) : odznaczam checkbox przy eeprom i nic. Nadal eeprom pokazuje się na liście pamięci które zostaną zatarte.

    Jedyny sposób żeby eeprom nie pokazał się na liście pamięci do zaprogramowania to wyłączyc opcję Erase All, ale wtedy pojawia się komunikat "cannot program device"

    Proszę o pomoc w ustawieniach.

    0 10
  • #2 16 Paź 2017 14:00
    JarekC
    Poziom 27  

    Program IPE:
    - zakładka Setting wybieramy opcję Advanced Mode
    - zakładka Memory odznaczamy Allow Tool to select memories and ranges
    - w Manual Select odznaczamy EEPROM
    ewentualnie zaznaczamy opcję Preserve EEPROM on Program

    JarekC

    1
  • #3 16 Paź 2017 14:10
    adam220
    Poziom 14  

    @JarekC
    Dokładnie te opcje użyłem. Wszystkie.

    Mimo odznaczenia EEPROM, w fazie programowania EEPROM pokazuje sie na liście pamięci do zaprogramowania.

    Opcja Preserve EEPROM on Program nic nie zmienia, eeprom jest nadal nadpisywany.

    Czy wypróbowałeś to praktycznie u siebie? Może coś nie tak z programem u mnie?

    0
  • Pomocny post
    #4 16 Paź 2017 19:28
    JarekC
    Poziom 27  

    Opcja Preserve EEPROM nie działa jeżeli ustawione jest zabezpieczenie Flasha przed odczytem, gdyż działa na zasadzie najpierw odczytu EEPROM skasowania uP i ponownego zapisu EEPROM.

    Nie miałem czasu aby przetestować na fizycznym układzie.

    1. Czy procesor jest zabezpieczony przed odczytem?
    2. Jaka jest przyczyna że chcesz w ten sposób programować uP?

    JarekC

    0
  • #5 18 Paź 2017 10:16
    adam220
    Poziom 14  

    Tak. Procesor jest zabezpieczony. Skoro "preserve eeprom" działa tak jak napisałeś to ta opcja nie może być użyta.

    W eepromie są dane które uK zbiera podczas pracy. A flashowanie ma na celu jedynie ulepszenie programu.
    Chciałem uniknąć wczytywania eepromu przed programowaniem i wpisywania go po.

    Ale dlaczego manualny wybór pamięci do zaprogramowania w którym pomijam eeprom nie działa?

    Chodzi mi o

    Kod: text
    Zaloguj się, aby zobaczyć kod

    0
  • Pomocny post
    #6 18 Paź 2017 11:09
    JarekC
    Poziom 27  

    W przypadku gdy procesor jest zabezpieczony przed odczytem to do jego zaprogramowania potrzebne jest wykonanie Bulk Erase które kasuje Flash i EEPROM.
    Odznaczenie EEPROMu na liście spowoduje tylko to że EEPROM pozostanie skasowany i nie zostanie wgrana do niego nowa wartość jeżeli plik Hex zawierał nowe dane.

    Rozwiązaniem może być zastosowanie Bootlodera do aktualizacji oprogramowania.

    Pozdrawiam
    JarekC

    0
  • #7 20 Paź 2017 09:27
    adam220
    Poziom 14  

    @JarekC
    dziękuję za szczegółowe wyjasnienie.

    Temat zostanie wkrótce zamknięty.

    0
  • #8 20 Paź 2017 09:50
    Mikroprocesorowiec
    Poziom 11  

    JarekC napisał:
    W przypadku gdy procesor jest zabezpieczony przed odczytem to do jego zaprogramowania potrzebne jest wykonanie Bulk Erase które kasuje Flash i EEPROM.
    Odznaczenie EEPROMu na liście spowoduje tylko to że EEPROM pozostanie skasowany i nie zostanie wgrana do niego nowa wartość jeżeli plik Hex zawierał nowe dane.

    Rozwiązaniem może być zastosowanie Bootlodera do aktualizacji oprogramowania.

    To AVR sa lepsze. Można ustawic opcję w fuses "EESAVE". Kasuje ona flash nie naruszając eeprom.

    0
  • #9 20 Paź 2017 10:36
    adam220
    Poziom 14  

    @Mikroprocesorowiec
    ciekawe czy fusebit EESAVE działa przy ustawieniu lockbitów na blokadę ?
    Czy można zabezpieczoną Atmegę zaprogramować nie kasując eepromu?
    Chyba nie.

    0
  • #10 20 Paź 2017 10:41
    Mikroprocesorowiec
    Poziom 11  

    adam220 napisał:
    @Mikroprocesorowiec
    ciekawe czy fusebit EESAVE działa przy ustawieniu lockbitów na blokadę ?
    Czy można zabezpieczoną Atmegę zaprogramować nie kasując eepromu?
    Chyba nie.

    Poruszyłeś ciekawe zagadnienie, w nocie napisali tak:
    Cytat:
    27.7.3 Chip Erase
    The Chip Erase will erase the Flash and EEPROM
    (1)
    memories plus Lock bits. The Lock bits are not reset until
    the program memory has been completely erased. The Fuse bits are not changed. A Chip Erase must be
    performed before the Flash and/or EEPROM are reprogrammed.
    Note: 1. The EEPRPOM memory is preserved during Chip Erase if the EESAVE Fuse is programmed.
    Load Command “Chip Erase”

    Wynika z tego, że eeprom nie jest kasowany nawet jak lock jest ustawiony. Przy najbliższej okazji sprawdze to.


    PS
    Właśnie sprawdziłem, nawet jak ustawię lock a jest ustawiony EESAVE to w AVR podczas kasowania całego układu, eeprom nie jest kasowany.
    Teraz wiem, że wybór AVR zamiast PIC był dobry. AVR górą :-)

    0
  • #11 20 Paź 2017 12:54
    adam220
    Poziom 14  

    @Mikroprocesorowiec dzięki za fizyczne sprawdzenie.
    W tym spotkaniu 1:0 dla Atmegi.
    Tak to powinno wyglądać w PIC-u. :(

    0