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

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 14 lip 2025, o 00:59


    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: 586
    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: 586
    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: 27416
    Lokalizacja: Szczecin
    Pomógł: 1043

    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: 586
    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: 27416
    Lokalizacja: Szczecin
    Pomógł: 1043

    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: 586
    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: 1040
    Lokalizacja: Trójmiasto
    Pomógł: 190

    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: 586
    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: 1040
    Lokalizacja: Trójmiasto
    Pomógł: 190

    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: 586
    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: 1040
    Lokalizacja: Trójmiasto
    Pomógł: 190

    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: 586
    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: 1040
    Lokalizacja: Trójmiasto
    Pomógł: 190

    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: 586
    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 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