Problem z pamięcia 24c64N

Apr 29, 2006 13 Replies

Witam, mam dość niecodzienny problem z pamięcią 24c64. Pamięć można zaprogramować/odczytać programem ICPROG, niestety podczas odczytu przez procesor pamięć nie odpowiada sygnałem ACK:



i2cstart i2cwbyte 160 'adres urządzenia tutaj wszystko jest ok i2cwbyte adres1 'pierwszy bajt adresu tutaj brak sygnału potwierdzenia... . . .



Oczywiście programuje w Bascom AVR.


Powitanko,

A co dalej? Bo powinno byc dalej: .. I2cstart 'repeated start I2cwbyte 161 I2crbyte odczytany_bajt , Ack I2cstop

Pozdroofka, Pawel Chorzempa

Oto pełny kod: I2cinit I2cstart I2cwbyte 160 I2cwbyte Adres1 I2cwbyte Adres2 I2cstart I2cwbyte 161 I2crbyte Wartosc , Nack I2cstop

Odczyt daje mi 0xFF a gdy jest wolniejsza transmisja (miedzy poleceniami daje waitms 1) to

161....

Oto pełny kod: I2cinit I2cstart I2cwbyte 160 I2cwbyte Adres1 I2cwbyte Adres2 I2cstart I2cwbyte 161 I2crbyte Wartosc , Nack I2cstop

Odczyt daje mi 0xFF a gdy jest wolniejsza transmisja (miedzy poleceniami daje waitms 1) to

161....

Powitanko,

A obie linie podciagniete do + ? Opoznienie powinno byc OK, nie pamietam czy tylko przy zapisie, czy przy odczycie tez.

Pozdroofka, Pawel Chorzempa

Linie podciągnięte do + przzez rezystoru 10K. Najdziwniejsze jest to, że przy samym poleceniu: i2cstart i2cwbyte 161 i2crbyte wartosc, nack i2cstop

Zaczyna odczytywać losowe dane, ale za nic nie moge mu określić komórki spod której chce coś odczytać. I2C jest sprawne, testowane na układzie PCF8574A.

Jak juz wczesniej pisalem układ nie daje odpowiedzi po pierwszym z dwóćh bajtów adresowych komórki. Czyżby nie dało się w ten sposób nic odczytac?

Krzysztof napisał(a):

a probowales config i2c_Delay ? bascom glupi jest, wiele parametrow (np timingi i2c, 1wire) ma na stale zrobione i nie zaleza one od podawanego crystal=ilestam, wiec moze sproboj zmienic zegar na wolniejszy albo ustawic wieksze i2c delay. Mi sie sypalo przy 16MHz, ale nie pamietam ile ustawilem

Zegar mam 4MHZ, nigdy nie było z tym problemów, ale i2c delay też próbowałem zmieniać. Dziwne jest toże ukłąd PCF8574A poproawnie interpretuje polecenia, eeprom sie 'sypie' po zaadresowaniu komórki. Moze w nowszych wersjach ta opcja jest niedostepna?

toche duzo.. stosuje sie 330omow...2.2k... ale powinno i dla 10k dzialac.

Ok, jak narazie doszedłem do tego, że program "wysypuje się" po ponownej komendzie START, i zamiast odczytywac dane, zapisuje je... (tak jakby nie było ponnownego sygnału start.) Jezeli chodkzi o rezystory to próbowałem różne wartosci (od 100K po 380R), Układ zasilany jest napięciem 3V.

Krzysztof snipped-for-privacy@wp.pl pisze:

To chyba 24LC64 powinno być w takim razie? Ja miałem kiedyś zabawę z nołnejmowym 24Cxx Po zmianie na markowego atmela - jak ręką odjął.

Firmówka Atmel:

24C64N, pod 3V poprawnie programuje i odczytuje go ICPROG. Jeżeli chodzi o procesor to moge bez problemu zapisywac coś do pamięci ale przy odczycie: i2cstart i2cwbyte 160 i2cwbyte adres1 i2cwbyte adres2 i2cstart '<--tak jakby tego nie było :/ i2cwbyte 161 i2crbyte wartosc, nack i2cstop

Zapisuje sie do pamieci wartosc na przemian 255, 161 tak, jakby tam nie było ponownego polecenia start...

A adres masz dobry ? Moze jakis spoza zakresu ?

Bo jak najbardziej powinna potwierdzic ..

J.

Witam, udało mi się dojśc do tego, że układ działa, ale zamiast odczytywac dane, adres odczytu zostaje zapisany (tak jakby ponowne polecenie i2cstart nie dawało rezultatu). W czym może być problem? Szumy na linii I2C, za małe zasilanie, zbyt duża prędkość....? Niestety nie mam oscyloskopu więc nie moge sprawdzic przebiegów.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required