Communication error przy próbie odczytu W25N01GV (aler Read ID działa)

Pytania techniczne oraz porady dotyczące programowania pamięci oraz funkcjonalności programatora.
ArT
Posts: 1538
Joined: Wed Mar 25, 2015 8:54 am
Location: Warsaw, Poland
Has thanked: 56 times
Been thanked: 166 times

Re: Communication error przy próbie odczytu W25N01GV (aler Read ID działa)

Postby ArT » Tue Aug 11, 2020 8:26 pm

Hmmm, ciekawe, może pamięć uszkodzona?
Proponuje Ci podesłać programator i tą pamięć, mam możliwość przetestowania zarówno Twojej pamięci na innym programatorze jak i mojej pamięci na Twoim programatorze więc szybko znajdę przyczynę. Tylko musiałbyś się spieszyć bo od piątku urlop.

mpk
Posts: 16
Joined: Mon Aug 10, 2020 2:32 pm

Re: Communication error przy próbie odczytu W25N01GV (aler Read ID działa)

Postby mpk » Wed Aug 12, 2020 10:28 am

Dzięki, z oferty pewnie skorzystam.
Kość działa. W sensie po przelutowaniu xiaomi normalnie bootuje.
Podejrzewam, że prędzej chodzi tu o jakieś udziwnienia w komunikacji zaprogramowane przez OTP, czy coś w tym stylu.
Tymczasem próbuję przebrnąć przez dokumentację, ale bardzo nie mój obszar, więc idzie jak po grudzie;)

ArT
Posts: 1538
Joined: Wed Mar 25, 2015 8:54 am
Location: Warsaw, Poland
Has thanked: 56 times
Been thanked: 166 times

Re: Communication error przy próbie odczytu W25N01GV (aler Read ID działa)

Postby ArT » Wed Aug 12, 2020 10:38 am

Można podejrzeć dowolne rejestry używając programowania skryptowego.
Tutaj masz przykłady viewtopic.php?f=11&t=279 a w katalogu instalacyjnym w podkatalogu /scripts masz gotowe skrypty do odczytu niektórych rejestrów
Musiałbym się bardziej szczegółowo zaznajomić z dokumentacją tej pamięci ale jak coś to pomogę.

mpk
Posts: 16
Joined: Mon Aug 10, 2020 2:32 pm

Re: Communication error przy próbie odczytu W25N01GV (aler Read ID działa)

Postby mpk » Wed Aug 12, 2020 12:39 pm

I to był dobry pomysł, bo wyszła wskazówka:
1: próba odczytania ID z poziomu skryptu:

Code: Select all

12:24.170: Executing script started.
12:24.173: Setting hardware (SPI 3.3V SLOW)...success
12:24.345: Executing operation 1/1...fail
   1 bytes instr , 4 bytes read , 0 bytes write
   DBO 5 ms , DAI 5 ms , DAW 10 ms , DAO 0 ms
   BSYO 100 ms , TOUT 500 ms
   INSTR: 9F
   DATA: NULL
12:24.619: DEVICE TIMEOUT

2: odczyt ID z "Tools / Read ID":

Code: Select all

12:09.316: Executing script started.
12:09.319: Setting hardware (SPI 3.3 SLOW)...success
12:09.490: Executing operation 1/1...success


3: i jeszcze raz "script", ale ze zwiększonymi timeoutami

Code: Select all

12:40.454: Executing script started.
12:40.460: Setting hardware (SPI 3.3V SLOW)...success
12:40.631: Executing operation 1/1...fail
   1 bytes instr , 4 bytes read , 0 bytes write
   DBO 10 ms , DAI 10 ms , DAW 20 ms , DAO 0 ms
   BSYO 200 ms , TOUT 2000 ms
   INSTR: 9F
   DATA: NULL
12:40.918: DEVICE TIMEOUT

ArT
Posts: 1538
Joined: Wed Mar 25, 2015 8:54 am
Location: Warsaw, Poland
Has thanked: 56 times
Been thanked: 166 times

Re: Communication error przy próbie odczytu W25N01GV (aler Read ID działa)

Postby ArT » Wed Aug 12, 2020 12:55 pm

A spróbuj ustawić BSYO na 0ms a DAO na 100ms

mpk
Posts: 16
Joined: Mon Aug 10, 2020 2:32 pm

Re: Communication error przy próbie odczytu W25N01GV (aler Read ID działa)

Postby mpk » Wed Aug 12, 2020 1:01 pm

Bingo!

Code: Select all

13:23.127: Executing script started.
13:23.129: Setting hardware (SPI 3.3V SLOW)...success
13:23.299: Executing operation 1/1...success


Code: Select all

FF EF AA 21

ArT
Posts: 1538
Joined: Wed Mar 25, 2015 8:54 am
Location: Warsaw, Poland
Has thanked: 56 times
Been thanked: 166 times

Re: Communication error przy próbie odczytu W25N01GV (aler Read ID działa)

Postby ArT » Wed Aug 12, 2020 1:04 pm

Hmm, ciekawe czemu pamięć nie odpowiada w zadanym czasie.
A spróbuj ustawić DAO na 10ms i ustawić BSYO na 100ms - też działa?

DAO działa tak że czeka x ms i potem wymusza dalsza transmisje (nie czeka aż pamiec będzie ready)
BSYO działa tak, że czeka x ms aż pamięć zgłosi że jest ready (przy czym 0 = wyłączona opcja)

mpk
Posts: 16
Joined: Mon Aug 10, 2020 2:32 pm

Re: Communication error przy próbie odczytu W25N01GV (aler Read ID działa)

Postby mpk » Wed Aug 12, 2020 1:40 pm

Nie działa z dowolnym BSYO > 0

Code: Select all

13:46.855: Executing script started.
13:46.861: Setting hardware (SPI 3.3V SLOW)...success
13:47.035: Executing operation 1/1...fail
   1 bytes instr , 4 bytes read , 0 bytes write
   DBO 10 ms , DAI 10 ms , DAW 20 ms , DAO 10 ms
   BSYO 100 ms , TOUT 2000 ms
   INSTR: 9F
   DATA: NULL
13:47.327: DEVICE TIMEOUT
13:08.527: Executing script started.
13:08.531: Setting hardware (SPI 3.3V SLOW)...success
13:08.704: Executing operation 1/1...fail
   1 bytes instr , 4 bytes read , 0 bytes write
   DBO 10 ms , DAI 10 ms , DAW 20 ms , DAO 10 ms
   BSYO 1 ms , TOUT 2000 ms
   INSTR: 9F
   DATA: NULL
13:09.002: DEVICE TIMEOUT



(btw, timestampy coś pływają po zmianach timeotu. powyższe to "żywcem" copy paste z loga;))

mpk
Posts: 16
Joined: Mon Aug 10, 2020 2:32 pm

Re: Communication error przy próbie odczytu W25N01GV (aler Read ID działa)

Postby mpk » Wed Aug 12, 2020 1:44 pm

BUSY is a read only bit in the status register (S0) that is set to a 1 state when the device is powering up or executing a Page Data Read, BBM Management, Program Execute, Block Erase, Program Execute for OTP area, OTP Locking or after a Continuous Read instruction. During this time the device will ignore further instructions except for the Read Status Register and Read JEDEC ID instructions.


na razie zgaduję. może nie zmienia stanu, bo cały czas jest 1 (bo może jeszcze "device is powering up"), a JEDEC ID przechodzi, bo jest wyjątek na jego obsługę.

// EDIT: spróbowałem 250 DBO, ale też nie poszło

ArT
Posts: 1538
Joined: Wed Mar 25, 2015 8:54 am
Location: Warsaw, Poland
Has thanked: 56 times
Been thanked: 166 times

Re: Communication error przy próbie odczytu W25N01GV (aler Read ID działa)

Postby ArT » Wed Aug 12, 2020 2:02 pm

Muszę się wczytać w dokumentacje. Może być tak że ktoś przestawił jakieś rejestry i flaga write in progress w statusie jest wyłączona (i urzadzenie nie zgłasza ready). Na razie wiemy z czego wynika błąd komunikacji - programator czeka na status ready pamięci a pamięć cały czas zgłasza że jest busy, mimo że nie jest (nie wiadomo czemu).

Co do Twojej teorii - spróbuj dać DBO (delay before operation) na 500ms (BSYO nadal 0), wtedy będzie miał dość czasu na wstanie po resecie. Do tego wydłuż TOUT do 1000ms żeby PC dłużej poczekał i nie przerwał wcześniej.


Return to “Wsparcie Techniczne”

Who is online

Users browsing this forum: No registered users and 7 guests