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



Teraz jest 20 kwi 2024, o 07:20


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 14 ] 
Autor Wiadomość
PostNapisane: 23 maja 2019, o 13:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2017
Posty: 547
Pomógł: 0

Mam pytanie jaka jest różnica funkcji zapisu i odczytu , chodzi o pamięć EEPROM 24C04 a 24c08 , gdzie odszukać noty PDF.
Proszę o jakąkolwiek podpowiedz.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 maja 2019, o 14:26 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2017
Posty: 547
Pomógł: 0

No dzięki ale jak znależć operacje dla podstawowych funkcji np.
I2C START
I2C STOP
I2C Read Byte
I2C Write Byte

Czy te informacje są zawarte w tym fragmencie pdf-a:

Obrazek

Dlaczego o to pytam porostu chciałem zwiększyć ilość danych pamięci EEprom z 24c04 na 24c08 , ale po zmianie procka nie ma komunikacji podpowiedzcie jak to szukać?
Chodzi mi również o zrozumienie zagadnienia jak to działa?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 maja 2019, o 15:10 
Offline
Moderator
Avatar użytkownika

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

AKSELINEK napisał(a):
Dlaczego o to pytam porostu chciałem zwiększyć ilość danych pamięci EEprom z 24c04 na 24c08 , ale po zmianie procka nie ma komunikacji podpowiedzcie jak to szukać?

Przeczytaj sam - jeszcze raz na spokojnie - to co napisałeś i spróbuj sam to zrozumieć ... później napisz pytanie na nowo i na spokojnie

_________________
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: 23 maja 2019, o 15:38 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2017
Posty: 547
Pomógł: 0

Faktycznie nie po Polsku napisałem chodziło mi to że:

Dla pewnego mojego projektu ilość zapisywanych danych nie mieści mi się na EEpromie 24c04 i chciałem zastosować procka o większej pojemności jeśli chodzi o zapisanie danych,
czyli EEprom 24c08 , , wymieniłem pamięć z 24c04 na 24c08 a tu :o nie mam komunikacji.
(Sory nie chodziło mi o zwiększenie pamięci w samym EEpromie a tak niefortunnie napisałem :lol: )
Muszę przerobić funkcje zapisu i odczytu danych i prosiłbym o jakiś kierunkowskaz od czego zacząć i czego na początek poszukać?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 maja 2019, o 16:13 
Offline
Moderator
Avatar użytkownika

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

AKSELINEK napisał(a):
i chciałem zastosować procka o większej pojemności

to zastanów się, chciałeś zastosować:

1. procka o większej pojemności ?
2. czy zewn. pamięć EEPROM o większej pojemności ?

Bo nadal (wybacz ale piszesz bez składu i ładu)

AKSELINEK napisał(a):
Sory nie chodziło mi o zwiększenie pamięci w samym EEpromie a tak niefortunnie napisałem

No to o co chodziło w takim razie ?

Toż w byle procku AVR typu ATmega masz zawsze dużo więcej pamięci EEPROM niż w zewnętrznych układach EEPROM

_________________
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: 23 maja 2019, o 16:59 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2017
Posty: 547
Pomógł: 0

Tak - Tak - zewnętrzną pamięć EEPROM , w projekcie współpracuje ona z ATmegą 32 , chodziło mi o zastąpienie 24c04 na 24c08 .

Projekt ma odczytywać zapisane dane w pamięci zewnętrznej - umiem odczytywać 24c04 , a jak przełożę na 24c08 to tej pamięci nie odczytam.
ATmega poprzez wyświetlacz ma tylko pokazać wyniki zapisanych danych na zewnętrznym EEpromie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 maja 2019, o 19:25 
Offline
Użytkownik
Avatar użytkownika

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

Pamięci 24C04 posiadają 4 kilobity pojemności (a dokładnie 4096 bitów), jako ze komórki pamięci są 8-bitowe to 4096/8=512 bajtów pojemności czyli aby zaadresować wszystkie komórki pamięci potrzebujemy 9 bitowy adres (2 do potęgi 9). Protokół I2C może wysyłać tylko osiem bajtów więc musieli zakombinować z tym dziewiątym bitem adresu. Dziewiąty, najbardziej znaczący bit adresu pamięci został przesunięty do ostatniego bitu adresu sprzętowego tuż przed bit zapisu/odczytu (tak więc możliwość adresowania sprzętowego została okrojona o jeden bit).

Natomiast pamięci 24C08 mają pojemność 8 kilobitów (dokładnie 8192 bity) po podziale przez osiem otrzymujemy 1024 sztuki komórek pamięci które trzeba zaadresować,na co potrzeba 10 bitów. Tu analogicznie 2 najstarsze bity adresu komórek pamięci zostały przesunięte do pola adresu sprzętowego tuż przed bit zapisu odczytu. Oczywiście również możliwość adresowania sprzętowego ogranicza się o kolejny bit więc mamy do dyspozycji tylko A2 czyli nogę 3 (w pamięciach 24c04 do dyspozycji były dwie A1 i A2 na nogach 2 i 3)

Podsumowując należy zmodyfikować funkcje ale nie te które wypisałeś:
AKSELINEK napisał(a):
I2C START
I2C STOP
I2C Read Byte
I2C Write Byte

bo te funkcje dotyczą samego protokołu I2C a nie pamieci.
W ćwiczeniach z BB były funkcje EI2C_read_buf/EI2C_write_buf które są odpowiedzialne za komunikację z pamięcią EEPROM i to je trzeba by zmodyfikować; aczkolwiek akurat funkcje w BB były tak napisane że oba tu przytoczone typy pamięci powinny działać bez jakichkolwiek modyfikacji.
Jedyne co może mieć wpływ to zdefiniowany adres sprzętowy:
pamięć 24C04 ma ten adres w postaci 1010 "A2" "A1" 00 gdzie A2 i A1 odpowiada sposobowi podłączenia odpowiednich pinów fizycznych kości (piny 2 i 3) jeśli pin podłączony do Vcc to ma być tam "1" jeśli do GND to ma być "0"
natomiast pamięć 24C08 adres fizyczny ma w postaci 1010 "A2" 000
Sam adres pozostawiony bez zmian po zamianie pamięci również nie powinien mieć większego znaczenia na komunikację (w sensie jej brak, bo na poprawność zapisu może mieć wpływ dla niektórych wartości adresu fizycznego), natomiast przypuszczam że na szynie I2C oprócz pamięci masz wpięte jeszcze inne urządzenie którego adres koliduje ze skróconym adresem pamięci 24C08.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 maja 2019, o 19:52 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2017
Posty: 547
Pomógł: 0

Może spróbuje inaczej zaadresować pamięć - 24c08 tylko podpowiedz jak to zrobić - wpiąłem 24c08 do układu i takie napięcia mam na wejściach adresowych:

A0 - 0 ( 1 noga 0V)
A1 - 0 ( 2 noga OV)
A2 - 1 ( 3 noga 5V)

jak obliczyć adres ?

Na szynie był jeszcze PCF 8583 ale teraz go wypiąłem i dalej to samo - podpowiedz jaki wpisać adres - to spróbuję.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 maja 2019, o 20:20 
Offline
Użytkownik
Avatar użytkownika

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

AKSELINEK napisał(a):
wpiąłem 24c08 do układu i takie napięcia mam na wejściach adresowych:
Ale te napięcia masz wymuszone (czyli elektrycznie podpiete do Vcc lub GND) czy wiszące w powietrzu i tylko mierzysz co na ich występuje?
AKSELINEK napisał(a):
A0 - 0 ( 1 noga 0V)
A1 - 0 ( 2 noga OV)
A2 - 1 ( 3 noga 5V)

Dla pamięci 24C08 piny A0 i A1 są ignorowane, więc przy A2 podpiętej do Vcc adres będzie 1010 1000 binarnie czyli 0xA8 w hex.
Jeszcze pytanie czy używasz bibliotek z BB czy może innych np. arduinowych? Bo np w arduinowych bibliotekach przyjęto nieco inną nomenklaturę zapisu adresu, tzn. przesuwają adres o 1 w prawo (tak by usunąć bit read/write) więc dla arduinowych bibliotek adres będzie 0x54 (binarnie 101 0100)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 maja 2019, o 21:19 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2017
Posty: 547
Pomógł: 0

Korzystam z projektu z BB 08_I2C_SOFT w wersji tak jak zakupiłem - napięcia na w/w wejściach są wymuszone przez zwarcie do masy A0 i A1 , natomiast A2 zwarte do +5V , adres tak jak w projekcie
czyli :
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Jak zakładam pamięć 24c04 to wynik jest taki:

Obrazek

czyli napis EEPROM jest elegancko zapisany i odczytywany , a jak założę 24c08 to jest tak:

Obrazek

czyli napis EEPROM jest w kszaczorach.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 maja 2019, o 21:52 
Offline
Użytkownik
Avatar użytkownika

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

A procek jak jest taktowany? Wewnętrzny 8MHz czy z kwarca 11.0592MHz?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 maja 2019, o 22:43 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2017
Posty: 547
Pomógł: 0

z zewnętrznego kwarca 11.0592MHz , ale zauważyłem dziwną zmianę w drugim zdjęciu (dla 24c08) pojawia się jakiś czas - to dziwne bo RTC nie odczytywało przy 24c04



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 maja 2019, o 17:27 
Offline
Użytkownik
Avatar użytkownika

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

A zwróciłeś uwagę na sekcję komentarza w bibliotece soft_i2c?
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Najprawdopodobniej na kwarcu 11.0592 szyna I2C jest przetaktowana i kostki nie dają rady.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 maja 2019, o 19:43 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2017
Posty: 547
Pomógł: 0

Faktycznie zmieniłem na 8Mhz i zegar ruszył xentis jesteś WIELKI.

Problem podstawowy jednak jest dalej - chciałbym aby zadziałała w w/w układzie pamięć 24c08 - jakie dokładnie funkcje należy przerobić- kolega xetnis sugerował przerobienie funkcji -EI2C_read_buf/EI2C_write_buf ? problem jak się do tego zabrać , zanim to jednak zrobię podłącze 24c08 na stykówce i o wynikach dam znać?



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: 14 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 8 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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO