Communication error przy próbie odczytu W25N01GV (aler Read ID działa)
-
ArT
- Posts: 1603
- Joined: Wed Mar 25, 2015 8:54 am
- Location: Warsaw, Poland
- Has thanked: 61 times
- Been thanked: 171 times
Re: Communication error przy próbie odczytu W25N01GV (aler Read ID działa)
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.
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.
Re: Communication error przy próbie odczytu W25N01GV (aler Read ID działa)
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;)
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: 1603
- Joined: Wed Mar 25, 2015 8:54 am
- Location: Warsaw, Poland
- Has thanked: 61 times
- Been thanked: 171 times
Re: Communication error przy próbie odczytu W25N01GV (aler Read ID działa)
Można podejrzeć dowolne rejestry używając programowania skryptowego.
Tutaj masz przykłady https://forum.reveltronics.com/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ę.
Tutaj masz przykłady https://forum.reveltronics.com/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ę.
Re: Communication error przy próbie odczytu W25N01GV (aler Read ID działa)
I to był dobry pomysł, bo wyszła wskazówka:
1: próba odczytania ID z poziomu skryptu:
2: odczyt ID z "Tools / Read ID":
3: i jeszcze raz "script", ale ze zwiększonymi timeoutami
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 TIMEOUTCode: 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
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
Re: Communication error przy próbie odczytu W25N01GV (aler Read ID działa)
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: 1603
- Joined: Wed Mar 25, 2015 8:54 am
- Location: Warsaw, Poland
- Has thanked: 61 times
- Been thanked: 171 times
Re: Communication error przy próbie odczytu W25N01GV (aler Read ID działa)
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)
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)
Re: Communication error przy próbie odczytu W25N01GV (aler Read ID działa)
Nie działa z dowolnym BSYO > 0
(btw, timestampy coś pływają po zmianach timeotu. powyższe to "żywcem" copy paste z loga;))
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
Re: Communication error przy próbie odczytu W25N01GV (aler Read ID działa)
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ę.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.
// EDIT: spróbowałem 250 DBO, ale też nie poszło
-
ArT
- Posts: 1603
- Joined: Wed Mar 25, 2015 8:54 am
- Location: Warsaw, Poland
- Has thanked: 61 times
- Been thanked: 171 times
Re: Communication error przy próbie odczytu W25N01GV (aler Read ID działa)
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.
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.