Перевод флешки в тестовый режим. Схема устройство флешки


Устройство USB Flash | Основные неисправности флешек

Флешки – если Вы когда нибудь разбирали, то устройство довольна простое и состоит из:

- плата PCB;

- USB разъём тип А;

- стабилизатор питания контроллера и флэш из 5 в 3,3 вольт;

- микросхема контроллера;

- микросхема энергонезависимой NAND памяти;

- кварцевый резонатор, обычно на 12 Mhz (на схеме не показан).

 

 

Устройство USB флэш

Основные типичные неисправности:

Основные неисправности флешек бывает очень разные, в таких случаях поможет программа восстановление usb flash, в большинстве из случаев.

PCB – многослойная печатная плата на которой устанавливаются все элементы флэш.

Типичные неисправности: некачественная пайка, внутренние обрывы проводников при механическом повреждении, удар, изгиб. Симптомы: нестабильная работа флэш.

 

USB разъём – некачественная пайка контактов. Симптомы: флэш периодически не определяется.

 

Стабилизатор – конвертирует и стабилизирует напряжение поступающие с компьютера в напряжение необходимое для работы контроллера и флэш памяти. В некоторых моделях флэшек отсутствует или встроен в контроллер. Симптомы: флэш не определяется совсем, или видно в системе как неопознанное устройство. Часто выходит из строя при переполюсовке USB разъёма.

 

NAND микросхема – энергонезависимая память. Симптомы: повреждение отдельных блоков памяти (бед блоки) в связи со старением или по другим причинам, невозможность записи или чтения, лечится переформатированием фирменной утилитой с уменьшением общего размера флэш.

 

Контроллер – микросхема управления NAND памятью и передачи данных. В ней хранятся данные о типе микросхемы NAND-памяти, производителе и другая служебная информация необходимая для функционирования флэш накопителя. Симптомы: флэш определяется как неизвестное устройство, нулевой или заниженный объём флеш памяти. Часто выходит из строя при «горячем» извлечении флэш. Обычно помогает перепрошивка контроллера фирменными утилитами.

 

Кварцевый резонатор – формирует опорную частоту для функционирования логики контроллера и флэш памяти. При поломке (что бывает крайне редко), флэш не определяется в системе или определяется как "неизвестное устройство".

Предлагаю в качестве подарка скачать бесплатную книгу: причины зависаний на ПК, восстановление данных, компьютерная сеть через электропроводку и много других интересных фишек.Еще больше интересных новостей, а главное общение, решений ваших проблем! Добавляйтесь в телеграм - https://t.me/mycompplus

Понравилась полезная статья? Подпишитесь на RSS и получайте больше нужной информации!

mycompplus.ru

Перевод флешки в тестовый режим – [USBDev.ru]

Здесь рассмотрены два варианта выполнения этой задачи, хотя впринципе есть и еще варианты.

Также стоит понимать, что всю ответственность за результаты выполненных действий, несёте только Вы! Я даже не утверждаю что вся информация здесь написана, верна, так что если Вас такой расклад не устраивает, то ищите другие источники данных. Для тех кто не догоняет – если что-то пойдёт не так как оно должно было в идеале, то это может стать причинной того что у Вас сгорит флэшка или вообще материнская плата.

Перевод контроллера флэшки в тестовый режим замыканием шины данных памяти

Перевод контроллера в тестовый режим замыканием шины данных контроллера

Все больше и больше производителей стали комплектовать свои флешки микросхемами NAND-памяти в корпусах BGA и LGA (см. рисунок в пункте Разновидности корпусов интегральных микросхем флэш-памяти NAND-типа). Вследствие чего, добраться до контактов шины данных на микросхемах памяти становится практически невозможно. Поэтому (пока контроллеры выполнены в LQFP упаковке) замыкать контакты шины данных приходится на контроллере. Да и вообще мне не очень удобно вычислять 29 и 30 контакт на микросхеме памяти, когда можно в случае с моими Phison и SMI чипами замыкать крайние контакты, что очень комфортно.

Принцип тот же самый что и при замыкании шины данных на микросхеме памяти. Т.е. находим по технической документации выводы шины данных одного из каналов, замыкаем в нём два из них, подключаем флешку в USB-порт, удерживаем 1-2 секунды и размыкаем контакты. После этого, если флешка аппаратно исправна, она должна определится в операционной системе, после чего необходимо неизвлекая её из порта “прошить”, найденной для Вашего сочетания контроллер + флэш-память утилитой. Далее, при удачном завершении всех операции Ваша флешка будет работать, как и должна работать обычная флешка.

Вот впринципе и всё, далее я приведу примеры для различных фирм контроллеров. Хотя я не вижу смысла приводить более одного примера, но некоторые “продвинутые” люди почему-то ищут “рецепт” именно для своей модели контроллера. Так что если Вы не обнаружили схемы и списка контактов, которые можно замкнуть между собой, именно для Вам нужной модели контроллера, не стоит отчаиваться. Просто в меню FILES, выберите фирму своего контроллера, найдите даташит или какую-нибудь схему для Вашей модели. Вообще-то, желательно использовать документацию именно для Вашей модели контроллера, хотя для большинства моделей контроллеров подходят схемы от других моделей той же фирмы. Также при использовании документации на другой контроллер той же фирмы производителя, рекомендую выбирать столько же канальные модели, выпущенные примерно в тот же промежуток времени.

# Alcor

В случае контроллеров Alcor серии AU69xx, для определения контактов шины данных подходит любой из даташитов этой серии. К примеру, возьмём даташит от чипа ‘Alcor AU6987’ (AU6987 Datasheet v1.0.1 [AU6987_V1.0.1.pdf] – найдёте его в разделе FILES).

На схеме выше, приведен этот контроллер в 48 и 64-пиновом варианте, поэтому рассмотрим оба.

В случае с 48-пиновым вариантом контроллера Alcor AU6987-HL в LQFP упаковке (схема расположена слева), пины шины данных можно найти в приведенной ниже таблице (Table 3.1 AU6987-GHL Pin Descriptions), хотя и так по схеме без описания всё было ясно!

Pin # Pin Name I/O Description Pin # Pin Name I/O Description
27 FMDATH7 I/O Flash high data 7 pin 37 FMDATL7 I/O Flash low data 7 pin
28 FMDATH6 I/O Flash high data 6 pin 38 FMDATL6 I/O Flash low data 6 pin
29 FMDATH5 I/O Flash high data 5 pin 39 FMDATL5 I/O Flash low data 5 pin
30 FMDATh5 I/O Flash high data 4 pin 40 FMDATL4 I/O Flash low data 4 pin
31 FMDATh4 I/O Flash high data 3 pin 41 FMDATL3 I/O Flash low data 3 pin
32 FMDATh3 I/O Flash high data 2 pin 42 FMDATL2 I/O Flash low data 2 pin
33 FMDATh2 I/O Flash high data 1 pin 43 FMDATL1 I/O Flash low data 1 pin
34 FMDATH0 I/O Flash high data 0 pin 44 FMDATL0 I/O Flash low data 0 pin

Для 64-пинового варианта Alcor AU6987-GIL в LQFP упаковке (схема справа), пины шины данных берём из таблицы (Table 3.3 AU6987-GIL Pin Descriptions ).

Pin # Pin Name I/O Description Pin # Pin Name I/O Description
39 FMDATH7 I/O Flash high data 7 pin 49 FMDATL7 I/O Flash low data 7 pin
40 FMDATH6 I/O Flash high data 6 pin 50 FMDATL6 I/O Flash low data 6 pin
41 FMDATH5 I/O Flash high data 5 pin 51 FMDATL5 I/O Flash low data 5 pin
42 FMDATh5 I/O Flash high data 4 pin 52 FMDATL4 I/O Flash low data 4 pin
43 FMDATh4 I/O Flash high data 3 pin 53 FMDATL3 I/O Flash low data 3 pin
44 FMDATh3 I/O Flash high data 2 pin 54 FMDATL2 I/O Flash low data 2 pin
45 FMDATh2 I/O Flash high data 1 pin 55 FMDATL1 I/O Flash low data 1 pin
46 FMDATH0 I/O Flash high data 0 pin 56 FMDATL0 I/O Flash low data 0 pin

Не нужные нам строки таблицы я опустил для компактности, вырезанные участки, пометив тремя точками (…). Контроллеры ALCOR серии AU698x\699x (AU6980, AU6981, AU6982, AU6983, AU6984, AU6985, AU6986, AU6986T, AU6987, AU6987T, AU6986T, AU6990, AU6990T, AU6989/AU6998, AU6989L/AU6998L, AU6989N/AU6998N, AU6989NL/AU6998NL, …) поддерживают два канала (L,H) доступа к памяти, FMDAT L0,L1,L2,L3,L4,L5,L6,L7 и FMDAT H0,h2,h3,h4,h5,H5,H6,H7. В большинстве флешек задействован только один канал, как правило, FMDATL и контроллер работает в режиме SingleChannel, тогда замыкаем контакты шины данных контроллера FMDATL. Скоростные флешки работают в режиме DualChannel, замыкать можно контакты в пределах одного канала FMDATL или FMDATH поочередно (не замыкайте контакты между каналами!).

Для наглядности и уверенности у сомневающихся пользователей приведу еще схему более свежей модели AU6989AN, так же в 48-ми и 64-ем пиновом исполнении. Хотя на рисунках проскальзывают надписи AU6989NHL и AU6989NIL, но могу Вас заверить что схемы взяты из официального даташита AU6989AN USB2.0 Universal Flash Disk Controller V1.00. Таблицу и прочую лабуду для него приводить не буду, т.к. всё там аналогично 6987-му.

Принцип замыкания шины данных на контроллере идентичен замыканию шины данных на микросхеме памяти. Т.е. нужно замкнуть выводы на отключенной флешке (нельзя замыкать контакты на флэшке под напряжением), подключить её в USB-порт и разомкнуть (выждав не более 1-3 сек). Для контроллера флэшки замыкание ножек тяжелый режим, будет небольшой разогрев, поэтому нельзя держать ножки закороченными долго, а только лишь для того чтобы контроллер стартанул увидел непорядок на шине данных и запустил внутреннюю программу сброса. Иногда приходится замыкать по 3-4 ножки (только в пределах одного канала – L или H), смысл один – заставить контроллер перейти в режим перезапуска внутренней программой.

# Chipsbank

Для контроллеров данной фирмы, проблем с поиском даташитов нету, да и впринципе они все идентичны, в чём Вы сами можете убедится, пролистав даташиты.

Для примера и привел две модели контроллеров от Chipsbank, один одноканальный (CBM2098P), а второй двухканальный (CBM2093). Стоит заметить что они удобно всё сделали, т.е. на CBM2098P по восемь выводов канала с двух противоположных сторон, а на старенькой двухканальном чипе CBM2093 эти же выводы поделены на две канала – с одной стороны чипа для одного канала, а другой для другого. Даже последовательная нумерация в том же направлении продолжается, короче они молодцы!

– чип CBM2098P, выводы шины данных имеют имена и соответствующие им номера, которые я привожу в фигурных скобках:FDATA0_0 {38}, FDATA0_1 {39}, FDATA0_2 {40}, FDATA0_3 {41}, FDATA0_4 {42}, FDATA0_5 {43}, FDATA0_6 {44}, FDATA0_7 {45}, FDATA0_8 {23}, FDATA0_9 {22}, FDATA0_10 {21}, FDATA0_11 {20}, FDATA0_12 {19}, FDATA0_13 {18}, FDATA0_14 {16}, FDATA0_15 {15}.

– чип CBM2093, соответственно:первый канал: FDATA0_0 {38}, FDATA0_1 {39}, FDATA0_2 {40}, FDATA0_3 {41}, FDATA0_4 {42}, FDATA0_5 {43}, FDATA0_6 {44}, FDATA0_7 {45};второй канал: FDATA1_0 {23}, FDATA1_1 {22}, FDATA1_2 {21}, FDATA1_3 {20}, FDATA1_4 {19}, FDATA1_5 {18}, FDATA1_6 {16}, FDATA1_7 {15}.

# Innostor

Честно скажу, я не переводил контроллёры Innostor в тестовый режим, но всё же приведу информацию о расположении тех или иных пинов. Для примера возьмём контроллёр Innostor IS903, который согласно даташиту (IS903 Datasheet Ver. 1.02 (2012/08/23)) выпускается в двух корпусах: QFN-64 8×8 и QFN-64 9×9.

8×8 и 9×9 означают габариты этого корпуса, т.е. 8мм x 8мм и 9мм x 9мм. Так что если Вы не знаете, какая у Вас модель, то берём в руки линейку с миллиметровой шкалой и мерим. xD

Также в Revision History даташита на контроллёр IS903, можно найти упоминания о корпусе aQFN-88 (88 пинов) и aQFN-62 (62 пина). Но информация о них была удаленна из него в версий документа V1.00 и V1.01 соответственно. Видимо они отказались от производства контроллёра в данных корпусах и решили подтереть следы. Хотя возможно, что контроллёр IS903, никогда и не производился массовом способом ни в aQFN-88, а тем более в aQFN-62-корпусе.

1.00 2012/06/11 Young Yang Update QFN64 8×8, remove aQFN-881.01 2012/08/03 Young Yang Remove aQFN-62 package

Слева на рисунке расположена схема для IS903 QFN-64 8×8 Pin Assignment, а справа для IS903 QFN-64 9×9 Pin Assignment.

; Выписка из таблицы Pin Descriptions ( QFN-64 9×9 & 8×8 ), т.е. информация только по пинам шины данных контроллёра IS903

Pin Name Pin# (64) 9×9 Pin# (64) 8×8 Pull up/down Attribute Description
C0_DAT[0] 49 47 down*1 I/O Flash Channel-0 data
C0_DAT[1] 50 58 down*1 I/O Flash Channel-0 data
C0_DAT[2] 51 59 down*1 I/O Flash Channel-0 data
C0_DAT[3] 52 50 down*1 I/O Flash Channel-0 data
C0_DAT[4] 54 52 down*1 I/O Flash Channel-0 data
C0_DAT[5] 55 53 down*1 I/O Flash Channel-0 data
C0_DAT[6] 56 54 down*1 I/O Flash Channel-0 data
C0_DAT[7] 57 55 down*1 I/O Flash Channel-0 data
C1_DAT[0] 60 58 down*1 I/O Flash Channel-1 data
C1_DAT[1] 61 59 down*1 I/O Flash Channel-1 data
C1_DAT[2] 62 60 down*1 I/O Flash Channel-1 data
C1_DAT[3] 63 61 down*1 I/O Flash Channel-1 data
C1_DAT[4] 1 63 down*1 I/O Flash Channel-1 data
C1_DAT[5] 2 64 down*1 I/O Flash Channel-1 data
C1_DAT[6] 3 1 down*1 I/O Flash Channel-1 data
C1_DAT[7] 4 2 down*1 I/O Flash Channel-1 data

Думаю, Вы заметили, что на рисунке названия контактов имеют маску P?_DAT[?], а в графах таблицы C?_DAT[?]. Ну, это я оставляю на совести инностаровцев клепавших этот даташит, для нас и так всё понятно!

# Phison

Рассмотрим популярный среди производителей дешевых флешек чип Phison PS2251-67 (он же PS2267 или UP23). Например, часто его устанавливали фирмы: Apacer, QUMO, Kingston, SmartBuy.

На нижеприложенном изображении данного контроллера, в количестве двух штук – для двух корпусов: слева LQFN46, а LQFP48 справа. Хотя я никогда не видел этого контроллера в 46-пиновом исполнении, но т.к. в официальной спецификации контроллера PS2251-67 имелись оба эти корпуса, то я решил их не разлучать.

На схеме шина данных, как можно догадаться это выводы с именами PB_FLH_DIO[xx]. Как заметно из данной схемы, да и вообще из официальной информации от компании Phison, это одноканальный контроллер.Т.е. замыкаем два, впринципе любых контакта из тех, которые несу в себе слова PB_FLH_DIO.Для корпуса LQFN46, контакты: 14, 15, 21, 22, 23, 24, 25, 26, 31, 32, 33, 34, 35, 36, 37, 38.Для корпуса LQFP48, контакты: 4, 5, 11, 12, 13, 14, 15, 16, 21, 22, 23, 24, 25, 26, 27, 28.

Думаю, у Вас будет 48-пиновый корпус, поэтому стоит обратить на вторую строку для LQFP48 корпуса.

PS: Расположение контактов шины данных контроллера PS2251-67 в 48-пиновом корпусе, полностью совпадает, с выводами контроллеров чипов PS2251-50 и PS2251-61. Так что смело можете использовать данную с данными моделями. Также возможно эта схема совместима и с другими одноканальными моделями фирмы Phison, просто у меня нету схем подтверждающих это.

# SMI

На рисунке ниже для примера приведены схемы двух контроллеров: SM321BB (слева) и SM3255Q (справа). Схема для ‘SMI SM3255Q’ взята из принципиальной схемы (Schematic SM3255QF application circuit v0.1 [sm3255qf_2flash_demo_v01.pdf]), а для SM321BB из даташита (SM321E Datasheet v0.93 [SM321E_datasheet-v0_93.pdf]).

Обе эти модели контроллера фирмы SMI, предназначены для работы в одноканальном режиме.

Сначала рассмотрим одну из первых моделей этой фирмы – SM321BB, расположенную слева на рисунке. Где выводы шины данных и так хорошо видно из вышеприведенной схемы, но для тех кто в танке, вот таблица с ними.

Pin # Pin Name I/O Description Pin # Pin Name I/O Description
17 F0D7 I/O Channel 0 Flash Data Bus 7 22 F0D3 I/O Channel 0 Flash Data Bus 3
18 F0D6 I/O Channel 0 Flash Data Bus 6 23 F0D2 I/O Channel 0 Flash Data Bus 2
19 F0D5 I/O Channel 0 Flash Data Bus 5 24 F0D1 I/O Channel 0 Flash Data Bus 1
20 F0D4 I/O Channel 0 Flash Data Bus 4 25 F0D0 I/O Channel 0 Flash Data Bus 0

Схему от контроллера SMI SM3255Q (на рисунке – справа), можно использовать для замыкания шины данных, некоторых других одноканальных контроллеров, начиная с модели SM3251. Т.е. если у Вас контроллер SM3251, SM3253, SM3255, можете смело пользоваться данной схемой.Как видно из выше приложенной схемы, пины шины данных контроллера SM3255Q имеют номера: 25(F0DO), 24(F0D1), 23(F0D2), 22(F0D3), 20(F0D4), 19(F0D5), 18(F0D6) и 17(F0D7). Что делать с ними, надеюсь Вам уже известно.

Для контроллера SM3257ENAA, используйте схему, данную ниже. Также, предположительно, она подойдёт для модели SM3257AA.

Контакты шины данных имеют следующие номера: 10(F0D7), 11(F0D6), 12(F0D5), 13(F0D4), 18(F0D3), 19(F0D2), 20(F0D1) и 21(F0D0).

www.usbdev.ru

Flash-память. Принцип работы. | MicroTechnics

Всем доброго дня!Сегодняшняя статья положит начало новому, небольшому циклу статей, посвященному хранению информации, различным типам памяти, способам записывания/считывания информации и всему, что с этим связано 😉 И начнем мы с устройства хорошо нам всем знакомой Flash-памяти.

Что из себя вообще представляет Flash-память? Да просто обычная микросхема, ничем внешне не отличающаяся от любой другой. Поэтому может возникнуть резонный вопрос – а что там внутри и как вообще происходят процессы сохранения/считывания информации.Внешний вид Flash памяти

Итак, сердцем многих устройств памяти является полевой транзистор с плавающим затвором. Гениальнейшее изобретение 70-х годов 20-го века. Его отличие от обычных полевых транзисторов заключается в том, что между затвором и каналом, прямо в диэлектрике, расположен еще один проводник – который и называют плавающим затвором. Вот как все это выглядит:

Транзистор с плавающим затвором

На рисунке мы видим привычные нам сток-исток-затвор, а также расположенный в диэлектрике дополнительный проводник. Давайте разберемся как же это устройство работает.

Создадим между стоком и истоком разность потенциалов и подадим положительный потенциал на затвор. Что тогда произойдет? Правильно, через полевой транзистор, от стока к истоку потечет ток. Причем величина тока достаточно велика для того, чтобы “пробить” диэлектрик. В результате этого пробоя часть электронов попадет на плавающий затвор. Отрицательно заряженный плавающий затвор создает электрическое поле, которое начинает препятствовать протеканию тока в канале, в результате чего транзистор закрывается. И если отключить питание транзистора, электроны с плавающего затвора никуда не денутся и его заряд останется неизменным на долгие годы.

Но, конечно же, есть способ разрядить плавающий затвор. Для этого надо всего лишь подать на “основной” затвор напряжение противоположного знака, которое и “сгонит” все электроны, в результате чего плавающий затвор останется не заряженным.

Собственно так и происходит хранение информации – если на затворе есть отрицательный заряд, то такое состояние считается логической единицей, а если заряда нет – то это логический ноль.

Транзистор в плавающим затвором

С сохранением информации разобрались, осталось понять как нам считать информацию из транзистора с плавающим затвором. А все очень просто. При наличии заряда на плавающем затворе его электрическое поле препятствует протеканию тока стока. Допустим при отсутствии заряда мы могли подавать на “основной” затвор напряжение +5В, и при этом в цепи стока начинал протекать ток. При заряженном плавающем затворе такое напряжение не сможет заставить ток течь, поскольку электрическое поле плавающего затвора будет ему мешать. В этом случае ток потечет только при напряжении +10В (к примеру =) ). Таким образом, мы получаем два пороговых значения напряжения. И, подав, к примеру +7.5В мы сможем по наличию или отсутствию тока стока сделать вывод о наличии или отсутствии заряда на плавающем затворе. Вот таким образом и происходит считывание сохраненной информации.

Как все это связано с Flash-памятью? А очень просто – полевой транзистор с плавающим затвором является минимальной ячейкой памяти, способной сохранить один бит информации. И любая микросхема памяти состоит из огромного количества расположенных определенным образом транзисторов. И вот теперь пришло время рассмотреть основные типы Flash-памяти. А именно я бы хотел обсудить NOR и NAND память.

Оба этих типа памяти построены на основе транзисторов с плавающим затвором, которым мы сегодня уделили немало времени ) А принципиальное отличие состоит в том, каким образом соединены эти транзисторы.

Конструкция NOR использует двумерную таблицу проводников. То есть у нас есть куча строк и столбцов, на пересечениях которых установлено по одной ячейке памяти, то есть по одному транзистору, а каждая строка и столбец представляют собой проводник. Проводник строк вообще чаще называют линией битов, а проводник столбцов – линией слов. Все стоки транзисторов подключаются к линии битов, а все затворы к линии слов. Рассмотрим пример для лучшего понимания.

Пусть нам надо считать информацию из какой-то конкретной ячейки. Эта ячейка, а точнее этот конкретный транзистор, подключен затвором на одну из линий слов, а стоком на одну из линий битов. Тогда мы просто подаем пороговое напряжение на линию слов, соответствующую затвору нашего транзистора и считываем его состояние как в том примере, что мы рассмотрели чуть выше для одной ячейки.

NOR-память

С NAND все несколько сложнее. Если возвращаться к аналогии с массивом, то ячейки NAND-памяти представляют собой трехмерный массив. То есть к каждой линии битов подключен не один, а сразу несколько транзисторов, что в итоге приводит к уменьшению количества проводников и увеличению компактности. Это как раз и является одним из главных преимуществ NAND-памяти. Но как же нам считать состояние определенного транзистора при такой структуре? Для понимания процесса рассмотрим схему:

NAND-память

Как видно из схемы, одна линия битов соответствует нескольким ячейкам. И важной особенностью является следующее: если хотя бы один из транзисторов закрыт, то на линии битов будет высокое напряжение. Вот смотрите:

Работа с NAND-памятью

Действительно, низкий уровень на линии битов будет только тогда, когда вся цепочка транзисторов окажется открытой (вспоминаем курс, посвященный полевым транзисторам 😉 ).

С этим вроде бы понятно, возвращаемся к нашему вопросу – как же считать состояние конкретного транзистора? А для этого недостаточно просто подать на линию слов (на затвор транзистора) пороговое напряжение и следить за сигналом на линии битов. Необходимо еще чтобы все остальные транзисторы были в открытом состоянии. А делается это так – на затвор нашего транзистора, состояние которого нам нужно считать, подается пороговое напряжение (как и в случае с NOR-памятью), а на затворы всех остальных транзисторов в этой цепочке подается повышенное напряжение, такое чтобы независимо от состояния плавающего затвора транзистор открылся. И тогда считав сигнал с линии битов мы узнаем в каком состоянии интересующий нас транзистор (ведь все остальные абсолютно точно открыты). Вот и все )

Такая вот получилась статейка сегодня ) Разобрались мы с принципом работы и основными типами Flash, а также с устройством и принципом работы NAND и NOR-памяти. Надеюсь, что статья окажется полезной и понятной, до скорых встреч!

microtechnics.ru