Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 16 kwi 2024, o 22:47


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
Autor Wiadomość
PostNapisane: 9 kwi 2019, o 11:13 
Offline
Użytkownik

Dołączył(a): 04 lis 2018
Posty: 46
Pomógł: 0

Witam kolegów ma problem z pamięcią 24LC08 i zegarem RTC8583 a problem jest taki sam zegar działa poprawnie ale jeśli dołożę 24LC08B to pamięć normalnie da się zapisać i odczytać a zegar jest błędnie czytany tak jak by na TWI był konflikt szyna podciągnięta do VCC rezystorami 4,7k. Po wyjęciu pamięci zegar działa z powrotem prawidłowo wszystko podłączone z schematem z BB kod też i na obu kodach to samo czy TWI czy I2C SOFT. Uszkodzony jakoś RTC bo wkładałem 24LC16 i to samo!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2019, o 11:20 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27224
Lokalizacja: Szczecin
Pomógł: 1041

PoczatkujacyAdam napisał(a):
Uszkodzony jakoś RTC bo wkładałem 24LC16 i to samo!

Czy początkujący Adam może zapomnieć o uszkodzeniach na przyszłość a zamiast tego zaglądać częściej do noty PDF scalaków które używa ? Toż zajrzyj do noty swojego eeproma i RTC, sprawdź adresy na magistrali I2C to zrozumiesz dlaczego źle dobrałeś te scalaki do pary na jednej magistrali.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2019, o 11:37 
Offline
Użytkownik

Dołączył(a): 04 lis 2018
Posty: 46
Pomógł: 0

NO tak nie patrzyłem na adres PCF 8583 a on ma to samo adresowanie 1010 co 24LC08 czyli zostaje inna pamięci albo DS3231 bo taki zegarek mam . Tylko czemu w nocie od 24LC08 piszą że można dwa takie układy na jednej szynie I2C ?

------------------------ [ Dodano po: 5 minutach ]

Dodam że A0-A2 w 24LC08 to adresy przynajmniej tak z noty to rozumiem zmieniałem z zer na jedynki i dalej to samo to jak niby dwie pamięci się potrafią odróżnić od różnić? A RTC w obu konfiguracjach im przeszkadza?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2019, o 12:38 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27224
Lokalizacja: Szczecin
Pomógł: 1041

PoczatkujacyAdam napisał(a):
Tylko czemu w nocie od 24LC08 piszą że można dwa takie układy na jednej szynie I2C ?

Skoro piszą to można, toż on ma dodatkową nóżkę zdaje się adresową - znowu kłania się nota.

Cytuj:
Dodam że A0-A2 w 24LC08 to adresy przynajmniej tak z noty to rozumiem zmieniałem z zer na jedynki i dalej to samo to jak niby dwie pamięci się potrafią odróżnić od różnić?

Spójrz na zakresy przestrzeni adresowej, rozpisz sobie adresy i zobaczysz, że się wszystko zgadza

PoczatkujacyAdam napisał(a):
A RTC w obu konfiguracjach im przeszkadza?

hmmm chyba coś kolega nie rozumie, co to znaczy adresowanie na I2C ... no dwa różne układy których adresowanie się nakłada - zawsze będą miały konflikt ... akurat z tym rtc o ile dobrze pamiętam to właśnie się nakładają przestrzenie adresowe pamięci eeprom ale to trzeba jeszcze sprawdzić czy nie da rady zakombinować A2-A0 - cały czas pamiętając, że to tylko ustalanie adresu bazowego dla eeproma a później będzie leciało adresowanie kolejnych komórek pamięci eeprom


Autor postu otrzymał pochwałę

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2019, o 13:02 
Offline
Użytkownik

Dołączył(a): 04 lis 2018
Posty: 46
Pomógł: 0

Chyba źle zrozumiałem tłumaczoną notę w tłumaczu gogle i A2-A0 to tylko zwiększenie adresu pamięci i procesor na tylko większą liczbę adresu komórek pamięci a wysyła jak do jednego układu mimo fizycznie że są dwa o tym samym adresie

------------------------ [ Dodano po: 4 minutach ]

A ja czytając to tłumaczenie zrozumiałem błędnie myśląc że zmieniam tymi pinami adres układu



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2019, o 21:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2014
Posty: 1020
Lokalizacja: Trójmiasto
Pomógł: 188

Okrutnie mieszasz z interpretacją noty.
Transmisja I2C wygląda następująco: START => 7 bitów adresu urządzenia plus bit zapisu/odczytu => 8 bitów adresu komórki pamięci => ...
Pamięci z serii 24CXX mają komórki pamięci 8 bitowe. Tak więc zauważ że adresując komórki pamięci tylko na 8 bitach uzyskamy 2^8=256 komórek po 8 bitów czyli 2048 bitów czyli powyższe rozważania dotyczące transmisji będą prawdziwe dla pamięci 24C01 i 24C02 które mają odpowiednio pojemności 1kbit i 2kbit. Natomiast piny kości oznaczone A0, A1, A2 pozwalają na zmianę adresu pamięci tak więc można ich jednocześnie podłączyć 2^3=8 sztuk o adresach 1010000(wszystkie 3 piny A podłączone do masy), 1010001(piny A2 i A1 do masy, pin A0 do Vcc) 1010010(pin A2 i A0 do masy, pin A1 do Vcc) i tak dalej aż do 1010111 - poprostu adres wygląda tak 1010(A2)(A1)(A0)R/W - 1010 to stała i niezmienna wartość, A.. przyjmują wartości w zależniości od podłączenia analogicznych pinów, R/W - zależy czy chcemy czytać z pamięci czy do niej zapisywać.
Problem się zaczął gdy producenci zachcieli wprowadzić na rynek większą pamięć o pojemności 4kbity - bo ta zawiera 512 komórek pamięci po 8 bitów więc 8 bitami adresu nijak się nie da jej zaadresować, więc stwierdzili że zrezygnują z pinu A0 który w tych pamięciach jest niepodłączony, a bit w adresie urządzenia dawniej odpowiadający za najmłodszy bit adresu urządzenia, został wykorzystany jako uzupełniający najstarszy bit adresu komórki pamięci. W efekcie jednocześnie takich pamięci do szyny podpiąć można 2^2=4szt a ich adresy będą wyglądać tak 1010(A2)(A1)(X)R/W, gdzie A.. jak poprzednio zależą od sposobu podłączenia, R/W zapis lub odczyt, natomiast X jest nieznaczącym dla adresu urządzenia bitem tak więc jeśli oba piny A podepniemy do masy to adresy aktywują daną pamięć zarówno 1010000 jak i 1010001 ponieważ ostatni bit nie jest postrzegany przez pamięć jako najmłodszy bit adresu urządzenia, a jako najstarszy bit adresu komórki pamięci.
I teraz w Twoim przypadku dla pamięci 24C08 jest analogicznie tylko zabrano już dwa bity z adresu urządzenia i przypisano je jako najstarsze bity adresu pamięci. Czyli tylko pin A2 ma znaczenie dla adresu urządzenia. Jeśli chcesz tą pamięć podłączyć na jednej szynie z PCF8583 to pin A2 pamięci podłącz do Vcc wówczas pamięć będzie miała adres 1010100 i powinno to zadziałać poprawnie; ale uwaga! niektórzy producenci wogule nie uwzględniają możliwości zmiany adresu pamięci więc może się zdarzyć, iż podłączenie A2 do Vcc i tak zostanie zignorowane i pamięć będzie reagowała również na adres 1010000 i to niestety może być Twój przypadek (sądząc po symbolu) , poniżej fragment noty microchipa dla pamięci 24LC08B:
Obrazek
Jak widać jest wyraźnie napisane że piny A0, A1 i A2 są niewykorzystywane i mogą być dowolnie podłączane bez wpływu na działanie układu.
Na pewno atmelowskie pamięci AT24C08 posiadały możliwość zmiany adresu (tak przynajmniej twierdzi atmelowska nota do pamięci AT24C01A/02/04/08/16)
Jak widać ta sama pamięć produkowana przez różnych producentów jest niby tą samą, ale może różnić się niby mało znaczącymi szczegółami, które w rzeczywistości mogą zdyskwalifikować dany egzemplarz w kontekście użycia w danym projekcie.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 kwi 2019, o 13:29 
Offline
Użytkownik

Dołączył(a): 04 lis 2018
Posty: 46
Pomógł: 0

Dziękuje bardzo za zainteresowanie i sugestie układy pracują na jednej szynie i fakt panie Mirku nota nie kłamie przynajmniej ta Atmela bo znalazłem w starym tunerze sat 24c04 i w drugim 24c16 . 24c04 reaguje na adresowanie A1-A2 a 24c16 nie obie się zapisują i dają czytać a z PCF8583 tylko 24c04 .Pamięci z Microchip nie lubią PCF8583. Jeszcze raz wielkie podziękowania bo przy okazji podszkoliłem sposób czytania not .



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 kwi 2019, o 13:45 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27224
Lokalizacja: Szczecin
Pomógł: 1041

PoczatkujacyAdam napisał(a):
Pamięci z Microchip nie lubią PCF8583.

Ale zrozum (może doprecyzuję bo może jeszcze coś tobie umknęło) ... to nie chodzi o to że pamięci z Microchip nie lubią czegoś - nie ważne jaka firma - standard pamięci 24C08 i 16 przewiduje (dobrze że sprawdziłeś) przesyłanie adresów po I2C tuż po adresie SLAVE układu - i właśnie to powoduje, że gryzie się to z adresowaniem tego konkretnie RTC dla pewnych tylko zakresów obszarów tej pamięci ;) I nawzajem - zapis do RTC może powodować problem w drugą stronę. Typowy konflikt adresowy. Gdyby ten RTC był np w innej wersji z literką np A na końcu tak jak np expandery czyli scalaki

PCF8574 ;) są też w wersji PCF8574AT i teraz zobacz - mają różne adresy bazowe

PCF8574 - base addr = 0x40
PCF8574AT - base addr = 0x70

wtedy można sobie wziąć inną wersję scalaczka z innym bazowym adresem i już można uniknąć konfliktu

Mam nadzieję że teraz się już w pełni to wyjaśniło - a na pewno przyda się na przyszłość jak podchodzić do doboru scalaków pracujących na I2C żeby nie robić sobie takich ZONKów ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 kwi 2019, o 14:04 
Offline
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 2561
Pomógł: 126

I zawsze można użyć I2C skanera od Mirka :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 kwi 2019, o 15:16 
Offline
Użytkownik

Dołączył(a): 04 lis 2018
Posty: 46
Pomógł: 0

Używam programów Mirka z BB .Dla mnie spora lekcja i nadanie pewnego podejścia do składania układów czyli studiowanie not może ktoś początkujący z tej podpowiedzi waszej też coś wyniesie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 4 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO