У дома / Разни / Програмиране на NAND FLASH. TNM5000 универсален програмист програмисти usb за flash nand вериги

Програмиране на NAND FLASH. TNM5000 универсален програмист програмисти usb за flash nand вериги


Това е универсално устройство за програмиране на много широк спектър от микросхеми, вариращи от банални чипове I2c и MicroWire до многокраки Nand Flash.
През годините на радиолюбителството и електрониката съм натрупал доста голям брой такива домашно приготвени устройства, сглобени за конкретни задачи и само в името на самия процес. С появата на увеличаваща се гама от микросхеми и увеличаване на техния капацитет, беше необходимо да се придобие фабрично устройство, добре познатия MiniPro TL-866.
Устройството е наистина, наистина хубаво, служи вярно от много години, но липсата на контрол на контактите, хардуерните ограничения и в резултат на това невъзможността за работа с модерни чипове ме накараха да погледна към по-скъпи и функционални устройства. Един бегъл преглед на пазара за такива устройства доведе до осъзнаването, че две устройства най-ясно отговарят на моите нужди: руският ChipProg-48 (1) и иранският TNM5000. Вторият се оказа повече от 2 пъти по-евтин със сравнима функционалност и след известно убеждаване моята жаба, която беше загубила бдителността си в процеса на избор на подарък за любимия си за рождения й ден, не можеше разумно да възрази.
На страницата на официалния продавач на Aliexpress беше направена поръчка, избрана доставка на Singapore Post и извършено плащане. В процеса на по-нататъшна кореспонденция с продавача, между другото, много общителен, се оказа, че е най-добре да се изпрати с куриер SPSR. Това е по-бързо, но са необходими допълнителни паспортни данни за митниците, което предизвика известно безпокойство, т.к. Пратката не е била посрещната от гражданин на Руската федерация. Договорихме се за обичайния руски въздух, продавачът компенсира разликата в доставката с не много работещ SSOP34 адаптер.
Въпреки всички притеснения, доставката беше бърза и безпроблемна.
И така, ирански програмист от Китай беше депортиран в Русия и прехвърлен в Беларус от специално обучен жител в Москва, гражданин на Република Беларус с временна регистрация. Такава сложна схема помогна да се избегне плащането на мита върху пощенски прикачени файлове на стойност над 20 евро за стоки, преминаващи през митническата граница на Република Беларус.


Снимката показва самия програмист, USB кабел за свързване към компютър, вакуумна вендуза за прехвърляне на малки чипове, кабел за програмиране във веригата, бонус чип NAND Flash K9GAG08U0E-SCB0 и адаптер SSOP34, доста високо качество. Дискът със софтуер и инструкции не беше включен на снимката, забравих го в кутията.


Кутията беше неочаквано по-голяма, отколкото си представях, съдържанието отговаряше на описанието.
За сравнение, снимка с популярния TL-866.








Между другото, цената за адаптери от продавача е просто лоша, купих необходимия ми адаптер TSOP48-DIP48 от друг продавач в пъти по-евтин, просто с отлично качество и панелът изглежда дори японски YAMAICHI.




Корпусът на програматора е направен от доста висококачествена пластмаса с тъмен цвят, без дупки, светкавици и други атрибути на полусутерен монтаж. От едната страна на кутията има 10-пинов конектор за програмиране в веригата, това е стандартен IDC10. Отгоре 48-пинов ARIES DIP гнездо. Любопитно е, че за разлика от други сокети, той се довежда до отворено състояние с усилие и се довежда до състояние „вмъкнат чип, захванат и готов за работа“ сам, това е неговото състояние по подразбиране. В горната част на корпуса има и индикатор за активност и стикер с модела на програмиста.


От друга страна има стандартен USB-B за свързване към компютър и конектор за допълнителна храна, с неизвестен дизайн, внимателно покрита с предупредителен стикер.


В долната част на кутията има стикер с информация, гаранционен стикер на винта и гумени крачета.


Програматора е с една година гаранция, която едва ли ще мога да използвам, но за всеки случай, че няма да правя разчленяване, ще използваме снимка на друг, по-смел собственик.






Ето описанието на програмиста на руски, аз също ще плагиатствам малко:

Допълнителна информация

Флаш памет (паралелна/Nand/Serial), EPROM, EEPROM, серийна EEPROM, микроконтролери, NVRAM, FRAM, CPLD, PLD, FPGA).
Висококачествена 48-пинов ZIF платка и 10-пинов ISP/JTAG конектор.
USB 2.0 висока скорост
Програмиране 1 Gb Nand Flash за по-малко от 50 сек
Анализ на NAND чипове за наличие на BAD блокове, може да ги пропусне при писане, при четене.
Автоматично откриване на всички флаш-памет/микроконтролери с Device ID.
Удобен софтуерза Windows XP/VISTA/7/8 (32,64 бита).
Функцията за тестване на контактите на предоставената микросхема (Pin Test)!
Ако сте поставили IC лошо в блока или има мръсни щифтове, софтуерът на програмиста ще съобщи това и ще посочи номера на този контакт!
Ниска цена на основното устройство и бюджетните адаптери.
Един 32/40/48 TSOP адаптер за цялата флаш памет.
Един адаптер TSOP56 за всички 56-пинов флаш памет.
Специални функции, които значително разширяват възможностите на програмиста, получаваме няколко програмисти в един:
Пълна емулация на Altera USB-Blaster за софтуер Quartus-II.
Пълна емулация на сериен порт.
Поддръжка на ECU на превозно средство, Immoblizer и микроконтролер на таблото.
TopJTAG Flash програмист, TopJTAG Probe.
Сърцето на TNM 5000 програмиста е FPGA 500.0000 Gate с проектирано ядро ​​на процесора с 96MHz тактова честота за бързо програмиране на IC.
Работа с OTP зона на чипове EN25F16, EN25F80, EN25Q16, EN25Q32, EN25Q64… Четене… запазване… редактиране… програмиране на OTP зона на чипове.
Паралелна светкавица до 56 пина:
Той поддържа различни видове пакети (PLCC, TSOP1, TSOP2, VSOP &…). Всички светкавици могат да бъдат автоматично открити от софтуера. Използвайки един адаптер за всички 32-48 пинови TSOP флаш, потребителят се нуждае само от 1 адаптер за повече от 2000 флаш чипа.
NAND флаш памети:
Програматорът разполага с допълнителен софтуер Nand+, специално проектиран за NAND Flash. Софтуерът Nand+ има един от най-пълния списък с NAND Flash памети с лош алгоритъм за корекция на данни в MLC NAND. TNM5000 е един от най-бързите Nand програмисти в света със скорост на четене и запис до 8 мегабайта в секунда. Всички Nand могат да бъдат автоматично открити от софтуера.
Серийни флаш памети:
Всички 8-16 пина серийни SPI флаш се поддържат от програмиста. Всички флаш SPI могат да бъдат открити автоматично от софтуер. Той чете и програмира SPI флаш с максимална безопасна скорост от 6-7Mbps. Също така премахва защитата, като защитата от запис мига преди запис на данни.
Микроконтролери:
ATMEL: Всички AVR 8-битови чипове (ATMEGA/ATTINY/AT90S) се поддържат от ZIF Scocket & ISP кабел. Поддържа се AVR програмиране до 64 пина. Поддържат се нововъведената серия ATXMEGA и методите PDI и JTAG. Старата серия C51 и новата серия C51 с един цикъл се поддържат напълно. Всички серии могат да бъдат открити автоматично. Поддържа се ARM7 програмиране чрез JTAG.
PIC на микрочип:
Един от най пълен списъкустройства за микроконтролери Microchip PIC, включително всички серии PIC12F/PIC12C/PIC16C/PIC16F/PIC18F/DPIC33F/J&K. Устройства до 40 пина могат да бъдат програмирани на ZIF Scocket, всички PIC могат да бъдат открити автоматично и се програмират от ISP кабел.
Допълнително:
Програми MIO KB9012, ST, SST, Philips (NXP), Motorola, Syncmos, Silicon Lab, ICSI, Infineon, Intel, Winbond &…
Автомобилни микроконтролери:
Поддържа серия ST10F и TMS370 ISP кабел за много BOSCH / VALEO / SAGEM ECU (пълна поддръжка за ST10F от списъка с устройства за програмиране на XPROG-m). Поддръжка на Siemense & Infineon SAK - C167, свързан към 44 или 48 пина флаш (Siemense / BOSCH / SAGEM S2000 ECU), като HSE FlashHit Programmer. Поддръжка за устройства NEC и Motorola за табла. Поддържа Motorola / FreeScale MC68HC11KA4 / MC68HC11A8. Поддържа добавен OTP предпазител от серия MC68HC908. Infineon Tricore семейство Audio-NG (следващо поколение) TC1796 TC1766 с поддръжка на външна 32-битова Flash (S29CD032 - S29CD016) в нови ECU на Bosch. Motorola MPC562 MPC561 BDM програмиране за външна Flash и външна EEPROM в EDC ECU (Bosch & Sim2K). Серия Motorola HC9S12DG64 / HC9S12DG128 / HC9S12DG256 / HC9S12DG512 с функция за байпас за сигурност.
PLD/CPLD/FPGA:
Поддръжка за всички ALTERA JTAG устройства чрез Altera USB Blaster Programmer в емулация на Quartus Software. Поддръжка на Xilinx CPLD/FPGA с jed файл. Бърза конфигурация на Xilinx FPGA с битов файл. Поддръжка за GAL/Palce устройства със специална опция за отключване на Palce.
Многоезичен софтуер (английски/китайски/арабски/френски/фарси/руски). Други езици и устройства могат да бъдат добавени по желание на клиента. Можете да изтеглите софтуера и да го стартирате в демо режим, за да го оцените.


Е, нямам търпение да тествам устройството в експлоатация. Внимателно поставяме чипа в поставката на адаптера, инсталираме самия адаптер в универсалния гнездо на програмиста, свързваме програмиста към лаптоп, лаптоп с 32-битов Windows 10 с инсталиран софтуер, изтеглен предварително от уебсайта на производителя.




За работа на програмиста с NAND FLASH чипове се използва един софтуер, за работа с останалото разнообразие от чипове - друг.
Избираме нашия чип от списъка и...


Устройството внимателно предупреждава за липсата на контакт на конкретни крака на чипа. Внимателно изстискайте панела, преместете чипа - всичко е наред. За да проверим, стартираме autodetect - програмистът определя най-близкия чип от това семейство, всичко е наред.


Пишем, четем, изтриваме, всичко е наред, програмистът бързо изпълнява всички режими.
Е, нека преминем към основното действие, за което е закупен програмистът. По време на работа използваме много десетки индустриални WiFi горещи точки HP MSM-310R.


Устройството е скъпо, но въпреки това не работи. Гаранцията е изтекла, а определен брой от тях са се натрупали. Вътре, както харесват Hewlett-Packard и други бели марки, има изкупен производител, канадски Colubris.


Съдейки по оскъдната информация от производителя и мигането на светодиодите, можеше да се разбере, че проблемът е софтуерен. Точката беше банално не заредена поради повреда във вътрешността файлова системаили износен чип на флаш памет. Е, издухваме чипа K9F5608UOD със сешоар от жива точка, четем го, запояваме го обратно. Откриваме къде в дъмпа за четене има конфигурационни параметри, които описват серийния номер и MAC адресите на устройството. Има два от тях, блокове от няколко килобайта. Те са идентични един с друг. От мъртва точка ние също издухваме чипа, изваждаме го, намираме идентификационни блокове в дъмпа на същите адреси, изрязваме го, запазваме го. Заменяме тези блокове във фърмуера, прочетени от жива точка с необходимите със серийни номера и мъртви MAC. Флашваме нов чип, закупен преди от Aliexpress, с този комбиниран фърмуер, запояваме го и воаля, точката работи. Имах късмет, новият чип, който закупих, се оказа с много високо качество и нямаше лоши блокове от завода, така че дъмпът можеше да се изпише едно към едно, без никакви смени. Разбира се, би било по-методологически по-правилно да се свърже с jtag интерфейса на процесора на точката, но по това време беше твърде много да се пробва неизвестното.
И накрая, бих искал да ви разкажа за мини-състезанията на някои от моите програмисти. Извадих ги от кошчетата, снимах ги и ги подготвих за тестване.


Запознайте се с Bidipro, устройство за самозапояване, което беше доста популярно сред радиоразрушителите по това време. Но поради дълго бездействие, някъде се прокрадна хардуерна грешка под формата на непостоянно или късо съединение, причинено от сребролюбивата сълза на носталгичния електроник, която падна. Освен това софтуерът за управление изисква DOS. Отпада в началото.


Второто устройство, клонинг на SEEPROG, е добър програматор за сериен чип, производителят все още актуализира софтуера.


Третият участник - Ezoflash, опростена версия на Willem, също беше активно използван преди придобиването на MiniPro.


Четвъртият член, TL-866, няма нужда от представяне.
Ще четем-изтриваме-записваме някои чипове, ако корпусите не са DIP, тогава ще използваме комплект MiniPro адаптери. За Ezoflash - техните собствени адаптери, тези, които успяхме да намерим сред развалините. Празните места в таблицата означават, че съответният програмист не може да работи с тествания чип.
Ще използваме и друг компютър с хардуерен LPT порт.
Конфигурацията е доста модерна, DualCore Intel Core i3-4170, 3700 MHz, 4GB RAM, дънна платка Gigabyte GA-H81M-S2PV, SSD устройство ADATA SP550, ОС Windows 7 x32.
Резултатите от изследването ще поставим в таблица, времето на всяко движение на тялото е посочено в секунди.


Има предимство в скоростта на основните операции на USB програмистите.
Не съм проверявал работата на програмиста в режим на програмиране във веригата - поради липса на интерес към тези възможности не съм проверявал и програмирането на микроконтролерите, т.к. 146% съм сигурен във възможностите на устройството.
Обобщавайки, бих искал да подчертая основното
Предимства на този програмист:
изработка,
Широка гама от поддържани чипове, списъкът се актуализира постоянно.
Евтини pin-2-pin адаптери за по-голямата част от микросхемите (с изключение на чиповия SOP44 - DIP40, на цена от неприлични почти петдесет години)
Достъпна цена в сравнение с подобни устройства с подобна функционалност.
недостатъци:все още не е намерен.
Благодаря на всички, които прочетоха до този момент първия ми kreo on muse, предварително се извинявам за евентуален език, който не е вързан, не използвах Word, руският не ми е роден език.
Да, повтарям, устройството е закупено за техните трудно спечелени пари. Смятам да купя +30 Добави в любими Хареса рецензията +75 +124

Намерих снимка в архива си, която изобразява производствения процес на програматора JTAG, който ми трябваше, за да съживя сателитния тунер. Сега малко повече за това какъв „звяр“ е такъв JTAG:

JTAG(съкратено от английски. Съвместна група за действие за изпитване; (произнася се J-tág) е името на работната група, разработила стандарта IEEE 1149. По-късно това съкращение стана силно свързано със специализирания хардуерен интерфейс, разработен от тази група на базата на стандарта IEEE 1149.1. Официалното име на стандарта Стандартен тестов порт за достъп и архитектура за гранично сканиране. Интерфейсът е проектиран да свързва комплексно цифрови микросхемиили устройства на ниво печатни платки към стандартно оборудване за тестване и отстраняване на грешки. За тези, които се интересуват повече, пълната статия е на адресуикипедия.

И сега обратно към бизнеса, сателитен тунер дойде при мен от приятели, най-често срещаният и прост Globo на процесора Ali M3329B. С такива симптоми изобщо не се включи, отначало съгреших на захранването, но след като извиках всички напрежения с мултицет, се оказа, че всичко е наред със захранването. След като проучих няколко различни статии за ремонт на тези приемници, стигнах до заключението, че, съдейки по симптомите, фърмуерът е напълно загубен и можете да го възстановите, като го препратите през JTAG програмист. Имаше и мисълта, че е изгорял напълно и не може да бъде възстановен, но все пак предпочитах да вярвам, че фърмуерът чрез JTAG ще помогне.

За производство избрах тази схема:

Захранването се подава към веригата от приемника, към който е свързан. Използването на външно захранване за веригата не е необходимо по две причини. Първо, консумацията на ток е много малка и не създава допълнително натоварване на захранването на приемника, и второ, захранването от същия източник като процесора с флаш памет подобрява съответствието на логическото ниво.

74HC244 не е инвертиращ буфер. Микросхемата съдържа два независими четирибитови буфера. Всеки буфер има собствен сигнал за разрешаване на изхода (активен ниско ниво). На входовете няма тригери на Шмит. Микросхемата е изработена по "бърза" CMOS технология, която осигурява висока скорост. Мощният токов изход прави възможно поддържането на висока скорост дори при капацитивен товар. Производителността на 74HC244 е сравнима с тази на диодите на Шотки, докато 74HC244 запазва предимствата на CMOS, т.е. висока шумоустойчивост и ниска консумация на енергия. Входовете на микросхемата са защитени от повреда от статично електричество с помощта на диоди.

Уви, не намерих 74HC244 в запасите си. Намерих само аналог на 74F244, който леко се различаваше в захранващото напрежение Vcc. 74HC244 има препоръчителен диапазон от 2 до 6 V, докато 74F244 има препоръчителен диапазон от 4,5 до 5,5 V. Въпреки че максималните граници са от -0,5 до +7 V, реших да не се притеснявам и да започна производството.

Като вземем оригиналната диаграма в първото изображение и я преначертаем в програмата DipTrace, се получи следната диаграма:

Всичко беше маршрутизирано автоматично, не беше маршрутизирана само една линия, но този проблем беше решен от два SMD джъмпера. Изображението по-горе показва готовата за производство печатна платка.

На платката също подписах всички изходи, но за съжаление подписах изходните сигнали неправилно, както можете да видите на източника 1- GND, 2-TCK, 3-TMS, 4-TDO, 5-TDI и 6-RST , но го направих GND, TMS, TCK, TDI, TDO, и RST, направих грешка точно когато подписах контакти, всичко е правилно по схемата, според оригиналния източник, т.е. 1- GND, 2- TCK, 3- TMS, 4- TDO, 5- TDI и 6- RST.

PCB с правилно обозначение на щифта:

Всъщност основното е гетинакс, пила, малък ръчен трион, шкурка. Отвертка и резачка за разделяне на гетинакса на 2 части, тъй като моето парче беше с фолио от двете страни, а нашата дъска е проста, едностранна.

След като свършим цялата работа, завъртайки getinax до размерите на дъската (приблизително 55x50 mm), вземаме почистващия препарат COMET (Komet) на прах и гъба за миене на съдове. Почистваме гетинакс от следи от мазнини и мръсотия. По-добре е да не изтривате останалата вода, а да я оставите да изсъхне така.

Докато гетинаксът изсъхва, отиваме до компютъра и отпечатваме нашата схема на лазерен принтер и фотохартия в огледално изображение, което показва максимално качество на печат. Важно е да не забравите да поставите огледално отражение, в противен случай в резултат на дъската ще получим всичко!

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

Естествено фолио страната на гетинакс към шаблона на печатната платка.

Когато ютията се затопли, притискайки силно, започваме да гладим - равномерно нагрявайки гетинаците отстрани на хартията. Загряваме дъска с този размер за не повече от 30-60 секунди, в противен случай тонерът ще се разпространи. Препоръчвам да настроите таймер на телефона си, така че времето да е близо, пред очите ви. Когато всичко е готово, оставете дъската да изстине.

Откъсваме фотохартията от дъската, пред нас е готовата дъска, която остава да бъде гравирана в железен хлорид FeCl₃, ако няма големи дефекти, преди ецване, коригираме следите със скалпел и тънък диск маркер.

В процеса на ецване с железен хлорид е необходимо непрекъснато да се смесва разтворът, например чрез разклащане на съдовете. Ако размерът на дъската не е много голям, можете да поставите дъската върху повърхността на разтвора с шаблона надолу - няма нужда да се разклаща, но е трудно да се проследи края на процеса на ецване. Времето за ецване с железен хлорид е от 5 до 50 минути и зависи от температурата, концентрацията на разтвора и замърсяването му с мед, дебелината на медното фолио. След ецване дъската трябва да се изплакне с течаща вода и да се изсуши.

В резултат на това получаваме такава печатна платка

Тонера също почистваме с прах Comet, държи се достатъчно добре и за да не се повредят следите на платката го почистваме бавно.

След почистване от тонера виждаме чиста, красива печатна платка


Сега нека започнем да запойваме елементите:

2017-05-25 Дата на последна промяна: 2018-10-10

Статията се занимава с: Характеристики на използването на микросхеми NAND FLASH, методи за оформление на страницата и управление на лошо блокове. Препоръки за програмиране на програмисти.

СЪДЪРЖАНИЕ:

1. ТЕОРИЯ

1.1. Разликата между NAND FLASH чиповете и конвенционалните чипове

Ако не се задълбочите в тънкостите на технологията, тогава разликата между микросхемите NANDот други чипове памет е както следва:

  • Микросхеми NANDимат много голям обем.
  • Микросхеми NANDмога да имам лоши (лоши) блокове.
  • Размер на страницатазаписи не е степен на 2 .
  • Писане на микрочипизвършено само страници , изтриване - поне на блокове .

Има няколко други разлики, но първите две са основните. Предизвиква най-много проблеми наличие на лоши блокове.

1.2. Организация на NAND FLASH чипове

Научете повече за организацията и структурата на микросхемите NANDможе да се прочете в специализираната литература, но отбелязваме, че:

  • Микросхеми NANDорганизиран в страници (страници), страници в блокове (блокове), блокира логически модули (луна).
  • Размер на страницата NAND не кратно на степен 2.
  • Страницата се състои от основенИ резервен (резервен) области.

По замисъл на разработчиците NAND восновна областтрябва да се намери самите данни, но в резервна (резервна) зона - лоши маркери за блокове, контролни сумиосновна площ, други сервизна информация.

Ако говорят за размер на страницата NAND чипове 512 байт или 2Kбайтове, тогава говорим за размер на основната площстраници, с изключение на резервен.

1.3. Начини за използване на резервна зона за страници

Нека припомним още веднъж, че според намерението на разработчиците на NAND чипове в свободната зона трябваразположен: лоши маркери за блокове, контролни сумиосновна област с данни, другисервизна информация.

Повечето разработчици описват само местоположениелоши маркери за блоковев предоставените микросхеми. За други аспекти на използването на резервната площ са дадени общи препоръки и алгоритъм за изчисляване на ECC, обикновено според Хейминг. Samsung отива още по-далеч с препоръките, наречени " Резервна зона на NAND флаш памет. Стандарт за дестинация "("NAND Flash Spare Area. Assignment Standard", 27. април 2005 г., Отдел памет, Samsung Electronics Co., Ltd).

И така, този стандарт предполага следното използване на резервната площ:

За микросхеми с размер на страницата 2048+64 байта t основната и резервната област на страницата са разделени на 4 фрагмента (сектора) всеки:

регионРазмер (байт)Фрагмент
Основен512 Сектор 1
512 Сектор 2
512 Сектор 3
512 сектор 4
Резервен16 Сектор 1
16 Сектор 2
16 Сектор 3
16 сектор 4

Всеки фрагментосновната им област е подравнена фрагмент от резервната площ.

Използване на резервна площ (за всяка от четирите плочки)
за чипове с размер на страницата 2048 + 64 байта:
пристрастие
(байт)
размер
(байт)
ПредназначениеОписание
Лош маркер за блок
запазен
Номер на логически сектор
Запазено за номер на сектор
запазен
ECC код за основната област на страницата
ECC код за номер на логически сектор
запазен

Но това не е единственият "стандарт" за разпределяне на паметта на страници, само ние знаем за няколко десетки от тях, например:

  • "Управление на NAND FLASH под WinCE 5.0 ", NXP;
  • "Управление на лоши блокове за NAND Flash с помощта на NX2LP “, 15 декември 2006 г., Cypress Semiconductor;
  • "Управление на лоши блокове OLPC NAND ", OLPC.

1.4. NAND изображение и двоично изображение

Може да срещнете два вариантаизображение за запис:

  1. Двоичен не счупенкъм страници и няма свободна площ.
    Тази опция е възможна, ако използвате разработчик на устройство NANDили получи такъв файл от разработчика. Такова изображение е подходящо за писане на чипове със страници с всякакъв размер и всякакво разпределение на резервната площ, просто трябва да знаете по какъв метод ще се формира резервната зона.
  2. Изображение, прочетено от друг чип (извадка), съдържащо резервна зона с лоши маркировки на блок, сервизна информация и контролни кодове.
    Такова изображение може да бъде написано самов микросхемата точно същия размерстраници и блокове.

Тези специалисти, които се занимават с ремонт на различно оборудване, са по-склонни да се сблъскат с втория случай. В такъв случай често е трудно да се определи използвания метод за разпределение на резервната площ и използвания метод за управление на лоши блокове.

1.5. Фабрично маркиране на лоши блокове

Единственото нещо повече или по-малко стандартизирано е фабрично маркиране на лоши блокове.

  • Лошите блокове са маркиранина 0-та или 1-ва страницаза чипове с размер на страницата по-малък от 4K.
  • За 4K страници и още, маркировката може да е включена последна страницаблок.
  • себе си лош маркер за блоксе намира в резервната зона за страници в байт 5 за малки страници (512 байта) и байт 0 за големи страници (2K).
  • Лош маркер за блокможе да има значение 0x00или 0xF0 за малки странициИ 0x00 за ощеХ.
  • добри блоковевинаги етикетирани 0xFF.
  • Във всеки случай стойността различен от 0xFFпрограмист възприема като лош маркер за блок.
  • Обикновено в съвременен NAND лошият блок е напълно запълнен със стойността 0x00.

Има един проблем: лошият блок може да бъде изтрит. По този начин можете да загубите информация за лоши блокове на микросхемата.

Въпреки това, ако микросхемата вече е работила в устройството, този метод за маркиране на лоши блокове не винаги се използва. Понякога дори информацията за лоши блокове не се съхранява в NAND паметта. Но най-често, дори ако разработчикът на софтуер на устройството използва различна схема за управление на лоши блокове, той предпочита да не изтрива фабричното маркиране.

1.6. Лошо управление на блоковете

Разработчици NANDмикросхемите предлагат използването на следните схеми за управление на лоши блокове:

  • паслоши блокове
  • Използване резервенобласти

Също така методите за управление на лоши блокове понякога включват използването на поправка на грешка(ECC). Трябва да се отбележи, че използването на корекция на единична грешка не елиминира множество грешки и все пак принуждава да се използва една от горните схеми. Освен това повечето NANDмикросхемите имат гарантиран безопасен регион, в който не се появяват лоши блокове. Безопасната зона обикновено се намира в началото на чипа.

Тези методи за управление на лоши блокове са добре описани в техническата документация на производителите. NANDи широко обсъждан в литературата за употребата NAND. Нека обаче накратко припомним тяхната същност:

Пропускане на лоши блокове:
Ако текущият блок е лош, той се пропуска и информацията се записва в следващия свободен блок. Тази схема е универсална, лесна за изпълнение, но донякъде проблематична за случаите, когато по време на работа се появяват лоши блокове. За пълното функциониране на тази схема логическият номер на блока трябва да се съхранява вътре в блока (стандартът за присвояване на резервна зона от Samsung, всъщност това предполага). Когато работи по тази схема, контролерът трябва да съхранява някъде таблица за съответствие между номерата на логически блокове и техните физически номера, в противен случай достъпът до паметта ще бъде значително забавен.

Следователно логичното развитие е схемата използване на резервната площ:
Съгласно този метод цялото количество памет се разделя на две части: основна и резервна. Когато лош блок се появи в основната памет, той се заменя с блок от резервната памет и се прави съответен запис в таблицата за пренасочване на блокове. Таблицата за пренасочване се съхранява или в гарантиран отказобезопасен блок, или в множество екземпляри. Форматът на таблицата е различен, съхранява се на различни места. Отново Samsung описва стандарт за формата и оформлението на таблицата, но малко хора го спазват.

2. ПРАКТИКА

2.1. Сканиране за лоши NAND блокове

програмист ChipStarви позволява бързо да сканирате чипа NANDза наличие на лоши блокове в съответствие с фабричната маркировка на лоши блокове.

Изберете елемент от менюто " Чип|Потърсете лоши блокове ", чипът ще бъде проверен за лоши блокове. Резултатът е показан в таблица.

Това действие е необходимо само ако просто искате да видите списъка с лоши блокове. Във всички останали случаи търсенето на лоши блокове се извършва автоматично, когато е необходимо.

2.2. Лоши блокове в изображението NAND

Когато чете изображението на NAND чипа, програмистът допълнително записва информация за размера на страницата и блока на чипа. Информацията се записва в отделен файл. Така че, ако прочетете и запазите изображението на микросхемата във файл <имя_файла>.nbin програмата ще създаде друг файл: <имя_файла>.cfs . При отваряне на файл <имя_файла>.nbin файл <имя_файла>.cfs също ще се брои. Във файла <имя_файла>.cfs записва се информация за размера на страницата и блока на чипа. След като прочетете чипа или отворите файл като .nbin , се извършва фоново сканиране на изображението за лоши блокове въз основа на информация за размера на страницата и блока.

Параметри NANDи информация за лоши блокове може да се види в раздела " NAND"Редактор на програмисти:

двоично изображение NANDможе да се види под Главна памет ":

В режим на редактор NANDсвободната зона на страницата е маркирана по-тъмен цвят, бутоните за придвижване през страници, блокове и бързо прескачане в началото на резервната зона също стават достъпни текуща страница. В реда за състояние на редактора, в допълнение към адреса на курсора, той допълнително се показва номер на страницатаИ номер на блокакъдето се намира курсорът. Всичко това ви позволява по-удобно да преглеждате съдържанието на чипа.

2.3 Изтриване на NAND

Програматор по подразбиране не изтривалоши блокове, но ако изключите опцията " Проверка и пропускане на лоши блокове " лошите блокове може да бъдат изтрити и маркирането на лошите блокове може да бъде загубено. Деактивирайте тази опция само ако е необходимо.

Само лоши блокове, маркирани според фабричните маркировки, се пропускат. Ако устройството използва други маркировки за лоши блокове, те ще бъдат изтрити, защото софтуерът на програмиста няма да ги види. За да работи с нестандартни маркировки на лоши блокове, програмистът може да използва външни плъгини.

2.4. Тестване на микросхемата за липса на запис

По подразбиране програмистът игнорира всички лоши блокове при проверка, но ако деактивирате " Сканиране и пропускане на лоши блокове "лошите блокове ще бъдат проверени, което естествено ще доведе до грешки при тестване.

2.5. Записване на готовото изображение в чипа

Запис на изображение NANDв микросхема е малко по-различно от обичайното FLASHмикрочипове. На първо място, те трябва да съвпадат размери на странициизображение и целеви чип. Ако се използва лошо управление на блокове, трябва да съответства размери на блоковеизображения и микрочипове.

Софтуер за всички програмисти ChipStarподдържа три метода за управление на лоши блоковевградени инструменти и неограничен брой с помощта на плъгини. Освен това можете да зададете броя на записаните блокове в началото на чипа, което всъщност е четвъртиначин за управление на лоши блокове.

Метод 1: Игнорирайте лошите блокове

Просто копиране, игнориране на лошите блокове (лошите блокове се записват по същия начин като нормалните).

оригинално изображение чип
(първоначалното състояние)
чип
(резултат)
Блок 0
добре
Блокиране
чисти
Блок 0
добре
Блок 1
лошо
Блокиране
чисти
Блок 1
фалшиво
Блок 2
добре
Блокиране
чисти
Блок 2
добре
Блок 3
добре
Блокиране
лошо
Блок 3
дефектен
Блок 4
добре
Блокиране
чисти
Блок 4
добре
Граница на запис
Блок 5
добре
Блокиране
чисти
Блокиране
чисти

Най-подходящ за копиране на NAND чипове, без да се задълбочава във вътрешната му структура, при условие, че чипът да бъде записан не съдържа лоши блокове . Ако в оригиналното изображение имаха лоши блокове , в крайна сметка се образува фалшиви лоши блокове . Появата на фалшиви лоши блокове няма да повлияе на работата на устройството. Въпреки това, ако чипът вече съдържа лоши блокове, когато се опитате да пишете в такъв чип, ще се появят лоши блокове с непредвидими последици. Съвет: можете да опитате да изтриете напълно чипа, включително лошите блокове, след което да го копирате. Ако записът в лош блок успее (това често се случва), вашето устройство ще функционира правилно, в бъдеще софтуерът на устройството ще идентифицира лошия блок и ще го замени с добър в съответствие с неговия алгоритъм за работа.

Метод 2: заобикаляне на лошите блокове

оригинално изображение чип
(първоначалното състояние)
чип
(резултат)
Блок 0
добре
Блокиране
чисти
Блок 0
добре
Блок 1
лошо
Блокиране
чисти
Блокиране
чисти
Блок 2
добре
Блокиране
чисти
Блок 2
добре
Блок 3
добре
Блокиране
лошо
Блокиране
лошо
Блок 4
добре
Блокиране
чисти
Блок 4
добре
Граница на запис
Блок 5
добре
Блокиране
чисти
Блокиране
чисти

Заобикаляне на лоши блокове не се записват лоши блокове от изходното изображениеИ информацията не се записва в лоши блокове на микросхемата. Това не е най-добрата политика за копиране, но е безопасна срещу лоши блокове на чип: не се губи информацияза лоши блокове с чип и не се появяват фалшиви лоши блокове. В някои случаи подобна политика за копиране може да помогне за възстановяване на функционалността на неизвестно устройство.

Метод 3: Пропускане на лоши блокове

оригинално изображение чип
(първоначалното състояние)
чип
(резултат)
Блок 0
добре
Блокиране
чисти
Блок 0
добре
Блок 1
лошо

Блокиране
чисти
Блок 2
добре
Блок 2
добре
Блокиране
чисти
Блок 3
добре
Блок 3
добре
Блокиране
лошо
Блокиране
лошо
Блок 4
добре
Блокиране
чисти
Блок 4
добре
Граница на запис
Блок 5
добре
Блокиране
чисти
Блокиране
чисти

Записване при пропускане на лоши блоковепредполага, че устройството използва точно такъв алгоритъм за управление на лоши блокове, а не някакъв друг. При тези условия е гарантирано правилното копиране на информацията.

Метод 4: Напишете само гарантираната безопасна зона

оригинално изображение чип
(първоначалното състояние)
чип
(резултат)
Блок 0
добре
Блокиране
чисти
Блок 0
добре
Блок 2
добре
Блокиране
чисти
Блок 1
добре
Граница на запис
Блокиране
лошо
Блокиране
чисти
Блокиране
чисти
Блок 3
добре
Блокиране
лошо
Блокиране
лошо
Блок 4
добре
Блокиране
чисти
Блокиране
чисти
Блок 5
добре

Блокиране
чисти

Блокиране
чисти

В повечето модерни NANDмикросхеми, първите блокове (поне един) са гарантирани, че нямат повреди. В много устройства кодът за зареждане се намира в началото на чипа и операционна системаустройства. Често е достатъчно да копирате само тези области.

Посочете размера на записа в блокове в диалоговия прозорец за настройки на режимите на запис.

Други начини за управление на лошите блокове

софтуер Програмисти на ChipStarподдържа всички алгоритми за управление на лоши блокове NANDизползване на външни плъгини. Ако са инсталирани плъгини, описания на допълнителни методи се появяват в " Управление на лоши NAND блокове ". Можете да конфигурирате параметрите на избрания метод, като щракнете върху " Външен плъгин ".

Използване на кодове за коригиране на грешки (ECC)

Използването на кодове за коригиране на грешки позволява възстановяване на единични грешкина страницата NAND.

Могат да се използват различни алгоритми за възстановяване на единични грешки в сектор. В зависимост от алгоритъма ECC, различен брой грешки на сектор (512+16 байта) могат да бъдат възстановени. под термина " единичен "разбрах грешка само в един битданни. За NAND с размер на страница 512 + 16 байта, концепцията за " сектор" И " страница" съвпада. За NAND с големи размери на страници, програматорът ChipStar използва схема за пейджинг на сектори, както е описано. В настройките за запис или проверка можете да посочите колко грешки на сектор може да коригира алгоритъмът, използван във вашето устройство. Съответно, микросхеми с приемлив брой грешки няма да бъдат отхвърлени, информацията за броя на коригиращите грешки се показва в прозореца за статистика:

Информация за броя на разрешените грешки на сектор за всеки конкретен чип може да бъде намерена в документациякъм микрочипа. Всички новодобавени NAND чипове се въвеждат в базата данни на програмиста, като се отчита броят на допустимите грешки.

Чрез самодобавянемикрочипове:

  • ако поддържан от ONFI, след това допустимия брой грешки на сектор Прочетиот таблицата с параметри на чипа и инсталиранидо правилната стойност.
  • ако чипът не поддържа ONFI, потребител трябва да зададете стойността самикато използвате документацията за чипа.

За нови чипове NANDпроизводство Samsungстойността на позволения брой грешки на сектор се кодира като част от идентификатора на чипа. Следователно за такива чипове допустимият брой грешки на сектор също ще бъде зададен правилно.

При четене на съдържанието на микросхемата с цел по-нататъшното й съхранение или копиране, единични грешки не могат да бъдат надеждно открити. След това полученото изображение може да бъде анализирано отделно за грешки чрез изчисляване на ECC кодове за проверка от външно приложение, при условие че точно използвания алгоритъм и маркирането на страницата са известни .

Софтуерът за програмиране ChipStar предлага индиректен статистически метод за идентифициране и елиминиране на единични грешки. Методът само разкрива нестабиленгрешки с не е гарантиранодостоверност. За да извършите четене с откриване на грешки, трябва да изберете " Селективно четене" и в раздела "NAND" поставете отметка в квадратчето " Активирайте режима за корекция на грешки"

Можете да зададете броя на повторните опити за четене за сравнение и общия брой опити за четене при грешка. Трябва да се има предвид, че използването този методсъществото забавя процеса на четене.

Алгоритъмът за откриване на статистически грешки работи по следния начин:

  1. Страницата NAND се чете няколко пъти подред (поне три).
  2. Прочетените данни се сравняват байт по байт.
  3. Ако не бъдат открити грешки при сравнение, се приема, че страницата е без грешки.
  4. Ако се открият грешки по време на сравнението, страницата се чете още няколко пъти.
  5. За всяка грешка, броят на прочетените единициИ нули.
  6. Счита се правилната стойност ("0" или "1"), която се оказа повече.

Алгоритъмът работи добре, ако вероятността от грешка в определен бит от микросхемата е по-малка от 0,5. При четене на микросхема се отчитат "коригирани" грешки и вероятността за правилно отчитане.

2.6. Преобразувайте двоично изображение в NAND изображение

Всичко описано по-горе беше по-скоро за копиране NANDи записва според модела на чипа, обаче често е необходимо запишете оригиналното двоично изображение на програмата в чист чип. Преди да пишете, трябва да конвертирате двоичното изображение в NAND изображение, като добавите към всяка страница резервна площи го попълнете правилно. За да направите това, отворете своя двоичен файл, изберете елемента от менюто " ". Ще се появи диалогов прозорец:

Задайте режима на преобразуване на формат NAND: " Двоично изображение... ", посочете страницата и размера на NAND блока или изберете необходимия чип. Изберете формата на резервната област. Програматорът поддържа просто запълване на областта с FF стойности с вградени инструменти и други методи с помощта на плъгини. Програматорът идва с плъгин, който изпълнява назначенията за резервни зони, препоръчани от Samsung.

Ако трябва да приложите някое друга опция за разпространение - уведомете ни и ние ще подготвим подходящия плъгин или можете сами да внедрите необходимия плъгин.

2.7. Съвместимост с NAND изображения, четени от други програмисти

ако имате NAND изображение, прочетена от друг програмист или получена от друг източник, трябва да бъде преобразувамвъв формат за запис Програмист на ChipStar.

За да направите това, изпълнете следните стъпки:

  • Отворете файла си, изберете елемент от менюто " Редактиране|Превключване на режима на NAND редактор ". Ще се появи диалогов прозорец, както е показано по-горе.
  • Задайте режима на преобразуване на формат NAND: "Изображението вече е NAND... “, посочете размер на страницатаИ блок NANDили изберете необходимия чип. щракнете върху " Продължете".
  • В редактора ще се появи раздел NAND “ и изображението ще започне да сканира за лоши блокове.
  • Полученият файл може да бъде записан като NAND, файлът ще получи разширението .nbin по подразбиране.

2019-12-30 Дата най-новата актуализацияпрограми: 2019-12-30

Двуликият Янус

Решихме да се обадим на този програмист " Янус".

Защо така? Защото в римската митология Янус е двуличнабог на вратите, входовете и изходите, както и началото и края. Каква е връзката? Защо нашият програмист ChipStar-Janus двулична?

И ето защо:

  • От едната страна, този програмист е прост. Разпространете като безплатен проект, то може лесно да направите сами.
  • От другата страна, той се разработва от компанията, за дълго време професионално ангажиранразработване и производство на различно радиоелектронно оборудване, включително програмисти.
  • От едната страна, този програмист е прост, на пръв поглед има не особено впечатляващи характеристики.
  • От другата страна, работи във връзка с професионална програма(между другото, точно същото като другите професионални програмисти на ChipStar).
  • От едната страна, ние предлагаме този програмист безплатно Безплатноасамблеи.
  • От едната страна, продаваме го и в готов вид, като редовен бюджетен продукт.
  • От едната страна, самоделният програматор не се покрива от гаранцията (което е естествено).
  • От едната страна, ако сте успели да го сглобите, тогава можете да го поправите, а програматорът е толкова прост, че всъщност няма какво да се счупи.
  • От едната страна, просто е във веригапрограмист.
  • От едната страна, чрез прости адаптери за разширение, той поддържа програмиране NAND FLASHи други микросхеми вече са "в гнездото".

Така че програмистът ChipStar Янусза много специалисти това може да бъде реален изход в ситуация, когато различни прости или любителски програмисти вече не са достатъчни, а по-сложен програмист изглежда излишен или няма достатъчно разпределен бюджет за него.

Какво ни подтикна да разработим този програмист.

Има много прости специализирани програмисти, подходящи за самостоятелно производство.

Има много евтини китайски програмистивече подготвени.

Има доста аматьорско развитие, често превъзхождащи по качество последните.

Изглежда, какъв е смисълът от друг занаят?

От дълго време разработваме, произвеждаме и поддържаме универсални програмисти, основно за целите. Имаме богат опит в работата с различни микросхеми. Често към нас се обръщат хора, които вече са сглобили и често са закупили някой от гореспоменатите „продукти“. Често е невъзможно нашите специалисти да разгледат схемните решения, качеството на сглобяване и особено софтуера на тези устройства без смях / сълзи / ужас (подчертайте, ако е необходимо). Е, когато програмистът струва "три копейки", аз го купих, нещо работи, нещо не става, но парите не са големи. Но често съотношението цена/качество на такива устройства ни изненадва, меко казано. Искам да възкликна: не струва толкова!

В допълнение към всичко изброено по-горе, има специална категория програмисти, подходящи за самостоятелно производство - това са програмисти (по-точно програмни схеми и софтуер), разработени от специалисти от компании, произвеждащи микросхеми (главно микроконтролери). Такива програмисти са проектирани доста професионално, няма "гафове" в тяхната схема. Те поддържат всички декларирани чипове. Но има два "малки" недостатъка: списъкът с програмируеми микросхеми е много ограничен (което е съвсем разбираемо) и софтуерът е много спартански - без допълнителни функции, като правило - само изтрива, записвам, проверете. Често дори функции четененяма микрочип.

Така че програмистът ChipStar Янусв първоначалната конфигурация, това е програматор във верига. В този режим той поддържа микроконтролери PICИ AVRфирми микрочип, някои архитектури на микроконтролери MCS51, микроконтролери STMicroelectronicsи редица други, както и чипове със серийна памет с интерфейс I2C(предимно епизод 24). Можете да свържете най-простите адаптери към конектора за разширение на програмиста и да започнете да програмирате чипове памет "в гнездото".

Програмирането "в сокета" вече е реализирано:

  1. EPROM) с интерфейс I2C(серия 24xx);
  2. серийни чипове с флаш памет (Serial FLASH) с интерфейс SPI (SPI Flash);
  3. серийни чипове памет (Serial EPROM) с интерфейс MW (93xx серия);
  4. микрочипове NAND FLASH;

Програматорът и софтуерът поддържат технологията за самодобавяне на микросхеми с три щраквания. Досега е реализирано добавянето на микросхеми NANDИ I2C. В много близко бъдеще се планира да се внедри тази технология за MW чипове ( 93xx серия) И AVR. Така получавате не просто програмист, а мощен инструмент за самостоятелна работа.

Три начина да получите програмист ChipStar-Janus

1-ви начин:
Сглобете сами програмиста напълно

Методът е подходящ за тези, които имат време, опит и желание, но ограничени финансови средства. Или просто любопитен.

Алгоритъм за действие:

2-ри начин:
Сглобете сами програмиста, като закупите готова печатна платка и светкав микроконтролер

Методът е подобен на предишния, само че ще се спасите от най-трудните операции: производство на печатни платки и фърмуер на микроконтролер без програмист.

Алгоритъм за действие:

  1. Прочетете условията за използване на самостоятелно сглобения програмист.
  2. Прочетете инструкциите за сглобяване на програмиста.
  3. Изтеглете пълната документация за програмиста.
  4. Купете комплект за сглобяване (готова печатна платка и микроконтролер с вече написан фърмуер).
  5. Закупете необходимото оборудване за сглобяване на програмиста според