Содержание
- UFPI
- ПРОГРАММАТОРЫ
- СОКЕТЫ
- BGA
- SD/eMMC
- DIP24
- DIP48
- TSOP48
- TSOP56
- NAND
- ONENAND
- NOR
- ПЛАТЫ ПУСТЫЕ
- АКТИВАЦИИ
- UFPI Серебристый
- UFPI Красный
- UFPI Черный
- NAND BGA63 KZT SMT base
- NAND BGA63 JRS SMT Base
- OneNAND BGA63 KZT SMT Base
- NOR BGA64-1.0 JRS SMT Base
- Рамка 10.5×13.5 BGA63 KZT
- Рамка 10×13 BGA63 KZT
- Рамка 11×13 BGA63 KZT
- Рамка 9×9 BGA64 KZT
- NAND DIP48 ARIES
- NAND TSOP48 Wells-CTI
- NAND TSOP48 Pinboard
- NAND base SMT
- NAND BGA63 KZT SMT
- NOR base SMT
- NOR BGA64-1.0 KZT SMT
- TSOP56 ANDK SMT J3X series (NOR)
- TSOP56 ANDK SMT UNIVERSAL
- TSOP56 ANDK SMT P3X series (NOR)
- OneNAND ENTT BGA JRS PCB
- OneNAND BGA63 KZT SMT
- OneNAND Base SMT
- [UPGRADE Xbox360] Freeboot за 700 руб (MTX SPI NAND Flasher V1.0 и X360run)
- [UPGRADE Xbox360] Freeboot за 700 руб (MTX SPI NAND Flasher V1.0 и X360run)
- Установка FreeBoot на Xbox 360 Slim (инструкция)
Похожие запросы:
- программатор nand в рубрике Прочая электроника
- программатор nand в рубрике Аксессуары и комплектующие
Сохраните результаты этого поиска Сохранить результаты поиска Просмотреть все сохраненные Результаты этого поиска сохранены Удалить результаты из избранных Просмотреть все сохраненные aBi+OMZ/rDETrvY2SlLVLnI4aqzvsBi7HBb2Web4U9/OfDlPUXwX/Sd7HdYhXCXjIg0xCcLvtXSSPBsGax6IdD+TxVuM6k3qe6Ow8j74oEAerO5nurOzuQIz13cKUf0Z9oebTWfdvOmrVnZbVxeG3H7ey2rBw0rSATQRMGluN2rMaxuvrWBdzbaP91De7jg9PG4JxSd7JfvRRx0bZyL9+K1Fqrwco7TJjcmytBxMnAYh8jA3le2wPfO2/xBFWvmMXcTXMIcL7fd11rtVROqH/rRZTcoMMDVjYuuHAhoeaE0= UFPI (универсальный интерфейс программирования флэш-памяти) – это устройство с питанием от USB, основанное на современном защищенном двухъядерном процессоре 200 МГц с высокоскоростным USB Phy (480 Мбит/сек). Основное назначение этого интерфейса и программного обеспечения – программирование флэш-памяти или памяти EEPROM и работа с основными последовательными протоколами, такими как NAND, OneNAND, Serial NAND, eMMC, SD, SPIFI, SPI flash, SPI EEPROM, I2C EEPROM, Microwire EEPROM, 1-Wire, JTAG, BDM, UART, GPIO, Logger и другими.
UFPI
ПРОГРАММАТОРЫ
СОКЕТЫ
BGA
SD/eMMC
DIP24
DIP48
TSOP48
TSOP56
NAND
ONENAND
NOR
ПЛАТЫ ПУСТЫЕ
АКТИВАЦИИ
Сортировать по Артикул +/- Название товара Цена товара Код продукта Порядок
UFPI Серебристый
UFPI Silver Box – комплектация Старт
Цена: 9 032 ₽ Цена без налога: 8 769 ₽ Сумма налога: 263 ₽
UFPI Красный
UFPI Red Box – комплектация Расширенная.
Цена: 15 104 ₽ Цена без налога: 14 664 ₽ Сумма налога: 440 ₽
UFPI Черный
UFPI Black Box- комплектация Профессионал.
Цена: 30 283 ₽ Цена без налога: 29 401 ₽ Сумма налога: 882 ₽
NAND BGA63 KZT SMT base
Цена: 759 ₽ Цена без налога: 737 ₽ Сумма налога: 22 ₽
NAND BGA63 JRS SMT Base
Цена: 759 ₽ Цена без налога: 737 ₽ Сумма налога: 22 ₽
OneNAND BGA63 KZT SMT Base
Цена: 759 ₽ Цена без налога: 737 ₽ Сумма налога: 22 ₽
NOR BGA64-1.0 JRS SMT Base
Цена: 759 ₽ Цена без налога: 737 ₽ Сумма налога: 22 ₽
Рамка 10.5×13.5 BGA63 KZT
Цена: 379 ₽ Цена без налога: 368 ₽ Сумма налога: 11 ₽
Рамка 10×13 BGA63 KZT
Цена: 759 ₽ Цена без налога: 737 ₽ Сумма налога: 22 ₽
Рамка 11×13 BGA63 KZT
Цена: 759 ₽ Цена без налога: 737 ₽ Сумма налога: 22 ₽
Рамка 9×9 BGA64 KZT
Цена: 759 ₽ Цена без налога: 737 ₽ Сумма налога: 22 ₽
NAND DIP48 ARIES
Цена: 1 518 ₽ Цена без налога: 1 474 ₽ Сумма налога: 44 ₽
NAND TSOP48 Wells-CTI
Цена: 2 656 ₽ Цена без налога: 2 579 ₽ Сумма налога: 77 ₽
NAND TSOP48 Pinboard
Цена: 1 138 ₽ Цена без налога: 1 105 ₽ Сумма налога: 33 ₽
NAND base SMT
Цена: 1 138 ₽ Цена без налога: 1 105 ₽ Сумма налога: 33 ₽
NAND BGA63 KZT SMT
Головка BGA63 KZT для фиксации микросхем NAND
Цена: 7 514 ₽ Цена без налога: 7 295 ₽ Сумма налога: 219 ₽
NOR base SMT
Цена: 1 138 ₽ Цена без налога: 1 105 ₽ Сумма налога: 33 ₽
NOR BGA64-1.0 KZT SMT
Головка BGA64-1.0 KZT для фиксации микросхем NOR
Цена: 7 514 ₽ Цена без налога: 7 295 ₽ Сумма налога: 219 ₽
TSOP56 ANDK SMT J3X series (NOR)
Цена: 607 ₽ Цена без налога: 589 ₽ Сумма налога: 18 ₽
TSOP56 ANDK SMT UNIVERSAL
Цена: 607 ₽ Цена без налога: 589 ₽ Сумма налога: 18 ₽
TSOP56 ANDK SMT P3X series (NOR)
Цена: 607 ₽ Цена без налога: 589 ₽ Сумма налога: 18 ₽
OneNAND ENTT BGA JRS PCB
Цена: 379 ₽ Цена без налога: 368 ₽ Сумма налога: 11 ₽
OneNAND BGA63 KZT SMT
Головка BGA63 KZT для фиксации микросхем OneNAND
Цена: 7 514 ₽ Цена без налога: 7 295 ₽ Сумма налога: 219 ₽
OneNAND Base SMT
Цена: 1 138 ₽ Цена без налога: 1 105 ₽ Сумма налога: 33 ₽
- Вы здесь:
- Главная
Содержание
[UPGRADE Xbox360] Freeboot за 700 руб (MTX SPI NAND Flasher V1.0 и X360run)
Игровая консоль досталась подарком, с диском Fable 2. Скажем так, я люблю данную серию игр и был очень рад, но после прохождения, посмотрел цены на игры, и подумал что это пустая трата денег тратить на устаревшую консоль, все таки тратить 4 000 руб. не каждый захочет. Посмотерл возможные варианты. Прошивка дисковода, фрибут, x360Key.
Эта статья не является инструкцией, не которое моменты пропущены.
Определяем какая у нас ревизия (Corona-V1, Corona-V2):
Мне повезло и у меня Corona-V1, Corona-V2. Доп. плату не пришлось покупать.
Если у вас Corona-V3, Corona-V4, то потребуется доп. устройство для удобства пайки:
Почему выбрал именно Фрибут? Дисковод прошить не удастся, т.к. 16D5S. Только замена мат. платы дисковода + требуется фрибут для снятия ключа CPU. x360Key довольно дорогой, но зато есть Live.
Ревизия дисковода (не прошивается):
MTX SPI NAND Flasher V1.0
X360run
Подключение программатора к мат. плате xbox360.
Снятие дампа и закачка модифицированной прошивки на xbox360.
P.S. Программатор не завелся на WinXp, На Win7 x32 — без проблем.
Пайка мод чипа x360run:
Загрузка Xell (Видим ключ CPU и дисковода):
Программатор после заливки прошивки можно отключить, отпаять.
Скидываем нужные хумбрю, ставим в автозапуск кастом Даш — FSD 3:
Устанавливаем тему и наслаждаемся:
Запуск майнкрафта (не фанат, скачал одну и самых «не жирных» игр):
Вывод: Получили Фрибут на Xbox360, мастера за данный апгрейд в нашем городе берут от 3 000 руб. Одна проблема, доступ в Live закрыт. Но выход есть дуал нанд или использовать Стелс сервера. В итоге программатор можно продать и получить фрибут — бесплатно!
Источник
[UPGRADE Xbox360] Freeboot за 700 руб (MTX SPI NAND Flasher V1.0 и X360run)
READ Как установить фристайл дашборд
Игровая консоль досталась подарком, с диском Fable 2. Скажем так, я люблю данную серию игр и был очень рад, но после прохождения, посмотрел цены на игры, и подумал что это пустая трата денег тратить на устаревшую консоль, все таки тратить 4 000 руб. не каждый захочет. Посмотерл возможные варианты. Прошивка дисковода, фрибут, x360Key.
Эта статья не является инструкцией, не которое моменты пропущены.
Определяем какая у нас ревизия (Corona-V1, Corona-V2):
Мне повезло и у меня Corona-V1, Corona-V2. Доп. плату не пришлось покупать.
Если у вас Corona-V3, Corona-V4, то потребуется доп. устройство для удобства пайки:
Почему выбрал именно Фрибут? Дисковод прошить не удастся, т.к. 16D5S. Только замена мат. платы дисковода + требуется фрибут для снятия ключа CPU. x360Key довольно дорогой, но зато есть Live.
Ревизия дисковода (не прошивается):
MTX SPI NAND Flasher V1.0
X360run
Подключение программатора к мат. плате xbox360.
Снятие дампа и закачка модифицированной прошивки на xbox360.
P.S. Программатор не завелся на WinXp, На Win7 x32 — без проблем.
Пайка мод чипа x360run:
Загрузка Xell (Видим ключ CPU и дисковода):
Программатор после заливки прошивки можно отключить, отпаять.
Скидываем нужные хумбрю, ставим в автозапуск кастом Даш — FSD 3:
Устанавливаем тему и наслаждаемся:
Запуск майнкрафта (не фанат, скачал одну и самых «не жирных» игр):
Вывод: Получили Фрибут на Xbox360, мастера за данный апгрейд в нашем городе берут от 3 000 руб. Одна проблема, доступ в Live закрыт. Но выход есть дуал нанд или использовать Стелс сервера. В итоге программатор можно продать и получить фрибут — бесплатно!
Источник
Установка FreeBoot на Xbox 360 Slim (инструкция)
Инструкция по установке FreeBoot.
Что нам понадобится: 1. Программатор (X360 Squirt slave programmer, Super nand flasher, Matrix NAND Programmer, Xecuter J-R Programmer, один из них, на ваше усмотрение, можно даже самому собрать на микросхеме PIC) 1.1 Если у вас Corona 4gb to вам потребуется карт-ридер и адаптер microSD-SD и резистор 68 Ом 2. Чип (X360Run (если у вас материнская плата Trinity или Corona) или Matrix Glitcher v3 (подходит для всех ревизий включая старые приставки phat) ) 2.1 Post fix adapter (или подпаяться к шарику процессора напрямую, об этом позже) 3. Провода (МГТФ желательное с меньшим сечением или AWG24/AWG26) 4. Флюс, паяльник, спирт 5. AutoGG из программного обеспечения, качать тут
READ Как установить вертикальный кулер на процессор
Если у вас приставка ревизии Corona (16mb) или Trinity то нужно подпаяться к флешеру по схеме ниже.
Если у вас Corona 4gb, то паяем по схеме указанной ниже
На материнских платах Corona (если не ошибаюсь начиная с 07.2012) отсутствуют резисторы, на их месте делаем маленькие перемычки из проводов
Запускаем программу AutoGG, подключаем питание к вашей приставке (включать не нужно).
Выбираем программатор (в зависимости от того что у вас есть) для материнских плат объем памяти которых составляет 16 мб
Для всех новых материнских плат надо указать версию NandPro 2.0b или 2.0b ArmV3
В случае с 4Гб памятью (только материнские платы Corona) выбираем MMC/SD
Считываем содержимое NAND
Программа спросит сколько Мб ей нужно считать (если 16 мб CoronaTrinity выбираем 16, если 4 Гб Corona то 48 Мб) и сколько раз (выбираем 2). Если по окончании чтения программа выдаст сообщение что все в порядке с вашим Nand, то переходим к следующему пункту, если же нет, то повторите чтение несколько раз пока хотя бы 2 копии вашего NAND не совпадут.
Затем нам создать Xell и записать его в приставку, для этого: 1) нажимаем кнопку Create 2) Затем Flash
После заливки Xell я рекомендую отпаять флешер. У кого Corona 4 Гб надо только отпаять провод которые идет от кварца к резистору, если вы его забудете отпаять то приставка не запустится.
Если вы купили чип Matrix Glitcher v3, то вам нужно его прошить предварительно (подпаявшись к нему) (у кого чип X360Run смело пропускают этот пункт).
Стрелочками я обозначил самые удачные на мой взгляд прошивки для материнской платы Corona (для Trinity там всего одна)
Теперь нам надо запаять наш чип (см. картинки на примере X360Run, мат.плата Corona)
Установка чипа X360Run на Trinity идентична Corona, их отличает только точка D.
На картинке ниже отображены типы памяти и пояснение, т.к. Microsoft убрала точку С (в данном случае, если Matrix Glitcher V3 то точка В) то нам нужно будет подпаяться напрямую к шару процессора или поставить PostFix adapter.
Установка PostFix адаптера
Если вы забыли его купить или все таки хотите припаяться к шару процессора, то я бы вам советовал немного подточить то место куда будете паять провод.
Немного бурим в районе 4 шара справа и припаиваем проводок, после того как припаяли его, зафиксируйте его изолентой или малярным скотчем. Не советую делать очень глубоким отверстие, можете все угробить.
Схема по установке Matrix Glitcher на материнскую плату Trinity. Т.к. вы скорее всего купите Matrix Glitcher V3 с кварцем, то точку С можно не припаивать.
READ Как установить на магнитолу hobdrive
Установка Matrix Glitcher v3 на материнскую плату Corona идентична с Trinity, единственное, что их отличает это то что на Corona нет точки FT4R2, вместо нее там точка R4P4.
После этого запускаем приставку, старт приставки может быть как моментальным так и достигать до 2 минут (в этом нет ничего страшного, всегда можно оптимизировать запуск), на экране должно появится следующее
и самая нужная строчка является строка с вашим ключом процессора (на картинке ключ специально затерт, у вас же там будет набор цифр и букв)
Вводим эти символы в раздел CPU-KEY в программе
Если вы ввели цифры правильно, то программа сохранит ваш оригинальный NAND в своей папке вместе с вашим ключом, если вы ввели какой-то символ не верно, то AutoGG выдаст ошибку. Далее ставим галочку на DashLaunch и нажимаем кнопку Create
В папке AutoGG_0.9.3output вы найдете свой готовый файл с названием nandflash.bin, вот его нам и нужно прошить в приставку.
Рассмотрим несколько способов как прошить приставку
1. Прошивка с помощью флешки (для CoronaTrinity 16 Mb) а) Подключаем флешку (FAT-32) к компьютеру б) Нажимаем RawFlash
Выбираем вашу флешку и жмем ОК
В корне флешки должны находится файлы nandflash.bin и xenon.elf. Вытаскиваем ее из компьютера, вставляем в Xbox 360 и включаем его, после того как загрузится Xell, он подхватит файл xenon.elf и прошьет вашу приставку. Желательно пользоваться флешкой со световой индикацией работы, потому как после того как ваша прошивка зальется индикатор перестанет моргать, что будет свидетельствовать окончанию процесса.
2. Прошивка с помощью программатора (для CoronaTrinity 16 Mb) а) Запаиваем все по схеме (схема в самом верху) б) Нажимаем кнопку Flash и соглашаемся на прошивку с текущими данными
3. Прошивка с помощью карт-ридера (только для Corona 4Gb) а) подпаиваем наш переходник MicroSD-SD к приставке (схема была выше) б) нажимаем кнопку Flash и соглашаемся на прошивку с текущими данными
Источник
Если на вашей NAND Flash присутствуют битые блоки и они попадают на области расположения прошивки то принтер скорее всего не включится совсем или будет работать со сбоями. Можно купить новую NAND Flash, проблема в том, что даже NAND Flash может быть с битыми блоками. Как же быть? Нужно записать дамп так, чтобы он не подал на битую область. Для этого нам понадобится дамп в идеале без ошибок и дамп вашей NAND Flash, которые вы сравните этой прекрасной утилитой и получите дамп, который будет учитывать уже битую области и программатор запишет дамп в обход битых блоков Подходит для таких аппаратов как Samsung CLX-33XX/SL-C460/CLP-415 можно поэкспериментировать и с другими моделями |
Комментарии
–>
Предыстория
Во время очередной уборки был случайно выключен удлинитель, к которому были подключены работающие системный блок и монитор. Системный блок состоит из:
- материнская плата — ASRock B75 Pro 3
- процессор — Intel Core i5-3570
- блок питания — Corsair CX750M
После включения системник начал издавать пять противных писков, что вроде как соответствует неисправности процессора. Процессор, судя по Яндекс.Маркету, на данный момент стоит от 11000 руб. Покупать довольно накладно, а недорогой, но слабенький не хочется. В общем, немного испугался… Порылся в интернете, выяснил, что точная причина неисправности может быть совсем другая. Это вселило небольшую надежду. Но надо как-то найти эту самую причину. В первую очередь подключил другой старенький БП — комп не запускается. Для дальнейших проверок принес домой автомобильный комп. Состав:
- материнская плата — ASRock B75M-ITX
- процессор — Intel Pentium G640T
Как хорошо, что компоненты оказались взаимозаменяемыми. Вытащил из автомобильного компа процессор, вставил его в домашний — комп не запускается. Но появилась надежда, что процессор все таки цел, а неисправна материнка, которая немного дешевле (хотя новые на чипсетах не H61 и H67 — дефицит). Далее домашний процессор вставил в автомобильный комп — комп заработал. Следовательно, процессор живой, а проблема в материнке. Начал грешить на BIOS (Winbond 25Q64BVAIG).
Собственно, программирование
Хорошо, что микросхема BIOS не впаяна, а на обычной панельке DIP-8. Программатора у меня нет, заказывать в Китае и ждать месяц — не выход. Решил сделать программатор из ноутбука жены и имеющейся в наличии Arduino Nano. Покопался в интернете… Везде в основном прошивка заливается через COM-порт, я же решил прошивать с карты памяти (так вроде гораздо быстрее). Набросал схему подключения: Собрал все на макетной плате:
Тип и объем карты памяти, способ ее форматирования, имя файла должны соответствовать требованиям библиотеки SD Arduino. Для начала набросал скетч, который считывает содержимое SPI Flash и записывает его в файл на карту памяти, попутно вычисляя контрольную сумму по методу Checksum-32, т.е. простым суммированием. ReadFlash_WriteSD.ino
/* Подключение SPI-Flash: CS - D9 MOSI - D11 MISO - D12 CLK - D13 Подключение SD-Card Shield: CS - D10 MOSI - D11 MISO - D12 CLK - D13 */ #include #include #define Flash_CS 9 #define SD_CS 10 #define FILENAME "BIOS.ROM" File myFile; SPIFlash flash(Flash_CS); void setup() { Serial.begin(115200); while (!Serial) {}// Ждем подключения последовательного порта // Инициализация SD-карты Serial.println("Initializing SD card..."); if (!SD.begin(SD_CS)) { Serial.println("Initialization SD card failed!"); return; } Serial.println("Initialization done."); // Удаляем старый файл, если есть Serial.print(FILENAME); if (SD.exists(FILENAME)) { Serial.println(" exists, removing..."); SD.remove(FILENAME); } else { Serial.println(" doesn't exist."); } // Создаем файл и открываем его для записи Serial.print("Creating "); Serial.print(FILENAME); Serial.println("..."); myFile = SD.open(FILENAME, FILE_WRITE); // Если удалось создать и открыть файл - будем записывать в него if (myFile) { // Инициализация SPI Flash Serial.println("Initializing SPI Flash..."); flash.begin(); // Читаем/записываем блоками/страницами по 256 байт uint8_t data_buffer[256]; // Количество страниц uint32_t maxPage = flash.getMaxPage(); // Checksum (32 bit) uint32_t checkSum = 0; for (int page = 0; page < maxPage; page++) { // Выводим прогресс работы if ((page % 1000) == 0) { Serial.print(page + 1); Serial.print("/"); Serial.println(maxPage); } // Читаем страницу SPI Flash flash.readByteArray(page, 0, &data_buffer[0], 256); // Записываем блок в файл на карте памяти myFile.write(data_buffer, 256); // Обновляем контрольную сумму for (int i = 0; i < 256; i++) { checkSum += data_buffer[i]; } } // Закрываем файл на карте памяти myFile.close(); // Выводим контрольную сумму Serial.print("Checksum-32: 0x"); Serial.println(checkSum, HEX); Serial.println("Done."); } else { // Если файл не создался, то выводим сообщение об ошибке Serial.println("Error creating "); Serial.println(FILENAME); } } void loop() { // Пустой цикл }
Запустил скетч, получившийся файл сравнил с оригинальным BIOS — получилось около 140000 несовпадающих байт. Далее написал скетч, который читает файл с карты памяти и записывает его на SPI Flash, предварительно стирая чип. ReadSD_WriteFlash.ino
/* Подключение SPI-Flash: CS - D9 MOSI - D11 MISO - D12 CLK - D13 Подключение SD-Card Shield: CS - D10 MOSI - D11 MISO - D12 CLK - D13 */ #include #include #define Flash_CS 9 #define SD_CS 10 #define FILENAME "B75PRO31.90" File myFile; SPIFlash flash(Flash_CS); void setup() { Serial.begin(115200); while (!Serial) {}// Ждем подключения последовательного порта // Инициализация SD-карты Serial.println("Initializing SD card..."); if (!SD.begin(SD_CS)) { Serial.println("Initialization SD card failed!"); return; } Serial.println("Initialization done."); if (!SD.exists(FILENAME)) { Serial.print(FILENAME); Serial.println(" doesn't exist."); return; } // Открываем файл для чтения Serial.print("Opening "); Serial.print(FILENAME); Serial.println("..."); myFile = SD.open(FILENAME, FILE_READ); // Если удалось открыть файл - будем читать из него if (myFile) { Serial.print("File "); Serial.print(FILENAME); Serial.println(" is open."); // Инициализация SPI Flash Serial.println("Initializing SPI Flash..."); flash.begin(); // Стираем чип if (flash.eraseChip()) { Serial.println("Chip erased."); } else { Serial.println("Error erasing chip."); return; } // Читаем/записываем блоками/страницами по 256 байт uint8_t data_buffer[256]; // Количество страниц uint32_t maxPage = flash.getMaxPage(); // Checksum (32 bit) uint32_t checkSum = 0; for (int page = 0; page < maxPage; page++) { // Выводим прогресс работы if ((page % 1000) == 0) { Serial.print(page + 1); Serial.print("/"); Serial.println(maxPage); } // Читаем блок с карты памяти myFile.read(data_buffer, 256); // Записываем блок в страницу SPI Flash flash.writeByteArray(page, 0, &data_buffer[0], 256); // Обновляем контрольную сумму for (int i = 0; i < 256; i++) { checkSum += data_buffer[i]; } } // Закрываем файл на карте памяти myFile.close(); // Выводим контрольную сумму Serial.print("Checksum-32: 0x"); Serial.println(checkSum, HEX); Serial.println("Done."); } else { // Если файл не открылся - выводим сообщение об ошибке Serial.print("Error opening "); Serial.println(FILENAME); } } void loop() { // Пустой цикл }
Запустил, подождал, скетч вывел контрольную сумму, она совпала с контрольной суммой оригинального файла. Но это контрольная сумма файла на карте памяти, мне же нужна контрольная сумма содержимого SPI Flash. Можно было использовать первый скетч, но написал третий, который только считает контрольную сумму содержимого SPI Flash по тому же алгоритму. ChecksumFlash.ino
/* Подключение SPI-Flash: CS - D9 MOSI - D11 MISO - D12 CLK - D13 */ #include #define Flash_CS 9 SPIFlash flash(Flash_CS); void setup() { Serial.begin(115200); while (!Serial) {}// Ждем подключения последовательного порта // Этот код нужен, чтобы не мешалась SD-карта pinMode(10, OUTPUT); digitalWrite(10, HIGH); // Инициализация SPI Flash Serial.println("Initializing SPI Flash..."); flash.begin(); // Читаем страницами по 256 байт uint8_t data_buffer[256]; // Количество страниц uint32_t maxPage = flash.getMaxPage(); // Checksum (32 bit) uint32_t checkSum = 0; for (int page = 0; page < maxPage; page++) { // Выводим прогресс работы if ((page % 1000) == 0) { Serial.print(page + 1); Serial.print("/"); Serial.println(maxPage); } // Читаем страницу SPI Flash flash.readByteArray(page, 0, &data_buffer[0], 256); // Обновляем контрольную сумму for (int i = 0; i < 256; i++) { checkSum += data_buffer[i]; } } // Выводим контрольную сумму Serial.print("Checksum-32: 0x"); Serial.println(checkSum, HEX); Serial.println("Done."); } void loop() { // Пустой цикл }
Контрольная сумма SPI Flash совпала с контрольной суммой оригинального файла. После вставки прошитой микросхемы BIOS в домашний комп — он благополучно заработал. В среде Arduino IDE необходимо установить библиотеку SPIFlash через управление библиотеками. Контрольную сумму вычислял с помощью HEX-редактора HxD. PS: Первоначально в качестве SD-модуля использовал вот такой: Но с ним были частые глюки, не инициализировалась SD-карта. Помогало «горячее» переподключение самой SD-карты при подключенной к компу Arduino. PPS: Вместо резисторов пробовал подключить двунаправленный конвертер сигналов:
Но с ним схема не заработала.
ли со статьей или есть что добавить?