Jetflash nand flash usb device что это

Обновлено: 07.07.2024

- уникальный по содержанию ресурс с утилитами для контроллеров флешек.
уже редко используется, проще по контролёру



Китайские ресурсы по ремонту флешек (Заходим через браузер с функцией перевода)

Name: Voyager GT 3.0 (USB2.1)

VID&PID: Vid_1b1c&Pid_1a01
Speed: high speed

Vendor Description: Corsair
Product Description: Voyager GT 3.0
Serial Number: 118120000000016

6-значный код мне не понятен, как выбрать утилиту.
Внутри утилиты AlcorMP 6 экзешников, легко запороть флешку, если не теми восопльзоваться.
Какие нужно запустить?

Вот моя проблема:

Description: [D:]USB Mass Storage Device(Generic USB Flash Disk)
Device Type?Mass Storage Device

Protocal Version: USB 2.00
Current Speed: High Speed
Max Current: 100mA

USB Device ID: VID = 058F PID = 1234

Device Vendor: Alcor Micro
Device Name: Mass Storage Device
Device Revision: 0001

Manufacturer: Generic
Product Model: USB Flash Disk
Product Revision: 7.76

Chip Vendor: Alcor Micro
Chip Part-Number: AU6984 - F/W EBD0
Flash ID Code?ECD310A6 - Samsung - 1CE/Single Channel [SLC-4K] -> Total Capacity = 1GB

Аккуратно юзал флешку по правилам, но при повторном вставлении в слот перестала считываться, только буква определяется. Как запустить без форматирования - старая, но малопользованная?
Хотя утилита пишет Generic, на корпусе написано Transcend.
Заводское форматирование, ни разу не форматировал.

был там по своей флешке, там ввод VID/PID и сайт тебе дает ссылку на конкретную прогу по твоему производителю и модели. У меня тоже Transcend, но старый и Generic просто, поэтому я там для себя ничего не смог найти, это какая-то будет прога из списка

Мне также нужен совет по этому вопросу для восстановления данных.

Потом, чего ты хочешь?

Одно дело восстановить данные, другое - просто запустить флэшку низкоуровневым форматированием. Разные подходы, разный софт.

Уточни, что б люди могли помочь тебе. Что с флешкой случилось, прикаких обстоятельствах, что ты с ней пытался делать, чего тебе хочется.

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

ChipGenius_v4_00_0029_pre1
Description: [E:]Запоминающее устройство для USB(JetFlash NAND Flash)
Device Type: Mass Storage Device

Protocal Version: USB 2.10 <- Hint: This device can run faster when plugged to a USB3.0 port
Current Speed: High Speed
Max Current: 200mA

USB Device ID: VID = 8564 PID = 1000
Serial Number: 3385207506

Device Vendor: JetFlash
Device Name: Mass Storage Device
Device Revision: 0100

Manufacturer: JetFlash
Product Model: NAND Flash
Product Revision: 1.00

Controller Vendor: Innostor
Controller Part-Number: IS903-A4 - ??ROM??
Flash ID code: ECAEA47A - Samsung - 2CE/Dual Channel [MLC Toggle-DDR] -> Total Capacity = 32GB

Обзор Transcend JetFlash 910 — SSD в формате флэшки

Официально Transcend JetFlash 910 — быстрый флэш-накопитель с интерфейсом USB 3.1 Gen 1. Однако, судя по контроллеру, это скорее внешний SSD в формате USB Flash drive. Такой девайс порадует многих айтишников, которым приходится выбирать между преимуществами SSD и удобством флэшки.

JetFlash 910 выпускается в двух вариантах: объёмом 128 и 256 Гб. В этом обзоре тестируется старшая модель с заявленной скоростью чтения до 420 Мб/с и записи до 400 Мб/с.

Внешний вид и комплект поставки

Традиционная упаковка Transcend позволяет рассмотреть устройство до вскрытия блистера и ознакомиться с его краткими характеристиками на обратной стороне.


Масса JF910 составляет всего 11 грамм, а размеры — как у крупной флэшки: 69x17x8 мм.


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


Внутри упаковки кроме накопителя есть только информационные буклеты, поскольку никаких кабелей JF910 не требуется.

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


Во время работы на торце мягко светит синий LED-индикатор. Он спрятан глубоко в прорези для ремешка и совершенно не мешает. Пока к JF910 нет обращений, светодиод горит непрерывно, а во время чтения и записи начинает мигать.


Лично для меня это плюс, поскольку сразу видно состояние накопителя. Почему-то другие производители всё чаще убирают привычную световую индикацию.

Контроллер

Стирание границ между SSD и флэшками стало возможным благодаря контроллеру SiliconMotion 3282, который содержит в себе мост SATA-USB и встроенный регулятор напряжения.

Он работает с популярной памятью типа 3D NAND TLC и новой 96-слойной QLC NAND в двухканальном режиме, адресуя до двух терабайт.

SM 3282 поддерживает интерфейс USB 3.2 Gen 1 (так теперь называется USB 3.0, обеспечивающий пропускную способность до 5 Гбит/с) и протокол UASP (USB Attached SCSI Protocol), позволяющий получать данные SMART и отправлять низкоуровневые команды.

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


Именно поэтому на JF 910 красуется надпись «High Endurance» — она действительно выносливая и без проблем переносит многократную перезапись.

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

Общий и доступный объём

Изначально флэшка отформатирована в FAT32. Это сделано для максимальной совместимости, но имеет три существенных недостатка. Во-первых, FAT32 не поддерживает файлы объёмом более 4 Гб. Во-вторых, это не журналируемая файловая система, на которой проще потерять данные. В-третьих, с ней быстро изнашиваются начальные блоки, хранящие две цепочки FAT.

Поэтому рекомендую сразу изменить логическую разметку на подходящую вашим задачам. Для тестов я сделал один первичный раздел NTFS c кластерами по 4 Кб.


Контроллер адресует 488 388 607 блоков по 512 байт. Поэтому полный объём составляет 250 054 966 784 байт или 232 Гб — обычная разница между двоичной и десятичной системой счисления.

Пользователю доступно 249 991 823 360 байт на разделе FAT32 и 249 946 173 440 байт при форматировании в NTFS. Практически разница незаметна.


На служебные данные приходится 60 мегабайт (63 143 424 байт). В них входит резервная область, из которой автоматически производится замена сбойных ячеек. За этим процессом удобно следить в таблице SMART.

Тестовая система

Материнская плата: Asus Maximus VIII Hero с портами USB 3.1 Gen 2 (10 Гбит/с).

Процессор: Intel Core i7-7700K. 4,6 ГГц на всех ядрах.

Оперативная память: 2 x DIMM DDR4 Kingston HyperX KHX3466C16D4 по 8 Гб в двухканальном режиме. Работает в настройках из профиля XMP на частоте 3000 МГц.

NVMe SSD WDS500G3X0C-00SJ.

ОС: Windows 10 Pro x64 build 2004 (10.0.19041.450) и Windows 7 Pro x64 SP1.
По скорости работы JF910 заметных отличий между ОС не было. Для определённости приводятся результаты тестовых утилит в Windows 10.

Бенчмарки

Популярный тест Crystal Disk Benchmark показывает скорость линейного чтения до 450 Мб/с и линейной записи 410 Мб/с.

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


Последовательное чтение в программе Victoria показывает высокую пиковую скорость 433 Мб/с и очень хороший средний результат: 283 Мб/с. Именно его вы получите, если решите сразу полностью использовать весь объём нового накопителя JF910.


Более полную картину показывает линейная запись в программе AIDA64. На графике видно, что объём SLC-кэша составляет около 5% объёма или 12 Гб. После исчерпания кэша контроллер переключается в режим Direct-to-TLC и пишет напрямую в ячейки основного массива памяти.


Этому соответствует изолиния в районе 90 Мб/с. Небольшие всплески на ней вызваны автоматической установкой обновлений Windows 10.

В результате максимальная скорость составила 377 Мб/с, а средняя — 102 Мб/с. Весьма достойный результат.

С чтением всё ещё лучше: набор тестов AIDA64 показывает скорости от 416 до 422 Мб/с при операциях с блоками по 8 Мб. Лишь на мегабайтных блоках в режиме буферизации чтения скорость упала до 201 Мб/с.


Утилита AS SSD Benchmark менее подвержена влиянию пиковых значений и вычисляет среднегеометрическую скорость. Она составила 406 Мб/с для чтения и 358 Мб/с при записи. Очевидно, что тестовый набор данных объёмом 1 Гб полностью попал в SLC-кэш.


На операциях с блоками 4 Кб JF910 ведёт себя уже не так быстро, демонстрируя от 12 до 21 Мб/с. Однако это камень преткновения для всех накопителей потребительского уровня, и у большинства конкурентов результаты здесь в разы хуже.

Имитация записи на флэшку образов, дистрибутивов игр и программ показывает её производительность в близких к реальным условиях. Здесь используются все доступные технологии ускорения, поэтому результат даже слегка выходит за пределы обещанных параметров. JF910 разгоняется до 463 Мб/с.


Программа ATTO Disk Bemchmark показывает скорость чтения/записи в зависимости от размера блока данных. Отчётливо видно, что быстрее всего JF910 работает на блоках боле 64 Кб. Максимальная скорость записи составляет 407 Мб/с, а чтения — 440 Мб/с. Это хорошо согласуется с заявленными характеристиками.


Фирменный софт

JetFlash 910 поддерживается фирменной утилитой Transcend Elite. Она доступна бесплатно для Windows и Mac.


Программа позволяет выполнять резервное копирование и шифрование файлов. Также она поддерживает сохранение данных из облачных сервисов Dropbox и Google Drive.


Функции бэкапа одной кнопкой и блокировки / разблокировки накопителя не предусмотрены для JF 910.

Общие впечатления и выводы

По задумке JetFlash 910 объединяет лучшее из двух миров: компактность и самодостаточность флэшки с высокими скоростями и надёжностью SSD. По первому впечатлению разработчикам удалось реализовать эту идею на высоком уровне, а насколько накопитель надёжный — покажет время.

Как системный администратор, я часто пользуюсь мультизагрузкой и наборами портейбл-программ. Образы разных операционок и диагностические утилиты гораздо быстрее работают с SSD, чем с USB Flash. Однако порой всё перечёркивают заморочки с проводами и более жёсткие требования к питанию. Поэтому гибрид Transcend JetFlash 910 стал для меня приятным открытием.

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

Урок 016 Принцип работы Nand Flash и анализ программ на голом железе


Принципиальная схема NAND FLASH
NAND FLASH - это микросхема памяти.
Затем: эта операция очень разумна: "читать данные по адресу A, записывать данные B по адресу A"

Вопрос 1. На принципиальной схеме только линия данных между NAND FLASH и S3C2440, как передать адрес?
Ответ 1. И данные, и адрес передаются по DATA0 ~ DATA 7. Когда ALE высокий, адрес передается.

Значит, в строке данных передаются только данные и только адреса?


Мы можем обратиться к руководству по микросхеме NAND FLASH, чтобы узнать, что для работы NAND FLASH также необходимо выдавать команды.Таблица команд NAND FLASH приведена ниже.

Q2. Из руководства по микросхеме NAND FLASH мы видим, что для работы с NAND FLASH нам нужно сначала подать команду. Как передать команду?

Ответ 2. Передача данных, адреса и команд на DATA0 ~ DATA7:

Когда ALE высокий, адрес передается.

Когда CLE высокий, команда передается.

Когда ALE и CLE имеют низкий уровень, данные передаются.

Вопрос 3. Линия данных подключена как к NAND FLASH, NOR FLASH, SDRAM, DM9000 и т. Д.
Итак, как избежать помех?

Ответ 3. Эти устройства должны быть «выбраны» для доступа. Невыбранные чипы работать не будут, что равносильно тому, что они не подключены.

Вопрос 4. Если предположить, что NAND FLASH запрограммирован, после отправки в него команды, адреса и данных однозначно невозможно завершить программирование NAND FLASH мгновенно.Как судить о завершении программирования?

Ответ 4. Судя по статусному контакту RnB: высокий уровень означает готовность, низкий уровень означает занятость.

Вопрос 5. Как работать с NAND FLASH?

Ответ 5. Согласно руководству по эксплуатации микросхемы NAND FLASH, общий процесс таков:


Глядя на таблицу команд выше, это непросто увидеть. Давайте взглянем на диаграмму последовательности чтения идентификатора.

В каждую флэш-память NAND встроены некоторые идентификаторы (например, идентификатор производителя, идентификатор устройства), временная диаграмма просматривается слева направо, а вертикальное отображение - столбец за столбцом.


Для нашего s3c2440 внутри интегрирован контроллер NAND FLASH, простая схема подключения 2440 к периферии, как показано на рисунке ниже

Контроллер NAND FLASH помогает нам упростить работу с NAND FLASH. Давайте проанализируем работу периферийных NAND FLASH без использования контроллера NAND FLASH и с помощью контроллера NAND FLASH.

Отправьте команду:

Адрес отправки:

Прочитать данные:

Используйте UBOOT, чтобы испытать работу NAND FLASH:


На следующем рисунке представлена ​​временная диаграмма операции чтения.


Для флэш-памяти NAND, хранящейся как 256 МБ, требуется 28 адресных строк для представления значения адреса. Согласно схематической диаграмме, используются только 8 адресных строк, поэтому требуется 4 цикла адресов. Для обеспечения совместимости с флэш-памятью NAND большей емкости, Отправьте адрес 5 циклов: (как показано на рисунке ниже)

2. Прочитать данные

S3C2440 u-boot
Выбрано Бит 1 NFCONT установлен в 0
Выдать команду 0x00 NFCMMD=0x00
Адрес выпуска 0x00 NFADDR=0x00
Адрес выпуска 0x00 NFADDR=0x00
Адрес выпуска 0x00 NFADDR=0x00
Адрес выпуска 0x00 NFADDR=0x00
Адрес выпуска 0x00 NFADDR=0x00
Выдать команду 0x30 NFCMMD=0x30
Прочтите данные, чтобы получить 0x17 val=NFDATA
Прочтите данные, чтобы получить 0x00 val=NFDATA
Прочтите данные, чтобы получить 0x00 val=NFDATA
Прочтите данные, чтобы получить 0xea val=NFDATA
Выйти из состояния чтения NFCMMD=0xff

Программирование микросхемы памяти Программирование микросхемы флэш-памяти NAND
инициализация Инициализация контроллера NAND FLASH основной микросхемы управления
Определить Прочитать ID
Прочитать операцию Читайте по одной странице за раз (страница)
Запись операции Пишите по одной странице за раз (страница)
Стереть Стирать по одному блоку за раз


Контроллер NAND FLASH должен обеспечить работу периферийных устройств NAND FLASH. Если другой внешний
периферийное устройство NAND FLASH, то его последовательность операций может быть другой, поэтому контроллер NAND FLASH выдает проблемы
Временная диаграмма отличается, поэтому мы устанавливаем контроллер NAND FLASH в соответствии с периферийными устройствами NAND FLASH,

Временная диаграмма NAND FLASH выглядит следующим образом:



Мы установили для HCLK значение 100 МГц на языке ассемблера, один цикл T = 1000/100 = 10 с, мы можем узнать из трех приведенных выше диаграмм: значение TACLS может быть 0; значение TWRPH0 может быть Это 1; значение TWRPH1 может быть 0.

Итак, регистр NFCONF установлен следующим образом:


На этом этапе время установки NAND FLASH было установлено, давайте включим его и включим NFCONT.

MODE [0]: установите значение 1, включите NAND FLASH.

Reg_nCE [1]: установить в 1, отключить выбор микросхемы. Потому что мы им еще не пользовались. Возьмем для примера неправильную операцию.

InitECC [4]: ​​Инициализировать кодировщик ECC, который будет использоваться позже, мы устанавливаем его в 1 для инициализации.

Итак, регистр NFCONF настроен следующим образом:


На последнем уроке мы объяснили инициализацию NAND FLASH В этом уроке мы объясним, как читать идентификатор NAND FLASH.
Мы можем обратиться к руководству по микросхеме NAND FLASHh, как показано ниже: (Временная диаграмма операции чтения NAND FLASH)

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

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


Схема последовательности операций чтения идентификатора выглядит следующим образом

Давайте проанализируем его слева направо. Сигнал выбора микросхемы похож на главный переключатель. Только когда сигнал выбора микросхемы включен, последующие операции будут иметь значение. Мы включаем После сигнала выбора кристалла вывод nCE выбора кристалла всегда находится на низком уровне. Из предыдущей диаграммы последовательности команд известно, что минимальные временные параметры tCLS и tWP равны 12us, что означает, что два сигнала CLE и nWE могут быть отправлены одновременно. Указывает, что требуется команда.Чтобы команда была записана, это зависит от команды, которая будет отправлена ​​по шине данных.Когда CLE переходит с высокого уровня на низкий уровень, это означает, что последняя операция записи завершена.

Для вышеуказанного сложного тайминга мы можем использовать контроллер NAND FLASH на 2440, чтобы упростить операцию, просто записав команду, которая будет передана в регистр NFCMMD, и контроллер NAND FLASH по умолчанию отправит вышеуказанный сложный тайминг.

Ниже мы пишем код: функция для отправки команды и код функции для отправки адреса следующие:

Затем вы можете прочитать данные. Данные могут быть получены непосредственно путем считывания данных в регистре NFDATA. Согласно временной диаграмме, необходимо прочитать 5 байтов данных. Код выглядит следующим образом:

Откройте выбор микросхемы перед считыванием идентификатора микросхемы и прочитайте функцию идентификатора микросхемы, код выглядит следующим образом:

Затем мы напишем другую функцию для печати меню и вызовем функцию для чтения идентификатора чипа в меню. Код выглядит следующим образом

Вызовите функцию инициализации nand flash и тестовую функцию nand flash в основной функции.

В последнем разделе мы реализовали считывание идентификатора чипа, но программа превысила 4 КБ. Если мы хотим записать его на плату разработки, мы должны записать его в NOR FLASH. В этом разделе мы объясним чтение данных NAND FLASH. Получите и реализуйте программу, размер которой превышает 4k, запускается с NAND FLASH.


На следующем рисунке показана внутренняя структура NAND FLASH. Из рисунка видно, что страница содержит 2 Кбайт данных страницы и 64 байта области oob. Связь между данными страницы и областью oob будет представлена ​​позже.

В таблице ниже показана внутренняя структура NAND FLASH. Первые 2 КБ (0

2047) представляют данные страницы, а последние 64 байта (2048


2111) представляют собой вн.

Ответ: Это 0-й байт страницы Page1. Когда ЦП использует определенный адрес для доступа к данным, он адресуется в пространстве данных страницы, а область oob вообще не отображается.

Мы знаем, что NAND FLASH имеет недостаток по сравнению с NOR FLASH. Когда NAND FLASH читает или записывает страницу данных, может произойти инверсия битов, и одна из них может быть неправильной. Чтобы решить эту проблему, введите область oob.
Когда он записывает данные страницы, он генерирует проверочный код при записи данных в данные страницы и записывает этот проверочный код в область oob. При чтении данных прочтите Когда выводится 1 страница данных, может быть ошибка в одном бите данных чтения 1. Он продолжает считывать исходный проверочный код и использует проверочный код в области oob для исправления данных в данных страницы. Отсюда можно сделать вывод, что область oob существует для устранения дефектов NAND FLASH.

ЦП: вы заботитесь только о данных, вам не нужно видеть проверочный код в области oob (считайте данные, проверьте их, а затем верните правильные данные, вот и все). Когда ЦП хочет использовать определенный адрес для доступа к данным, адрес адресуется в области данных страницы, а адрес вообще не адресуется в области oob.

Для наглядности давайте поговорим о юмористическом диалоге ниже, чтобы проиллюстрировать функции ЦП и NAND FLASH:

Главный процессор: Маленький Нанд, ваша производительность не так хороша, как и я слышал, что у вас небольшая проблема с инверсией

Нанд: Да, сэр, изменение моей позиции - это моя естественная ошибка.

Master CPU: Блин, вы сказали, что у вас дешевая цена и большая емкость. Мне это не больно?

Нанд: Ничего страшного, у меня есть рецепт, OOB может решить эту проблему

Главный процессор: Да, не говорите мне, каков ваш рецепт, я просто могу читать и записывать правильные данные

Нанд: Да, дядя, я использую это средство OOB в частном порядке. Вы можете позвонить мне, как используя ни

Затем мы начинаем писать программу, как мы должны читать NAND FLASH, ниже приводится адресный цикл NAND FLASH.

На следующем рисунке показана временная операция чтения NAND FLASH:

Шаги для чтения NAND FLASH: (с точки зрения программы) нам нужно сначала ввести команду 00, затем ввести адрес на 5 циклов, затем выполнить команду 30, а затем мы можем прочитать данные. Например: я хочу получить доступ к данным определенного адреса, мне нужно определить, какая строка является страницей (строкой), а какой столбец - столбцом (0


2047). Из цикла адресации NAND FLASH видно, что сначала выдаются 2 столбца (адреса столбцов), а затем выдаются адреса строк 3 (строк).
Ниже приводится подготовка программы:

Функция wait_ready ожидает освобождения NAND FLASHh. Из приведенного выше рисунка мы видим, что, когда значение регистра NFSTAT [0] равно 1, NAND FLASH свободен. Мы можем использовать этот бит, чтобы определить, будет ли NAND FLASH занятый. код показан ниже:

Функция nand_read - это функция чтения NAND FLASH, код выглядит следующим образом:

В файле init.c добавьте следующий код, чтобы определить, является ли используемая флэш-память НЕ ИЛИ флэш-памятью или флэш-памятью-НЕ. код показан ниже:

Добавьте следующий код в функцию copy2sdram в файле init.c для поддержки запуска NAND FLASH. Когда возвращаемое значение функции isBootFromNorFlash равно 1, она запускается из NOR FLASH, а когда возвращаемое значение функции isBootFromNorFlash равно 0, это из NAND FLASH запускается.

Что нам нужно сделать в этом разделе:

1. Реализуйте nand_erase

2, реализовать nand_write

3. Реализуйте тестовое меню.

Давайте реализуем их по очереди:


Упомянутые в этом разделе программирование и стирание NAND FLASH относительно просты. Они затрагивают только область данных страницы, а не область oob. Стирание основывается на блоке. На следующем рисунке показана временная диаграмма стирания:

Мы выдадим соответствующую команду и адрес в соответствии с временной диаграммой стирания. NAND FLASH стирается блоками. Если мы передадим значение len, он все равно сотрет блок (128 Кбайт). , Мы выполняем операцию стирания NAND FLASH в соответствии с руководством по чипу, функция функции: запуск с адреса addr, стирание данных о длине len. код показан ниже:

Перед использованием NAND FLASH выберите микросхему, после чего вы сможете выполнить операцию стирания NAND FLASH в соответствии с руководством по микросхеме. После операции отмените выбор микросхемы.

При записи данных в NAND FLASH просто скопируйте данные для записи в регистр NFDATA. код показан ниже:


На следующем рисунке показана диаграмма последовательности программирования:

Из временной диаграммы программирования NAND FLASH на приведенном выше рисунке мы можем знать, что для программирования NAND FLASH сначала введите команду 0x80, затем выполните цикл адресации, затем введите данные для программирования и, наконец, выполните 0x10, запустите внутреннее программирование и дождитесь успешного программирования. (Когда мы пишем данные, мы пишем их постранично, и адрес данных, который должен быть запрограммирован в начале, может не быть начальным адресом страницы). Вам необходимо выбрать выбор микросхемы перед операцией, отменить выбор микросхемы после операции, код следующий

Когда мы упаковываем функцию NAND FLASH операции стирания, размер каждого стирания составляет блок (128 * 1024). Код выглядит следующим образом:

Мы инкапсулируем функцию чтения NAND FLASH, мы реализуем чтение NAND FLASH каждый раз, каждый раз читаем 64 байта данных. Сохраните 64-байтовые данные, считанные с адреса addr, в буфере buf, а затем отобразите их через последовательный порт. Код показан ниже:

Хотя со временем флешки становятся все дешевле и объемнее это не значит, что при любом сбое ее можно выбросить и приобрести другую. Хотя многие именно так и делают, даже на задумываясь о том, что ситуацию еще можно спасти. В свое время мы тряслись за каждую флоппи-дискету, почему же не поковыряться и с флешкой, чтобы дать ей вторую или даже не третью жизнь. Думаю, у многих в столе рядом с компьютером найдется какая-нибудь «мертвая» флешка-брелок, которую выбросить жалко из-за того, что она красивая или, хотя бы потому, что какое-то время назад она была полезна. Конечно, иногда флешки «умирают» раз и навсегда, но зачастую они находятся в состоянии «клинической смерти», а как известно, такое состояние обратимо.

image



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

Ценность информации

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

Определяем контроллер

Поиск утилиты для прошивки контроллера

image

В соответствующих полях указываем полученные данные и, в появившихся результатах поиска, ищем похожую флешку:

Благодаря добросовестным пользователям, которые в свое время не поленились занести информацию о восстановленной флешке, мы имеем то, что нам нужно. Но если вы не нашли именно вашу модель флешки, это не страшно, так как в разных моделях может быть установлен один и тот же контроллер. Поэтому, главное, чтобы совпадал производитель, VID и PID устройства. Теперь нас интересует информация из столбцов «Контроллер» и «Утилита», ведь именно с помощью указанной утилиты мы попытаемся восстановить нашу флешку. В данном случае это UT165 1.65.28.1. Идем в раздел Файлы и указываем в качестве критерия поиска название утилиты целиком. И в этот раз нам везет (на этом сайте мне везло почти всегда) и мы можем заполучить искомую утилиту, да еще и с подробной инструкцией.

Перепрошивка контроллера


Так как лучше, чем говориться к той инструкции не скажешь, я просто процитирую ее здесь для полной наглядности:
Отключаем флэш от компьютера.
1. Установливаем утилиту (при установке будет запрос о установке нового драйвера, выбираем AUTO-CHECK или оставляем значение по умолчанию).
2. Запускаем утилиту, подтверждаем установку драйверов, отмечаем в меню утилиты Driver > Uninstall drivers (чтобы при закрытии программы автоматически удалялись спец. драйвера).
3. Подключаем флэш, Windows предложит установить драйвер на новое устройство, нажать «автоматически», установится драйвер на устройство FABULK.
4. Нажать на «Enum» (F3), на порту появится устройство.
4.1. Если устройство не определилось, а контроллер точно UT165, запустите файл С:\Program Files\MDPT\Driver\InfUpdate.exe, в котором нужно прописать VID&PID вашей флэш (VID&PID можно узнать с помощью программы ChipGenius).
5. Если флэшка определилась, нажимаем пробел (Start). Запустится процесс форматирования. Смотрим в статус, должно стать ОК. Если процесс форматирования закончится с ошибкой, то программа выдаст её код. Для расшифровки кода ошибки смотрим в меню Help -> Error Code List.
6. Затем закрываем прогамму или деинсталируем (должны удалиться драйвера устройства FABULK, без удаления драйвера FABULK, Windows не увидит вашу флэш!), переподключаем флэш.
7. Форматируем стандартными средствами Windows.

От себя лишь добавлю, что иногда флешка не определяется, в этом случае нужно попробовать использовать другие USB-порты. Так же, вполне возможно, придется покопаться с настройками программы. То есть, хочу предупредить вас, что не все может пойти гладко и нужно проявлять терпение и целеустремленность. Часто случалось, что пять попыток перепрошить флешку оказывались тщетными, и только на шестой раз получалось, хотя ничего нового в этот шестой раз не делал.
В случае с флешкой Pretec i-Disk Secure, она у меня отформатировалась, хоть и потеряла 1-2 гигабайта объема, но это не страшно. Зато теперь, я знаю, что с этой флешкой, несмотря на ее крепкий внешний вид, нужно обходиться особенно аккуратно и вынимать из компьютера безопасно.
За свою короткую жизнь, я восстановил 32 флешки из 34-х, попадавших мне в руки. Те, которые восстановить не удалось это флешки со сгоревшим контроллером и после подключения к компьютеру они быстро нагревались. Если информация на флешке очень вам ценна и вы не пожалеете никаких денег за ее восстановление, делать это уже придется не в домашних условиях и не бесплатно.

Читайте также: