Witam wszystkich!
Mam problem ze zmuszeniem pamięci M25P32 od ST do jakiejkolwiek współpracy. Pamięć ta wydaje się być martwa
Próbuję od dłuższego już czasu zmusić te pamięć tylko do tego, by odpowiedziała mi swoim identyfikatorem (polecenie 0x9F) według DATASHEET kość na takie polecenie powinna odpowiedzieć trzema bajtami o wartości:
0x20, 0x20, 0x16
Niestety, nic z tego nie wychodzi.
Ponieważ w datasheet jest powiedziane, że w momencie startu pamięci, zanim ustali się napięcie zasilające linia CS kości musi być w stanie wysokim, to samo dotyczy zanikania napięcia zasilania. W datasheet sugerują zastosowanie rezystora podciągającego linię CS do VCC. Jeśli się tego nie zrobi, to układy logiki sterującej nie zostaną prawidłowo zresetowane i współpracę z pamięcią możemy włożyć między bajki.
Ponieważ ta metoda także zawiodła, pomyślałem sobie, iż podłączę zasilanie kości przez tranzystor. Dzięki czemu, będą mógł ją zasilić dopiero wtedy, gdy wszystkie linie będą miały ustalone stany. W moim przykładowym programie są to czasy rzędu 1s. By mieć, że tak powiem czystą sytuację.
Aktualnie schemat podłączenia pamięci do uC jest taki jak na rysunku. Poniżej też zamieszczam zrzut ektanu z analizatora stanów logicznych, by rozwiać ewentualne podejrzenia o błędną komunikację z układem.
Czy ktoś miał może do czynienia z tymi pamięciami, wie gdzie może leżeć pies pogrzebany? Lub zna jakieś podobne układy, które są mniej "narowiste"? Zaznaczę iż próbowałem już różnych rzeczy. Za każdym razem, gdy zmieniał się układ połączeń brana do testów była inna kość.
Kości posiadam z trzech różnych źródeł, wszystkie nowe ze sklepów.
Próbowałem jeszcze podciągania WSZYSTKICH linii odpowiednio VCC i GND, by absolutnie wszystkie linie miały ustalone stany, gdy załączane jest napięcie zasilania, też to nic nie dało
Mam problem ze zmuszeniem pamięci M25P32 od ST do jakiejkolwiek współpracy. Pamięć ta wydaje się być martwa
Próbuję od dłuższego już czasu zmusić te pamięć tylko do tego, by odpowiedziała mi swoim identyfikatorem (polecenie 0x9F) według DATASHEET kość na takie polecenie powinna odpowiedzieć trzema bajtami o wartości:
0x20, 0x20, 0x16
Niestety, nic z tego nie wychodzi.
Ponieważ w datasheet jest powiedziane, że w momencie startu pamięci, zanim ustali się napięcie zasilające linia CS kości musi być w stanie wysokim, to samo dotyczy zanikania napięcia zasilania. W datasheet sugerują zastosowanie rezystora podciągającego linię CS do VCC. Jeśli się tego nie zrobi, to układy logiki sterującej nie zostaną prawidłowo zresetowane i współpracę z pamięcią możemy włożyć między bajki.
Ponieważ ta metoda także zawiodła, pomyślałem sobie, iż podłączę zasilanie kości przez tranzystor. Dzięki czemu, będą mógł ją zasilić dopiero wtedy, gdy wszystkie linie będą miały ustalone stany. W moim przykładowym programie są to czasy rzędu 1s. By mieć, że tak powiem czystą sytuację.
Aktualnie schemat podłączenia pamięci do uC jest taki jak na rysunku. Poniżej też zamieszczam zrzut ektanu z analizatora stanów logicznych, by rozwiać ewentualne podejrzenia o błędną komunikację z układem.
Czy ktoś miał może do czynienia z tymi pamięciami, wie gdzie może leżeć pies pogrzebany? Lub zna jakieś podobne układy, które są mniej "narowiste"? Zaznaczę iż próbowałem już różnych rzeczy. Za każdym razem, gdy zmieniał się układ połączeń brana do testów była inna kość.
Kości posiadam z trzech różnych źródeł, wszystkie nowe ze sklepów.
Próbowałem jeszcze podciągania WSZYSTKICH linii odpowiednio VCC i GND, by absolutnie wszystkie linie miały ustalone stany, gdy załączane jest napięcie zasilania, też to nic nie dało
