Tamte akurat miały architekturę von Neumann-a, więc wszystkie adresy były jednego rodzaju. Składnia DANE<<1 (albo chyba DANE*2 też mogło by być) wynika z (nieco) idiotycznej konwencji, że dla przestrzeni kodu asembler numeruje (adresuje) słowa (pamięć FLASH jest 16-bitowa), natomiast przy dostępie przez LPM trzeba zaadresować pojedynczy bajt.
http://obrazki.elektroda.pl/5144790300_1... Przedstawiam Wam swoje najnowsze dzieło - KrzysioCart MicroSD - kardridż do konsoli Pegasus, który będzie ostatnim, jaki kupisz - żaden inny już nie będzie potrzebny. Kardridż obsługuję 82% wszystkich gier, jakie wyszły na konsolę NES / Famicom / Pegasus. Obsługiwane są następujące mappery...
http://obrazki.elektroda.pl/6130528400_1... http://obrazki.elektroda.pl/2906458300_1... Witam wszystkich. Chciałbym przedstawić na łamach forum mój projekt, który powstaje już od około pół roku. Tematem projektu jest komputer 8-bitowy oparty o procesor Z80. Założeniem jest, aby zbudować funkcjonalny komputer 8-bitowy...
https://obrazki.elektroda.pl/7257498500_... Pokażę tutaj jak można łatwo uruchomić zewnętrzną pamięć Flash z dowolnym mikrokontrolerem w oparciu o programowe SPI. Omówię tu działanie i znaczenie poszczególnych operacji (odczyt, zapis, kasowanie) oraz zaimplementuję je w kodzie. Temat użycia takich pamięci wydaje mi się co najmniej...
https://obrazki.elektroda.pl/8150253700_... Oto krótka prezentacja wnętrza mikrowieży z odtwarzaczem CD i USB firmy Blaupunkt model MS8BK. Sprawdzę tutaj jak jest ona zbudowana, spróbuję przeanalizować jej firmware z nieznanego mikroprocesora i określić jego architekturę w Ghidra, a potem uruchomię jej wyświetlacz z Arduino. https://obrazki.elektroda.pl/3095604700_...
https://obrazki.elektroda.pl/1803056600_... W tym artykule opiszę zmagania z odczytem nietypowej składanki, wbudowanej w konsole typu Pegasus. Projekt to pomysł + stworzenie PCB + napisanie kodu w assemblerze 6502. https://obrazki.elektroda.pl/9452065200_... https://obrazki.elektroda.pl/3230638000_...
http://obrazki.elektroda.net/78_12770565... Witam! Zniechęcony rozwiązaniami dostępnymi w internecie postanowiłem napisać własny bootloader dla mikrokontrolerów z rodziny AVR. Gotowe rozwiązania jakie znalazłem były zbyt rozbudowane lub po prostu nie działały. Projekt powstał w około 6-7 dni ale tylko dla tego że było to zagadnienie zupełnie...
https://obrazki.elektroda.pl/3570276400_... Pokażę tutaj jak przyśpieszyłem programową komunikację SPI służącą do obsługi pamięci Flash. Sprawdzę jak dużo kodu może kryć się za warstwą abstrakcji GPIO BK7231 a potem spróbuję operacje na pinach zredukować tak, by działały bezpośrednio na rejestrach. Ile cykli procesora tracone jest...
https://obrazki.elektroda.pl/3803750000_... Witajcie moi drodzy Przedstawię tutaj mój sieciowy sterownik przekaźników kompatybilny z Home Assistant poprzez Tasmota HTTP. Sterownik oparty jest o PIC18F67J60 i dodatkowo oferuje m. in. odczyt temperatury, budzik, przyciski, niezależny panel WWW oraz szerokie możliwości konfiguracji. Wstęp...
http://obrazki.elektroda.pl/3514915600_1... Programator umożliwia: programowanie i zrzucanie zawartości pamięci mikrokontrolerów jednoukładowych Atmel AT89 C X051 programowanie i zrzucanie zawartości pamięci EEPROM I2C AT24C02 komunikację z urządzeniami slave 1-wire generowanie sygnału zegarowego dla Atmela, wystawianie i pobieranie...
http://obrazki.elektroda.pl/9589280700_1... HPS 2014 Hybrydowy laboratoryjny zasilacz sieciowy. Parametry użytkowe zasilacza w skrócie: 1. Wykorzystanie tanich i łatwo dostępnych elementów. 2. Wydajność prądowa min 3A (dla niskich napięć może dochodzić do 5A). 3. Rozdzielczość DAC 12bit. (filtrowany PWM 4.9kHz) 4. Rozdzielczość ADC...
Jeśli chcesz przechowywać coś, co rzadko się zmienia, możesz spróbować użyć fikcyjnych bajtów w mainConfig_t : https://github.com/search?q=repo%3Aopens... Jednak główny config powinien zmieniać się tylko wtedy, gdy użytkownicy coś zmieniają, a nie sam z siebie... nie jest zoptymalizowany pod kątem...
Walczę już kilka dni próbując różnych podejść i niestety się nie udaje, więc postanowiłem spytać, może ktoś miał coś podobnego. Mikrokontroler stm32F407VGT6, potrzebuję zapisać bajt w pamięci flash pod określonym adresem. Mam 2 funkcje do zapisu i odczytu jednego bajtu w sektorze 2 pamięci flash: void flash_init(void) { FLASH_PrefetchBufferCmd(ENABLE);...
http://obrazki.elektroda.pl/5313552500_1... Sterownik włącza/wyłącza do 8 urządzeń grzewczych i chłodniczych. Stan wyjść zależy od: temperatury mierzonej w dowolnej liczbie punktów, wewnętrznego zegara czasu rzeczywistego, programu grzania i chłodzenia przechowywanego w pamięci EEPROM. Architektura sterownika Sterownik jest oparty na...
Próbował ktoś z was zablokować odczyt pamięci flash z poziomu programu ? Według not wpisanie do bitów 15-8 (RDP) rejestru FLASH_OPTCR dowolnego bajtu poza 0xaa 0xcc powoduje włączenie blokady odczytu, poziomu 1 zabezpieczeń. Z funkcji bibliotecznych można użyć funkcji FLASH_OB_RDPConfig(OB_RDP_Level_1); dodatkowo można zresetować urządzenie. Testowałem...
Dziwny ten Twój F103. Te, które ja znam, mają strony po 1024 B. Strona_127 + i da adres kolejnego bajtu na stronie. To, co ja pokazałem - dostęp do kolejnego słowa 16-bitowego
Wystawiam i odbieram bity w taki sposób jak napisałeś. Tylko co do wysyłania instrukcji zrobiłem troche inaczej: - SCK na 0, reset przez chwile na 1 - dwa bajty PE a podczas wysylania trzeciego odebranie (ten bit powinien być równy drugiemu wysłanemu czyli $53 i tak właśnie jest u mnie, czyli wnioskuje z tego, że zapis i odczyt działają poprawnie) -...
Sprawdz czy wogole poprawnie komunikujesz sie z pamiecia odczytujac SR (Status Register) Przecież ma oscyloskop więc widzi co wysyła i odbiera. Co mu po czytaniu rejestru jak w ogóle mu odczyt nie działa. Na ostatnim oscylogramie podczas transmisji ostatniego bajtu pamięć nie steruje sygnałem SO, co oznacza, że nie rozpoznaje komendy i adresu, być...
wedle zyczenia: // zwraca zawartosc rejsetru statusowego // bit7 = ready/busy // bit6 = wynik ostatniego porownania pamieci z buforem // bit5,4,3,2 = zakodowana pojemnosc pamieci (dla kompatybilnosci wstecz) // bit1 = status ochrony sektorow przed zapisem // bit0 = 0=strona standartowa (zmiana na "power of 2" nie moze byc cofnieta...
Witam, kompilator Hi-Tech, mikrokontrolery serii 16Fxxx. Generalnie taka panuje moda, że wskaźniki w C to podstawa, tylko że ja uważam, że w wielu zastosowaniach wcale nie zmniejszają kodu wynikowego, wręcz przeciwnie, nie dość że zajmują więcej flash to jeszcze RAM. Oczywiście, dla przejrzystości kodu itp. warto je stosować, gdy jest dużo operacji...
Witam. Po przerwie wracam do tematu gdyż nadal nie mogę poradzić sobie z obsługą karty Compact Flash za pomocą mikrokonrolera. Sprawa wygląda w ten sposób że wykonałem układ do obsługi karty CF jak na poniższym schemacie. Poniższy schemat jest zaczerpnięty z Elektroniki Praktycznej z rocznika 2/2004 http://obrazki.elektroda.net/39_12252239...
Witam Forumowiczów. Od dłuższego czasu staram się uruchomić wyświetlacz LCD GDM1602a , jednak nie udaje mi sie , problem leży w inicjalizacji jego , bo podłączenie mam poprawne. czytam na forach ze niby GDM1602a jest kompatybilne ze sterownikiem HD44780 , lecz chyba nie do końca bo w GDM1602a jest sterownik o nazwie : Built-in controller (S6A0069 or...
Chętnie. Czegoś więcej się nauczę. plik H: [syntax=c] #ifndefLCDHD44780_H_ #defineLCDHD44780_H_ /* #defineLCD_HD_5X8 // Polskie znaki czcionką 5x8 a nie 5x7 //#defineLCD_ONLY_PL // Definicje w FLASH tylko znaków PL (mniejsze zużycie FLASH) //#defineLCDMIROR // Użycie tworzy w RAM kopię treści wyświetlacza #defineLCDLINE4 // Liczba wierszy #defineLCDROW20...
Ok dzieki za radę na pewno się zastosuje, jestem początkującym w tej dziedzinie dlatego potrzebuje naprowadzenia jak tego sie uczyć :) Wracając do mojego konkretnego problemu, wstawiam caly kod i z ciekawości poprosze o wskazanie gdzie jest blad. Z góry dziekuje za chwile poswieconego czasu. [syntax=c] #include <util/delay.h> #include <avr/pgmspace.h>...
(at)R-MIK: Zacytowany fragment to było tylko uzasadnienie, dlaczego wydawało mi się, że implementacja RW jest zbędna - pytanie o wspomniany zysk należy zadać raczej autorowi tamtej wypowiedzi, na stronie której adresu już nie pamiętam. Poza tym, nie wiem czy dobrze rozumiem - sugerujesz, że implementując odczyt flagi zajętości nie zyskam nawet 50%...
Koło 21 wstawię działający program prawie bez zakłóceń kwarc przy sedzie 3 Mhz atmega 8 Mhz jeszcze nie trafiam w zapis pierwszego bajtu każdej linii więc pierwsze 8 pixeli ma zakłucenia przy odswieżaniu edit : Saper troche zmieniłem odczyt flagi :D #include <avr/io.h> #include <inttypes.h> #include <avr/pgmspace.h> #include <stdlib.h>...
1. Konfiguracja środowiska programistycznego Platforma programistyczna: CDK Oprogramowanie do pobrania programu: Upgrade_Tools_V1.4.8.exe Sterowniki: Sterownik USB-to-Serial CH340 Informacje na temat konfiguracji i instalacji powiązanej platformy programistycznej można znaleźć w samouczkach online. W scenariuszach rozwoju sprzętu środowisko programistyczne...
Tej pamięci nie znam, ale zazwyczaj z pamięciami FLASH z interfejsem SPI jest tak: Adresy będą pewnie 3-bajtowe i zapewne adresują pojedyncze bajty. Ty masz liczby 12-bitowe, więc najlepiej na każdą przeznaczyć 2 bajty. Wtedy adresy dla każdego pomiaru będą kolejne parzyste (np. adres pomiaru nr 12 to 24). Aby coś do pamięci zapisać, trzeba: - wysłać...
Cześć. Warianty dla TC58DVG02A3? 1 Gbit (1 107 296 256 bitów) NAND, wymazywalna elektrycznie i programowalna pamięć tylko do odczytu (NAND E2PROM) zorganizowana jako 528 bajtów × 32 strony × 8192 bloki.
Udało mi się stworzyć wersję terminalową z szybkim zrzucaniem, ale zmiana szybkości transmisji w kodzie z jakiegoś powodu nie działa. Po ręcznej zmianie w terminalu działa dobrze. Binarny w załączeniu. Protokół jest taki sam, 512 bajtów flash + 2 bajty crc. fdump [addr] [size] Opóźnienie przed odczytem wynosi około 2 sekund Zapisywanie/usuwanie również...
Witam, próbowałeś podzielić odczyt na dwie części, zamiast upychać w jednej linii? Wyciągnij adres elementu z tablicy (&(arrays[iterator])) i odczytane 2 bajty (pgm_read_word()) potraktuj jako adres docelowej tablicy z uint8_t, z którego odczytasz jeden bajt. Pozdrawiam
Wzmocnienie nie ma znaczenia. A na W600 komenda flash id wypisuje albo 1 albo 2 bajty, nie jestem pewien które, bo dostaję 1C, a C może być tylko częścią spamu xmodem crc. W każdym razie ostatnie 2 bajty wystarczą, aby uzyskać rozmiar pamięci flash. A W600 nie obsługuje odczytu pamięci flash.
Nie ma innej opcji. Nie rozumiem co w/g ciebie oznacza "dużo operacji"? Jest to pamięć do danych masowych więc taki jej urok. Czasy odczytów i zapisów są takie same, to czy będziesz zapisywać 1 czy 500 bajtów nie robi żadnej różnicy, poza ilością przesyłanych danych a punkty 1 i 3 to tylko komendy.
dla flasha ostatecznie jednak użyłem swojej implementacji z biblioteki SPImemory i będę zapisywał dane w bajtach. Rozumiem, że w jakiś sposób chciałeś sobie uprościć kwestię adresowania zapisanych danych w zewnętrznej pamięci SPI. Sama biblioteka SPImemory wspiera również bezpośrednio zapis/odczyt float, string, różne typy int oraz tablice bajtów ....
Zapis wartości w programie (ostatni zapis w kodzie): ; KOD 1 orgEND_FLASH retlwBAJT_KALIBRACJI end Powyższy kod zapisuje w ostatniej komórce pamięci programu wartość: 0x34xx, gdzie xx to twój bajt kalibracji. Odczytałeś wartość 0x343C dlatego jako bajtu kalibracji użyj wartości 0x3C Kalibracja (zapis na początku programu): ; KOD 2 bsfSTATUS,RP0; bank...
Kolego elektryk. Twoje rozumowanie nie jest wg. mnie dobre. Przecież jakoś te dane trzeba w tym ramie umieścić. Kompilator robi to przez instrukcję LDI RXX,stala, a to są 2 bajty. Tymczasem sama stała ma rozmiar jednego bajtu. Sam odczyt pamięci flash robi się zwykle w pętli (jeśli trzeba je skopiować do RAMu), więc na pewneo nie jest optymalniej pod...
LcdTxt(pgm_read_byte(&tablica1),19,1,0) LcdTxt przyjmuje adres do ciągu znaków, a Ty jeden bajt próbujesz podać. Po prostu musisz stworzyć odmianę funkcji LcdTxt która jako argument przyjmie adres do Flasha. Takie uroki AVRów. Pozatym zapis &tablica1 nie ma sensu, albo tablica1 albo &tablica1[0].
Ciężko odpowiedzieć na tak zadane pytanie. To tak jakbyś zapytał jak sprawdzić wartość jakiejś komórki pamięci RAM (czyli powiedzmy jakąś zmienną). No po prostu odczytując ją :D Tak samo różne opcje zabezpieczeń. One są zapisane w pamięci, tyle że FLASH. Żeby je sprawdzić to trzeba je odczytać. No inaczej się nie na napisać. Ale mała podpowiedz: Option...
Tak. To samo zachowanie do tej pory. Nie miałem jeszcze czasu, aby odlutować chip, aby zaatakować go z PCB kamery. Asprogrammer wydaje się mieć lepszy czytnik SREG... Dodano po 5 . Czy masz to samo? Pierwsze 0x43 bajty zapisane czy jakoś tak? Faktycznie, mój odczyt nie był oczywisty, że zapisał kilka bajtów. Może masz wyraźniejszy obraz z chipem na...
flash_vars_start i flash_vars_len powinny być takie same, w BkDriverFlash.c partition_start_addr i partition_length są takie same, jak w T sdk. Nie, nie mam. tmp wynosi 0 Zrobiłem kopię zapasową i widzę, że podstawowa długość flash_vars jest zapisywana poprawnie (0x50 przy 0x1E304F i 0x1E30EF), ale przy odczycie w pętli jest zero (prawdopodobnie dlatego,...
Nie mam pojęcia po co miałbyś zapisywać we flash dane tekstem, skoro struktura którą opisałeś perfekcyjnie nadaje się do reprezentacji binarnej Wojsko np. kiedyś wymagało aby dane konfiguracyjne i parametry działania byly zapisywane tekstem w pamięciach nieulotnych i dodatkowo chronione CRC. Mały tez na początku struktury kilka bajtów o łatwo identyfikowalnych...
(at)slaweb91, czy możesz sprawdzić jeszcze jedną rzecz? Najpierw wykonaj skrypt SPI, aby napisać tylko program ładujący: WriteImage(0,"OpenBK7231T_App_QIO_35... 0x11000) a następnie zmodyfikuj skrypt SPI, aby wykonać tylko a odczyt danych , pierwsze 0x11000 bajtów i porównaj, czy dane, które odczytałeś, są takie same jak dane, które...
No właśnie odpowiadałem ci na tamten wątek ale okazało się że w trakcie go zamknąłeś. A pisałem właśnie że nieco inaczej będzie teraz trzeba odczytywać te dane z Flash ale to nie jest jakiś kłopot. Tylko na początek - małe sprostowanie bo robisz troszkę albo hmm bardzo dziwne rzeczy :( co to jest ? [syntax=c]const unsigned char MN01[] PROGMEM="Ustaw...
zagwizdow , za Twoją radę wypociłem takie cudo. Oczywiście działa, ale ma dwie wady. 1. Mogę wczytać maksymalnie 255 elementów tablicy. 2. Nie mogę używać zmiennej dla tablicy. Czy jest w ogóle możliwe rozwiązanie moich 2 problemów ? trol.six , niestety Twój przykład się sypie. W rejestrze YL mam tylko indeks tablicy, a w YH jakieś bzdury. Odnoszę...
Mam pytanie-propozycję: Czy możesz wrzucić do pamięci Flash mikrokontrolera tablicę uint8_t w której jest problematyczny kawałek MP3 320kb/s? Niech read_pointer z Twojej funkcji mp3_process wskazuje na początkowy bajt tej tablicy we Flash. Pozbywamy się w ten sposób problemów wynikających z (być może) błędnej obsługi / odczytu karty SD. Drugie moje...
Witam Wydaje mi się że zewnętrzny EEprom to pomyłka ponieważ najpierw musisz mieć procedurę odczytu 8 bitów (szeregowo) a następnie z siakiegoś rejestru w którym to poskładasz w bajt wyślesz to na port. Co do obsługi wewnętrznego EEproma chyba jest podobnie. Natomiast różnicy pomiedzy RAM i Flash chyba nie ma , poza taką że do RAMu musisz najpierw coś...
Thomson DSI30PO Potrzebne elementy: Programik: jkeys1.33 Programik: talkcarri Programator: Jtag i zasilanie do niego zaleznie od typu jtaga 3.3v Programator: phoenix Do płyty głównej w miejsce oznaczone jako BW508 wlutować piny: Podłączamy zasilanie 3,3V dla Jtag do (+) kondensatora oznaczonego na płycie jako CP081. Podłączamy port LPT (w trybie ECP)...
IO21 w ogóle nie jest potrzebny Dodano po 5 Ponieważ OTA jest połączone, oto flasher https://github.com/openshwprojects/BK723... Odczyt działa dobrze, występują sporadyczne błędy, ale ponawianie działa dobrze. Hash sprawdza każdy sektor. Zapis jest zhakowany, polecenia takie jak "flash 1" "flash 5 2 4096 0 1" "flash 3" są wysyłane...
Z CF można odczytywać i zapisywac pamięc w sposób: podaje adres- odczytuje bajt, podaje następny adres- odczytuje kolejny bajt i tak dalej?
Dokładnie tak samo jak z pamięcią Flash. Działa odczyt i zapis nieco wolniej. Ponieważ mam maleńkie pliki od kilku bajtów do max 3kb, to nie ma absolutnie żadnego wpływu na odczuwalnie wolniejszą pracę ESP. Karta widziana jest jak standardowy Flash.
odczyt bajtu wysyłanie bajtu transmisja bajtu
wyświetlacza aparacie samsung kupię oscyloskopu bufor odbieranie znaków
lodówka odszranianie parowników prostownik automatyczny schemat
Schemat elektryczny lamp tylnych Volkswagen Passat B5 – opis pinów, kolory przewodów, bezpieczniki Iveco Daily kod błędu 43 – czujnik pedału gazu, ABS, SRS, interpretacja DTC