Ukubuyisela emuva kanye nokugebenga amadrayivu angaphandle azibhalayo kuwumsebenzi wami wakudala. Esikhathini esidlule, ngathola ithuba lokuzilolonga namamodeli afana ne-Zalman VE-400, i-Zalman ZM-SHE500, i-ZM-VE500. Muva nje, uzakwethu ungilethele omunye umbukiso: Patriot (Aigo) SK8671, owakhiwe ngokomklamo ojwayelekile - inkomba ye-LCD kanye nekhibhodi yokufaka ikhodi ye-PIN. Yilokho okwaphuma kukho...
1. Isingeniso
Izindlu
Упаковка
Ukufinyelela kudatha egcinwe kudiski, okuthiwa ibethelwe, yenziwa ngemva kokufaka ikhodi ye-PIN. Amanothi esingeniso ambalwa kule divayisi:
- Ukushintsha i-PIN khodi, kufanele ucindezele F1 ngaphambi kokuvula;
- I-PIN khodi kufanele iqukathe amadijithi ayi-6 kuye kwayi-9;
- Ngemuva kwemizamo engalungile eyi-15, idiski iyasulwa.
2. Hardware Architecture
Okokuqala, sihlukanisa idivayisi ibe izingxenye ukuze siqonde ukuthi ihlanganisa ziphi izingxenye. Umsebenzi okhathaza kakhulu ukuvula icala: izikulufu eziningi ezincane nepulasitiki. Ngemva kokuvula icala, sibona okulandelayo (naka isixhumi samaphini amahlanu engisidayisile):
2.1. Ibhodi elikhulu
Ibhodi eliyinhloko lilula kakhulu:
Izingxenye zayo eziphawuleka kakhulu (bheka ukusuka phezulu kuye phansi):
- isixhumi senkomba ye-LCD (CN1);
- i-tweeter (SP1);
- I-Pm25LD010 (
ukucaciswa ) SPI flash drive (U2); - Isilawuli se-Jmicron JMS539 (
ukucaciswa ) ye-USB-SATA (U1); - Isixhumi se-USB 3 (J1).
I-flash drive ye-SPI igcina i-firmware ye-JMS539 nezinye izilungiselelo.
2.2. Ibhodi lenkomba ye-LCD
Akukho okuphawulekayo ebhodini le-LCD.
Kuphela:
- Inkomba ye-LCD yemvelaphi engaziwa (mhlawumbe enesethi yefonti yesiShayina); ngokulawula okulandelanayo;
- Isixhumi seribhoni sebhodi lekhibhodi.
2.3. Ibhodi lekhibhodi
Uma uhlola ibhodi lekhibhodi, izinto zithatha ithuba elithakaselekayo.
Lapha, ohlangothini olungemuva, sibona isixhumi seribhoni, kanye neCypress CY8C21434 microcontroller PSoC 1 (ngemuva kwalokhu sizoyibiza nge-PSoC)
I-CY8C21434 isebenzisa isethi yemiyalo ye-M8C (bona
2.4. Ebuka izintambo
Ake sithole ukuthi yini exhumene lapha. Ukuze wenze lokhu, vele uhlole izintambo nge-multimeter:
Izincazelo zalo mdwebo odwetshwe edolweni:
- I-PSoC ichazwa ekucacisweni kobuchwepheshe;
- isixhumi esilandelayo, esingakwesokudla, yi-interface ye-ISSP, okuthi, ngentando yesiphetho, ihambisane nalokho okulotshwe ngakho ku-intanethi;
- Isixhumi esingakwesokudla yitheminali yesixhumi seribhoni ebhodini lekhibhodi;
- Unxande omnyama umdwebo wesixhumi se-CN1, oklanyelwe ukuxhuma ibhodi elikhulu ebhodini le-LCD. I-P11, i-P13 ne-P4 ixhunywe ku-PSoC izikhonkwane 11, 13 kanye no-4, ebhodini le-LCD.
3. Ukulandelana kwezinyathelo zokuhlasela
Manje njengoba sesazi ukuthi le drayivu ihlanganisa ziphi izingxenye, sidinga: 1) siqinisekise ukuthi umsebenzi wokubethela oyisisekelo ukhona ngempela; 2) thola ukuthi izinkinobho zokubethela zenziwa/zigcinwa kanjani; 3) thola ukuthi iphinikhodi izohlolwa kuphi.
Ukwenza lokhu ngenze lezi zinyathelo ezilandelayo:
- uthathe ukulahlwa kwedatha ku-flash drive ye-SPI;
- uzame ukulahla idatha ku-flash drive ye-PSoC;
- kuqinisekisiwe ukuthi ukuxhumana phakathi kweCypress PSoC ne-JMS539 empeleni kuqukethe izinkinobho zokhiye;
- Ngenze isiqiniseko sokuthi lapho ngishintsha iphasiwedi, akukho lutho olubhalwa ngaphezulu ku-flash drive ye-SPI;
- ubuvila kakhulu ukuguqula i-firmware ye-8051 kusuka ku-JMS539.
3.1. Ukuthatha ukulahlwa kwedatha ku-flash drive ye-SPI
Le nqubo ilula kakhulu:
- xhuma ama-probe emilenzeni ye-flash drive: CLK, MOSI, MISO kanye (ngokuzithandela) EN;
- "hogela" ukuxhumana nomuntu ohogelayo kusetshenziswa i-logic analyzer (ngisebenzise
I-Saleae Logic Pro 16 ); - nquma iphrothokholi ye-SPI nemiphumela yokuthekelisa ku-CSV;
- ukusizakala nge
decode_spi.rb ukuhlaziya imiphumela bese uthola indawo yokulahla.
Sicela uqaphele ukuthi le ndlela isebenza kahle kakhulu esimweni sesilawuli se-JMS539, njengoba lesi silawuli silayisha yonke i-firmware kusuka ku-flash drive esigabeni sokuqala.
$ decode_spi.rb boot_spi1.csv dump
0.039776 : WRITE DISABLE
0.039777 : JEDEC READ ID
0.039784 : ID 0x7f 0x9d 0x21
---------------------
0.039788 : READ @ 0x0
0x12,0x42,0x00,0xd3,0x22,0x00,
[...]
$ ls --size --block-size=1 dump
49152 dump
$ sha1sum dump
3d9db0dde7b4aadd2b7705a46b5d04e1a1f3b125 dump
Ngemva kokulahla i-flash drive ye-SPI, ngafinyelela esiphethweni sokuthi umsebenzi wayo kuphela ukugcina i-firmware yedivayisi yokulawula ye-JMicron, eyakhelwe ku-microcontroller engu-8051. Ngeshwa, ukuthatha ukulahlwa kwe-flash drive ye-SPI kwaba yize:
- lapho ikhodi ye-PIN ishintshiwe, ukulahlwa kwe-flash drive kuhlala kunjalo;
- Ngemuva kwesigaba sokuqala, idivayisi ayifinyeleli ku-flash drive ye-SPI.
3.2. Ukuhogela ukuxhumana
Lena indlela eyodwa yokuthola ukuthi iyiphi i-chip enesibopho sokubheka ukuxhumana ngesikhathi/okuqukethwe okuthakaselayo. Njengoba sesivele sazi, isilawuli se-USB-SATA sixhunywe ku-Cypress PSoC LCD ngesixhumi se-CN1 namaribhoni amabili. Ngakho-ke, sixhuma ama-probe emilenzeni emithathu ehambisanayo:
- I-P4, okokufaka/okuphumayo okujwayelekile;
- P11, I2C SCL;
- P13, I2C SDA.
Bese sethula i-Saleae logic analyzer bese sifaka kukhibhodi: “123456~”. Ngenxa yalokho, sibona umdwebo olandelayo.
Kuyo singabona iziteshi ezintathu zokushintshana kwedatha:
- kukhona ukuqhuma okuncane okufushane esiteshini P4;
- ku-P11 naku-P13 - ukushintshana kwedatha cishe okuqhubekayo.
Uma sisondeza isipikili sokuqala esiteshini esingu-P4 (unxande oluhlaza okwesibhakabhaka esithombeni esidlule), sibona okulandelayo:
Lapha ungabona ukuthi ku-P4 kukhona cishe ama-70ms wesiginali eyisidina, okwakubonakala kimi kuqala ukuthi idlala indima yesiginali yewashi. Kodwa-ke, ngemuva kokuchitha isikhathi ngibheka ukuqagela kwami, ngathola ukuthi lesi akusona isignali yewashi, kodwa ukusakazwa komsindo okuphuma ku-tweeter lapho okhiye becindezelwa. Ngakho-ke, lesi sigaba sesiginali ngokwayo asiqukethe ulwazi oluwusizo kithi. Kodwa-ke, ingasetshenziswa njengenkomba ukwazi lapho i-PSoC ibhalisa ukucindezela kokhiye.
Nokho, ukusakazwa komsindo kwakamuva kwe-P4 kuhluke kancane: umsindo we-"PIN engavumelekile"!
Uma sibuyela kugrafu yokuchofoza ukhiye, ukusondeza kugrafu yokugcina yomsindo (bona unxande oluhlaza futhi), sithola:
Lapha sibona amasiginali ahlekisayo ku-P11. Ngakho kubukeka sengathi lena isignali yewashi. Futhi i-P13 iyidatha. Qaphela ukuthi iphethini ishintsha kanjani ngemva kokuphela kwebhiphu. Kungajabulisa ukubona ukuthi kwenzekani lapha.
Amaphrothokholi asebenza ngezintambo ezimbili ngokuvamile ama-SPI noma i-I2C, futhi ukucaciswa kobuchwepheshe ku-Cypress kuthi lezi zikhonkwane zihambisana ne-I2C, esiyibona iyiqiniso kithi:
I-chipset ye-USB-SATA ihlale ivotela i-PSoC ukuze ifunde isimo sokhiye, okuthi ngokuzenzakalelayo kube ngu-“0”. Bese, uma ucindezela ukhiye "1", ishintsha ibe "1". Ukudluliswa kokugcina ngokushesha ngemva kokucindezela u-“~” kuhlukile uma kufakwa i-PIN khodi engalungile. Nokho, okwamanje angikabheki ukuthi yini ngempela esakazwa lapho. Kodwa ngisola ukuthi lokhu akunakwenzeka ukuthi kube ukhiye wokubethela. Noma kunjalo, bona isigaba esilandelayo ukuze uqonde ukuthi ngisuse kanjani i-firmware yangaphakathi ye-PSoC.
Source: www.habr.com