Problem z pamięcia 24c64N

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.

Reply to
Krzysztof
Loading thread data ...

Powitanko,

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

Pozdroofka, Pawel Chorzempa

Reply to
Pawel "O'Pajak

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....
Reply to
Krzysztof

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....
Reply to
Krzysztof

Powitanko,

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

Pozdroofka, Pawel Chorzempa

Reply to
Pawel "O'Pajak

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?

Reply to
Krzysztof

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

Reply to
BartekK

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?

Reply to
Krzysztof

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

Reply to
Greg(G.Kasprowicz

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.

Reply to
Krzysztof

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ął.

Reply to
Patryk Sielski

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...

Reply to
Krzysztof

A adres masz dobry ? Moze jakis spoza zakresu ?

Bo jak najbardziej powinna potwierdzic ..

J.

Reply to
J.F.

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.

Reply to
Krzysztof

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.