Spi flash firmware via lpt-port. Hur man flashar en TV om den inte slår på

Vi laddar om spi-flash-minnet om den fasta programvaran har kraschat

Ett av de vanligaste felen hos moderna LCD-TV-apparater är att firmware kraschar.

I det här fallet går inte TV:n från standbyläge till arbetsläge. Reagerar inte på att trycka på knappar eller kommandon från fjärrkontrollen. I de flesta fall kan detta problem lösas genom att flasha SPI-Flash-minneskretsen.

Jag kommer att lista de viktigaste tecknen på en firmwarekrasch:

    TV:n slås inte på, även om det finns en indikation på standbyläge. Indikatorn tänds. Jag noterar den där tv:n slutar slås på helt. Om den ibland svarar på kommandon och slås på, är felet troligen relaterat till strömförsörjningen;

    LCD-TV:n går inte in i driftläge vare sig genom ett kommando från knappsatsen eller genom ett kommando från fjärrkontrollen. I vissa fall är det en reaktion på att trycka på "Power" -knappen - indikatorn ändrar färg, men TV:n slås inte på.

Vad behövs för att flasha minneskretsen?

USB-programmerare för chips i SPI-Flash 25-serien.

Jag har använt Postal 3 USB-programmerare under lång tid som programmerare för att flasha minneschips. Den är också känd som Postal AVR. Jag köpte ett set för självmontering. Tillsammans med det lösa pulvret, som inte ingår i satsen, kostade programmeraren mig cirka 500 rubel. Jag köpte den specifikt för blinkande SPI-Flash-chips från LCD-TV.

Nu kostar setet 550 rubel, men alla SMD-småsaker är fastlödda på brädan. Länk till sidan där du kan beställa Postal 3 (USB). Där hittar du också instruktioner för att installera och konfigurera programvaran.

Så här ser den sammansatta programmeraren ut.

Naturligtvis kan du nu hitta andra programmerare på rea (till exempel CH341A).

Du måste fokusera på underhåll, prisvärdhet, nödvändig funktionalitet och communitysupport (produkten måste vara populär i amatörradiogemenskapen, ha tillgänglig dokumentation och programvara).

Om dina händer är raka och du har tid, då kan du montera programmeraren själv.

För att arbeta med Postal 3 USB-programmerare används ett program med samma namn (Postal 2/3).

Aktuell information om Postal 3-programmeraren (signetdesign, firmware för mikrokontrollern, programvara, frågor/svar, etc.) finns i de specialiserade ämnena på forumet Monitor och hushållsapparater och elektronikreparationer.

Du kan också ladda ner detaljerad manual på firmware för minneschips olika serier från Fedor (fsem) via länken (PDF-format).

Vad är firmware och var kan jag få tag på det?

Den fasta programvaran är en fil i formatet .bin, som ibland också kallas en minnesdump eller helt enkelt en dump. Det är den fasta programvaran som styr driften av LCD-TV:n.

Var kan jag få en fungerande firmware?

Det enklaste sättet att hitta lämplig firmware är att skriva en fras som: "din enhetsmodell firmware (ladda ner)" i Googles sökfält. Till exempel "mystery mtv-3223lt2 firmware" eller "mystery mtv-3223lt2 download firmware". Men den här metoden hjälper inte alltid.

Fungerande firmware kan hittas på Internet på specialiserade forum och webbplatser där radiomekaniker och serviceingenjörer utbyter dem. De mest populära internetresurserna av detta slag är:

Hur man hittar det man behöver i ett stort hav av information är ett separat ämne. Men för att göra din sökning framgångsrik ska jag ge dig några fler tips.

Hitta den fasta programvaran som krävs efter nummer moderkort(huvudkort eller bana).

Chassinumret anges vanligtvis på själva chassit. tryckt kretskort. Följande bild visar huvudkortet Rolsen TV RL-28D1307. Som du kan se är chassinumret angivet på det - TP.VST59S.P89.

Den fasta programvaran för enheten åtföljs vanligtvis av en lista som anger huvudsammansättningen av dess elektroniska fyllning.

Detta är en lista med markeringar av huvudmikrokretsarna eller blocken: processor (alias scaler), flashminne, LCD-panel, T-CON-kort, tunermodul, etc. Från den här listan kan du noggrant avgöra att firmware är lämplig specifikt för din enhet. Detta kan vara nödvändigt när samma TV-modell har olika versioner, där andra komponenter och block kan installeras.

Särskild uppmärksamhet bör ägnas åt LCD-panelens nummer. Vanligtvis är det indikerat på kroppen. Om allt i listan överensstämmer, men LCD-panelens nummer är annorlunda, kanske din TV inte fungerar korrekt med denna firmware.

I ganska sällsynta fall är det inte möjligt att hitta firmware för den önskade enheten. Till exempel kunde jag inte hitta firmware för Hyundai H-LED19V15 LCD-TV. Men när jag började leta efter den efter chassinumret (huvudkortet) upptäckte jag att exakt samma huvudenhet var installerad i Liberton LED 1910 ABHDR TV. Jag tog firmware från honom.

Som det visar sig är dessa två TV-modeller kompletta kloner. Den enda skillnaden är märket. Det var roligt när, när man slog på Hyundai H-LED19V15, en stänkskärm med inskriptionen Liberton dök upp på skärmen.

Val av spi-flash-minne för utbyte.

Flashminne (SPI-Flash-minne) används i moderna LCD-TV-apparater, MP3-mottagare för bilar, DVR av alla slag och moderkort personliga datorer, set-top boxar och även i pratande leksaker och fotoramar.

Som regel använder de 25 serie SPI-Flash minneschips (MX25L1633E, MX25L1605A, MX25Q32B-104HIP, W25Q32FVSSIG, G25Q16-15G, GD25Q32, HG25Q32BVSIG, etc.). Strömförsörjningen för denna serie av mikrokretsar är 3-volt (2,7...3,6V), till skillnad från 24-serien som har Märkspänning Strömförsörjningen är 5 volt, och typen av minne är annorlunda.

Ofta är mikrokretskroppen ofullständigt märkt med något som 25Q64BSIG, men inskriptionen 25Qxx, 25Lxx eller något liknande finns alltid. Istället för xx - kodmärkning av mikrokretsens minneskapacitet.

Mikrokretsarna har ett SOIC-8-paket för plan montering.

Andra typer av hus kan också användas, till exempel SOIC-16 (300 mil).

Det är möjligt att du i praktiken inte bara hittar spi-flash-mikrokretsar med stift, utan även i paket för BGA-montering (på kulor) eller med stift i form av en kontakt (pad), till exempel WSON-8 (DFN) -8). Lyckligtvis är dessa ganska sällsynta på LCD-TV. Men det är för nu...

Istället för originalminneschippet är det bättre att använda ett nytt eller ett känt bra. Den infödda kan vara defekt eller defekt. Även om vi lyckas sy den fungerande firmware, då är det inte ett faktum att mikrokretsen kommer att fungera korrekt i framtiden.

Det är bättre att inte slänga det ursprungliga SPI-Flash-chippet, eller att läsa det och behålla originalet från det, fabriksfirmware. Detta är en försäkring i fall ny firmware kommer inte att göra.

Det händer att TV:n börjar fungera efter att ha flashat om det ursprungliga minneschippet med sin egen fabriksdumpning. Men, som jag redan har sagt, är det bättre att byta ut mikrokretsen med en ny.

Enligt min mening uppstår de flesta firmwarekrascher på grund av defekter i minneschips, snett skriven mjukvara (firmware), eller efter strömproblem som leder till felaktig funktion av chippet. Ibland måste du återställa minneschippen i TV-apparater som kom in för reparation på grund av fel på strömförsörjningselementen (på grund av åskväder eller strömstörningar).

De vanligaste chipsen som finns på LCD-TV är 25Q32 32 Mbit (4 MB eller 4194304 byte) och 25Q64 64 Mbit (8 MB eller 8388608 byte).

Varför 8388608 byte och inte 8000000? För alla som inte förstår denna förvirring med kilobyte och megabyte, och varför det är nödvändigt att multiplicera inte med 1000, utan med 1024, råder jag dig att googla "Kibibyte". Kanske kommer du att skingra en annan myt för dig själv, som det faktum att strömmen inte flyter från plus "+" till minus "-", utan vice versa.

Så vi har mer eller mindre listat ut teorin, låt oss nu börja träna.

Låt mig återigen påminna dig om något viktigt. När du reparerar en LCD-TV är det första du bör göra att se till att orsaken till det är felaktig funktion ligger just i den "flashade" firmwaren. Fel i strömförsörjningen (standby eller huvud) visar sig på liknande sätt.

Vi kommer att återuppliva minnet med exemplet med Mystery MTV-3223LT2 LCD-TV. På bilden fungerar den redan som den ska.

Felet visade sig på följande sätt. TV:n slogs inte på, men när jag tryckte på "Power"-knappen på fjärrkontrollen eller knappsatsen ändrade LED-indikatorn färg.

Öppna bakstycket på TV:n. I det här fallet är det bättre att placera det på en soffa eller säng för att förhindra skador på LCD-matrisen.

Skruva loss bultarna runt omkretsen bakstycket. Bli inte förvånad över att LED-belysningen är på. Jag har redan tagit bilden på min fungerande TV.

Nästan alla elektronisk fyllning koncentrerad på ett kretskort.

Här är en strömkälla, en DC/DC-växelriktare för att driva LED-bakgrundsbelysningen och en scaler ( CPU), samt en tunerenhet och förstärkare. Allt finns på en bräda.

Förresten, LCD-panelnumret för vår Mystery MTV-3223LT2 (V4N09) TV anges på klistermärket (V320BJ7-PE1).

Efter att ha inspekterat kretskortet och mätt huvudspänningarna stod det klart att hårdvaran fungerade korrekt, och felet var med största sannolikhet relaterat till mjukvarudel anordning.

Vi tar bort kortet för att ta bort minneschippet. Om du inte är säker på att du senare, under monteringen, kommer att kunna ansluta alla ledningar och kablar korrekt, då gör vi högkvalitativt foto eller skriv ner/märk vad som hänger ihop med vad.

Nu måste vi välja en ersättare för vår mikrokrets. Som du kan se använder denna TV 25Q64BSIG med en minneskapacitet på 8 MB (64 Mbit). Istället ska jag installera en ny W25Q64FVSIG mikrokrets från Winbond.

Därefter löder vi mikrokretsen. Tidigare klarade jag mig med en vanlig lödkolv och koppartråd, ibland lödde jag med en varmluftsfön lödstation. Men nu använder jag Rose legering. Med det kommer du inte att överhetta något, och spåren på kretskortet lossnar inte.

Vi löder chipet och tar bort det återstående lodet från spåren med kopparfläta.

Vi tvättar bort det återstående flussmedlet med isopropylalkohol. Platsen för att installera det flashade minnet är redo.

Nu är det dags att flasha det nya flashminnet.

Firmwarefilen för LCD TV Mystery MTV-3223LT2 (V4N09) kan laddas ner från länken.

Eftersom mikrokretsen är gjord i en plan förpackning, är det lämpligt att ha en adapter för att flasha den.

Först lödde jag helt enkelt fast ledningar på mikrokretsens ben och satte in dem i programmeringspanelen. Uppgiften är omständlig, och det finns också risk för att stiften på mikrokretsen bryts av.

Trött på att göra detta köpte jag en adapter från SOIC-8/SOP-8 till DIP-8 (200 - 208 mil). Här är länken om någon behöver en. och jag har redan berättat detaljerna om Ali.

Förutom adaptrar finns det även speciella clips för att flasha minne utan lödning, men jag har inte använt detta än.

Var noga med att vara uppmärksam på vilket uttag adaptern passar. Det finns flera av dem under olika typer hus (150 mil, 170 mil) eller för TSSOP-8-hus. För de mikruh som finns i LCD-TV behöver du 200 209 mil.

Eftersom terminalerna på adaptern typ PLS, då kan du inte installera det i spännhylspanelen på programmeraren. Jag har ett vanligt DIP-8-uttag med spadkontakter lödda på programmeraren. Därför kan adaptern enkelt sättas in i den.

Vi installerar minnet i adaptern och glöm inte att ställa bygeln till position 3,3V på programmeringskortet. Låt mig påminna dig om att SPI-Flash-chips drivs av en spänning på 2,7...3,6V.

När du trycker på spärrens övre platta divergerar panelkontakterna. Vi placerar mikrokretsen på kontakterna, observerar pinouten och släpper spärren. Låt mig påminna dig om att mikrokretsens pinnummer räknas moturs, med början från nyckeln på mikrokretsens kropp. Nyckeln är inne I detta fallär en rund fördjupning eller prick på kroppen.

Jag flashar minnet med min gamla bärbara dator Acer Aspire 5510, som också körs under WinXP. Vi ansluter programmeraren till USB-porten på datorn.

Det skulle inte heller skada att markera "kryssrutan" Bil"i blocket" Författare"Det speciella med SPI-Flash-chips är att de kräver fullständig radering före inspelning. Med alternativet "Auto" rensar programmet automatiskt chipets minne före inspelning och utför även ett jämförelsetest ( Kontrollera) efter att ha läst eller skrivit en dump.

Fönstret till vänster visar processloggar. Av dem kan du förstå vad programmet gör. För att rensa poster i loggfönstret kan du klicka på " Klar".

Grundläggande programinställningar ställs in på fliken "Inställningar", som kan öppnas med " inställningar".

Som vi kan se från den här skärmdumpen, taget som ett exempel, har programmet fastställt att chippet är märkt GD25Q32, och dess minneskapacitet är 4194304 byte (4M-byte).

Det finns flera inställningar du måste göra på fliken Inställningar. Först måste vi ange hur mycket minne vårt chip har. Om du kollade med knappen "Version" tittar vi på volymen i loggarna.

Jag väljer 8 M-byte (8 MB) för W25Q64. Klicka på "OK". Det skadar inte heller att kontrollera om kryssrutan EEPROM är avmarkerad.

Sedan måste vi specificera dumpfilen som vi ska skriva till minnet. För att göra detta, i huvudprogramfönstret, klicka på knappen " Öppen"mittemot fältet" Källfil (för att blinka)". I Explorer-fönstret, välj firmware-filen och klicka på " Öppen".

Efter detta kommer sökvägen till firmwarefilen att visas i inmatningsfältet "Källfil (för blinkande)".

Om du tidigare har läst innehållet i mikrokretsen (" Läsa"), istället för Scan SPI Flash for Erase i förloppsfältet kan vi se inskriptionen Vänta på Busy Clear.

Om minneschippet är nytt kommer programmet att rapportera att chippet är tomt och att rengöring inte krävs (Chip is Empty, Erase Not Need. Kan DATA-Line kopplas bort?).

Om chipets minne tidigare skrivits med data kommer programmet att rensa det och rapportera detta (Chip is Empty. All Data = FF. Kan DATA-Line frånkopplas?).

När inspelningen är klar sker verifiering ( Verifiera SPI Flash).

I de flesta fall sker inspelningsprocessen utan fel inom några minuter.

Om processen lyckades kommer de sista raderna i loggfönstret att vara SPI Verifiera 8388608 OK. usb-enhet stängd.

Om något inte fungerar, kan svaret på frågan hittas på forumen. Jag har redan angett länkarna.

Lödning av chipet för en avgift, observerar pinouten!

Vi är nöjda med driften av LCD-TV:n.

Och slutligen en ansvarsfriskrivning. Tja, hur skulle det vara utan honom!?

Denna manual vänder sig i första hand till alla som förstår elektronik, såväl som nybörjare inom radiomekaniker och elektronikingenjörer. Trots att själva blinkproceduren inte är komplicerad kräver den ändå kompetens och grundläggande färdigheter i att arbeta med elektronik. Allt du gör gör du på egen risk och risk!

Under nästa rengöring stängdes förlängningssladden som den fungerande systemenheten och monitorn var anslutna till av misstag. Systemenhet innefattar:
  • moderkort - ASRock B75 Pro 3
  • processor - Intel core i5-3570
  • strömförsörjning - Corsair CX750M
Efter att ha slagit på den började systemenheten avge fem otäcka gnisslor, vilket verkar motsvara ett processorfel. Processorn, att döma av Yandex.Market, är det här ögonblicket kostar från 11 000 rubel. Det är ganska dyrt att köpa, men du vill inte ha en som är billig men svag. I allmänhet var jag lite rädd...

Jag sökte igenom Internet och fick reda på att den exakta orsaken till felet kan vara helt annorlunda. Detta gav mig lite hopp. Men vi måste på något sätt hitta just detta skäl.

Först och främst ansluter jag en annan gammal strömkälla - datorn startar inte.

Jag fick med mig en bildator hem för ytterligare kontroller. Förening:

Det är bra att komponenterna visade sig vara utbytbara.

Jag drog ut processorn ur bildatorn och satte in den i hemdatorn – datorn startar inte. Men det fanns hopp om att processorn fortfarande var intakt, och moderkortet, som är lite billigare, var trasigt (även om nya med andra styrkretsar än H61 och H67 är en bristvara).

Egentligen programmering

Det är bra att BIOS-chippet inte är lödat, utan på ett vanligt DIP-8-uttag. Jag har ingen programmerare, att beställa från Kina och vänta en månad är inget alternativ. Jag bestämde mig för att göra en programmerare från min frus bärbara dator och existerande Arduino Nano. Jag grävde runt på Internet... För det mesta överallt laddas firmware upp via COM-porten, men jag bestämde mig för att flasha den från ett minneskort (det verkar vara mycket snabbare på det här sättet).

Jag skissade upp kopplingsschemat:

Samlade allt på bakbord:

Typen och storleken på minneskortet, metoden för att formatera det och filnamnet måste överensstämma med kraven i Arduino SD-biblioteket.

Till att börja med skissade jag en skiss som läser innehållet i SPI Flash och skriver det till en fil på ett minneskort, samtidigt som jag beräknar checksumman med metoden Checksum-32, d.v.s. enkel summering.

ReadFlash_WriteSD.ino

#omfatta #define Flash_CS 9 #define SD_CS 10 #define FILNAMN "BIOS.ROM" Fil minFil; SPIFlash flash(Flash_CS); void setup() ( Serial.begin(115200); while (!Serial) () // Väntar på att serieporten ska anslutas // Initierar SD-kortet Serial.println("Initierar SD-kort..."); om ( !SD. begin(SD_CS)) ( Serial.println("Initialisering SD-kort misslyckades!"); return; ) Serial.println("Initiering klar."); gammal fil, om det finns Serial.print(FILENAME); if (SD.exists(FILENAME)) ( Serial.println(" finns, tar bort..."); SD.remove(FILNAMN); ) else ( Serial.println(" existerar inte."); ) // Skapa en fil och öppna den för att skriva Serial.print("Skapar "); Serial.println(..."); println("Initialiserar SPI Flash..."); // Läs/skriv i block/sidor på 256 byte per databuffer Checksum (32 bitar) uint32_t checkSum = 0 för (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, 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() { // Пустой цикл }


Jag körde skissen, jämförde den resulterande filen med den ursprungliga BIOS - det visade sig vara cirka 140 000 byte som inte matchade.

ReadSD_WriteFlash.ino

/* SPI-Flash-anslutning: CS - D9 MOSI - D11 MISO - D12 CLK - D13 SD-Card Shield-anslutning: CS - D10 MOSI - D11 MISO - D12 CLK - D13 */ #include #omfatta #define Flash_CS 9 #define SD_CS 10 #define FILNAMN "B75PRO31.90" Fil minFil; SPIFlash flash(Flash_CS); void setup() ( Serial.begin(115200); while (!Serial) () // Väntar på att serieporten ska anslutas // Initierar SD-kortet Serial.println("Initierar SD-kort..."); om ( !SD. begin(SD_CS)) (Serial.println("Initialisering SD-kort misslyckades!"); return; ) Serial.println("Initiering klar." if (!SD.exists(FILENAME)) (Serial.print (FILENAME) ; Serial.println(" finns inte.") // Öppna filen för att läsa Serial.print("); ."); myFile = SD.open(FILENAME, FILE_READ); // Om vi ​​lyckades öppna filen kommer vi att läsa från den if (myFile) ( Serial.print("File "); Serial.print(FILENAME) ; ; ; ; ( Serial.println("Chip raderat. "); ) else ( Serial.println("Fel vid radering av chip."); return; ) // Läs/skriv i block/sidor om 256 byte varje uint8_t data_buffer; sidor uint32_t maxPage = flash.getMaxPage(); // Checksumma (32 bitar) uint32_t checkSum = 0; för (int sida = 0; sida< 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, 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() { // Пустой цикл }


Jag körde den, väntade, skissen gav en kontrollsumma, den stämde kontrollsumma originalfil. Men detta är en kontrollsumma av filen på minneskortet. Jag behöver en kontrollsumma av innehållet i SPI Flash.

Det var möjligt att använda den första skissen, men jag skrev en tredje, som bara beräknar kontrollsumman för SPI Flash-innehållet med samma algoritm.

ChecksumFlash.ino

/* SPI-Flash-anslutning: CS - D9 MOSI - D11 MISO - D12 CLK - D13 */ #include #define Flash_CS 9 SPIFlash flash(Flash_CS); void setup() ( Serial.begin(115200); while (!Serial) () // Vänta tills serieporten ansluts // Denna kod behövs för att SD-kortet inte ska störa pinMode(10, OUTPUT); digitalWrite (10, HIGH); // Initializing SPI Flash Serial.println("Initializing SPI Flash..."); / Checksum (32 bitar) uint32_t checkSum = 0 för (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, 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-kontrollsumman matchar kontrollsumman för originalfilen.

Efter att ha satt in det flashade BIOS-chippet i hemdator- han förtjänade det framgångsrikt.

I miljön Arduino IDE du måste installera SPIFlash-biblioteket genom bibliotekshantering.

Kontrollsumman beräknades med hjälp av HXD HEX-editorn.

PS: Från början använde jag den här som en SD-modul:

Men det fanns ofta fel med det, SD-kortet initierades inte. Det hjälpte till att "varma" återansluta själva SD-kortet när Arduino var ansluten till datorn.

PPS: Istället för motstånd försökte jag ansluta en dubbelriktad signalomvandlare:

Men upplägget fungerade inte med honom.

I nästan alla moderna elektronisk teknik det finns minneskretsar av sådana serier som: 25LVxxx, WINBOND, etc. De är förenade vanligt namn SPIFLASH. Jag gör många reparationer och jag behöver nästan alltid en sådan programmerare till hands.

Jag modifierade många programmerare för varje processor och kom till slutsatsen att det är enklare och snabbare att lossa själva flashminnet och löda det på plats än att rota igenom Internets djup och leta efter hur man flashar enheten genom processorn. Det fanns till och med en satellitmottagare där servicekontakten av okänd anledning inte fungerade. Det fanns bara en väg ut. Löda upp spiflashen och flasha den med programmeraren. Efter att ha flashat den fasta programvaran och installerat chippet på plats vaknade enheten till liv.

Ris. 1. Spiflash-programmeringskrets

Dess schema är enkelt och kommer inte att orsaka svårigheter. 100 Ohm motstånd kan ändras inom intervallet 47-100 Ohm. 4,7 kOhm-motstånd kan ändras inom intervallet 3,9-6,2 kOhm. Kretsen drivs av en 3,3 V-källa.

Det tryckta kretskortet ger ledningar för ett trebent stabilisatorchip. Det kan vara vilken liten som helst, till exempel LM117 3.3v. Låt mig förklara varför: Kretsen drivs av USB uttagÅh, spänningen där är 5 V, och våra flashenheter fungerar från en 3,3 V-källa. På så sätt behöver vi inte ansluta extern källa näring.

Jag tror att du kan räkna ut det själv. Dess klickfunktioner liknar andra firmwareprogram.

Metod för att installera chipet för firmware: Löda loss blixten. Vi tar bort överflödigt lod från dess ben. Vi placerar mikrokretsen på bordet och placerar något 0,5 mm tjockt under det, så att detta substrat inte stör mikrokretsens ben. Vi böjer benen mot bordet. Detta görs så att det blir ett gap mellan chipet och bordet. Vi placerar mikrokretsen på programmeringskortet, kombinerar benen på mikrokretsen med spåren på programmeringskortet och trycker på den med en klädnypa av plast (på grund av att vi tidigare gjorde ett gap, trycks mikrokretsen hårt med benen för att programmeringskortets spår och höljet stör inte det). Jag brukade löda dem. Denna procedur är tråkig))).


Detta diagram visas också ofta:

25xxx-serien eeprom flashminneskort används i stor utsträckning inom mikroelektronik. I synnerhet i moderna TV-apparater och 25xxx moderkort lagrar BIOS-firmware. Blinkande 25xxx utförs med hjälp av SPI-gränssnitt, vilket är skillnaden mellan dessa mikrokretsar och flashminne i 24xxx-familjen, som sys via i2c (fyrkantig buss).

Följaktligen behöver du en SPI-programmerare för att läsa/radera/skriva 25xxx. Ett av de billigaste alternativen för programmerare för detta ändamål är USBasp, som kostar löjliga pengar - med leverans endast cirka $2 på eBay. En gång köpte jag mig en för programmering av mikrokontroller. Nu behövde jag inte blixt en mikrokontroller, utan en SPI-blixt, och jag bestämde mig för att använda den.

Framöver kommer jag att säga att Tifa firmware fungerar, 25xxx mikrokretsar sys. Förresten, förutom 25xxx, är den modifierade programmeraren designad för att fungera med 24xxx och Microwire.

1. Blinkande USBasp

Först måste du stänga kontakterna J2:

Personligen stängde jag inte bara, utan lödde omkopplaren i kontakterna:

När J2-kontakterna är stängda (jag har strömbrytaren i rätt läge) går USBasp in i beredskapsläge för blinkning.

USBap kan inte ladda om sig själv, så en annan programmerare behövs. USBasp verkar befinna sig i positionen som en kirurg som inte kan skära ut sin egen blindtarm och ber en vän hjälpa till. För att flasha USBasp använde jag en hemmagjord programmerare AVR910, men för en gång kan du snabbt löda en "5 wires" programmerare på ett par minuter, som består av endast en LPT-kontakt och 5 motstånd.

Anslut programmeraren till USBasp:



Nu går vi till forumet för alternativ firmware från Tifa, i det översta inlägget hittar vi och laddar ner arkivet med senaste firmware och mjukvara.

Vi hittar filen mega8.hex där, det här är det alternativ firmware för USBasp.

Vi startar CodeVisionAvr (jag använder version 2.0.5), ställer in programmeringsinställningarna: Inställningar-> Programmerare.

Ställ in inspelningsinställningarna: Verktyg->Chipprogrammerare. Vi väljer Atmega8L-chippet, det är precis vad som är installerat på USBasp. Vi exponerar inte säkringar; de vi behöver är redan fastsydda i chippet. Vi lämnar de återstående inställningarna som standard.

Vi raderar gammalt program USBasp: Program->Radera chip.

Öppna firmware-filen mega8.hex: Arkiv-> Ladda flash.

Reflash USBasp: Program->Flash.

Om inspelningen ägde rum och inte visade något felmeddelande, har den alternativa firmwaren flashats till USBasp. Nu kan USBasp inte bara sy AVR-mikrokontroller, som tidigare, utan också arbeta med flashminne. Vi öppnar kontakter J2 så att USBasp växlar till programmeringsläge igen.

Låt oss nu kontrollera om Windows 7 x86 ser denna programmerare. Vi sätter in USBasp i USB och... systemet skriver "USBasp kunde inte hitta drivrutinen." Det är klart att du måste installera drivrutinen. Men det finns inga drivrutiner som laddas ner från forumet, de behöver laddas ner från USBasp-webbplatsen. Laddat ner, installerat, Win7 såg programmeraren, allt var ok. Däremot programmerar jag mikroelektronik på en bärbar dator med WinXP, och efter att ha installerat drivrutinerna ser den även programmeraren.

2. Plattform för USB-anslutningar asp till 25xxx DIP-chip

Nu måste vi förbereda plattformen för programmering av 25xxx. Jag gjorde detta på en brödbräda enligt detta schema:

3. Firmware för 25xxx chips via USBasp

För att flasha 25xxx firmware via en modifierad USBasp, använd programmet AsProgrammer, som även finns i .

Låt oss till exempel arbeta med Winbond 25x40-mikrokretsen. Starta AsProgrammer, ställ in SPI-driftläget och välj typ av chip: Chip-> SPI-> Winbond->...

... och vi ser att W25X40 inte finns med på listan. Nåväl, låt oss fylla i mikrokretsparametrarna manuellt. Vi hittar manualen för Winbond 25X40 och där på sidan 4 ser vi följande parametrar:

Vi anger dessa parametrar här:

Vi ansluter USBasp till datorn och Winbond 25×40-chippet:

Med hjälp av knapparna "läs", "skriv", "radera" kontrollerar vi programmerarens funktion:

Du behöver bara ta hänsyn till att innan du skriver något till chippet måste du först ställa in: Inställningar -> Inspelningskontroll, så att efter att ha skrivit firmware till chipet görs en kontroll för att säkerställa att det som skrevs överensstämmer med vad som till slut skrevs ner. Detta är en viktig sak, för om den fasta programvaran inte görs på ett rengjort chip, kommer djävulen att skrivas in i den. Därför måste du först radera mikrokretsen och sedan bara skriva den.

Tack vare den fasta programvaran från Tifa kan den billiga kinesiska USBasp-programmeraren nu arbeta med eeprom 25xxx flashminneschips. Teoretiskt kan det fortfarande fungera med 24xxx och Microwire, men jag testade det bara med 25xxx.

UPD1:
Det visar sig att samma firmware kan skrivas in i AVR910-programmeraren. Då fungerar det även med 25xxx flashminne:

BIOS-chipprogrammerare för moderkort, bärbara datorer, DVD-skivor, grafikkort, etc. 24 EEPROM och 25 SPI FLASH på CH341A via USB

USB miniprogrammerare CH341A används för programmering av BIOS-chips för datormoderkort, bärbara datorer, grafikkort, multimediaspelare, TV-minne, LCD-skärmar, routrar, spel konsoler, satellitmottagare, T2-mottagare, 24 EEPROM, 25 SPI FLASH, etc. Programmeraren är något större i storlek än en flash-enhet och är monterad på USB-chip buss konvertera chip CH341A.

P/S-bygeln fungerar som en lägesomkopplare för CH341A-kretsen som en USB-omvandlare > Parallell port(Paralell) eller USB > Serieport(Serie). Används med programmerare programvara vilket kräver att CH341A fungerar som en USB > Parallellomvandlare, därför måste bygeln installeras och kontakterna stängas.

CH341A-programmeraren har drivrutiner och operativsystem Windows-system 98, Windows ME, Windows 2000, Windows XP, Windows Vista och Windows 7.

Installation av drivrutiner. För att börja använda programmeraren måste du först ansluta den till USB-porten på din dator, även utan ett chip installerat i uttaget. Om programmeraren arbetar och med USB-kontakt allt är i sin ordning på datorn, då ska lysdioden på programmerarens hölje tändas, vilket indikerar att strömmen är tillförd, och din dator kommer att avge ett ljud som meddelar dig att en ny USB-enhet är insatt. Efter det operativ system bör börja söka efter drivrutiner och som ett resultat kommer den med största sannolikhet INTE att upptäcka dem. Inget fel med det. Att installera programmeringsdrivrutinen är samma som för alla USB-enheter. Vi kommer att göra allt själva, som de säger, "för hand." Tryck på kombinationen Vinn nycklar+ Pausa eller bara öppna Enhetshanteraren. I listan över enheter för okänd enhet ange sökvägen till drivrutinen (packa upp dem i förväg från arkivet, som kan laddas ner nedan på sidan), detta ska vara en fil ch341wdm.inf. Det andra sättet att installera drivrutinen är att helt enkelt köra filen ch341par.exe med administratörsrättigheter och drivrutinen installerar sig själv. Om drivrutinen är korrekt installerad kan du fortsätta med att programmera chipsen.

Installera chipet i programmeraren. Nödvändigtvis! Vi tar ut programmeraren från USB-kontakt dator. Om du programmerar mikrokretsen på ZIF-programmeringspanelen måste du lyfta låshandtaget för att öppna skårorna för att installera mikrokretsen. Det är nödvändigt att koppla bort chippet som du ska programmera från den slutliga enheten (ta bort det från moderkortet, lossa det från den bärbara datorn, etc.) och installera chippet enligt nyckeln i programmerarens kortplatser (den placeringen av nyckeln måste sammanfalla med markeringen nära uttaget på programmeraren, där det står 25xx eller 24xx). Sedan ska du sänka låshandtaget för att fixera spånan i blocket. Om du behöver programmera 25-seriens mikrokretsar i ett SOP8- eller SOP16-paket, så har programmeringskortet en kontaktplatta för dessa typer av paket. Du kan ansluta mikrokretsen till kontaktdynan antingen genom att löda eller genom att försiktigt säkra mikrokretsens ben mekaniskt (tryck med en plastkrokodil eller klädnypa). När chippet är installerat ansluter du programmeraren med chippet ombord igen till datorn i USB-porten och kör programmet CH341A.exe. Vi hör anslutningsljudet USB-enheter och glädjas åt det framgångsrika avslutade första steget.

Hur man programmerar chips. Det är här det roliga börjar. Jag kommer inte att beskriva hur man använder programmet, men kommer att rekommendera att titta på flera videoinstruktioner för att arbeta med dessa programmerare. Videoinstruktioner kan ses nedan på den här sidan.

Anteckning 1: Programmeraren blinkar marker ganska snabbt, men vissa typer av marker är lite långsamma. Allt beror på chipets volym och dess typ.

Programmeringskrets:

Till exempel, här är bara några av de typer av chips som stöds:

  • ATMEL
    AT25DF041A, AT25DF321, AT25F004, AT25F512A, AT25F2048, AT25F4096, AT25F1024A, AT25FS010 4
  • EON
    EN25B05, EN25P05, EN25B10, EN25P10, EN25BF20, EN25P20, EN25F20, EN25B40, EN25P40, EN25F40 P32, EN25B64, EN25P64
  • Excel Semiconductor Inc
    ES25P10, ES25P20, ES25P40, ES25P80, ES25P16, ES25P32
  • ST
    M25P05A, M25P10A, M25P20, M25P40, M25P80, M25P16, M25P32, M25P64, M25PE10, M25PE20 PE80, M45PE16, M45PE32
  • MXIC
    MX25L512, MX25L1005, MX25L2005, MX25L4005, MX25L8005, MX25L1605, MX25L3205, MX25L6405, MX25L6445, MX25L640)
  • NexFlash
    NX25P80, NX25P16, NX25P32
  • Chingis Technology Corporation
    Pm25LV512, Pm25LV010, Pm25LV020, Pm25LV040, Pm25LV080, Pm25LV016, Pm25LV032, Pm25LV064
  • Saifun Semiconductors
    SA25F005, SA25F010, SA25F020, SA25F040, SA25F080, SA25F160, SA25F320
  • WINBOND
    W25P10, W25X10, W25Q10, W25P20, W25X20, W25Q20, W25P40, W25X40, W25Q40, W25P80, W25X80, W25Q80, W25P16, W25X32, W25X32, W25X16, W25X16, W25X16, W25X16, W25X16, W25X16, W25X16, W25X16, W25X40, W25Q40, W25P80, W25P64, W25X64, W25Q64

Och andra. Mer full lista titta på det här fotot.

Anteckning 2: Av personlig erfarenhet, även om mikrokretsen du behöver inte finns i listan över de som ska blinka, eller om programmet inte automatiskt kan bestämma typen av din mikrokrets korrekt, kan du manuellt välja en liknande med samma mängd minne och försöka flasha det. Vanligtvis fungerar det i 99% av fallen.

Anmärkning 3: Bland de flesta frekventa haverier Programmeraren stöter vanligtvis på en "avgång" av stabilisatorn på grund av 3,3V-strömförsörjningen (vanligtvis en liten mikrokrets i 1117-serien). I det här fallet slutar programmeraren att upptäcka mikrokretsarna som är insatta i uttaget och skriv-/läsprocessen varar nästan en evighet. Stabilisatorn brinner ut vid felaktig installation av mikrokretsar i uttaget utan att observera polariteten, såväl som vid installation av defekta mikrokretsar. För att återställa programmerarens funktionalitet är det nödvändigt att byta ut strömstabilisatorns mikrokrets.

För att arbeta med plana (SMD) mikrokretsar kan du behöva adaptrar (adaptrar) TSU-D08/SO08-150 för 24xx och 93xx marker eller DIP08/SO08-208 för 25xx marker:

Adapter-klädnypa för blinkande chips UTAN LÖDNING. Med denna programmerare är det mycket bekvämt att använda en klädnypaadapter för att flasha BIOS-chips UTAN AVSÖLDNING. Det är mycket bekvämt att använda en adapter i de fall där det inte är möjligt att försiktigt lossa mikrokretsen utan att skada intilliggande delar och kontakter på kortet. Men i vissa fall stör strömkretsarna för mikrokretsarna som finns på kortet till din utrustning och programmeraren kan inte driva mikrokretsarna. I det här fallet är firmwareprocessen utan att löda mikrokretsen omöjlig.

Du kan beställa programmeraren i vår butik med leverans i hela Ukraina. Leveranstiden till din stad är 2-3 dagar. Skickas på betalningsdagen. Kostnaden för programmeraren och utrustningen anges i tabellen. Betalning med PrivatBank-kort eller WebMoney (WMZ). Som du kan se i slutet av denna sida.

Prislista för programmerare:

Namn, foto

Utrustning

Prislista för tillbehör:

Namn, foto

Utrustning

Du kan också titta på videoinstruktioner för programmerare i den här serien:

Programmeringsmjukvara:
  • Drivrutin för programmerare: CH341PAR_drivers.rar
  • RS232 port drivrutin: