Koleżankom i Kolegom Radioamatorom, Krótkofalowcom,
Konstruktorom i Waszym Rodzinom – w tych trudnych czasach –
po dotkliwej awarii naszego forum
Pogodnego czasu po Bożym Narodzeniu,
Dosiego Nowego Roku
oraz Radosnych Trzech Króli

Życzy Zespół Home Made

Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
eeprom w atmega328P
#1
Pilna pomoc potrzebna.
Postanowiłem zbudować generator sygnałowy.
Wybór padł na model wypracowany przez sp8mce.
Program do obsługi składa się z 2-ch zestawów.
1.zestaw to

   
Tu problemów nie ma.
taki widok po uruchomieniu generatora
   
Efekt jest taki,że jest ładny obrazek,ale nic nie działa.
To co widać,bez możliwości zmiany czegokolwiek.
Przystąpiłem do 2-go etapu,zapis do eeprom.
   
A to efekt próby zapisu
   
Flash się zapisał a eeprom nie.Po wczytaniu eeprom wygląda tak: FF FF FF FF ...... od początku do samego końca.
Liczę na pomoc.
Andrzej
Odpowiedz
#2
Masz błąd, zobacz trzecia linijka
Odpowiedz
#3
Masz napisane, że adres jest poza zakresem. Ten procesor ma 1kB, czyli 1024 bajty EEPROMu, a adres 0x0410 wskazuje na komórkę o adresie 1040, więc już poza pamięcią EEPROM i dlatego program zapewne nie podejmuje nawet próby zapisu.
Odpowiedz
#4
Że jest błąd to już wiem od 5dni.
Tu jest plik

.ino   eep_GEN_SYG.ino (Rozmiar: 2.39 KB / Pobrań: 349)
Co można w nim skrócić ?
Andrzej
Odpowiedz
#5
Mam wrażenie, że próbujesz zapisać do EEPROMu to co ma być we flashu. Po kompilacji zawartość EEPROMu ma 13 bajtów i jest w pliku z rozszerzeniem eep:

eep_GEN_SYG.ino.eep


Poza tym nie wiem jaki był zamysł twórczy autora tego programu, ale chyba nie ma sensu zapisywać nic do tego eeproma,
gdyż to program zawarty we flashu wypełnia eeprom odpowiednimi wartościami w funkcji setup().
Później już nic nie robi, bo pętla loop() jest pusta. Ten program nie zawiera obsługi żadnego generatora.

Prawdopodobnie idea tego jest taka, że najpierw wgrywamy ten program, który wypełnia nam EEPROM, a później kompilujemy ten drugi GEN_SYG.ino i w nim jest dopiero obsługa Si5351. I jego wgrywamy w miejsce tego pierwszego. Oczywiście pamiętając o tym, aby przy okazji nie wykasować EEPROMu, który wcześniej zapisaliśmy.
Odpowiedz
#6
Niby z innej beczki, ale podobnie.
Miałem podobny problem gdy składałem syntezę Mikrob 4s.
Na wyświetlaczu było pięknie, nawet zmieniała się częstotliwość kiedy kręciłem encoderem, ale synteza była głucha jak pień. Nic z niej nie wychodziło.
Po wielu próbach wyszło że winny jest adres Si5351. Mikrob 4s pracował dobrze tylko gdy miał Si5351 z adresem 0x60. Musiałem "wydmuchać" z Easy 2017 Si5351 który miał na pewno ten adres a w to miejsce wkleiłem inny. Natomiast Easy 2017 ma wpisane w programie współpracę z Si5351 z adresem od 0x60 do 0x6F.
Może w nieodpowiednim adresie Si5351 leży przyczyna że układ nie działa?
Odpowiedz
#7
Krzysztof, zaczynam.
oto zestaw po skompilowaniu eep_Gen_Syg.ino
   
Ato zawartość pliku który został wskazany
   
Teraz przygotuję zapis pliku: eep_Gen_Syg.ino.eep

   
Ten zestaw nic nie zmienił.
Chyba 20000000Hz zamienił na -0
   
Spróbuję zapisać oba programy do nano w arduino
W arduino program eep_Gen_Syg.ino kompiluje się bez błędów a weryfikuje fatalnie

.doc   Arduino2.doc (Rozmiar: 268.5 KB / Pobrań: 306)
Andrzej
Odpowiedz
#8
Chyba niezbyt jasno napisałem poprzednio.
Jak kompilujesz ten pierwszy program:
eep_GEN_SYG.ino

to nie zapisujesz w ogóle eepromu. Ten program jak się uruchomi to wpisze odpowiednie wartości do eepromu. Choć w sumie to t6eż bez znaczenia, bo program po uruchomieniu i tak powinien nadpisać eeprom.

Później kompilujesz ten drugi program i go wgrywasz do flasha, ale NIC już nie wpisujesz do eepromu. Tak to wg mnie powinno być, ale ja tego nie budowałem i mam nadzieję, że to jest właściwa procedura.
Odpowiedz
#9
Na razie to stwierdziłem,że chyba at328P w arduino nano wyparował.
Nic nie chce wpisywać i pokazuje -0.
Wgrałem ten eep_Gen_Syg.ino do flash i mam to:
   
Andrzej
Odpowiedz
#10
(30-04-2024, 17:02)SP6AUO napisał(a): Na razie to stwierdziłem,że chyba at328P w arduino nano wyparował.
Nic nie chce wpisywać i pokazuje -0.
Wgrałem ten eep_Gen_Syg.ino do flash i mam to:

I pewnie dobrze. Ten pierwszy program robi jedynie wpisy do eeproma, dopiero ten drugi korzysta z tych wpisów. Tak mniemam ;-)

Odpowiedz


Skocz do:


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