Aktywne Wpisy

pan-koneser +175
Wołam do plusowania papieża ( ͡° ͜ʖ ͡°)
#jp2gmd #wykopobrazapapieza #2137 #cenzopapa #papiez #bekazkatoli #heheszki #humorobrazkowy
#jp2gmd #wykopobrazapapieza #2137 #cenzopapa #papiez #bekazkatoli #heheszki #humorobrazkowy
źródło: hqdefault
Pobierz
HWD-5 +139





Zacznijmy od rozkodowania zapisu 4x256kx8bit ?
Oznacza to tyle, że mamy do dyspozycji 4 bloki po 256 słów, a w każdym możemy zapisać 8 bitów.
Dla STM32 odczyt będzie wyglądać tak:
HAL_I2C_Mem_Read_IT(&hi2c1, 0xA1, 0x01, I2C_MEMADD_SIZE_8BIT, (uint8_t*)&b, sizeof(b));Gdzie 0xA1 to adres urządzenia, no dobrze ale jak obliczyć? Otóż musimy zajrzeć do noty katalogowej 24AA08 i szukamy frazy "Device Addressing"
https://i.imgur.com/eQaKjOg.png
Także dla odczytu pierwszego bloku będziemy mieli w zapisie binarnym taki wynik: 1010 000 1, czyli w heksadecymalnym 0xA1.
Zacznijmy od 1010 jest to „Control Code” - ta wartość zawsze jest taka sama, następne trzy bity, tym właśnie wybieramy blok, który ma zostać odczytany. Układ ma tylko cztery bloki, więc dostępne warianty to 000, 001, 010, 011. MSB zawsze jest równe 0, wynika to z noty katalogowej. Ostatni bit naszego adresu to 1 i oznacza flagę odczytu, dla zapisu bit jest równy 0.
Przykładowo, jeśli będziemy chcieć odczytać drugi blok, to wartość będzie wynosić 10100011 = 0xA3.
To tyle mam nadzieję, że pomogłem choć jednej osobie. Szkoda, że znaczna większość poradników zwłaszcza po polsku bardzo płytko zagłębia się tematy. Pokazanie na najbanalniejszym przykładzie i koniec.
#programowanie
źródło: comment_ct3F8WEBZnRnNjGlq088TCJbZHTDKqrw.jpg
Pobierz