8-900-374-94-44
[email protected]
Slide Image
МСню

Spi flash Ρ‡Ρ‚ΠΎ это – ΠŸΡ€ΠΎΠ½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ Π² BIOS ROM: осваиваСм SPI Flash β„–1

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

ΠŸΡ€ΠΎΠ½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ Π² BIOS ROM: осваиваСм SPI Flash β„–1

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ

Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Ρ‚Π΅ΠΌΡƒ, ΡΠ²ΡΠ·Π°Π½Π½ΡƒΡŽ с ΡƒΠ³Ρ€ΠΎΠ·ΠΎΠΉ искаТСния BIOS матСринской
ΠΏΠ»Π°Ρ‚Ρ‹ врСдоносными ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ. Π’ Ρ€Π°Π½Π΅Π΅ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π΅
«ΠŸΡ€ΠΎΠ½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ Π² BIOS ROM»
N1 ΠΈ N2 Π±Ρ‹Π»
ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰Π΅ΠΉ запись Π² микросхСму BIOS, рассмотрСны
ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ Π·Π°Ρ‰ΠΈΡ‚Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ производитСлями матСринских ΠΏΠ»Π°Ρ‚ ΠΈ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹, ΠΏΠΎ
ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ часто ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ нСэффСктивными. Напомним, Ρ‡Ρ‚ΠΎ эта
ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° Π±ΠΎΠ»Π΅Π΅ 10 Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄, ΠΊΠΎΠ³Π΄Π° Π² качСствС носитСля BIOS Π½Π°Ρ‡Π°Π»ΠΈ
ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ микросхСмы Flash ROM, Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡŒ содСрТимого Π±Π΅Π·
физичСского Π²ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° Π² ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ
пСрСзаписи (обновлСния) BIOS, ΠΏΡ€ΠΈΠ²Π΅Π»Π° ΠΊ ΠΏΠΎΠ±ΠΎΡ‡Π½ΠΎΠΌΡƒ эффСкту – риску Π΅Π³ΠΎ случайного
ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎΠ³ΠΎ искаТСния.

Казалось Π±Ρ‹, сСгодня Π½Π° эту Ρ‚Π΅ΠΌΡƒ ΡƒΠΆΠ΅ всС сказано. Но врСмя ΠΈΠ΄Π΅Ρ‚, ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ
Π½ΠΎΠ²Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ микросхСм Flash ROM ΠΈ интСрфСйсов для ΠΈΡ… ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. Π­Ρ‚ΠΎ
сопровоТдаСтся появлСниСм Π½ΠΎΠ²Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π·Π°Ρ‰ΠΈΡ‚Ρ‹ BIOS ΠΎΡ‚ нСсанкционированного

искаТСния, ΠΈ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π½ΠΎΠ²Ρ‹Ρ… уязвимостСй. Π’ Ρ€Π°Π½Π΅Π΅ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π΅,
ссылка Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π² Π½Π°Ρ‡Π°Π»Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ, рассматриваСмая Ρ‚Π΅ΠΌΠ° раскрыта Π½Π°
ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅ΠΉ микросхСму SST 49LF004A, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΡƒΡŽ ΠΊ
интСрфСйсу LPC (Low Pin Count). БСгодня, Π΅ΠΌΡƒ Π½Π° смСну ΠΏΡ€ΠΈΡˆΠ΅Π» интСрфСйс SPI
(Serial Peripheral Interface)
. Напомним, Ρ‡Ρ‚ΠΎ для пСрСзаписи содСрТимого
микросхСмы BIOS, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с двумя Π±Π»ΠΎΠΊΠ°ΠΌΠΈ рСгистров:
рСгистры интСрфСйса Flash ROM, располоТСнныС Π² составС «ΡŽΠΆΠ½ΠΎΠ³ΠΎ моста» чипсСта ΠΈ
рСгистры, входящиС Π² состав самой микросхСмы Flash ROM. ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ ΠΎΡ‚
интСрфСйса LPC ΠΊ SPI, Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π΄Π²ΡƒΡ… ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ² сущСствСнно измСнилась.
ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π΅ΡΡ‚ΡŒ смысл Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ взаимодСйствиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ с микросхСмой BIOS,
ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΈ ΠΈΡ… уязвимости ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ соврСмСнным ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°ΠΌ.
ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» снабТСн ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ Π½Π° ассСмблСрС. Для экспСримСнтов использовалась
матСринская ΠΏΠ»Π°Ρ‚Π° Gigabyte GA-965P-S3, построСнная Π½Π° чипсСтС Intel 965,
описанном Π² [2-3]. Π’ качСствС носитСля BIOS Π½Π° Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ
микросхСма SST 25VF080B, описанная Π² [5]. Π­Ρ‚Π° микросхСма ΠΈΠΌΠ΅Π΅Ρ‚ объСм 8 ΠœΠ΅Π³Π°Π±ΠΈΡ‚
(1 ΠœΠ΅Π³Π°Π±Π°ΠΉΡ‚) ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ интСрфСйсу SPI. НСкоторыС микросхСмы Π΄Ρ€ΡƒΠ³ΠΈΡ…
ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… Ρ‚ΠΎΡ‚ ΠΆΠ΅ интСрфСйс, описаны Π² [4,6,7]. ОписаниС
интСрфСйса SPI ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ Π² [8,9]. ΠŸΡ€ΠΈ взаимодСйствии с ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ SPI, Π½Π°ΠΌ
потрСбуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ доступа ΠΊ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌΡƒ пространству,
описанныС Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ… [10-12].

Β 

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ SPI: историчСская справка

Как извСстно, быстродСйствиС микросхСмы постоянного Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‰Π΅Π³ΠΎ устройства
(Flash ROM), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Π² качСствС носитСля BIOS, практичСски Π½Π΅ влияСт Π½Π°
ΠΎΠ±Ρ‰ΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. Π­Ρ‚ΠΎ связано с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ стартС
матСринской ΠΏΠ»Π°Ρ‚Ρ‹, BIOS пСрСписываСтся (ΠΈΠ»ΠΈ распаковываСтся) Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ
ΠΏΠ°ΠΌΡΡ‚ΡŒ Shadow RAM ΠΈ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ BIOS Π² сСансС ОБ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с

ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, Π° Π½Π΅ с микросхСмой Flash ROM. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚
процСссора, памяти, графичСской подсистСмы, ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΡ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… сопровоТдаСтся
ростом ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, микросхСмы Flash ROM ΠΈ ΠΈΡ… интСрфСйсы Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π²
Π΄Ρ€ΡƒΠ³ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ. Π—Π΄Π΅ΡΡŒ Π³Π»Π°Π²Π½Ρ‹ΠΌΠΈ критСриями ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ стоимости,
потрСбляСмой мощности ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠΎΠΉ ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΈ Π½Π° матСринской ΠΏΠ»Π°Ρ‚Π΅. Π“Π»Π°Π²Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄
достиТСния этих Ρ†Π΅Π»Π΅ΠΉ – ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ количСства ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ микросхСмой BIOS
ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ входящим Π² состав «ΡŽΠΆΠ½ΠΎΠ³ΠΎ моста» чипсСта. Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния
ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ микросхСмы BIOS, ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚Ρ€ΠΈ поколСния матСринских
ΠΏΠ»Π°Ρ‚:

1) На ΠΏΠ»Π°Ρ‚Π°Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… ΡˆΠΈΠ½Ρƒ ISA, ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Π»ΠΈΡΡŒ микросхСмы постоянных
Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… устройств с Ρ€Π°Π·Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ линиями адрСса, Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ управлСния. ΠŸΡ€ΠΈ
этом для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ разряда адрСса ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Π° Ρ‚Π°ΠΊΠΆΠ΅ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ сигнала управлСния
(Ρ‡Ρ‚Π΅Π½ΠΈΠ΅, запись) трСбовался свой ΠΏΡ€ΠΎΠ²ΠΎΠ΄, Ρ‚ΠΎΡ‡Π½Π΅Π΅ ΠΏΠ΅Ρ‡Π°Ρ‚Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊ Π½Π° ΠΏΠ»Π°Ρ‚Π΅.

2) Π‘ появлСниСм чипсСтов Intel 810, 815, Π½Π° основС «Ρ…Π°Π±ΠΎΠ²ΠΎΠΉ» Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹,
шина ISA ΡƒΡˆΠ»Π° Π² ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ΅. Ряд устройств матСринской ΠΏΠ»Π°Ρ‚Ρ‹, Ρ€Π°Π½Π΅Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Ρ… ΠΊ
ISA (ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Π³ΠΈΠ±ΠΊΠΈΡ… дисков, ΠΏΠΎΡ€Ρ‚Ρ‹ COM ΠΈ LPT, микросхСма BIOS), «ΠΏΠ΅Ρ€Π΅Π΅Ρ…Π°Π»ΠΈ» Π½Π°
интСрфСйс Low Pin Count ΠΈΠ»ΠΈ LPC, Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ пСрСводится ΠΊΠ°ΠΊ «ΠΌΠ°Π»ΠΎΠ΅
количСство сигналов». Π‘ΠΈΠ³Π½Π°Π»Ρ‹ адрСса, Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ управлСния Π² этом интСрфСйсС
ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠΎ пяти линиям (Π½Π΅ считая сигналов сброса, тактирования ΠΈ Π»ΠΈΠ½ΠΈΠΉ
питания), Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. ΠœΠΈΠΊΡ€ΠΎΡΡ…Π΅ΠΌΡ‹ BIOS, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅
Π² Ρ‚Π°ΠΊΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…, ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Firmware Hub ΠΈΠ»ΠΈ FWH. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹
стирания ΠΈ записи микросхСмы BIOS, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π² Ρ€Π°Π½Π΅Π΅ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅
«ΠŸΡ€ΠΎΠ½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ Π² BIOS ROM» N1 ΠΈ N2″ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Ρ‚Π°ΠΊΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ.

3) Начиная с чипсСта Intel 945, Π² состав «ΡŽΠΆΠ½ΠΎΠ³ΠΎ моста» Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€
спСциализированной ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΡˆΠΈΠ½Ρ‹ Serial Peripheral Interface ΠΈΠ»ΠΈ SPI,

ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… чтСния ΠΈ записи, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ ΠΈ статусной
ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠ±ΠΈΡ‚Π½ΠΎΠΌΡƒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΊΠ°Π½Π°Π»Ρƒ. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ
8-ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½Ρ‹ΠΉ корпус для микросхСмы BIOS. Данная ΡΡ‚Π°Ρ‚ΡŒΡ посвящСна Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΈΡŽ
ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ.

ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ интСрфСйс LPC Ρ‚Π°ΠΊΠΆΠ΅ поддСрТиваСтся соврСмСнными чипсСтами ΠΈ
Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ матСринской ΠΏΠ»Π°Ρ‚Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ микросхСмы BIOS
ΠΊΠ°ΠΊ LPC, Ρ‚Π°ΠΊ ΠΈ SPI. Π‘Ρ„Π΅Ρ€Π° примСнСния интСрфСйса SPI Π½Π΅ ограничиваСтся
матСринскими ΠΏΠ»Π°Ρ‚Π°ΠΌΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ². Π’Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠ³ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π°
Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΠ·-Π·Π° ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· описанных
интСрфСйсов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ большС Ρ‚Π°ΠΊΡ‚ΠΎΠ² для выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ чтСния ΠΈ записи,
Ρ‡Π΅ΠΌ Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΈΠΊ, Ρ‡Ρ‚ΠΎ Ρ‡Ρ€Π΅Π²Π°Ρ‚ΠΎ сниТСниСм быстродСйствия. Но этого Π½Π΅
происходит, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ компСнсируСтся ростом частоты ΠΈ
ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…. Π¨ΠΈΠ½Π° ISA Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° частотах 5-8MHz, LPC Π½Π°

33MHz, SPI Π½Π° 33-50 MHz.

Β 

АрхитСктура микросхСмы SPI Flash ROM

ΠœΠΈΠΊΡ€ΠΎΡΡ…Π΅ΠΌΡ‹ SPI Flash, Π² частности SST25VF080B, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ‚Ρ€ΠΈ сигнала для
ΠΏΡ€ΠΈΠ΅ΠΌΠ° ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. SCK (Serial Clock) – Π²Ρ…ΠΎΠ΄ для тактирования
ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. SI (Serial Input) – Π²Ρ…ΠΎΠ΄ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ
Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡ‚ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΠΊ микросхСмС, ΠΏΠΎ этой Π»ΠΈΠ½ΠΈΠΈ ΠΏΠΎΠ±ΠΈΡ‚Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ адрСс,
Π΄Π°Π½Π½Ρ‹Π΅ для записи, ΠΈ ΠΊΠΎΠ΄Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄ управлСния микросхСмой. SO (Serial Output) –
Π²Ρ‹Ρ…ΠΎΠ΄ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡ‚ микросхСмы ΠΊ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ, ΠΏΠΎ этой Π»ΠΈΠ½ΠΈΠΈ ΠΏΠΎΠ±ΠΈΡ‚Π½ΠΎ
ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ информация ΠΎ состоянии микросхСмы.
ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ управляСт микросхСмой посрСдством ΠΊΠΎΠΌΠ°Π½Π΄, ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ
чтСния ΠΈ записи Π΄Π°Π½Π½Ρ‹Ρ…, стирания, чтСния ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² микросхСмы, чтСния ΠΈ
записи рСгистра статуса ΠΈ Ρ‚.ΠΏ.

НазначСниС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· восьми ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² микросхСмы, описаниС всСх ΠΊΠΎΠΌΠ°Π½Π΄, Π°
Ρ‚Π°ΠΊΠΆΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ подробности содСрТатся Π² [5].

Β 

АрхитСктура ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° SPI

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ SPI, входящий Π² состав «ΡŽΠΆΠ½ΠΎΠ³ΠΎ моста» Intel ICH8, содСрТит Π±ΠΎΠ»Π΅Π΅

20 рСгистров управлСния ΠΈ состояния. РСгистры Π°Π΄Ρ€Π΅ΡΡƒΡŽΡ‚ΡΡ Π² пространствС памяти с
использованиСм Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ memory-mapped I/O, рассмотрСнной Π² Ρ€Π°Π½Π΅Π΅
ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ «Π£ΡΡ‚ройства систСмной ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ. Π˜ΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ Ρ€Π°Π±ΠΎΡ‚Π°
N [7-9]». ОписаниС всСх рСгистров ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° SPI Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° Ρ€Π°ΠΌΠΊΠΈ
Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ, рассмотрим основныС отличия ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ интСрфСйса SPI ΠΎΡ‚
Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΈΠΊΠ° — интСрфСйса LPC, акцСнтируя Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° рСгистрах,
ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ основных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ – Ρ‡Ρ‚Π΅Π½ΠΈΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ², записи ΠΈ
стирании Flash ROM.

Напомним, Ρ‡Ρ‚ΠΎ физичСский доступ ΠΊ микросхСмС BIOS (Π½Π΅ ΠΏΡƒΡ‚Π°Ρ‚ΡŒ с ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ
Shadow RAM) осущСствляСтся посрСдством ΠΎΠΊΠ½Π°, ΠΏΡ€ΠΈΠΌΡ‹ΠΊΠ°ΡŽΡ‰Π΅Π³ΠΎ ΠΊ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ Π³Ρ€Π°Π½ΠΈΡ†Π΅
Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° 0-4GB. НапримСр, Flash ROM Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 1 ΠœΠ±Π°ΠΉΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ доступСн Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅
FFF00000h-FFFFFFFFh. Π’ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… интСрфСйсы ISA ΠΈ LPC, Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΠΎΡ‚
ΠΆΠ΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½, ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ стирания ΠΈ записи выполняСтся ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π°

ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ записываСмых Π΄Π°Π½Π½Ρ‹Ρ… для микросхСмы Flash ROM, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π΅Π΅
статуса. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π°Ρ интСрфСйс SPI, рассматриваСмая Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅,
Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ содСрТимого микросхСмы BIOS Ρ‡Π΅Ρ€Π΅Π· ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½,
Π½ΠΎ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ ΠΈ статусной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π²ΠΎ врСмя записи ΠΈ стирания
Flash ROM, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ доступа. Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ для выполнСния Ρ†ΠΈΠΊΠ»Π° Π½Π°
шинС SPI (адрСс ΠΈ Π΄Π°Π½Π½Ρ‹Π΅) записываСтся Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ рСгистры ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° SPI
(Flash Address ΠΈ Flash Data соотвСтствСнно), Π·Π°Ρ‚Π΅ΠΌ Π² рСгистр Software Sequencing
Flash Control пСрСдаСтся ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ†ΠΈΠΊΠ»Π° обращСния ΠΊ Flash ROM
(чтСния ΠΈΠ»ΠΈ записи). ПослС этого, Ρ‡Π΅Ρ€Π΅Π· рСгистр Software Sequencing Flash Status
ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ ΠΏΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ошибок.
Π”Π°Π½Π½Ρ‹Π΅, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Flash ROM, находятся Π² рСгистрС Flash Data.

Π’ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… с интСрфСйсами ISA ΠΈ LPC, ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΊΠΎΠΌΠ°Π½Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»Π°ΡΡŒ ΠΏΡƒΡ‚Π΅ΠΌ

прямой записи Π±Π°ΠΉΡ‚Π° ΠΊΠΎΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² адрСсный Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Flash ROM. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ SPI
ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ косвСнный ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ посрСдством 8-Π±Π°ΠΉΡ‚Π½ΠΎΠ³ΠΎ рСгистра
OpCode Menu. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π±Π°ΠΉΡ‚ΠΎΠ² этого рСгистра Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΊΠΎΠ΄ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄ для
управлСния Flash ROM (запись, стираниС, Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° ΠΈ Ρ‚.ΠΏ.). Для
запуска Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ Π±Π°ΠΉΡ‚Π° (ΠΎΡ‚ 0 Π΄ΠΎ 7),
ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит ΠΊΠΎΠ΄ этой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π­Ρ‚ΠΎΡ‚ Π½ΠΎΠΌΠ΅Ρ€ пСрСдаСтся Π² 3-Π±ΠΈΡ‚Π½ΠΎΠΌ ΠΏΠΎΠ»Π΅ COP
(Cycle Opcode Pointer), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ 32-Π±ΠΈΡ‚Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, записываСмого Π²
рСгистр Software Sequencing Flash Control для запуска ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.
Π‘Π»ΠΎΠΊ рСгистров OpCode Menu ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ BIOS ΠΏΡ€ΠΈ стартС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.
РасполоТСниС Π±Π°ΠΉΡ‚ΠΎΠ² ΠΊΠΎΠ΄ΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² 8-Π±Π°ΠΉΡ‚Π½ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ зависит ΠΎΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ BIOS
ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ, поэтому ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€ΠΎΡΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ ΠΈ
ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΏΠΎΠ΄ ΠΊΠ°ΠΊΠΈΠΌ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ располоТСна Π² Π½Π΅ΠΌ трСбуСмая ΠΊΠΎΠΌΠ°Π½Π΄Π°. Π­Ρ‚ΠΎΡ‚ Π½ΠΎΠΌΠ΅Ρ€ ΠΈ
Π±ΡƒΠ΄Π΅Ρ‚ использован ΠΏΡ€ΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ поля COP.

Рассмотрим использованиС рСгистров Software Sequencing Flash Status ΠΈ
Software Sequencing Flash Control ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅. РСгистр Software Sequencing Flash
Status ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·Ρ€ΡΠ΄Π½ΠΎΡΡ‚ΡŒ 8 Π±ΠΈΡ‚ ΠΈ располоТСн ΠΏΠΎ ΡΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ 90h ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ
Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ адрСса ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° SPI (SPIBAR+90h). РСгистр Software Sequencing Flash
Control ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·Ρ€ΡΠ΄Π½ΠΎΡΡ‚ΡŒ 24 Π±ΠΈΡ‚ ΠΈ располоТСн ΠΏΠΎ ΡΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ 91h. ΠŸΡ€ΠΈ
ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°, ΠΊ Π΄Π²ΡƒΠΌ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ рСгистрам ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΎΠ΄Π½ΠΎΠΉ
32-Π±ΠΈΡ‚Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ чтСния ΠΈΠ»ΠΈ записи ΠΏΠΎ адрСсу 90h. ΠŸΡ€ΠΈ этом Π±ΠΈΡ‚Ρ‹ 0-7
ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ рСгистру Software Sequencing Flash Status, Π° Π±ΠΈΡ‚Ρ‹ 8-31 — рСгистру
Software Sequencing Flash Control. ИмСнно Ρ‚Π°ΠΊΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ доступа ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²
ассСмблСрных ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, ΠΏΡ€ΠΈΠ»Π°Π³Π°Π΅ΠΌΡ‹Ρ… ΠΊ ΡΡ‚Π°Ρ‚ΡŒΠ΅. Рассмотрим Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΠΈΡ‚ΠΎΠ² Π²
соотвСтствии с Π½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ, описанной Π²Ρ‹ΡˆΠ΅.

Π‘ΠΈΡ‚ 0 (SPI Cycle In Progress) – ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для опрСдСлСния ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°
Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π° шинС SPI. «0» ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ шина SPI свободна ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°

ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ†ΠΈΠΊΠ». «1» ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ шина SPI занята, выполняСтся
транзакция. Π‘ΠΈΡ‚ устанавливаСтся ΠΈ сбрасываСтся Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎ, доступСн Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для
чтСния.

Π‘ΠΈΡ‚ 1 (Reserved) – Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ.

Π‘ΠΈΡ‚ 2 (Cycle Done Status) – устанавливаСтся Π² «1» Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎ, ΠΏΡ€ΠΈ
Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π½Π° шинС SPI. Для сброса, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ «1» Π²
Π΄Π°Π½Π½Ρ‹ΠΉ Π±ΠΈΡ‚.

Π‘ΠΈΡ‚ 3 (Flash Cycle Error) – устанавливаСтся Π² «1» Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎ, Ссли ΠΏΡ€ΠΈ
Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈΠΌΠ΅Π»ΠΈ мСсто ошибки: Π·Π°Ρ‰ΠΈΡ‚Π° записи ΠΈΠ»ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° запуска
ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π΄ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ. Для сброса, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π°
Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ «1» Π² Π΄Π°Π½Π½Ρ‹ΠΉ Π±ΠΈΡ‚.

Π‘ΠΈΡ‚ 4 (Access Error Log) – устанавливаСтся Π² «1» Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎ, Ссли ΠΈΠΌΠ΅Π»ΠΈ
мСсто ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ обращСния ΠΊ микросхСмС BIOS, Π½Π°Ρ€ΡƒΡˆΠ°ΡŽΡ‰ΠΈΠ΅ ΠΏΡ€Π°Π²Π° доступа ΠΊ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ
Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°ΠΌ адрСсов, Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… рСгистрах ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°
SPI.

Π‘ΠΈΡ‚Ρ‹ 5-7 (Reserved) – Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ.

Π‘ΠΈΡ‚ 8 (Reserved) – Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ. Как Π±Ρ‹Π»ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π²Ρ‹ΡˆΠ΅, Π±ΠΈΡ‚Ρ‹ 8-31
рассматриваСмого 32-Π±ΠΈΡ‚Π½ΠΎΠ³ΠΎ слова соотвСтствуСт Π±ΠΈΡ‚Π°ΠΌ 0-23 рСгистра Software
Sequencing Flash Control.

Π‘ΠΈΡ‚ 9 (SPI Cycle Go) – запуск Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π½Π° SPI. Π—Π°ΠΏΠΈΡΡŒ «1» Π² этот Π±ΠΈΡ‚
запускаСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, Ρ‚ΠΈΠΏ ΠΈ содСрТаниС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ
состояниСм Π±ΠΈΡ‚ΠΎΠ² 10-31 этого ΠΆΠ΅ рСгистра.

Π‘ΠΈΡ‚ 10 (Atomic Cycle Sequence) – ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ ΠΏΡ€ΠΈΠΊΠ°Π·Π° Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅
Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, запись «1» Π² этот Π±ΠΈΡ‚ Π·Π°ΠΏΡ€Π΅Ρ‰Π°Π΅Ρ‚ внСшним событиям Π²ΠΌΠ΅ΡˆΠΈΠ²Π°Ρ‚ΡŒΡΡ Π²
процСссы, происходящиС Π½Π° интСрфСйсС SPI Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ Ρ‚Ρ€ΠΈ
Ρ„Π°Π·Ρ‹: ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° прСфиксной ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° основной ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅
выполнСния основной ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ рСализуСтся ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚
случайного искаТСния содСрТимого микросхСмы BIOS. Π’Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ прСфиксныС
ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Write Enable) Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ, ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΌ
содСрТимоС микросхСмы (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Write, Erase). ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠ² ΠΊΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, содСрТащий
«1» Π² Π΄Π°Π½Π½ΠΎΠΌ Π±ΠΈΡ‚Π΅, всС Ρ‚Ρ€ΠΈ Ρ„Π°Π·Ρ‹ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ выполняСт Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎ, Π±Π΅Π·
Π²ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° процСссора Π΄ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ выполнСния основной ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

Π‘ΠΈΡ‚ 11 (Sequence Prefix Opcode Pointer) – ΠΏΡ€ΠΈ использовании прСфиксных
ΠΊΠΎΠΌΠ°Π½Π΄ (ΠΊΠΎΠ³Π΄Π° Π±ΠΈΡ‚ 10 установлСн Π² «1», см. Π²Ρ‹ΡˆΠ΅), этот Π±ΠΈΡ‚ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π΄Π²ΡƒΡ…
Π±Π°ΠΉΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ Π² качСствС прСфиксной ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для микросхСмы SPI
Flash. ΠŸΡ€ΠΈ «0» выбираСтся младший Π±Π°ΠΉΡ‚ рСгистра Prefix Opcode Configuration
Register, ΠΏΡ€ΠΈ «1» – ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ.

Π‘ΠΈΡ‚ 12-14 (Cycle Opcode Pointer) – это Π±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΈΠ·
восьми Π±Π°ΠΉΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ Π² качСствС основной ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для микросхСмы
SPI Flash. Π£ΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π±Π°ΠΉΡ‚Ρ‹ находятся Π² рСгистрС Opcode Menu Configuration
Register.

Π‘ΠΈΡ‚ 15 (Reserved) – Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ.

Π‘ΠΈΡ‚Ρ‹ 16-21 (Data Byte Count) – Π·Π°Π΄Π°Π΅Ρ‚ количСство Π±Π°ΠΉΡ‚ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… для
ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ чтСния ΠΈΠ»ΠΈ записи Π΄Π°Π½Π½Ρ‹Ρ…. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Ρ€Π°Π²Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ этого поля плюс 1.
НапримСр: 000000b=1 Π±Π°ΠΉΡ‚, 111111b=64 Π±Π°ΠΉΡ‚Π°.

Π‘ΠΈΡ‚ 22 (Data Cycle) – Π—Π°Π΄Π°Π΅Ρ‚ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π±Π°ΠΉΡ‚ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅. «0»
ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ стирания), «1» ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ
Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ чтСния статуса, Π΄Π°Π½Π½Ρ‹ΠΌΠΈ являСтся
содСрТимоС рСгистра статуса).

Π‘ΠΈΡ‚ 23 (SPI SMI# Enable) – Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ запрос Π½Π° ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅
System Management Interrupt послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, 0=Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ,
1=Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ.

Π‘ΠΈΡ‚Ρ‹ 24-26 (SPI Cycle Frequency) – Π·Π°Π΄Π°Π΅Ρ‚ частоту Π±ΠΈΡ‚ΠΎΠ²ΠΎΠΉ
синхронизации ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π½Π° SPI. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄Π²Π° значСния
(ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹): 000b=20MHz, 001b=33MHz.

Π‘ΠΈΡ‚Ρ‹ 27-31 (Reserved) – Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ.

ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ восьми Π±Π°ΠΉΡ‚ΠΎΠ² рСгистра Opcode Menu
Configuration Register ΠΈ Π΄Π²ΡƒΡ… Π±Π°ΠΉΡ‚ΠΎΠ² рСгистра Prefix Opcode Configuration
Register выполняСт BIOS ΠΏΡ€ΠΈ стартС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, ΠΏΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ…
ΠΏΠΎΠ»Π΅ΠΉ, Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‰ΠΈΡ… ΠΊΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ ΠΊΠΎΠ΄ прСфикса, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€ΠΎΡΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ
ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ рСгистры ΠΈ Π½Π°ΠΉΡ‚ΠΈ, ΠΏΠΎΠ΄ ΠΊΠ°ΠΊΠΈΠΌ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ Π² Π½ΠΈΡ… находятся ΠΊΠΎΠ΄Ρ‹ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Ρ…
ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Π’Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ заполнСния ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ, Π΄Π°ΠΆΠ΅ срСди матСринских ΠΏΠ»Π°Ρ‚
ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ вСрсии BIOS. НСкоторыС ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ пСрСзаписи
Flash ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ содСрТимоС ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… рСгистров.

Π”Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ описаниС всСх рСгистров ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° SPI приводится Π² [3].
ОписаниС ΠΊΠΎΠΌΠ°Π½Π΄ микросхСмы SPI Flash приводится Π² [4-7]. Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ, излоТСнная
Π²Ρ‹ΡˆΠ΅, Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π° ассСмблСрными ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ, ΠΏΡ€ΠΈΠ»Π°Π³Π°Π΅ΠΌΡ‹ΠΌΠΈ ΠΊ ΡΡ‚Π°Ρ‚ΡŒΠ΅.

Β 

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ доступа ΠΊ Flash ROM ΠΈ Π·Π°Ρ‰ΠΈΡ‚Π° записи

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС, для инициирования ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ стирания ΠΈΠ»ΠΈ пСрСзаписи микросхСмы
BIOS, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ дСйствия:

  1. ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ рСгистры «ΡŽΠΆΠ½ΠΎΠ³ΠΎ моста» чипсСта, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ΠΌ
    микросхСмы BIOS Π² адрСсном пространствС для обСспСчСния доступа ΠΊ ΠΏΠΎΠ»Π½ΠΎΠΌΡƒ
    ΠΎΠ±ΡŠΠ΅ΠΌΡƒ микросхСмы.
  2. Π’Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ записи BIOS, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ срСдствами «ΡŽΠΆΠ½ΠΎΠ³ΠΎ моста»
    чипсСта.
  3. Π’Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ записи BIOS, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ срСдствами микросхСмы
    Flash ROM.
  4. ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ стирания ΠΈΠ»ΠΈ записи микросхСмС Flash ROM.

Рассмотрим ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ эти ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ Π·Π°Ρ‰ΠΈΡ‚Ρ‹, ΠΏΡ€Π΅ΠΏΡΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈΡ…
нСсанкционированному Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΠΈ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, уязвимости этих ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ².

Как Π±Ρ‹Π»ΠΎ сказано Π²Ρ‹ΡˆΠ΅, ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ записи ΠΈ стирания, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ
доступ ΠΊ микросхСмС SPI Flash осущСствляСтся посрСдством рСгистров ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°
SPI, Π±Π΅Π· использования Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° адрСсов, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ доступСн ΠΎΠ±Ρ€Π°Π· микросхСмы
BIOS. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ пСрСнастройка чипсСта для доступа ΠΊ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρƒ FFF00000h-FFFFFFFFh
Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½Π΅ потрСбуСтся.

Π—Π°Ρ‰ΠΈΡ‚Π° записи, рСализуСмая «ΡŽΠΆΠ½Ρ‹ΠΌ мостом» Intel ICH8 построСна ΠΏΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅
схСмС, ΠΊΠ°ΠΊ ΠΈ Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ, ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ адрСса
рСгистров. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° снятия этой Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΏΠΎΠ΄ΠΎΠ±Π½Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅
рассмотрСнной Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… публикациях. Доступом ΠΊ микросхСмС BIOS управляСт
8-Π±ΠΈΡ‚Π½Ρ‹ΠΉ рСгистр BIOS_CNTL (Π΅Π³ΠΎ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ пространствС
Bus=0, Device=1Fh, Function=0, Register=DCh). Π‘ΠΈΡ‚ 0 этого рСгистра (Π±ΠΈΡ‚ BIOSWE,
BIOS Write Enable) управляСт Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ записи Π² микросхСму BIOS, 0=Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½Π°,
1=Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π°. Π‘ΠΈΡ‚ 1 Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ рСгистра (Π±ΠΈΡ‚ BLE, BIOS Lock Enable) обСспСчиваСт
ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ нСсанкционированного Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π·Π°Ρ‰ΠΈΡ‚Ρ‹. Если Π±ΠΈΡ‚ BLE=1, Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅
ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±ΠΈΡ‚ BIOSWE=1 Π±ΡƒΠ΄Π΅Ρ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ SMI (System Management
Interrupt) с Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, входящСй Π² состав BIOS. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ, Ссли
BIOS ΠΏΡ€ΠΈ стартС установит Π±ΠΈΡ‚ BLE=1, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ ΠΎΠ±Π½ΡƒΠ»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ чипсСт Π½Π΅
позволяСт, Ρ€Π΅ΠΆΠΈΠΌ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ сброса (ΠΏΠΎ
сигналу RESET). ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ Π² [3].

ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ «Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ снятия Π·Π°Ρ‰ΠΈΡ‚Ρ‹» ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅
активируСтся Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ BIOS. Π’ΠΎ всСх матСринских ΠΏΠ»Π°Ρ‚Π°Ρ…, исслСдованных
Π°Π²Ρ‚ΠΎΡ€ΠΎΠΌ, Π±ΠΈΡ‚ BLE=0, поэтому для снятия Π·Π°Ρ‰ΠΈΡ‚Ρ‹ записи достаточно ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±ΠΈΡ‚
BIOSWE=1, эта опСрация Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‡Π΅Π½Π°.

ΠœΠΈΠΊΡ€ΠΎΡΡ…Π΅ΠΌΠ° Intel ICH8 Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π·Π°Ρ‰ΠΈΡ‚Ρƒ содСрТимого микросхСмы BIOS,
ΠΏΡƒΡ‚Π΅ΠΌ задания адрСсных Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠ², Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹Ρ… ΠΎΡ‚ чтСния ΠΈ (ΠΈΠ»ΠΈ) записи.
ВСорСтичСски, Π½Π° Π±Π°Π·Π΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ Π·Π°Ρ‰ΠΈΡ‚Ρƒ,
Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π·Π°ΠΏΡ€Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°ΠΌΠΈ BIOS ΠΏΡ€ΠΈ стартС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, ΠΈ
ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ снят Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΌ сбросС. Но ΠΈ этот ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅
активируСтся Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ BIOS.

(ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ слСдуСт)

Β 

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ

Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, доступныС Π½Π° сайтС
developer.intel.com.

1) Intel Low Pin Count (LPC) Interface Specification. Revision 1.1. Document
Number 251289-001.
2) Intel P965 Express Chipset Family Datasheet – For the Intel 82P965 Memory
Controller Hub (MCH). Document Number: 313053-001.
3) Intel I/O Controller Hub 8 (ICH8) Family Datasheet – For the Intel 82801HB
ICH8 and 82801HR ICH8R I/O Controller Hubs. Document Number: 313056-001.

Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, доступныС Π½Π° сайтС
www.superflash.com ΠΈΠ»ΠΈ
ssti.com.

4) 1 Mbit SPI Serial Flash SST25VF010 Data Sheet. Document Number:
S71233-01-000.
5) 8 Mbit SPI Serial Flash SST25VF080B Data Sheet. Document Number:
S71296-01-000.

Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, доступныС Π½Π° сайтС
winbond.com.tw.

6) W25X10A, W25X20A, W25X40A, W25X80A 1M-bit, 2M-bit, 4M-bit and 8M-bit
Serial Flash Memory with 4KB sectors and dual output SPI Data Sheet.

Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, доступныС Π½Π° сайтС
macronix.com.

7) MX25L802 8M-bit [8Mx1] CMOS Serial Flash EEPROM Data Sheet.

Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, доступныС Π½Π° сайтС
datakey.com.

8) SPI EEPROM Interface Specification. Part Number 223-0017-004 Revision H.

Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, доступныС Π½Π° сайтС
vtitechnologies.com.

9) SPI Interface Specification. Technical Note 15.

Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, доступныС Π½Π° сайтС
pcisig.com.

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ [11], [12] Π½Π° сайтС pcisig.com доступны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‡Π»Π΅Π½ΠΎΠ² PCI
Special Interest Group. Π’ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π²ΡˆΠΈΡΡŒ поисковыми систСмами, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ
Π΄Π°Π½Π½Ρ‹Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ для свободной Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.
10) PCI BIOS Specification. Revision 2.1.
11) PCI Local Bus Specification. Revision 3.0.
12) PCI-to-PCI Bridge Architecture Specification. Revision 1.1.

xakep.ru

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ Spi Flash своими Ρ€ΡƒΠΊΠ°ΠΌΠΈ

ΠœΠΈΠΊΡ€ΠΎΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ установлСно Π² устройства Ρ„Π»ΡΡˆ-памяти ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠ·Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ΅Ρ‡Π°Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ‹, поддСрТивая Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ½ΡƒΡŽ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π΅ΡΡ‚ΡŒ прСимущСства Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Ρ„Π»ΡΡˆ-памяти ΡƒΠΆΠ΅ послС Π΅Π΅ выпуска, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½Π° Π±Ρ‹Π»Π° припаяна ΠΊ ΠΏΠ»Π°Ρ‚Π΅. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ Spi Flash (SF) с дискрСтной Ρ„Π»ΡΡˆ-ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ сущСствСнныС прСимущСства ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈ SD. Π•Π³ΠΎ Ρ†Π΅Π½Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ 1/10 стоимости Ρ„Π»Π΅ΡˆΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньший Ρ„ΠΎΡ€ΠΌ-Ρ„Π°ΠΊΡ‚ΠΎΡ€ ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ нСбольшого количСства ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ оборудования.

Π’Ρ‹Π±ΠΎΡ€: SF & SD

БущСствуСт мноТСство ΠΏΡ€ΠΈΡ‡ΠΈΠ½ для Π²Ρ‹Π±ΠΎΡ€Π° дискрСтной Ρ„Π»ΡΡˆ-микросхСмы вмСсто подсистСмы SD ΠΈΠ»ΠΈ, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, поэтому ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ компромиссы ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Π΅Π½ΠΈΠ΅ΠΌ устройства. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅ список содСрТит нСсколько Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ, ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ DIP-Ρ‡ΠΈΠΏΠ° ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠ³ΠΎ SD-Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ:

  1. Аппаратная ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, прСимущСство ΠΈΠΌΠ΅Π΅Ρ‚ SF. DIP-ΠΏΠ°ΠΊΠ΅Ρ‚ с дискрСтной Ρ„Π»Π΅Ρˆ-микросхСмой Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Π΅ΠΌ SD.
  2. Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, прСимущСство ΠΈΠΌΠ΅Π΅Ρ‚ SF. ΠŸΠΎΠ΄ΡΠΈΡΡ‚Π΅ΠΌΠ° Ρ„Π»ΡΡˆ-памяти SD ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ опираСтся Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ SD Fat16/32. Π₯отя устройства ΡΠ²Π»ΡΡŽΡ‚ΡΡ интСрфСйсом SPI, ΠΈΠΌΠ΅Π΅Ρ‚ смысл ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ FAT, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ любой ПК/MAC ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚Ρƒ. Π­Ρ‚ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ большиС ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ Π΄Ρ€Π°Π³ΠΎΡ†Π΅Π½Π½ΠΎΠ΅ пространство EEPROM Π½Π° ΠΌΠ°Π»Ρ‹Ρ… встроСнных ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°Ρ….
  3. Π•ΠΌΠΊΠΎΡΡ‚ΡŒ ΠΈ ΠΏΠΎΡ€Ρ‚Π°Ρ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ, прСимущСство ΠΈΠΌΠ΅Π΅Ρ‚ SD. МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ SD-ΠΊΠ°Ρ€Ρ‚Ρƒ большСй Смкости Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ДискрСтная SPI ΠΈΠΌΠ΅Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΈΠ΅ ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ плотности.
  4. Π‘Ρ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ, прСимущСство ΠΈΠΌΠ΅Π΅Ρ‚ SF.
  5. ΠœΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ, прСимущСство ΠΈΠΌΠ΅Π΅Ρ‚ SF. SD-ΠΊΠ°Ρ€Ρ‚Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΠΌΠ΅ΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ ΡƒΡ‚Π΅Ρ‡ΠΊΠΈ ΠΈΠ·-Π·Π° Π±ΠΎΠ»Π΅Π΅ высокой плотности ΠΈ высокой динамичСской мощности ΠΈΠ·-Π·Π° скорости доступа.
  6. Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ, прСимущСство ΠΈΠΌΠ΅Π΅Ρ‚ SD. SD-Ρ„Π»ΡΡˆ-ΠΏΠ°ΠΌΡΡ‚ΡŒ поставляСтся Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… SKU, основанных Π½Π° скорости Π² основном ΠΈΠ·-Π·Π° Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ ΠΈ использования Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.

Ѐлэш-ΠΏΠ°ΠΌΡΡ‚ΡŒ SPI

Ѐлэш-ΠΏΠ°ΠΌΡΡ‚ΡŒ SPI- это Ρ‚ΠΈΠΏ энСргонСзависимой памяти, основанный Π½Π° Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ MOSFET. ЭнСргонСзависимоС ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ устройство сохраняСт всС Π΄Π°Π½Π½Ρ‹Π΅, Π² Ρ‚ΠΎΠΌ числС, ΠΊΠΎΠ³Π΄Π° Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ. Ѐлэш-ΠΏΠ°ΠΌΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, пСрСнося Π³Ρ€ΡƒΠΏΠΏΡƒ носитСлСй заряда Π½Π° диэлСктрик. Π­Ρ‚ΠΎ называСтся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ выполняСтся с Π±ΠΎΠ»Π΅Π΅ высоким напряТСниСм. ΠŸΡ€ΠΎΡ†Π΅ΡΡ Π½Π΅ Π±Π΅Π·ΠΎΠ±ΠΈΠ΄Π½Ρ‹ΠΉ, ΠΎΠ½ Π½Π° самом Π΄Π΅Π»Π΅ ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π°Π΅Ρ‚ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π», ΠΈ послС 100 тыс. Ρ†ΠΈΠΊΠ»ΠΎΠ² устройство Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΈΠ· строя. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ½ΡΡ‚ΡŒ носитСли заряда с диэлСктрика, ΠΏΡ€ΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΌ высоком напряТСнии Π½Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»Π΅ ΡΠ½ΠΈΠΌΠ°ΡŽΡ‚ носитСли с Π·Π°Ρ‚Π²ΠΎΡ€Π°. Π­Ρ‚ΠΎ называСтся стираниСм.

Π—Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ„Π»ΡΡˆ-Π±ΠΈΡ‚ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0, Π° стСртый Π±ΠΈΡ‚ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 1, стСртый Ρ„Π»ΡΡˆ-Π±Π°ΠΉΡ‚ Ρ€Π°Π²Π΅Π½ 0xFF Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅. Π’ настоящСС врСмя Ρ„Π»ΡΡˆ-ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ нСсколько Π±ΠΈΡ‚ΠΎΠ² Π½Π° ячСйкС, с использованиСм ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ напряТСния. Π‘ ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ роста Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΌΡƒ памяти это становится всС Π±ΠΎΠ»Π΅Π΅ слоТным Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ конструкционно.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²ΠΎ Spi Flash ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ΠΎΠ² USB Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² простотС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, ΠΊΠΎΠ΄ Π² основном сдвигаСт Π΄Π°Π½Π½Ρ‹Π΅ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ² DI ΠΈ DO, соотвСтствСнно ΠΏΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π½Π΅ΠΌΡƒ Ρ„Ρ€ΠΎΠ½Ρ‚Ρƒ Ρ‚Π°ΠΊΡ‚ΠΎΠ²ΠΎΠΉ частоты. Часы ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ хостом, для Π½ΠΈΡ… Π½Π΅ трСбуСтся причудливая схСма синхронизации: Ρ„Π°Π·Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ асиммСтричными, насколько Π½ΡƒΠΆΠ½ΠΎ, ΠΏΡ€ΠΈ условии соблюдСния ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ ΡˆΠΈΡ€ΠΈΠ½Π΅ Ρ†ΠΈΠΊΠ»Π° устройства.

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ

Flashrom — это ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, чтСния, записи, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈ удалСния Ρ„Π»Π΅Ρˆ-Ρ‡ΠΈΠΏΠΎΠ². Она ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ ΠΎΠ±Ρ€Π°Π·ΠΎΠ² BIOS/EFI/coreboot/firmware/optionROM Π½Π° матСринских ΠΏΠ»Π°Ρ‚Π°Ρ…, ΠΊΠ°Ρ€Ρ‚Π°Ρ… ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° сСти/Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ/хранСния ΠΈ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… устройствах программирования. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ возмоТности:

  1. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ 476 Ρ‡ΠΈΠΏΠΎΠ² Ρ„Π»ΡΡˆ-памяти, 291 Π½Π°Π±ΠΎΡ€ΠΎΠ² микросхСм, 500 матСринских ΠΏΠ»Π°Ρ‚, 79 устройств PCI, 17 устройств USB ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Ρ‹ Spi Flash Π½Π° основС ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ…/ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΡ€Ρ‚ΠΎΠ².
  2. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Π΅ интСрфСйсы, интСрфСйсы Ρ„Π»ΡΡˆ-памяти LPC, FWH ΠΈ SPI ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ микросхСм (DIP32, PLCC32, DIP8, SO8/SOIC8, TSOP32, TSOP40, TSOP48, BGA ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅).
  3. ЀизичСский доступ Π½Π΅ трСбуСтся, root-доступ достаточСн ΠΈΠ»ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ трСбуСтся для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ΠΎΠ².
  4. НС трСбуСтся загрузочная дискСта, CD-ROM ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒ.
  5. ΠšΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π° ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Ρ‹ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ, просто ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΡˆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎ Ρ‡Π΅Ρ€Π΅Π· SSH.
  6. НС трСбуСтся мгновСнная ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ°.
  7. ΠŸΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ Ρ‡ΠΈΠΏ Π² Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΉ систСмС ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ Π΅Π³ΠΎ, новая ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅.
  8. Доступна частичная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Windows.

DIY: ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ создания

Π­Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠΈΠΉ для ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² PIC ΠΈ AVR ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ Spi Flash, своими Ρ€ΡƒΠΊΠ°ΠΌΠΈ, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π΅ получится, Π½ΠΎ устройство Π½Π΅ Π΄ΠΎΡ€ΠΎΠ³ΠΎΠ΅, стоит мСньшС 10 $ ΠΈ выполняСтся ΠΈΠ· Π»Π΅Π³ΠΊΠΎ доступных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π°:

  1. БСсплатноС ПО с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ.
  2. НСт нСобходимости ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ HID (Human Interface Device), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ примСняСтся для ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ ΠΈ ΠΌΡ‹ΡˆΠΈ.
  3. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ устройств PIC ΠΈ AVR.
  4. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Windows ΠΈ Linux.
  5. Бостоит ΠΈΠ· ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° PIC18F2550 — ΠΌΠΎΠ·Π³Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Π° Spi Flash.
  6. РазъСм USB-B ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ.
  7. Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ Π΄Π²Π° свСтодиодных ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ², ΠΎΠ΄ΠΈΠ½ для ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Π°, Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ статус программирования.

ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ PIC18F2550

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ‚Ρ€ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° (J1, J2 ΠΈ J3) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для связи с Π²Π΅Π΄ΠΎΠΌΡ‹ΠΌ устройством ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°. ИспользованиС Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ² Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎ Π² Ρ€Π°Π·Π½Ρ‹Ρ… ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°Ρ…. ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ сброса Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΊ Π±Π»ΠΎΠΊΡƒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° для установки сброса ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Π°. PIC18F2550 ΠΌΠΈΠ³Π°Π΅Ρ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠ»ΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Ρ‹ Spi Flash PIC.

Он провСряСт связь ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ ΠΈ ПК. ВрСбуСтся провСсти тСстированиС HID-обнаруТСния (Human Interface Device), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ устранит ΠΌΠ½ΠΎΠ³ΠΎ ошибок, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ, кристаллами ΠΈ USB. ΠŸΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ использования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΡƒΠ±Π΅ΠΆΠ΄Π°ΡŽΡ‚ΡΡ, Ρ‡Ρ‚ΠΎ ΠΌΠΈΠ³Π°Π΅Ρ‚ свСтодиод LED, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Ρ‚Π΅ΠΌ замСдляСт процСсс мигания. Если ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ Π½Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ пСрСкрСстныС соСдинСния ΠΈ инструкции. Если ΠΎΠ½ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½, пСрСходят ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΡˆΠ°Π³Ρƒ.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· OpenProg

Π£ΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ OpenProg Π½Π° ПК, Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ΅ устройство. ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Π° Spi Flash:

  1. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ USB-Ρ€Π°Π·ΡŠΠ΅ΠΌ ΠΊ ПК.
  2. ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ OpenProg ΠΈ ΡƒΠ±Π΅ΠΆΠ΄Π°ΡŽΡ‚ΡΡ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½.
  3. ΠΠ°ΠΆΠΈΠΌΠ°ΡŽΡ‚ Β«ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹Β» -> Β«ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° оборудования».
  4. Π’Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΉ тСст. Он провСряСт всС ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ программирования, ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π»Π΅Π³ΠΊΠΎ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ устройство ΠΏΡ€ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠΈ ошибок.
  5. Аппаратный тСст ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ напряТСниС Π½Π° VODU, VPPU, CLK, DATA, PGM Π² Ρ€Π°Π·Π½Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ своими Ρ€ΡƒΠΊΠ°ΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Π° Spi Flash Π½Π° SMD.
  6. Π˜Π·ΠΌΠ΅Ρ€ΡΡŽΡ‚ напряТСниС ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Ρ‹Π²ΠΎΠ΄Π°ΠΌΠΈ VODU, VPPU, CLK, DATA, PGM ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ Π΅Π³ΠΎ значСниями Π½Π° экранС.
  7. VPP ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ Π² 1 Π’ ΠΈΠ·-Π·Π° прСобразования ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΎΠΊΠ° Π² постоянный.
  8. Если напряТСниС этих Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ² части ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΠΈ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ отобраТаСтся Π½Π° экранС, схоТи, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ.
  9. Если напряТСниС отличаСтся, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ Ρ†Π΅ΠΏΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ².

Π”ΠΈΠ·Π°ΠΉΠ½ ΠΏΠ΅Ρ‡Π°Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ‹

Π­Ρ‚Π° пСчатная ΠΏΠ»Π°Ρ‚Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° Π² Eagle 7.2. Π Π°Π·ΠΌΠ΅Ρ€ пластины 7,5 Ρ… 7 см, ΠΎΠ½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° Π½Π° автоматичСском Ρ‚Ρ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ станкС. ΠŸΠ΅Ρ‡Π°Ρ‚Π½Π°Ρ ΠΏΠ»Π°Ρ‚Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ химичСского травлСния Π² Π΄ΠΎΠΌΠ°ΡˆΠ½ΠΈΡ… условиях.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ JA, JB, JC ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅ΠΌΡ‹Ρ‡ΠΊΠ°ΠΌΠΈ. По схСмС Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ это ΠΈ сначала, Π²ΠΎ врСмя сборки ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΡ‹Ρ‡ΠΊΠΈ. Для обСспСчСния бСзопасности PIC18F2550 Π²ΠΎ врСмя ΠΏΠ°ΠΉΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ 28-ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½ΠΎΠ΅ основаниС IC.

ΠŸΠ»Π°Ρ‚Π° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ связываСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ с ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ. Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ сСрии ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ для программирования. Π­Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ прСимущСство Π² простотС программирования ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°.

ΠŸΠ»Π°Ρ‚Π° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»Π΅Π³ΠΊΠΎ сдСлана с использованиСм ΠΏΠ΅Ρ€Ρ„ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ доски ΠΈΠ»ΠΈ Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π³ΠΎΡ‚ΠΎΠ²ΠΎΠΊ для ΠΏΠ»Π°Ρ‚, ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Π΅Π½Π½Ρ‹Ρ… Π² Ρ‚ΠΎΡ€Π³ΠΎΠ²ΠΎΠΉ сСти. Для сСрий ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ‹ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ. Для LVICP ΠΎΡ‚ 5 Π’ Π΄ΠΎ 3,3 Π’ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ рСгулятор напряТСния, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ LM1117 ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ Π΅ΠΌΡƒ.

Устройство 3.3 Π’ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с использованиСм ΠΏΠ»Π°Ρ‚Ρ‹ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ 3.3 Π’, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ Π½Π΅ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠΌΠΎΠ΅ ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅. НСкоторыС ΠΈΠ· ΠΏΠ»Π°Ρ‚ ΠΈΠΌΠ΅ΡŽΡ‚ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ 5 Π’. Если Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° 5 Π’, ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ «НС Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρ‹ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ напряТСния». Π’Π°ΠΊΠΆΠ΅ Π½Π΅ рСкомСндуСтся Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ 24F-33F Π² Π³Π½Π΅Π·Π΄ΠΎ 30F, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΈ 5 Π’.

Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ процСсса создания

ПослС изготовлСния части ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΠΈ ΠΏΠ»Π°Ρ‚Ρ‹ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, ΠΌΠΎΠΆΠ½ΠΎ сразу ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ устройства:

  1. Находят устройство ΠΈ ΡΠ΅Ρ€ΠΈΡŽ устройства для программирования.
  2. Π’Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΡΡ‰ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρƒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ устройства.
  3. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ устройство ΠΊ ΠΏΠ»Π°Ρ‚Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ.
  4. ΠŸΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ ΠΏΠ»Π°Ρ‚Ρƒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΊ Π±Π»ΠΎΠΊΡƒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°.
  5. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ кабСль USB B ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Ρƒ ΠΈ ΠΊ ПК.
  6. ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ OpenProg.exe ΠΈ ΡƒΠ±Π΅ΠΆΠ΄Π°ΡŽΡ‚ΡΡ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½.
  7. ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ устройства ΠΈ Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ Π½ΡƒΠΆΠ½ΠΎΠ΅ для программирования.
  8. ΠΠ°ΠΆΠΈΠΌΠ°ΡŽΡ‚ Π·Π΅Π»Π΅Π½ΡƒΡŽ стрСлку Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ устройство.
  9. Для записи/ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ Π½Π°ΠΆΠΈΠΌΠ°ΡŽΡ‚ Π»Π΅Π²ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ свСрху, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Β«.hexΒ», ΠΈ Π½Π°ΠΆΠΈΠΌΠ°ΡŽΡ‚ Β«OkΒ».
  10. ΠΠ°ΠΆΠΈΠΌΠ°ΡŽΡ‚ ΠΊΡ€Π°ΡΠ½ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ со стрСлкой рядом с Π·Π΅Π»Π΅Π½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ со стрСлкой, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ устройство.
  11. Π£Π±Π΅ΠΆΠ΄Π°ΡŽΡ‚ΡΡ, Ρ‡Ρ‚ΠΎ LED ΠΌΠΈΠ³Π°Π΅Ρ‚ Π²ΠΎ врСмя программирования, показывая статус процСсса.
  12. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΈ ΡƒΠ±Π΅ΠΆΠ΄Π°ΡŽΡ‚ΡΡ, Ρ‡Ρ‚ΠΎ ΠΌΠΈΠ³Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡˆΠ»ΠΎ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ.

ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ SPI AT45DB161D

ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ Spi Flash ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ SPI (AT45DB161D) прСдставляСт собой 16-ΠΌΠ΅Π³Π°Π±ΠΈΡ‚Π½ΡƒΡŽ (2 ΠœΠ‘Π°ΠΉΡ‚) 2,5 Π’ ΠΈΠ»ΠΈ 2,7 Π’ Ρ„Π»ΡΡˆ-ΠΏΠ°ΠΌΡΡ‚ΡŒ с ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ интСрфСйсом, идСально подходящСго для ΡˆΠΈΡ€ΠΎΠΊΠΎΠ³ΠΎ спСктра ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… для хранСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

ВсСго 2097152 Π±Π°ΠΉΡ‚Π° (0x1FFFFF) ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π² 4096 страниц с 512 Π±Π°ΠΉΡ‚Π°ΠΌΠΈ Π½Π° страницу. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‡ΠΈΠΏ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ стирания, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ стираниС Π±Π»ΠΎΠΊΠΎΠ², ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΠΎΠ΄ΠΈΠ½ Π±Π»ΠΎΠΊ содСрТит 4 ΠšΠ±Π°ΠΉΡ‚.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅, сначала Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π±Π»ΠΎΠΊ. Π§Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ запись Π΄Π°Π½Π½Ρ‹Ρ… осущСствляСтся довольно простым способом, Π² основном ΠΏΡƒΡ‚Π΅ΠΌ прСдоставлСния адрСса чтСния/записи (ΠΎΡ‚ 0 Π΄ΠΎ 0x1FFFFF) ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Π΄Π»ΠΈΠ½Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΎΠ±ΡˆΠΈΡ€Π½ΠΎΠΉ систСмы доступа ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ.

USB- Π½Π°ΠΊΠΎΠΏΠΈΡ‚Π΅Π»ΡŒ EEPROM

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ Spi Flash EEPROM сСрии 25 с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ обСспСчСниСм ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² ΠΈ 25-SPI Ρ„Π»ΡΡˆ-ΠΏΠ°ΠΌΡΡ‚ΡŒ 8-ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½Ρ‹ΠΉ/16-ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ возмоТности:

  1. АвтоматичСская идСнтификация ΠΌΠΎΠ΄Π΅Π»ΠΈ Ρ‡ΠΈΠΏΠ° 25 сСрия.
  2. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° USB Π² TTL.
  3. АвтоматичСскоС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‡ΠΈΠΏΠ° сСрии 25.
  4. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ STC сСрии.
  5. ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΎΠ΄Π½ΠΎΠΊΡ€ΠΈΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° STC ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Π° Spi Flash ch441a ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ спСктр Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΎΠ³ΠΎ ПО: Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования, стирания, программирования, ΠΊΠ°Π»ΠΈΠ±Ρ€ΠΎΠ²ΠΊΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΉ.
  6. ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Π΅Ρ‚ Π²Ρ‹Ρ…ΠΎΠ΄ питания 5 Π’ — 3,3 Π’.
  7. Π Π°Π·ΠΌΠ΅Ρ€: 70 ΠΌΠΌ Ρ… 27 ΠΌΠΌ
  8. Ch441SER.EXE — ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Π°Ρ установка Π°Ρ€Ρ…ΠΈΠ²Π° с USB Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€.

УстранСниС сбоСв Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ²

Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌΠΈ, ΠΎΠ½, вСроятно, столкнСтся с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, Π½Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ часы ΠΈΠ»ΠΈ Π΄Π½ΠΈ, Π° ΠΈΠ½ΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ просто Π½Π΅Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΠΌΡ‹. ΠžΠΏΡ‹Ρ‚Π½Ρ‹Π΅ программисты подСлились своими Π½Π°Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°ΠΌΠΈ устранСния Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠΉ, Π²ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ…:

  1. ΠŸΡ€ΠΈ любом сбоС Π²Π½Π°Ρ‡Π°Π»Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ Π±Π»ΠΎΠΊ питания. Иногда случаСтся Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ источник питания Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Ρƒ ΠΈ трСбуСтся внСшний источник питания.
  2. Π’Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡ€Ρ‚ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ обСспСчСнии.
  3. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для Π΅Π³ΠΎ функционирования. Когда ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ Π² ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π·, ΠΎΠ½ автоматичСски устанавливаСт ΠΈΡ…, Ссли Π΅ΡΡ‚ΡŒ соСдинСниС с ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ΠΎΠΌ, ΠΈΠ½ΠΎΠ³Π΄Π° потрСбуСтся ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ располоТСниС Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ².
  4. ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ напряТСния. МногиС ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ подтягивания Π² своСй Ρ†Π΅ΠΏΠΈ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½Ρ‹, Ρ‚Π°ΠΊ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ пикасС Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ 10 кОм ΠΏΠΎΠ΄Ρ‚ΡΠ³ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ рСзистора Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌ Π²Ρ‹Π²ΠΎΠ΄Π΅, ΠΈΠ½Π°Ρ‡Π΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ.
  5. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС для программирования Π½Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ — это ΠΎΠΏΡΡ‚ΡŒ-Ρ‚Π°ΠΊΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с Π±Π»ΠΎΠΊΠΎΠΌ питания, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ Π‘ΠŸ снова ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ ΠΊ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ.

ПослС выполнСния своими Ρ€ΡƒΠΊΠ°ΠΌΠΈ USB ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Π° Spi Flash ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ SF, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½ΡƒΡŽ собствСнноручно для систСмного программирования. Она Π±ΡƒΠ΄Π΅Ρ‚ Π»Π΅Π³ΠΊΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒΡΡ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ Ρ‡Π΅Ρ€Π΅Π· ΡˆΠΈΠ½Ρƒ USB благодаря ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΌΡƒ интСрфСйсу ΠΈ ΠΌΠΎΡ‰Π½Ρ‹ΠΌ функциями.

fb.ru

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ SPI Flash своими Ρ€ΡƒΠΊΠ°ΠΌΠΈ

#include «SPIFlash.h»

#include <SPI.h>

#include <avr/wdt.h>

//////////////////////////////////////////

// flash(SPI_CS, MANUFACTURER_ID)

// SPI_CSΒ Β Β Β Β Β Β Β Β Β — CS pin attached to SPI flash chip (8 in case of Moteino)

// MANUFACTURER_ID — OPTIONAL, 0x1F44 for adesto(ex atmel) 4mbit flash

//Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β  0xEF30 for windbond 4mbit flash

//////////////////////////////////////////

SPIFlash flash(2, 0);

byte buf[1024];

void setup() {

Β Β Serial.begin(115200);

Β Β while (!Serial);

Β Β if (flash.initialize())

Β Β Β Β Serial.println(«Init OK!»);

Β Β else

Β Β Β Β Serial.println(«Init FAIL!»);

}

Β 

void loop() {

Β Β char cmd;

Β Β if (!Serial.available()) return;

Β Β cmd = Serial.read();

Β Β if (cmd == ‘t’) {

Β Β Β Β Serial.print(«COM ok\n»);

Β Β Β Β return;

Β Β }

Β Β if (cmd == ‘i’)

Β Β {

Β Β Β Β Serial.print(«DeviceID: «);

Β Β Β Β Serial.print(flash.readDeviceId(), HEX);

Β Β Β Β Serial.print(‘\n’);

Β Β Β Β return;

Β Β }

Β Β if (cmd == ‘a’)

Β Β {

Β Β Β Β flash.chipErase();

Β Β Β Β while (flash.busy());

Β Β Β Β Serial.print(«OK»);

Β Β Β Β Serial.print(‘\n’);

Β Β Β Β return;

Β Β }

Β Β if (cmd == ‘e’)

Β Β {

Β Β Β Β longΒ Β sector = Serial.parseInt();

Β Β Β Β Serial.read(); // Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ

Β Β Β Β flash.blockErase4K(sector);

Β Β Β Β Serial.print(«OK»);

Β Β Β Β Serial.print(sector);

Β Β Β Β Serial.print(‘\n’);

Β Β Β Β return;

Β Β }

Β Β if (cmd == ‘w’)

Β Β {

Β Β Β Β long addr = Serial.parseInt();

Β Β Β Β Serial.read(); // Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ

Β Β Β Β for (int bufsz = 0; bufsz < 128; bufsz++)

Β Β Β Β {

Β Β Β Β Β Β while (Serial.available() == 0);

Β Β Β Β Β Β buf[bufsz] = Serial.read();

Β Β Β Β }

Β Β Β Β flash.writeBytes(addr, buf, 128);

Β Β Β Β Serial.print(«OK»);

Β Β Β Β Serial.print(addr);

Β Β Β Β Serial.print(‘\n’);

Β Β Β Β return;

Β Β }

Β Β if (cmd == ‘r’) {

Β Β Β Β long addr = Serial.parseInt();

Β Β Β Β Serial.read(); // Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ

Β Β Β Β for (int i = 0; i < 4; i++)

Β Β Β Β {

Β Β Β Β Β Β flash.readBytes(addr + (i * 1024) + 0, buf, 1024);

Β Β Β Β Β Β for (int j = 0; j < 1024; j++)

Β Β Β Β Β Β Β Β Serial.write(buf[j]);

Β Β Β Β }

Β Β Β Β return;

Β Β }

}

skproj.ru

ΠŸΡ€ΠΎΠ½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ Π² BIOS ROM: осваиваСм SPI Flash β„–2

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ

ΠœΠΈΠΊΡ€ΠΎΡΡ…Π΅ΠΌΡ‹ SPI Flash ROM, Π² частности микросхСма SST 25VF080B, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ Π²
рассматриваСмой ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ сигнал Π·Π°Ρ‰ΠΈΡ‚Ρ‹ записи WP# (Write Protect).
Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ сигнала микросхСм LPC Flash, для SPI Flash этот сигнал
Π½Π΅ управляСт нСпосрСдствСнно Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ записи ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Π° дСйствуСт Π²
сочСтании с Π±ΠΈΡ‚Π°ΠΌΠΈ BP0-BP3 (Block Protect) ΠΈ BPL (Block Protect Lock) рСгистра
статуса. Π§Π΅Ρ‚Ρ‹Ρ€Π΅ Π±ΠΈΡ‚Π° Π² рСгистрС статуса BP0-BP3 Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· 16 Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ²
Π·Π°Ρ‰ΠΈΡ‚Ρ‹ микросхСмы BIOS, срСди этих Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² – ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π·Π°ΠΏΡ€Π΅Ρ‚ записи ΠΏΠΎ всСм
адрСсам, Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ записи ΠΏΠΎ всСм адрСсам, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅
ΠΈΠ·Π±ΠΈΡ€Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π·Π°Ρ‰ΠΈΡ‚Ρƒ Π±Π»ΠΎΠΊΠΎΠ². РазумССтся, сама ΠΏΠΎ сСбС такая Π·Π°Ρ‰ΠΈΡ‚Π° Π½Π΅
эффСктивна, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ содСрТимоС Π±ΠΈΡ‚ΠΎΠ² BP0-BP3 ΠΈ
Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ запись. Π§Ρ‚ΠΎΠ±Ρ‹ этого Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π±ΠΈΡ‚ BPL ΠΈ внСшний
сигнал Π·Π°Ρ‰ΠΈΡ‚Ρ‹ записи WP#. Установка Π±ΠΈΡ‚Π° BPL=1 Π΄Π΅Π»Π°Π΅Ρ‚ Π±ΠΈΡ‚Ρ‹ BPL ΠΈ BP0-BP3
нСдоступными для пСрСзаписи. Данная Π·Π°Ρ‰ΠΈΡ‚Π° дСйствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ сигнала
логичСского «0» Π½Π° Π²Ρ…ΠΎΠ΄ WP#, Π° ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ логичСской «1» Π½Π° Π²Ρ…ΠΎΠ΄Π΅ WP#, Π±ΠΈΡ‚Ρ‹ BPL
ΠΈ BP0-BP3 доступны для пСрСзаписи нСзависимо ΠΎΡ‚ состояния Π±ΠΈΡ‚Π° BPL.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π·Π°Ρ‰ΠΈΡ‚ΠΎΠΉ содСрТимого микросхСмы BIOS ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ
посрСдством рСгистра статуса, Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΉ Π·Π°Ρ‰ΠΈΡ‚Ρ‹, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌΠΎΠΉ сигналом
WP#, являСтся содСрТимоС рСгистра статуса, Π° Π½Π΅ записанная информация.
ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ Π² [5].

Для Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π·Π°Ρ‰ΠΈΡ‚Ρ‹, BIOS ΠΏΡ€ΠΈ стартС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ΅Π½
Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΠΈΡ‚ΠΎΠ² BP0-BP3 Π² соотвСтствии с Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹ΠΌ Ρ€Π΅ΠΆΠΈΠΌΠΎΠΌ Π·Π°Ρ‰ΠΈΡ‚Ρ‹, Π°
Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±ΠΈΡ‚ BPL=1 для прСдотвращСния ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π±ΠΈΡ‚ΠΎΠ²
BP0-BP3 ΠΈ BPL. Π—Π°Ρ‚Π΅ΠΌ трСбуСтся ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π°Ρ‡Ρƒ логичСского «0» Π½Π° Π²Ρ…ΠΎΠ΄ WP#.
Π–Π΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ управлСния сигналом WP# Π±Ρ‹Π» ΡƒΠ½ΠΈΠΊΠ°Π»Π΅Π½ для
ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ матСринской ΠΏΠ»Π°Ρ‚Ρ‹, это ослоТнит Ρ€Π°Π±ΠΎΡ‚Ρƒ «Π²ΠΈΡ€ΡƒΡΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»Π΅ΠΉ».

К соТалСнию, ΠΈ этот ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π·Π°Ρ‰ΠΈΡ‚Ρ‹, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ микросхСмами SPI Flash,
Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ BIOS ΠΈ матСринских ΠΏΠ»Π°Ρ‚. Π’ΠΎ всСх
ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…, исслСдованных Π°Π²Ρ‚ΠΎΡ€ΠΎΠΌ, Π² рСгистрС статуса Flash, Π±ΠΈΡ‚ BPL=0, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ
Π·Π°Ρ‰ΠΈΡ‚Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈ статусный рСгистр доступСн для пСрСзаписи.

Β 

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

Π‘ΠΈΠΌΠ²ΠΎΠ» «#» послС названия сигнала ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ являСтся
Π½ΠΈΠ·ΠΊΠΈΠΉ. НапримСр, рассматриваСмый сигнал Π·Π°Ρ‰ΠΈΡ‚Ρ‹ записи WP# (Write Protect),
интСрпрСтируСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: ЛогичСский «0» ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π·Π°Ρ‰ΠΈΡ‚Ρ‹
записи, логичСская «1» – отсутствиС Π·Π°Ρ‰ΠΈΡ‚Ρ‹. Π’ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ схСмотСхникС Ρ‚Π°ΠΊΠΈΠ΅
сигналы Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ инвСрсными.

Запуск ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ стирания ΠΈ записи содСрТимого микросхСмы SPI Flash
выполняСтся Π² Π΄Π²Π° этапа. Π‘Π½Π°Ρ‡Π°Π»Π° пСрСдаСтся ΠΊΠΎΠΌΠ°Π½Π΄Π° Write Enable, Π·Π°Ρ‚Π΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π°,
нСпосрСдствСнно Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‰Π°Ρ стираниС ΠΈΠ»ΠΈ запись. Если заданная
ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π΅ соблюдСна, содСрТимоС микросхСмы Π½Π΅ измСняСтся.
Π’Π°ΠΊΠΎΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ эффСктивно Π·Π°Ρ‰ΠΈΡ‰Π°Π΅Ρ‚ BIOS ΠΎΡ‚ случайного искаТСния Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅
ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ сбоя, ΠΎΠ΄Π½Π°ΠΊΠΎ прСпятствиСм для «Π²ΠΈΡ€ΡƒΡΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»Π΅ΠΉ» ΠΎΠ½ Π½Π΅ являСтся, Ρ‚Π°ΠΊ
ΠΊΠ°ΠΊ трСбуСмая ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ описана Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π½Π°
микросхСмы SPI Flash, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ [4-7].

Β 

ΠœΠ΅Ρ€Ρ‹ прСдостороТности

ΠŸΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΡ… стираниС ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡŒ
содСрТимого микросхСмы Flash ROM, Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎ сущСствуСт риск искаТСния BIOS с
ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ отсутствиСм старта матСринской ΠΏΠ»Π°Ρ‚Ρ‹. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, содСрТащиСся Π²
ΠΏΡ€ΠΈΠ»Π°Π³Π°Π΅ΠΌΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ WORK, рассчитаны Π½Π° спСциалистов, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΈ
ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ для восстановлСния BIOS, Ссли это потрСбуСтся. ИдСальноС Ρ€Π°Π±ΠΎΡ‡Π΅Π΅
мСсто для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ – это матСринская ΠΏΠ»Π°Ρ‚Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ
микросхСма BIOS установлСна Π² «ΠΏΠ°Π½Π΅Π»ΡŒΠΊΡƒ», Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΡƒΡŽ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ микросхСмы Π±Π΅Π·
использования ΠΏΠ°ΠΉΠΊΠΈ, Π² сочСтании с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ΠΎΠΌ. Π˜ΡΡ…ΠΎΠ΄Π½ΠΎΠ΅ содСрТимоС
микросхСмы ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°. Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ссли Π±ΡƒΠ΄Π΅Ρ‚
искаТСн BIOS Boot Block, ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ самовосстановлСния, Ρ€Π΅ΠΊΠ»Π°ΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅
производитСлями матСринских ΠΏΠ»Π°Ρ‚, окаТутся нСработоспособными. Напомним, Ρ‡Ρ‚ΠΎ Π²ΠΎ
врСмя Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ сСанса ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ копия BIOS Π² Shadow RAM, поэтому Ссли
содСрТимоС микросхСмы BIOS Π±ΡƒΠ΄Π΅Ρ‚ искаТСно, это проявится Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ
ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ нСобходимости Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎΠ³ΠΎ
восстановлСния BIOS, ΠΏΠ΅Ρ€Π΅Π΄ сбросом ΠΈΠ»ΠΈ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ питания слСдуСт Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ
исходноС содСрТимоС Flash ROM.

ΠšΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡ‡Π΅ΡΠΊΠΈ Π½Π΅ рСкомСндуСтся ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ экспСримСнты Π½Π° основном Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ
ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, Π»ΡƒΡ‡ΡˆΠ΅ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ стСнд, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡΡ‚Π°Ρ€ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρƒ, ΠΎΡΡ‚Π°Π²ΡˆΡƒΡŽΡΡ
послС Π°ΠΏΠ³Ρ€Π΅ΠΉΠ΄Π°.

Β 

ЗамСчания ΠΏΠΎ совмСстимости

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, рассматриваСмыС Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… 1-3, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ программирования
ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… рСгистров ΠΈ рСсурсов ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, рСализация ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… различаСтся
Π² Ρ€Π°Π·Π½Ρ‹Ρ… чипсСтах. РазумССтся, Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ всС Π½Π°Π±ΠΎΡ€Ρ‹ систСмной Π»ΠΎΠ³ΠΈΠΊΠΈ Π² Ρ€Π°ΠΌΠΊΠ°Ρ…
ΠΎΠ΄Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, поэтому Π°Π²Ρ‚ΠΎΡ€ остановился Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:
матСринская ΠΏΠ»Π°Ρ‚Π° Gigabyte GA-965P-S3 (чипсСт Intel 965, микросхСма BIOS SST
25VF080B). ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ 1-3 ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΏΠ»Π°Ρ‚ с ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ элСмСнтной
Π±Π°Π·ΠΎΠΉ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΡ‹ΠΉ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π», заинтСрСсованный Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚
Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎΠΉ Π½ΠΎΠΌΠ΅Π½ΠΊΠ»Π°Ρ‚ΡƒΡ€Ρ‹
ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ.

Β 

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1. ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° чтСния ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° ΠΈ рСгистра статуса Flash ROM.

Как ΠΈ Π² Ρ€Π°Π½Π΅Π΅ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΡΡ‚Π°Ρ‚ΡŒΡΡ… Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°, Π² цСлях монопольного ΠΈ
бСспрСпятствСнного взаимодСйствия ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с
ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΡ‹ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ, Π°Π²Ρ‚ΠΎΡ€ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ» «Π΄Ρ€Π΅Π²Π½ΡŽΡŽ» Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΏΠΎΠ΄ DOS.
АргумСнтация Ρ‚Π°ΠΊΠΎΠ³ΠΎ шага ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ мСста ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹
Π² Ρ€Π°Π½Π΅Π΅ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ «64-Π±ΠΈΡ‚Π½Ρ‹ΠΉ
Ρ€Π΅ΠΆΠΈΠΌ ΠΏΠΎΠ΄ DOS: ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ Ρ€Π°Π±ΠΎΡ‚Π° β„– 1″. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ
ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ стирания ΠΈ записи содСрТимого микросхСмы BIOS, рассмотрим Π±ΠΎΠ»Π΅Π΅
простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ – Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° ΠΈ статуса этой микросхСмы.

ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ WORK\ID_FLASH содСрТит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹:

ASM_TD.BAT – обСспСчиваСт ассСмблированиС, Π»ΠΈΠ½ΠΊΠΎΠ²ΠΊΡƒ ΠΈ запуск ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹
ΠΏΠΎΠ΄ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΎΠΌ. ΠŸΡ€ΠΈ запускС TASM ΠΈ TLINK ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΎΠΏΡ†ΠΈΠΈ, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅
Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² EXE Ρ„Π°ΠΉΠ».

ASM_EXE.BAT – обСспСчиваСт ассСмблированиС ΠΈ Π»ΠΈΠ½ΠΊΠΎΠ²ΠΊΡƒ. ГСнСрируСтся
EXE Ρ„Π°ΠΉΠ».

FLASH_ID.ASM – основной ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

A20.INC – Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для управлСния ΠΈ контроля состояния адрСсной
Π»ΠΈΠ½ΠΈΠΈ A20 с использованиСм Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ€Ρ‚Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹.

BIGREAL.INC – Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ€Π΅ΠΆΠΈΠΌΠ° Big Real Mode, для
использования 32-Π±ΠΈΡ‚Π½Ρ‹Ρ… адрСсов Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ 0-4 Π“Π±. Π­Ρ‚ΠΎΡ‚ Ρ€Π΅ΠΆΠΈΠΌ, ΠΊΠ°ΠΊ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅
адрСсной Π»ΠΈΠ½ΠΈΠ΅ΠΉ A20, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π²
рассматриваСмой ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅, рСгистры ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° SPI ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ
Memory-mapped I/O, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π°Π΄Ρ€Π΅ΡΡƒΡŽΡ‚ΡΡ Π² пространствС памяти.

SPIFLASH.INC – Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ для взаимодСйствия с микросхСмой
BIOS, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΉ ΠΊ интСрфСйсу SPI. РСализация ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° SPI Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ…
чипсСтах отличаСтся, данная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ микросхСмы
Intel ICH8, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ «ΡŽΠΆΠ½ΠΎΠ³ΠΎ моста» чипсСта Intel 965. Для ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ понимания
Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ Π΄Π°Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, слСдуСт ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρƒ [3].

OUTPUT.INC – Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ для Π²Ρ‹Π²ΠΎΠ΄Π° тСкстовых сообщСний с
использованиСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ DOS ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹Ρ… чисСл Π² тСкстовоС
прСдставлСниС.

DATASEGS.INC – Π‘Π΅Π³ΠΌΠ΅Π½Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ сСгмСнт ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, сСгмСнт
тСкстовых строк ΠΈ сСгмСнт стСка.

Рассмотрим Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ чтСния ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° ΠΈ статуса микросхСмы
BIOS. НумСрация ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π½ΠΈΠΆΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° соотвСтствуСт Π½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΠΈ
ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² Π² коммСнтариях ΠΊ исходному тСксту ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π‘ΠΌ. Ρ„Π°ΠΉΠ»
WORK\ID_FLASH\flash_id.asm.

1) Установка адрСса стСка, Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° рСгистров SS ΠΈ SP.

2) Π’Ρ‹Π΄Π°Ρ‡Π° сообщСния ΠΎ Π½Π°Ρ‡Π°Π»Π΅ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

3) ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ€Π΅ΠΆΠΈΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ процСссора (Real ΠΈΠ»ΠΈ Protected). Π’Π°ΠΊ ΠΊΠ°ΠΊ данная
ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ нСпосрСдствСнноС взаимодСйствиС с рСгистрами чипсСта ΠΈ
Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ систСмными рСсурсами, процСссор Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Real Mode. Если
процСссор Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Protected Mode, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ ΠΏΡƒΠ½ΠΊΡ‚Ρƒ 15 (Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ с ошибкой).

4) ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΊ адрСсации памяти Π²Ρ‹ΡˆΠ΅ 1 MB. Для этого Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅ΠΌ Π°Π΄Ρ€Π΅ΡΠ½ΡƒΡŽ
линию A20 ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Ρ€Π΅ΠΆΠΈΠΌ Big Real Mode, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ использованиС 32-Π±ΠΈΡ‚Π½ΠΎΠΉ
адрСсации Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. Π­Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для доступа ΠΊ рСгистрам Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°
SPIBAR. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ Π² [3]. Если ΠΏΡ€ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ адрСсной Π»ΠΈΠ½ΠΈΠ΅ΠΉ A20 Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ
ошибки, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ ΠΏΡƒΠ½ΠΊΡ‚Ρƒ 15 (Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ с ошибкой).

5) Π”Π΅Ρ‚Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ чипсСта матСринской ΠΏΠ»Π°Ρ‚Ρ‹, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ адрСса Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° RCBA
(Root Complex Base Address). Π’Π½Π°Ρ‡Π°Π»Π΅ провСряСм Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ
PCIBIOS, Π·Π°Ρ‚Π΅ΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ PCIBIOS, провСряСм Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ «ΡŽΠΆΠ½ΠΎΠ³ΠΎ моста» Intel ICH8
ΠΏΠΎ ΠΊΠΎΠ΄Π°ΠΌ PCI Vendor ID, PCI Device ID. Если чипсСт Π½Π΅ распознан, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ
ΠΏΡƒΠ½ΠΊΡ‚Ρƒ 14 (Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ с ошибкой). Напомним, Ρ‡Ρ‚ΠΎ тСкущая вСрсия ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹
ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с Π΄Π°Π½Π½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ «ΡŽΠΆΠ½ΠΎΠ³ΠΎ моста». Π‘Ρ‡ΠΈΡ‚Ρ‹Π²Π°Π΅ΠΌ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ
адрСс Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° RCBA.

6) Установка Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ†ΠΈΠΊΠ»ΠΎΠ² записи для интСрфСйса SPI. УстанавливаСм Π±ΠΈΡ‚ 0
Π² рСгистрС BIOS_CNTL. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ Π² [3].

7) Установка ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ сСгмСнтных рСгистров. DS:EBX Π΄Π°Π»Π΅Π΅ Π±ΡƒΠ΄Π΅Ρ‚
ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ адрСс Π±Π»ΠΎΠΊΠ° рСгистров ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° SPI (SPIBAR). Π­Ρ‚ΠΎΡ‚
ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ являСтся Π²Ρ…ΠΎΠ΄Π½Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ для ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ SPI_Read ΠΈ
Scan_Opcode_Menu. По ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ Big Real Mode, DS=0, Π° EBX содСрТит 32-Π±ΠΈΡ‚Π½Ρ‹ΠΉ
физичСский адрСс. Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ адрСс Π±Π»ΠΎΠΊΠ° рСгистров управлСния ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° SPI Ρ€Π°Π²Π΅Π½
RCBA+3020h. Π‘Π΅Π³ΠΌΠ΅Π½Ρ‚ ES Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ строк тСкстовых
сообщСний.

8) Π‘Ρ‡ΠΈΡ‚Ρ‹Π²Π°Π΅ΠΌ ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ микросхСмы Flash ROM.
Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ содСрТит Π΄Π²Π° Π±Π°ΠΉΡ‚Π°. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π±Π°ΠΉΡ‚ – Vendor ID (синоним Manufacturer
ID) ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ производитСля микросхСмы, Π² нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΎΠ½ Ρ€Π°Π²Π΅Π½ BFh, этот
ΠΊΠΎΠ΄ присвоСн Ρ„ΠΈΡ€ΠΌΠ΅ SST. Π’Ρ‚ΠΎΡ€ΠΎΠΉ Π±Π°ΠΉΡ‚ – Ρ‚ΠΈΠΏ микросхСмы, для 25VF080B ΠΎΠ½ Ρ€Π°Π²Π΅Π½ 8Eh.
ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° чтСния ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° состоит ΠΈΠ· ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ микросхСмС ΠΊΠΎΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (90h
для ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Read ID) ΠΈ считывания Π΄Π²ΡƒΡ… Π±Π°ΠΉΡ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°.

Напомним, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ SPI Π½Π΅ позволяСт нСпосрСдствСнно ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠ΄
ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ микросхСмС Flash ROM, это дСлаСтся косвСнно, посрСдством Π±Π»ΠΎΠΊΠ° рСгистров
OpCode Menu. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π±Π°ΠΉΡ‚ 8-Π±Π°ΠΉΡ‚Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° OpCode Menu содСрТит ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠΎΠ΄ΠΎΠ²
ΠΊΠΎΠΌΠ°Π½Π΄ для микросхСмы Flash ROM (Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°, Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ статуса, запись,
стираниС, ΠΈ Ρ‚.ΠΏ.). Π­Ρ‚ΠΎΡ‚ Π±Π»ΠΎΠΊ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ BIOS ΠΏΡ€ΠΈ стартС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Для
ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ Π½ΠΎΠΌΠ΅Ρ€ Π±Π°ΠΉΡ‚Π° Π² 8-Π±Π°ΠΉΡ‚Π½ΠΎΠΌ
Π±Π»ΠΎΠΊΠ΅ OpCode Menu, содСрТащСго ΠΊΠΎΠ΄ этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Π’Π°ΠΊ ΠΊΠ°ΠΊ располоТСниС ΠΊΠΎΠ΄ΠΎΠ² Π²
ячСйках OpCode Menu зависит ΠΎΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ BIOS ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ,
ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° сначала Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€ΠΎΡΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ OpCode Menu ΠΈ Π½Π°ΠΉΡ‚ΠΈ Π½ΠΎΠΌΠ΅Ρ€ ячСйки, Π²
ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ хранится ΠΊΠΎΠ΄ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (90h для Read ID). Π­Ρ‚Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ выполняСт
ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Scan_OpCode_Menu. Π—Π°Ρ‚Π΅ΠΌ, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ 3-Π±ΠΈΡ‚Π½Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€ ячСйки
ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ Π±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ COP (Cycle Opcode Pointer) ΠΏΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ
32-Π±ΠΈΡ‚Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ для ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° SPI. ΠšΡ€ΠΎΠΌΠ΅ COP, ΠΊΠΎΠ΄ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Ρ‚Π°ΠΊΠΆΠ΅
содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ количСствС ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π±Π°ΠΉΡ‚ Π΄Π°Π½Π½Ρ‹Ρ…, частотС Π±ΠΈΡ‚ΠΎΠ²ΠΎΠΉ
синхронизации ΠΈ Ρ‚.ΠΏ. Π‘Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ 32-Π±ΠΈΡ‚Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ являСтся Π²Ρ…ΠΎΠ΄Π½Ρ‹ΠΌ
ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ для ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ SPI_Read, которая записываСт Π΅Π³ΠΎ Π² рСгистр Software
Sequencing Flash Control Register, инициируя Π½Π°Ρ‡Π°Π»ΠΎ выполнСния Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π½Π°
шинС SPI. ΠŸΠ΅Ρ€Π΅Π΄ этим Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ адрСс Π² рСгистр Flash Address Register.
Π—Π°Ρ‚Π΅ΠΌ, цикличСски ΠΎΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌ рСгистр Software Sequencing Flash Status Register
для опрСдСлСния ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. ПослС этого, ΠΈΠ· рСгистра Flash
Data 0 Register, считываСм ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Π² нашСм случаС это Π΄Π²Π° Π±Π°ΠΉΡ‚Π°
ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° микросхСмы Flash ROM. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ Π² [3,5].

9) Π‘Ρ‡ΠΈΡ‚Ρ‹Π²Π°Π΅ΠΌ ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ рСгистр состояния микросхСмы Flash ROM. Π­Ρ‚ΠΎΡ‚
рСгистр содСрТит ΠΎΠ΄ΠΈΠ½ Π±Π°ΠΉΡ‚, Π΅Π³ΠΎ ΠΏΠΎΠ±ΠΈΡ‚Π½ΠΎΠ΅ описаниС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ Π² [5]. Код ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹
Read Status – 05h, количСство Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹Ρ… Π±Π°ΠΉΡ‚ – 1. Π’ ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΌ, данная ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°
Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ чтСния ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°, описанной Π² ΠΏΡƒΠ½ΠΊΡ‚Π΅ 8.

10) ВосстанавливаСм исходноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ рСгистра BIOS_CNTL, сохранСнноС ΠΏΠ΅Ρ€Π΅Π΄
Π΅Π³ΠΎ пСрСнастройкой Π² ΠΏΡƒΠ½ΠΊΡ‚Π΅ 6.

11) ВосстанавливаСм исходноС состояниС адрСсной Π»ΠΈΠ½ΠΈΠΈ A20 ΠΈ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Ρ€Π΅ΠΆΠΈΠΌ
32-Π±ΠΈΡ‚Π½ΠΎΠΉ адрСсации (Big Real Mode).

12) Π’Ρ‹Π²ΠΎΠ΄ сообщСния ΠΎΠ± ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅. Π­Ρ‚Π° Ρ‚ΠΎΡ‡ΠΊΠ°
Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ отсутствии ошибок.

13) Начало ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ для Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€ΠΈ
ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…. ВосстанавливаСм исходноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ рСгистра BIOS_CNTL, сохранСнноС ΠΏΠ΅Ρ€Π΅Π΄
Π΅Π³ΠΎ пСрСнастройкой Π² ΠΏΡƒΠ½ΠΊΡ‚Π΅ 6. Бюда ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ пСрСдаСтся, Ссли ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΈ ошибки
послС пСрСнастройки рСгистра BIOS_CNTL ΠΈ трСбуСтся Π΅Π³ΠΎ восстановлСниС ΠΏΠ΅Ρ€Π΅Π΄
Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

14) ВосстанавливаСм исходноС состояниС адрСсной Π»ΠΈΠ½ΠΈΠΈ A20 ΠΈ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Ρ€Π΅ΠΆΠΈΠΌ
32-Π±ΠΈΡ‚Π½ΠΎΠΉ адрСсации (Big Real Mode).

15) Π’Ρ‹Π²ΠΎΠ΄ сообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅
управлСния Π½Π° этот ΠΏΡƒΠ½ΠΊΡ‚, рСгистр BP Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° строку
сообщСния ΠΎΠ± ошибкС.

Β 

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2. ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° чтСния Flash ROM.

АссСмблСрный ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ содСрТимого микросхСмы BIOS Π² Ρ„Π°ΠΉΠ»,
находится Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ WORK\RD_FLASH. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° выполняСт
сохранСниС области адрСсного пространства FFF00000h-FFFFFFFFh Π² Ρ„Π°ΠΉΠ» Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 1
Мб ΠΈ фиксированным ΠΈΠΌΠ΅Π½Π΅ΠΌ BIOS.BIN. Π€Π°ΠΉΠ» создаСтся Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅. Π Π°Π·ΠΌΠ΅Ρ€
сохраняСмого Π±Π»ΠΎΠΊΠ° Π½Π΅ зависит ΠΎΡ‚ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ микросхСмы BIOS,
распознаваниС Ρ‚ΠΈΠΏΠ° ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° микросхСмы Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΉ вСрсии.
ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ матСринскиС ΠΏΠ»Π°Ρ‚Ρ‹ с «ΡŽΠΆΠ½Ρ‹ΠΌ мостом» Intel ICH8. Для
Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ объСма микросхСмы BIOS Π² адрСсноС
пространство, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ установку Π±ΠΈΡ‚ΠΎΠ² FWH_F8_EN, FWH_F0_EN Π²
рСгистрС FWH_DEC_EN1, Ρ‡Π΅ΠΌ ΠΈ обусловлСна Π΅Π΅ привязка ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ чипсСту.
ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ Π² [3].

ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ, для чтСния содСрТимого SPI Flash ΠΌΠΎΠΆΠ½ΠΎ
ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ «ΡΡ‚Π°Ρ€Ρ‹ΠΉ» ΠΌΠ΅Ρ‚ΠΎΠ΄ доступа посрСдством ΠΎΠΊΠ½Π° Π² адрСсном пространствС,
это ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅. А ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄
микросхСмС SPI Flash (Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° ΠΈΠ»ΠΈ статуса, запись, стираниС) ΠΌΠΎΠ³ΡƒΡ‚
Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с использованиСм рСгистров ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° SPI. Π’Π°ΠΊΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄
использован Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… 1 ΠΈ 3.

Β 

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 3. ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° стирания ΠΈ пСрСзаписи Flash ROM.

АссСмблСрный ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉ стираниС ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡŒ микросхСмы BIOS,
находится Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ WORK\WR_FLASH. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° выполняСт
запись содСрТимого Ρ„Π°ΠΉΠ»Π° с фиксированным ΠΈΠΌΠ΅Π½Π΅ΠΌ BIOS.BIN ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 1 Мб Π²
микросхСму BIOS. Π€Π°ΠΉΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅.

Β 

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ Ρ€Π°Π· ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½Ρƒ, Ρ‡Ρ‚ΠΎ Ρ†Π΅Π»ΡŒΡŽ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΉ Π½Π΅ являСтся
ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ «Π²Ρ€Π΅Π΄ΠΈΡ‚Π΅Π»Π΅ΠΉ». ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ спСциалистам ΠΏΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ
бСзопасности, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ ΠΈ систСмного ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.
Π’Ρ‹Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² для противодСйствия ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΡƒΠ³Ρ€ΠΎΠ·Π΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Π±Π΅Π·
Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ изучСния самой ΡƒΠ³Ρ€ΠΎΠ·Ρ‹.

Вся привСдСнная информация ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π° ΠΈΠ· ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… источников, список ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ…
прилагаСтся.

Β 

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ

Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, доступныС Π½Π° сайтС
developer.intel.com.

1) Intel Low Pin Count (LPC) Interface Specification. Revision 1.1. Document
Number 251289-001.
2) Intel P965 Express Chipset Family Datasheet – For the Intel 82P965 Memory
Controller Hub (MCH). Document Number: 313053-001.
3) Intel I/O Controller Hub 8 (ICH8) Family Datasheet – For the Intel 82801HB
ICH8 and 82801HR ICH8R I/O Controller Hubs. Document Number: 313056-001.

Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, доступныС Π½Π° сайтС
www.superflash.com ΠΈΠ»ΠΈ
ssti.com.

4) 1 Mbit SPI Serial Flash SST25VF010 Data Sheet. Document Number:
S71233-01-000.
5) 8 Mbit SPI Serial Flash SST25VF080B Data Sheet. Document Number:
S71296-01-000.

Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, доступныС Π½Π° сайтС
winbond.com.tw.

6) W25X10A, W25X20A, W25X40A, W25X80A 1M-bit, 2M-bit, 4M-bit and 8M-bit
Serial Flash Memory with 4KB sectors and dual output SPI Data Sheet.

Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, доступныС Π½Π° сайтС
macronix.com.

7) MX25L802 8M-bit [8Mx1] CMOS Serial Flash EEPROM Data Sheet.

Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, доступныС Π½Π° сайтС
datakey.com.

8) SPI EEPROM Interface Specification. Part Number 223-0017-004 Revision H.

Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, доступныС Π½Π° сайтС
vtitechnologies.com.

9) SPI Interface Specification. Technical Note 15.

Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, доступныС Π½Π° сайтС
pcisig.com.

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ [11], [12] Π½Π° сайтС pcisig.com доступны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‡Π»Π΅Π½ΠΎΠ² PCI
Special Interest Group. Π’ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π²ΡˆΠΈΡΡŒ поисковыми систСмами, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ
Π΄Π°Π½Π½Ρ‹Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ для свободной Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.
10) PCI BIOS Specification. Revision 2.1.
11) PCI Local Bus Specification. Revision 3.0.
12) PCI-to-PCI Bridge Architecture Specification. Revision 1.1.

xakep.ru

ΠŸΡ€ΠΎΡˆΠΈΠ²ΠΊΠ° BIOS Ρ‡Π΅Ρ€Π΅Π· SPI интСрфСйс

НС ΡΡ‚ΠΎΠ»ΡŒ Π΄Π°Π²Π½ΠΎ ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡ΠΈΠ»Π°ΡΡŒ со ΠΌΠ½ΠΎΠΉ ΠΎΠ΄Π½Π° Π½Π΅ΠΏΡ€ΠΈΡΡ‚Π½ΠΎΡΡ‚ΡŒ. НуТно Π±Ρ‹Π»ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ BIOS Π½Π° матСринской ΠΏΠ»Π°Ρ‚Π΅, Π½ΠΎ Π² процСссС ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° ошибка, систСма зависла ΠΈ пСрСстала ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ Π½Π° Π»ΡŽΠ±Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. ПослС Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Π½ΠΎΠΉ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΡΡ, ΠΊΡ€ΡƒΡ‚ΠΈΠ» ΠΊΡƒΠ»Π΅Ρ€Π°ΠΌΠΈ, Π½ΠΎ Π½Π° экранС Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π»ΠΎΡΡŒ ΠΈ Π½Π΅ Π±Ρ‹Π»ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π·Π²ΡƒΠΊΠΎΠ²Ρ‹Ρ… сигналов. На Π»ΠΈΡ†ΠΎ ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ BIOS ΠΏΡ€ΠΈ записи.

НСмного прСдыстории:

ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ½ΡΠΊΠ°Ρ ΠΏΠ»Π°Ρ‚Π° ASUS Commando, Π±Π΅Π·, ΠΌΠΎΠ΄Π½ΠΎΠ³ΠΎ Π½Ρ‹Π½Ρ‡Π΅, Dual BIOS. Волько Boot Block – нСбольшая ΠΎΠ±Π»Π°ΡΡ‚ΡŒ BIOS, Π½Π΅ затрагиваСмая записью, которая позволяСт, Π² случаС нСобходимости, ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, произвСсти поиск BIOS Π½Π° ΡΡŠΠ΅ΠΌΠ½Ρ‹Ρ… носитСлях. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ подходят Floppy ΠΈΠ»ΠΈ Ρ„Π»Π΅ΡˆΠΊΠ° с Ρ„Π°ΠΉΠ»ΠΎΠΌ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ, ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Π² AMIBOOT.ROM (зависит ΠΎΡ‚ BIOS ΠΈ матСринской ΠΏΠ»Π°Ρ‚Ρ‹, Ρ‚ΠΎΡ‡Π½Π΅Π΅ написано Π² инструкции ΠΊ ΠΏΠ»Π°Ρ‚Π΅), Π»ΠΈΠ±ΠΎ CD с Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°ΠΌΠΈ ΠΈΠ· ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π° поставки. ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ² подходящий Ρ„Π°ΠΉΠ», boot block Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚ Π΅Π³ΠΎ Π² BIOS ΠΈ, Ссли всС ΠΏΡ€ΠΎΡˆΠ»ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ послС ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΎΠΆΠΈΠ²Π΅Ρ‚. НСплохая Ρ„ΠΈΡˆΠΊΠ°, нСсколько Ρ€Π°Π· Π²Ρ‹Ρ€ΡƒΡ‡Π°Π»Π°, Π½ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΎΠ½Π° Π½Π΅ сработала, Π²ΠΈΠ΄ΠΈΠΌΠΎ, оказался ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ ΠΈ boot block.

ΠŸΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² своСм арсСналС инструмСнта Ρƒ мСня Π½Π΅ Π±Ρ‹Π»ΠΎ паяльной станции ΠΈ стационарного ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Π° для Ρ€Π°Π·Π½Ρ‹Ρ… eeprom’ок, ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ доступныС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. Рассматривая ΠΏΠ»Π°Ρ‚Ρƒ, я ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ» Π½Π° Π½Π΅ΠΉ нСбольшой Ρ€Π°Π·ΡŠΠ΅ΠΌ SPI_J1, Π° микросхСма Ρ„Π»Π΅Ρˆ памяти ΠΊΠ°ΠΊ Ρ€Π°Π· с SPI интСрфСйсом. Поиск Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Π», Ρ‡Ρ‚ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π²ΠΏΠΎΠ»Π½Π΅ ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½Ρ‹Π΅ заводскиС дСвайсы ΠΈ Π½Π΅ΠΌΠ°Π»ΠΎ самодСлок для ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ SPI микросхСм Ρ‡Π΅Ρ€Π΅Π· USB (ΠΎΠ± ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Π°Ρ… с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ SPI Π΄Π°ΠΆΠ΅ Π½Π΅ Π³ΠΎΠ²ΠΎΡ€ΡŽ, это само собой). ΠŸΡ€Π°Π²Π΄Π°, поиск ΠΏΠΎ мСстным ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°ΠΌ, Π‘Π¦ ΠΈ Ρ„ΠΎΡ€ΡƒΠΌΠ°ΠΌ Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡ‚ Google Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π°Π», Π° Π·Π°ΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ ΠΆΠ΄Π°Ρ‚ΡŒ мСсяц ΠΎΡ‡Π΅Π½ΡŒ Π½Π΅ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ.

Π•Ρ‰Π΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ поиска, ΠΈ Π²ΠΎΡ‚ ΠΎΠ½ΠΎ, Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ – ΡΡ‚Π°Ρ‚ΡŒΡ Ρ‡Π΅ΡˆΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠΌΡ€Π°Π΄Π° (Π½Π° Ρ‡Π΅ΡˆΡΠΊΠΎΠΌ) ΠΎ ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎ простом ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Π΅ ΠΈ софтинС ΠΊ Π½Π΅ΠΌΡƒ для ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ микросхСм Ρ„Π»Π΅Ρˆ памяти с SPI интСрфСйсом! НичСго слоТного, ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

ВСхничСски это ΠΎΡ‡Π΅Π½ΡŒ простой способ, ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ лишь Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ понимания схСмотСхники, умСния ΠΏΡ€ΠΈΠΏΠ°ΡΡ‚ΡŒ ΠΏΠ°Ρ€Ρƒ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΊΠΎΠ² ΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкой (cmd). Но Ссли Π²Ρ‹ Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹ Π² своих силах, Π»ΡƒΡ‡ΡˆΠ΅ Π½Π΅ рискуйтС. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, всСгда ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³Π°, Π΄Ρ€ΡƒΠΆΠ°Ρ‰Π΅Π³ΠΎ с паяльником.

Π‘Π±ΠΎΡ€ΠΊΠ° устройства

Для сборки Π½Π°ΠΌ понадобится:

  • 1 Ρ€Π°Π·ΡŠΠ΅ΠΌ DB25P, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚Ρ€Π΅Π·Π°Ρ‚ΡŒ ΠΎΡ‚ Π½Π΅Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ ΡˆΠ½ΡƒΡ€Π° ΠΎΡ‚ ΠΏΡ€ΠΈΠ½Ρ‚Π΅Ρ€Π°
  • 4 ΡˆΡ‚. рСзисторы ΠΏΠΎ 150 Ом
  • 1 любой элСктролитичСский кондСнсатор Π΅ΠΌΠΊΠΎΡΡ‚ΡŒΡŽ 100 ΠΌΠΊΠ€ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΈ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ напряТСниСм Π½Π° 6.3 Π’ ΠΈΠ»ΠΈ большС (Π½ΡƒΠΆΠ΅Π½ ΠΏΡ€ΠΈ Π·Π°ΠΏΠΈΡ‚ΠΊΠ΅ ΠΎΡ‚ Π‘ΠŸ)
  • ΠšΡƒΡΠΎΠΊ плоского ΡˆΠ»Π΅ΠΉΡ„Π° с IDC Ρ€Π°Π·ΡŠΠ΅ΠΌΠΎΠΌ Π½Π° 10 ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² (ΠΎΠ½ ΠΈΠ΄Π΅Π°Π»Π΅Π½ ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ SPI Ρ€Π°Π·ΡŠΠ΅ΠΌΠ° Π½Π° ΠΏΠ»Π°Ρ‚Π΅)
  • Π¨Ρ‚Π΅ΠΊΠ΅Ρ€ molex (ΠΊΠ°ΠΊ Π½Π° ТСстких дисках ATA), Π»ΠΈΠ±ΠΎ Π³Π½Π΅Π·Π΄ΠΎ для Π±Π°Ρ‚Π°Ρ€Π΅ΠΉΠΊΠΈ CR2032

НичСго Π΄Π΅Ρ„ΠΈΡ†ΠΈΡ‚Π½ΠΎΠ³ΠΎ Π½Π΅Ρ‚, всС ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² ΠΊΡƒΡ‡Π΅ Ρ…Π»Π°ΠΌΠ° ΠΈΠ»ΠΈ Π·Π° ΠΊΠΎΠΏΠ΅ΠΉΠΊΠΈ Π² любом Ρ€Π°Π΄ΠΈΠΎΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅. Π’ Ρ…ΡƒΠ΄ΡˆΠ΅ΠΌ случаС, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π²ΠΎΠΎΠ±Ρ‰Π΅ нСсколькими кусками ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π°, подсоСдинив ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ с SPI Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΊ LPT, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎ остроТным, Π΄Π° ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ записи Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ слоТно.

Π‘Ρ…Π΅ΠΌΠ° с сайта Π°Π²Ρ‚ΠΎΡ€Π°, ΠΏΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ нСпосрСдствСнно ΠΊ Ρ‡ΠΈΠΏΡƒ (для Ρ„Π»Π΅Ρˆ-памяти с Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ напряТСниСм 3 Π²ΠΎΠ»ΡŒΡ‚Π°):

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ SPIPGM ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈ для микросхСм Ρ„Π»Π΅Ρˆ-памяти с Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ напряТСниСм 1.8 Π’ΠΎΠ»ΡŒΡ‚. Автор примСняСт для этого Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ (своСго Ρ€ΠΎΠ΄Π° ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π½ΠΈΠΊ), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ основному ΠΌΠΎΠ΄ΡƒΠ»ΡŽ ΠΈ состоит ΠΈΠ· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… рСзисторов для гашСния напряТСния ΠΈ каскада усилСния Π½Π° транзисторах BC547 для Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ сигнала Ρ‡ΠΈΠΏΠ° (схСмы Π½Π° сайты Π°Π²Ρ‚ΠΎΡ€Π° ΠΏΠΎ ссылкС Π²Ρ‹ΡˆΠ΅). НиТС приводится адаптация схСмы ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, сразу прСдназначСнная для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‡ΠΈΠΏΠ°ΠΌΠΈ Π½Π° 1.8Π’. Для получСния напряТСния питания Π² 1.8 Π’ΠΎΠ»ΡŒΡ‚Π° ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ напряТСния (Π½Π° схСмС сСрыС рСзисторы, ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ 1/4 Π’Π°Ρ‚Ρ‚), Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ ΠΏΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ пСрСсчитан Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π½ΠΎΠΌΠΈΠ½Π°Π»Ρ‹ (я ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ 10 ΠΈ 12 Ом, ΠΈΠ»ΠΈ 100 ΠΈ 120 Ом), Π° Π΅Ρ‰Π΅ Π»ΡƒΡ‡ΡˆΠ΅ Π·Π°ΠΌΠ΅Π½Π΅Π½ подходящим DC-DC ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, TLV70018). Π”ΠΈΠΎΠ΄Ρ‹ Π»ΡŽΠ±Ρ‹Π΅, Π½ΡƒΠΆΠ½Ρ‹ ΠΎΠ½ΠΈ для ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ошибок ΠΈ, Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· Π½ΠΈΡ….

ΠœΡ‹ ΠΆΠ΅ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ Π½Π΅ ΠΊ Ρ‡ΠΈΠΏΡƒ, Π° ΠΊ Ρ€Π°Π·ΡŠΠ΅ΠΌΡƒ SPI_J1.

Если Ρ€Π°Π·ΡŠΠ΅ΠΌ 7 ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½Ρ‹ΠΉ, Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ Π½Π΅ΠΌΡƒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

1. -> ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ +3.3v 2. -> зСмля ΠΎΡ‚ питания ΠΈ Π²Ρ‹Π²ΠΎΠ΄ 18 Π½Π° LPT 3. -> рСзистор -> LPT 7 4. -> рСзистор -> LPT 8 5. -> рСзистор -> LPT 10 6. -> рСзистор -> LPT 9

Π’Π°ΠΊ ΠΆΠ΅, Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… матСринских ΠΏΠ»Π°Ρ‚Π°Ρ… Π±Ρ‹Π²Π°ΡŽΡ‚ 9 ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½Ρ‹Π΅ Ρ€Π°Π·ΡŠΠ΅ΠΌΡ‹, Ρ‚Π°ΠΌ схСма ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ отличаСтся:

РазъСм DB25P Ρ…ΠΎΡ€ΠΎΡˆ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π΄Π΅Ρ‚Π°Π»ΠΈ. Π–Π΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ максимально ΠΊΠΎΡ€ΠΎΡ‚ΠΊΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ кабСля, ΠΈΠ½Π°Ρ‡Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ошибки записи. НСплохо Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° экраном, Π»ΠΈΠ±ΠΎ ΠΎΡ‚ Π°Π½Ρ‚Π΅Π½Π½ΠΎΠ³ΠΎ кабСля, Π»ΠΈΠ±ΠΎ просто ΠΎΠ±ΠΌΠΎΡ‚Π°Π² Ρ„ΠΎΠ»ΡŒΠ³ΠΎΠΉ ΠΎΡ‚ шоколадки, Π½Π΅ Π·Π°Π±Ρ‹Π² ΠΏΠΎΠ΄ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ экран ΠΊ Π·Π΅ΠΌΠ»Π΅ (GND).

ΠŸΡ€ΠΈ ΠΏΠΈΡ‚Π°Π½ΠΈΠΈ ΠΎΡ‚ Π±Π°Ρ‚Π°Ρ€Π΅ΠΉΠΊΠΈ кондСнсатор ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ. Π›ΠΈΡ‡Π½ΠΎ я Π±Ρ€Π°Π» с +5 ΡˆΠΈΠ½Ρ‹ Π±Π»ΠΎΠΊΠ° питания (красный ΠΏΡ€ΠΎΠ²ΠΎΠ΄), ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ² ΠΊ Π½Π΅ΠΌΡƒ Ρ‡Π΅Ρ€Π΅Π· Ρ€Π°Π·ΡŠΠ΅ΠΌ molex ΠΈ погасив напряТСниС Π΄ΠΈΠΎΠ΄Π°ΠΌΠΈ Π΄ΠΎ ~3.3v (Π΄Π²ΡƒΡ…-Ρ‚Ρ€Π΅Ρ… Π΄ΠΈΠΎΠ΄ΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ достаточно).

Π‘Π»ΠΎΠΊ питания всС ΠΆΠ΅ Π½Π°Π΄Π΅ΠΆΠ½Π΅ΠΉ Π±Π°Ρ‚Π°Ρ€Π΅ΠΉΠΊΠΈ. ИмСя ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π‘ΠŸ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡ‚Π°Ρ‚ΡŒ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΎΡ‚ ΡˆΠΈΠ½Ρ‹ +3.3 (ΠΎΡ€Π°Π½ΠΆΠ΅Π²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ ATX Ρ€Π°Π·ΡŠΠ΅ΠΌΠ°). Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π±Π»ΠΎΠΊ питания Π±Π΅Π· ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΌΠΊΠ½ΡƒΡ‚ΡŒ Π·Π΅Π»Π΅Π½Ρ‹ΠΉ ΠΈ Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π°.

ДСвайс Π² сборС:

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° SPIPGM

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌΡƒ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΡŽ.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ большоС количСство Ρ‡ΠΈΠΏΠΎΠ² (ΠΏΠΎΠ»Π½Ρ‹ΠΉ список Π² Ρ„Π°ΠΉΠ»Π΅ Readme.txt) ΠΈ ΠΏΠΎ заявлСнию Π°Π²Ρ‚ΠΎΡ€Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ быстрСй Π°Π½Π°Π»ΠΎΠ³ΠΎΠ². Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΡΠ²Π΅ΠΆΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ с сайта Π°Π²Ρ‚ΠΎΡ€Π°, Π»ΠΈΠ±ΠΎ ΠΎΡ‚ΡΡŽΠ΄Π°:

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚, кстати, развиваСтся ΠΈ ΠΏΠΎ сСй дСнь, Π°Π²Ρ‚ΠΎΡ€ Ρ‡Π°ΡΡ‚Π΅Π½ΡŒΠΊΠΎ Π²Ρ‹ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹Π΅ вСрсии ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ Π½ΠΎΠ²Ρ‹Ρ… Ρ‡ΠΈΠΏΠ°Ρ…, Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠ°ΠΌΠΈ ΠΈ исправлСниями.

Π’ Π°Ρ€Ρ…ΠΈΠ²Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹:

SPIPGM – исполняСмый Ρ„Π°ΠΉΠ» для Linux

SPIPGM.EXE – исполняСмый Ρ„Π°ΠΉΠ» для DOS/Win9x

SPIPGMW.EXE – исполняСмый Ρ„Π°ΠΉΠ» для Win9x/NT/2k/XP/Vista/7 (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ…32, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ…64 Π½Π΅Ρ‚)

IOPERM.DLL – Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ³ΠΎ доступа Π² Win9x/NT/2k/XP/Vista/7(Π±Π΅Π· UAC)

НадСТнСй всСго ΠΏΡ€ΠΎΡˆΠΈΠ²Π°Ρ‚ΡŒ ΠΈΠ· DOS, Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ²ΡˆΠΈΡΡŒ с Hiren ΠΈΠ»ΠΈ любого Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ подходящСго Π·Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½ΠΎΠ³ΠΎ CD/Flash. Но ΠΌΠΎΠΆΠ½ΠΎ ΠΈ ΠΈΠ· Windows.

Бинтаксис ΠΈ основныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

Бинтаксис: spipgmw /<ΠΊΠΎΠΌΠ°Π½Π΄Π°> [имя Ρ„Π°ΠΉΠ»Π°] [адрСс] [Ρ€Π°Π·ΠΌΠ΅Ρ€] [/l=адрСс] [/d=Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ°]

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

i – идСнтификация Ρ„Π»Π΅Ρˆ памяти d имя Ρ„Π°ΠΉΠ»Π° – ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ содСрТимоС Ρ„Π»Π΅Ρˆ памяти Π² Ρ„Π°ΠΉΠ» p имя Ρ„Π°ΠΉΠ»Π° – Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„Π»Π΅Ρˆ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ (Π±Π΅Π· стирания) v имя Ρ„Π°ΠΉΠ»Π° – ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ содСрТимоС Ρ„Π»Π΅Ρˆ памяти с Ρ„Π°ΠΉΠ»ΠΎΠΌ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ e – ΠΏΠΎΠ»Π½ΠΎΠ΅ стираниС Ρ„Π»Π΅Ρˆ памяти b – ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° стирания Ρ„Π»Π΅Ρˆ памяти u – Ρ€Π°Π·Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Ρ‰ΠΈΡ‚Ρƒ ΠΎΡ‚ записи (зависит ΠΎΡ‚ сигнала WP#)

Имя Ρ„Π°ΠΉΠ»Π° β€” ΠΏΠΎΠ»Π½ΠΎΠ΅ имя Ρ„Π°ΠΉΠ»Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: file.bin, file.rom ΠΈ Ρ‚.ΠΏ. Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ€ΠΎΠ»ΠΈ Π½Π΅ ΠΈΠ³Ρ€Π°Π΅Ρ‚, Π³Π»Π°Π²Π½ΠΎΠ΅ Ρ‡Ρ‚ΠΎΠ±Ρ‹ это Π±Ρ‹Π» ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΎΠ±Ρ€Π°Π·Π° ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Π½ΠΎ имя.

ΠŸΡ€ΠΎΡˆΠΈΠ²ΠΊΠ° BIOS Ρ‡Π΅Ρ€Π΅Π· SPI:

spipgmw /i – идСнтификация Ρ‡ΠΈΠΏΠ°. Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ всС Π»ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ установлСнной памяти. Если этого Π½Π΅ происходит, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Ρ‡ΠΈΠΏΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ.

spipgmw /d BIOS.bak – Ссли Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ копию ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π³ΠΎΡΡ BIOS.

spipgmw /u – Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ записи.

spipgmw /e – стираниС.

spipgmw /p FILE.rom – запись ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ (Β«FILE.romΒ» – имя Ρ„Π°ΠΉΠ»Π° ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ, Π½ΡƒΠΆΠ½ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ„Π°ΠΉΠ» находился Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ)

…ТдСм процСсс записи…

spipgmw /v FILE.rom – сравниваСм записанныС Π΄Π°Π½Π½Ρ‹Π΅ с Ρ„Π°ΠΉΠ»ΠΎΠΌ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ. Π›ΠΈΠ±ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΄Π°ΠΌΠΏ spipgmw /d test.rom ΠΈ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ содСрТимоС с ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ Π² ΠΊΠ°ΠΊΠΎΠΌ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Hex-Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ нСбольшого количСство ошибок. Зависит ΠΎΡ‚ Π΄Π»ΠΈΠ½Π½Ρ‹ кабСля, ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ питания, Ρ‚ΠΈΠΏΠ° памяти. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ошибок Π½Π΅ Π±Ρ‹Π»ΠΎ вовсС, Π½ΠΎ Π΄Π°ΠΆΠ΅ с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ количСством ошибок ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ скорСй всСго запустится, Π° Ρ‚Π°ΠΌ ΡƒΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡˆΠΈΡ‚ΡŒ BIOS ΡˆΡ‚Π°Ρ‚Π½Ρ‹ΠΌΠΈ срСдствами.

Π”Π°Π½Π½Ρ‹ΠΉ способ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ BIOS матСринских ΠΏΠ»Π°Ρ‚, Π½ΠΎ ΠΈ Π»ΡŽΠ±Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… устройств, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… SPI Ρ€Π°Π·ΡŠΠ΅ΠΌ, Π»ΠΈΠ±ΠΎ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, любой ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ микросхСмы.

www.toolgir.ru

ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ SPI Flash Β· Tuxotronic

FlashROM — консольная ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, чтСния, записи, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈ стирания микросхСм Flash памяти.

ОсновноС Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ — это ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠ° BIOS, etc, Π° ΠΏΠΎΡ‚ΠΎΠΌΡƒ Π² спискС устройств программирования ΠΌΠ½ΠΎΠ³ΠΎ вСсьма спСцифичных. Но Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ распространённыС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Ρ‹/Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Ρ‹:

  • ft2232_spi,
  • serprog,
  • buspirate_spi,
  • rayer_spi,
  • pony_spi

АдаптСры rayer ΠΈ pony ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π½Π° LPT ΠΏΠΎΡ€Ρ‚, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π² соврСмСнных рСалиях ΠΈΡ… использованиС Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ.

SerProg

serprog это Π½Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€, Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» взаимодСйствия с Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ΠΎΠΌ ΠΏΠΎ UART интСрфСйсу (ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· ΡΠΌΡƒΠ»ΡΡ†ΠΈΡŽ UART Π½Π° USB).

Для этого ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ΠΎΠ², Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ обвязки для ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°. Π― быстро создал ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ SerProg STM32VCP использовав Π³ΠΎΡ‚ΠΎΠ²ΡƒΡŽ devboard Π½Π° stm32f103rbt6 с Ρ€Π°Π·Π²Π΅Π΄Ρ‘Π½Π½Ρ‹ΠΌ USB:

SPI Flash ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ нСпосрСдствСнно ΠΊ процСссору:

  • PA4/SPI1_NSS (20) — #CS
  • PA5/SPI1_SCK (21) — SCLK
  • PA6/SPI1_MISO (22) — SO
  • PA7/SPI1_MOSI (23) — SI

ΠŸΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ свСтодиод ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ€Π΅ΠΆΠΈΠΌΠ° Π½Π° Π½ΠΎΠ³Ρƒ PA0 (14).

ПослС этого, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ свСТСзапилСный ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ ΠΈ ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ.

flashrom -p serprog:dev=/dev/ttyACM0:4000000 -r backup-firmware.bin flashrom -p serprog:dev=/dev/ttyACM0:4000000 -w firmware.bin

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях flashrom Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ с ΠΊΠ°ΠΊΠΈΠΌ Ρ‡ΠΈΠΏΠΎΠΌ ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π΅Π»ΠΎ, Π² этом случаС ΠΎΠ½ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹, ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ Ρ‡ΠΈΠΏΠ° явно:

/usr/sbin/flashrom -p serprog:dev=/dev/ttyACM0:4000000
-c MX25L6445E -w fw.bin

Ch441A USB ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π΅Ρ€

β€œΠΠ°Ρ€ΠΎΠ΄Π½Ρ‹ΠΉ программатор” Π·Π° свою Π½ΠΈΠ·ΠΊΡƒΡŽ Ρ†Π΅Π½Ρƒ построСн Π½Π° Π±Π°Π·Π΅ USB ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π΅Ρ€Π° Ch441A ΠΈ позволяСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°ΠΌΠΈ UART, EPP, I2C ΠΈ SPI. Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Π° мноТСство, Π½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΠ½ΠΈ ΠΏΠΎ Π±ΠΎΠ»ΡŒΡˆΠΎΠΌΡƒ счёту Ρ‚ΠΎΠ»ΡŒΠΊΠΎ внСшним Π²ΠΈΠ΄ΠΎΠΌ ΠΈ качСством исполнСния.

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎ β€œflashrom” ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅Π΄Π°Π²Π½ΠΎ, Ссли ΠΌΠ½Π΅ Π½Π΅ измСняСт ΠΏΠ°ΠΌΡΡ‚ΡŒ вСрсии этак с β€œ0.9.4” Π§Ρ‚Π΅Π½ΠΈΠ΅ Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π½ΠΈΠΉ ΠΈ происходит достаточно быстро:

$ time flashrom -p ch441a_spi -r tmp_firmware_4mb.bin
flashrom v0.9.9-r1954 on Linux 4.4.0-1-amd64 (x86_64)
flashrom is free software, get the source code at https://flashrom.org

Calibrating delay loop... OK.
Found PMC flash chip "Pm25LQ032C" (4096 kB, SPI) on ch441a_spi.
Reading flash... done.

real	1m6.870s
user	0m2.096s
sys	0m2.420s

Π—Π°ΠΏΠΈΡΡŒ Ρ‚ΠΎΠΆΠ΅ Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

$ time flashrom -p ch441a_spi -w tmp_firmware_16mb.bin 
flashrom v0.9.9-r1954 on Linux 4.4.0-1-amd64 (x86_64)
flashrom is free software, get the source code at https://flashrom.org

Calibrating delay loop... OK.
Found Winbond flash chip "W25Q128.V" (16384 kB, SPI) on ch441a_spi.
Reading old flash chip contents... done.
Erasing and writing flash chip... Erase/write done.
Verifying flash... VERIFIED.

real	19m17.848s
user	0m25.116s
sys	0m36.900s

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ страницС ch441a.

BusPirate

Если Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ΄ Ρ€ΡƒΠΊΠΎΠΉ BusPirate (ΠΊΠ°ΠΊ Ρƒ мСня), ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈΠΌ, Π½ΠΎ это ΠΏΠ»ΠΎΡ…ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΏΠΎΡ‚ΠΎΠΌΡƒ ΠΊΠ°ΠΊ BusPirate ΠΎΡ‡Π΅Π½ΡŒ-ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΉ. Π’Π°ΠΊ ΠΏΠΎΠ»Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» записи (Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ старой ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ, стираниС памяти, запись Π½ΠΎΠ²ΠΎΠΉ, вСрификация) SPI Flash Π½Π° 16Mb Ρƒ мСня заняло Π±ΠΎΠ»Π΅Π΅ 20 ΠΌΠΈΠ½ΡƒΡ‚.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ чтСния содСрТимого микросхСмы памяти:

/usr/sbin/flashrom -p buspirate_spi:dev=/dev/ttyACM0,spispeed=1M
-r backup_firmware.bin

FT2232 based adapters

FT2232 Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ, Π½ΠΎ Ρƒ мСня Π΅Π³ΠΎ Π½Π΅Ρ‚. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ JTAG Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Ρ‹. http://flashrom.org/Supported_hardware#USB_Devices

Please enable JavaScript to view the comments powered by Disqus.comments powered by

tuxotronic.org

Клон ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Π° SPI-Flash Β«BlackcatUSBΒ» β€” ΠœΠ΅Π°Π½Π΄Ρ€ β€” Π·Π°Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ элСктроника

Для ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ Flash-памяти BIOS матСринских ΠΏΠ»Π°Ρ‚, винчСстСров, Π° Ρ‚Π°ΠΊΠΆΠ΅ своих Π»ΡŽΠ±ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ… конструкций ΠΌΠ½Π΅ потрСбовался ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€. Π›ΡŽΠ±ΠΈΠΌΡ‹ΠΉ PonyProg ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄ΠΎ 256ΠΊΠ±ΠΈΡ‚, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ LPT-ΠΏΠΎΡ€Ρ‚ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π΅Π΄ΠΊΠΎΡΡ‚ΡŒ, поискав ΠΏΠΎ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Ρƒ, нашСл довольно простой USB-Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Β«BlackcatUSBΒ»:

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для чтСния/записи SPI-Flash Ρ‡ΠΈΠΏΠΎΠ² памяти объСмом ΠΎΡ‚ 1 ΠœΠ±ΠΈΡ‚Π° ΠΈ Π²Ρ‹ΡˆΠ΅ (Ρ‚.Π΅. Π±ΠΎΠ»Π΅Π΅ 128ΠΊΠ±Π°ΠΉΡ‚) популярных сСрий 25Ρ…Ρ…Ρ…, 26Ρ…Ρ…Ρ….

По ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ JTAG (трСбуСтся ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠ°) CFI-Flash Ρ‡ΠΈΠΏΠΎΠ² β€” 25Ρ…Ρ…Ρ…, 28Ρ…Ρ…Ρ…, 29Ρ…Ρ…Ρ…, 39Ρ…Ρ…Ρ…, 49Ρ…Ρ…Ρ…, 58Ρ…Ρ…Ρ…, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ K8D17Ρ…Ρ…Ρ…, K8D32Ρ…Ρ…Ρ….

Π•Π³ΠΎ основой являСтся ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ AT90USB162, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ USB-Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ, поэтому ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ Π΅Π³ΠΎ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠ° ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ПО производится ΠΏΠΎ шинС USB. Для ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ Π½Π΅ трСбуСтся Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ β€” это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ прямо ΠΈΠ· Π΅Π³ΠΎ собствСнной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ПО распространяСтся свободно, Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ. Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΎΠΊ ΠΈ исходники ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ систСма скриптов для добавлСния Π½ΠΎΠ²Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ². МоТно Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ всС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с нСизвСстной ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ установки, просто запускаСм ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ.

Π’Π½Π΅ΡˆΠ½ΠΈΠΉ Π²ΠΈΠ΄ Ρ„Π°Π±Ρ€ΠΈΡ‡Π½ΠΎΠ³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°:

На ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅ΠΌΡ‹Ρ‡ΠΊΠΈ для Π²Ρ‹Π±ΠΎΡ€Π° напряТСния SPI β€” 3,3V / 5V, ΠΊΠ½ΠΎΠΏΠΊΠ° сброса ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΠΈ Π²Ρ‹Π±ΠΎΡ€Π° Ρ€Π΅ΠΆΠΈΠΌΠ° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ: ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ / Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ. Π’ повсСднСвной Ρ€Π°Π±ΠΎΡ‚Π΅ сброс ΠΈ ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Π° ΠΊΡ€Π°ΠΉΠ½Π΅ Ρ€Π΅Π΄ΠΊΠΎ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ, поэтому для ΠΊΠ»ΠΎΠ½Π° ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΠΈ Π±Ρ‹Π»ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹. ВмСсто 10-ΡˆΡ‚Ρ‹Ρ€ΡŒΠΊΠΎΠ²ΠΎΠ³ΠΎ Ρ€Π°Π·ΡŠΠ΅ΠΌΠ° установлСн DIP-сокСт, Π° Ρ€Π°Π·ΡŠΠ΅ΠΌ USB Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠ΅Ρ‡Π°Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ‹:

Β 

Π§Ρ‚ΠΎΠ±Ρ‹ Β«Ρ€Π°Π·ΡŠΠ΅ΠΌ USBΒ» Π½Π΅ болтался Π² Π³Π½Π΅Π·Π΄Π΅, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠ»Ρ‰ΠΈΠ½ΠΎΠΉ 2,5ΠΌΠΌ, МнС ΡƒΠ΄Π°Π»ΠΎΡΡŒ Π½Π°ΠΉΡ‚ΠΈ кусочСк тСкстолита Ρ‚Π°ΠΊΠΎΠΉ Ρ‚ΠΎΠ»Ρ‰ΠΈΠ½Ρ‹, Π° для ΠΏΠ»Π°Ρ‚Ρ‹ Π² 1,5ΠΌΠΌ придСтся ΠΏΡ€ΠΈΠΊΠ»Π΅ΠΈΠ²Π°Ρ‚ΡŒ Β«ΠΏΠΎΠ΄ΠΊΠ»Π°Π΄ΠΊΡƒΒ» 1ΠΌΠΌ. Она Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ нСмСталличСской β€” Π½Π° случай случайной вставки Π² Ρ€Π°Π·ΡŠΠ΅ΠΌ Β«Π²Π²Π΅Ρ€Ρ… Π½ΠΎΠ³Π°ΠΌΠΈΒ».

Β  Π‘Ρ…Π΅ΠΌΠ°:

ΠŸΡ€ΠΈ установкС ΠΏΠ΅Ρ€Π΅ΠΌΡ‹Ρ‡ΠΊΠΈ J1 Π² ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 1-2 ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° осущСствляСтся ΠΎΡ‚ Π»ΠΈΠ½ΠΈΠΈ 5V USB, ΠΏΡ€ΠΈ установкС 2-3 β€” ΠΎΡ‚ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ стабилизатора 3,3V.

Π’Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ смотритС Π΄Π°Ρ‚Π°ΡˆΠΈΡ‚ памяти ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ напряТСния программирования β€” Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ‚Ρ€Π΅Ρ…Π²ΠΎΠ»ΡŒΡ‚ΠΎΠ²Ρ‹Ρ… Ρ‡ΠΈΠΏΠΎΠ² Π²Ρ‹ΠΉΠ΄ΡƒΡ‚ ΠΈΠ· строя ΠΏΡ€ΠΈ ΠΏΠΈΡ‚Π°Π½ΠΈΠΈ ΠΎΡ‚ 5V.

Π‘ΠΎΠ±Ρ€Π°Π½Π½Ρ‹ΠΉ Π±Π΅Π· ошибок ΠΊΠ»ΠΎΠ½ сразу опрСдСлится систСмой ΠΊΠ°ΠΊ AT90USB162 Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ DFU. ЗапускаСм ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ BlackcatUSB ΠΈ убСТдаСмся Π² этом:

Если ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Π½Π΅ «чистый», Ρ‚ΠΎ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΠΌ Π΅Π³ΠΎ Π² Ρ€Π΅ΠΆΠΈΠΌ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ°:

1) Π·Π°ΠΌΡ‹ΠΊΠ°Π΅ΠΌ Π½Π° корпус ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ RESET

2) Π·Π°ΠΌΡ‹ΠΊΠ°Π΅ΠΌ Π½Π° корпус ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ BOOT

3) отпускаСм RESET

4) отпускаСм BOOT

Π’Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ BOOT Π±Ρ‹Π» ΠΎΡ‚ΠΏΡƒΡ‰Π΅Π½ Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅, Ρ‡Π΅ΠΌ RESET.

Π”Π°Π»Π΅Π΅ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ AVR Firmware, Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ BCUSB.1.09.SPI.hex ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ Β«ProgramΒ» запускаСм процСсс ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ:

По ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ процСсса (ΠΏΠ°Ρ€Π° сСкунд), ΠΆΠΌΠ΅ΠΌ Β«Start ApplicationΒ». ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ опрСдСлится систСмой ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ β€” Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ Π΅Π³ΠΎ Π² ΠΏΠ°ΠΏΠΊΠ΅ Drivers. ПослС Π΅Π³ΠΎ установки Π²ΠΈΠ΄ΠΈΠΌ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² Ρ€Π°Π±ΠΎΡ‚Π΅.

Π’ΠΠ–ΠΠž! Если Π³ΠΎΡ€ΠΈΡ‚ (ΠΈΠ»ΠΈ ΠΌΠΈΠ³Π°Π΅Ρ‚) свСтодиод Ρ€Π΅ΠΆΠΈΠΌΠ°, Ρ‚ΠΎ Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΈ Π²Ρ‹Π½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈΠ· сокСта нСльзя β€” ΠΎΠ½ ΠΏΠΎΠ΄ напряТСниСм, это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΡ€Ρ‚ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ!

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ просто Π²Ρ‹Π½ΠΈΠΌΠ°Π΅ΠΌ ΠΊΠ»ΠΎΠ½ ΠΈΠ· Ρ€Π°Π·ΡŠΠ΅ΠΌΠ° USB, вставляСм ΠΏΠ°ΠΌΡΡ‚ΡŒ Π² сокСт ΠΈ ΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ:

ΠŸΠ°ΠΌΡΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»Π°ΡΡŒ ΠΈ появилась Π²ΠΊΠ»Π°Π΄ΠΊΠ° SPI Flash, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π΅Π΅ ΠΏΡ€ΠΎΡ‡Π΅ΡΡ‚ΡŒ ΠΈ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ:

Для Ρ€Π΅ΠΆΠΈΠΌΠ° JTAG потрСбуСтся другая ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠ° β€” BCUSB.6.03.EJTAG.hex., Π° Ρ‚Π°ΠΊ ΠΆΠ΅ Ρ€Π°Π·ΡŠΠ΅ΠΌ-ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π½ΠΈΠΊ DIP-сокСт β€” JTAG. НовоС Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.

P.S. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ Β«BlackcatUSBΒ» Π½Π° сСгодняшний ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ поддСрТиваСтся Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ β€” вмСсто Π½Π΅Π³ΠΎ выпускаСтся обновлСнная вСрсия Β«FlashcatUSBΒ»:

Из Β«ΠΆΠ΅Π»Π΅Π·Π½Ρ‹Ρ…Β» ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°ΠΌΠ΅Π½Π° ΠΌΠΊ Π½Π° Π±ΠΎΠ»Π΅Π΅ Π΅ΠΌΠΊΠΈΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ β€” ATmega32U2. Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ части ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ большС β€” ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° большСй Π½ΠΎΠΌΠ΅Π½ΠΊΠ»Π°Ρ‚ΡƒΡ€Ρ‹ Ρ‡ΠΈΠΏΠΎΠ², Π² Ρ‚ΠΎΠΌ числС NAND. НовыС вСрсии ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ доступны Π½Π° сайтС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°.

 НовыС ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ NAND (FCUSB.1.07.NAND.hex) ΠΈ JTAG (FCUSB.7.05.EJTAG_16K.hex) подходят ΠΈ для нашСго ΠΊΠ»ΠΎΠ½Π° β€” Π²ΠΎ всяком случаС Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» Π½Π΅ провСрял β€” просто Π½Π΅ Π½Π° Ρ‡Π΅ΠΌ.

Β   Будя ΠΏΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ измСнилось, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ΡΡ‚ΡŒ измСнСния ΠΈ Π² ΠΏΠ΅Ρ‡Π°Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Π΅. Если ΠΊΡ‚ΠΎ-Ρ‚ΠΎ собСрСт Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π½Π° ATmega32U2 (Ρ‡ΠΈΠΏΡ‹ ΠΏΠΎ Π½ΠΎΠΆΠΊΠ°ΠΌ совмСстимы), ΠΏΡ€ΠΎΡΡŒΠ±Π° ΠΎΡ‚ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°Ρ….

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Π°ΠΌ это Π±ΡƒΠ΄Π΅Ρ‚ интСрСсно:

meandr.org

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *