Giter VIP home page Giter VIP logo

usbasp-flash's Introduction

UsbAsp-flash

Альтернативная прошивка и программа для UsbAsp позволяющая программировать флеш память по протоколам SPI, I2C, MicroWire. Для обсуждение используйте github https://github.com/nofeletru/UsbAsp-flash/discussions

Alternative firmware and UsbAsp program allow you to program flash memory on the protocols spi, I2C, MicroWire. For discussion please use https://github.com/nofeletru/UsbAsp-flash/discussions

usbasp-flash's People

Contributors

account12 avatar cdhigh avatar direstraits96 avatar jirjirjir avatar juliussenkus avatar melerix avatar namedun avatar nofeletru avatar noriokun4649 avatar systemcrash avatar timu5 avatar wc7086 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

usbasp-flash's Issues

Open and Save dialogues non-functional on VirtualBox (running on MacOS)

не работает нажимать кнопки save и open когда в VirtualBox - ничего дальше происходит - то есть open dialogue и save dialogue не открываются - всё остальное работает как должно. Думаю проблема High DPI display. работает на комп OK. попытался compatibility modes типа "emulate Windows 7" и "256 colours" и т д

Does not work to press open/save when running under VirtualBox on Mac. Those dialogues don't open. Everything else works.

Script delay? Добавление задержки скрипта?

This program is great! Using the script function is very helpful!
However I need to add some delay between bytes, I couldn't find a way to do this.
I searched in the code, didn't find anything related to adding a simple wait.
Any help would be greatly appreciated,

Эта программа отличная! Использование функции сценария очень полезно!
Однако мне нужно добавить некоторую задержку между байтами, я не мог найти способ сделать это.
Искал в коде, ничего связанного с добавлением простого ожидания не нашел.
Любая помощь будет принята с благодарностью,
Благодарность

Programming Enable signal

This is not an issue but rather an enhancement:

When programming a bitstream SPI flash memory (mostly a 25xx one) wired to an FPGA (ie. Lattice iCExx) you have to set the FPGA's outputs into the highZ state in order to be able to access the SPI flash.
That is done with a special active Low signal (in case of iCExx), let us call it generally "PRG_EN".
That signal is different from the /CS of the SPI flash memory.

Consider we can set an atmel's "PRG_EN" pin to Low (the signal is idle highZ as there is usually a pull-up at the FPGA side) when we want to access the SPI flash (it must be set Low during the entire process), thus we may get fully automated on-the-fly in-circuit programming. There is a free (N.C.) pin at the usbasp header available - we may use it.

Programming process like:

  1. In Idle: PRG_EN = highZ
  2. Set PRG_EN = 0 (ie. the FPGA's pins go in highZ)
  3. wait 1ms
  4. do required SPI flash memory read/write/erase/read_ID etc. operation
  5. wait 1ms
  6. Set PRG_EN = highZ (the FPGA starts to boot from the SPI flash)

Request - Add support for Fidelix FM25Q04A

Hello,

Can you please add support for FIDELIX FM25Q04A?
I've dumped the FM25Q04A using the FM25Q08A profile and a CH341A programmer with a SOIC8 clip. I'm not sure if I've dumped all its content correctly though

Thanks

Program IC button - change default to unprotect/erase/program/verify, reload binary

This is not an issue but rather an improvement:

While doing a lot of programming, I strongly feel the button "Program IC" shall rather do the
"Unprotect/erase/program/verify" operation by default (when it is clicked).

Currently the operation is available via the drop-down selection.

You have always Erase before programming (and verify afterwards), thus when doing frequent re-flashing of the SPI memory you have to mess with the drop-down version.

Also an option with "Unprotect/erase/program/verify" operation while it will always re-load a specific binary from a specific folder (ie the last used binary) and flash it with a single click would be a great improvement when flashing new versions of the same binary frequently.

USING COMMAND LINE

Hello, i have a question:
Can I use command line to flash my chip? i use AT24Cxx chip. Please help!

Support for 25B64CSIG

Hello all,

Did not find the 25B64CSIG (GigaDevice) chip support in the list of available chips.
Software version: v1.4.1

I can edit the "chiplist.xml" file and add the following line (see below), but not sure how to obtain the chip ID.

The application itself detect it as a "GD25Q64". Shall I use it as is?

Thank you for your help.

P.S. Uploaded available datasheet for this chip.
GD 25B64C datasheet.pdf

save bin

how about saving in .bin?
the program works quickly and conveniently, does not require the choice of the chip manufacturer, but the need to add the format of the saved file every time completely kills all the advantages of a well-thought-out interface.

Compiling

Hi, thanks for your work on this.

Would it be possible to have in the README some short steps and required software needed to compile the software? I've never used Pascal before so it isn't obvious to me which variant of Pascal is being used, or even what the main project file is (AsProgrammer.lpi? AsProgrammer.lps?). Thanks.

Wake up from deep power down needed

Hi, thanks for developing the AsProgrammer and the usbasp SPI modification!!

I see an issue when trying to program an SPI flash memory "on-the-fly", where the SPI flash has been put into "Deep Power Down" by the command 0xB9 already.
Your programmer shall first issue the "Release from Power-down" command (code 0xAB), to the SPI flash in order to wake up the flash from deep power down.
For example: Currently my FPGA reads the SPI flash memory and puts it into the deep power down afterwards. After that moment I cannot program the SPI flash, unless I switch off/on the power while I force the FPGA not to read the SPI flash memory upon the power-on (thus the SPI flash will not go into deep power down).
So the very first command you have to send to the SPI flash memory is 0xAB. It must be done for erase/read/write etc.
That 0xAB command has no impact on memories lacking this feature.
I use a standard 25xx SPI memory:
AT25DN256 (Adesto)
32768bytes, page size 256
Current programmer: USBASP
ID(9F): 1F4000(Unknown)
ID(90): 0000(Unknown)
ID(AB): 00(Unknown)
ID(15): 1F40(Unknown)

EDIT: When I click on "Read ID" you send the 0xAB command which wakes up the SPI flash from deep power down. I can read/write/erase/compare and read ID afterwards. This confirms the issue above..

Support program for assigned adress?

Hi , I have a question, how can I program the my bin file to assigned adress,
for example I want to program my bin file start from the flash adress 0x600000, my flash is w25q64

Add gd25b64bpig

cant find that chip,tried gd25q64b and same versions but doesnt work

Programming speed

I do program a 104kB bitstream into a 4MB SPI flash via the modded usbasp. Works fine :)
The bitstream is located first 104kB. It shows 4MB in the "IC Size" and the 104kB in the "Size".

It takes 30secs to erase and 30secs to program the flash. In total 1minute.

Is that because it re-flashes the entire 4MB chip, or, because there is a delay inserted somewhere, or, because the usbasp's communication is slow?

Translation for Portuguese BR

link: https://www.4shared.com/zip/bl2hdoTyea/pt-br.html

#Português-BR
msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8"

#: msgstr.str_45page_powerof2
msgid "Установлен размер страницы кратный двум!"
msgstr "O tamanho da página é uma potência de 2!"

#: msgstr.str_45page_std
msgid "Установлен стандартный размер страницы"
msgstr "O tamanho da página padrão está definido."

#: msgstr.str_block_en
msgid "Возможно включена защита на запись. Нажмите кнопку "Снять защиту" и сверьтесь с даташитом"
msgstr "Possível proteção está ativada. Pressione "Desproteger" e verifique a folha de dados"

#: msgstr.str_changed
msgid "Изменен"
msgstr "Modificado"

#: msgstr.str_check_settings
msgid "Проверьте настройки"
msgstr "Verificar configurações"

#: msgstr.str_combo_warn
msgid "Чип будет стерт и перезаписан. Продолжить?"
msgstr "O Chip será apagado e programado. Continuar?"

#: msgstr.str_connection_error
msgid "Ошибка подключения к USBAsp"
msgstr "Erro ao conectar o USBAsp"

#: msgstr.str_connect_error_ch
msgid "Ошибка подключения к CH341"
msgstr "Erro ao conectar o CH341"

#: msgstr.str_connect_error_avr
msgid "Ошибка подключения к AVRISP"
msgstr "Erro ao conectar o AVRISP"

#: msgstr.str_done
msgid "Готово"
msgstr "Pronto"

#: msgstr.str_erasing_flash
msgid "Стираю флэшку..."
msgstr "Apagando a memória"

#: msgstr.str_goto_addr
msgid "Перейти по адресу"
msgstr "Ir para o endereço"

#: msgstr.str_i2c_no_answer
msgid "Микросхема не отвечает"
msgstr "Chip não responde"

#: msgstr.str_id_unknown
msgid "(Неизвестно)"
msgstr "(Desconhecido)"

#: msgstr.str_mini_eeprom_support
msgid "Данная версия прошивки не поддерживает I2C и MW!"
msgstr "Este firmware não suporta I2C e MW!"

#: msgstr.str_new_sreg
msgid "Стало Sreg: "
msgstr "Novo SREG: "

#: msgstr.str_curr_hw
msgid "Используется программатор: "
msgstr "Programador atual: "

#: msgstr.str_not_found_hex
msgid "Значение не найдено"
msgstr "Valor não encontrado"

#: msgstr.str_no_eeprom_support
msgid "Данная версия прошивки не поддерживается!"
msgstr "Este firmware não suporta programação de memória"

#: msgstr.str_old_sreg
msgid "Было Sreg: "
msgstr "Antigo SREG: "

#: msgstr.str_reading_flash
msgid "Читаю флэшку..."
msgstr "Lendo a memória"

#: msgstr.str_search_hex
msgid "Поиск HEX значения"
msgstr "Pesquisar valor HEX"

#: msgstr.str_set_speed_error
msgid "Ошибка установки скорости SPI"
msgstr "Erro ao definir a velocidade do SPI"

#: msgstr.str_size
msgid "Размер: "
msgstr "Tamanho: "

#: msgstr.str_specify_hex
msgid "Укажите шестнадцатеричные числа"
msgstr "Use números HEX"

#: msgstr.str_start_erase
msgid "Точно стереть чип?"
msgstr "Apagar Chip?"

#: msgstr.str_start_write
msgid "Начать запись?"
msgstr "Começar a programar?"

#: msgstr.str_time
msgid "Время выполнения: "
msgstr "Tempo de execução: "

#: msgstr.str_usb_timeout
msgid "USB_control_msg отвалился по таймауту!"
msgstr "Tempo limite do USB_control_msg!"

#: msgstr.str_user_cancel
msgid "Прервано пользователем"
msgstr "Cancelado pelo usuário"

#: msgstr.str_verify
msgid "Проверяю флэшку..."
msgstr "Verificar a memória"

#: msgstr.str_verify_error
msgid "Ошибка сравнения по адресу: "
msgstr "Erro de verificação no endereço: "

#: msgstr.str_writing_flash
msgid "Записываю флэшку..."
msgstr "Programando a memória"

#: msgstr.str_writing_flash_wchk
msgid "Записываю флэшку с проверкой..."
msgstr "Memória de programação (verificação)..."

#: msgstr.str_wrong_bytes_read
msgid "Количество прочитанных байт не равно размеру флэшки"
msgstr "Número de bytes lidos é diferente do tamanho do Chip"

#: msgstr.str_wrong_bytes_write
msgid "Количество записанных байт не равно размеру флэшки"
msgstr "Número de bytes gravados é diferente do tamanho do Chip"

#: msgstr.str_wrong_file_size
msgid "Размер файла больше размера чипа"
msgstr "Tamanho do arquivo maior que o tamanho do Chip"

#: tmainform.menuitemhardware.caption
msgid "Программатор"
msgstr "Selecione o Programador"

#: tmainform.buttonblock.hint
msgid "Снять защиту"
msgstr "Desproteger"

#: tmainform.buttoncancel.hint
msgid "Прервать текущею операцию"
msgstr "Cancelar"

#: tmainform.buttonerase.hint
msgid "Стереть"
msgstr "Apagar"

#: tmainform.buttonopenhex.hint
msgid "Загрузить прошивку в редактор"
msgstr "Abrir arquivo"

#: tmainform.buttonread.hint
msgid "Прочитать"
msgstr "Ler"

#: tmainform.buttonreadid.hint
msgid "Прочитать индификатор"
msgstr "ID de leitura"

#: tmainform.buttonsavehex.hint
msgid "Сохранить прошивку из редактора"
msgstr "Salvar arquivo"

#: tmainform.buttonverify.hint
msgid "Сравнить содержимое"
msgstr "Verificar"

#: tmainform.buttonwrite.hint
msgid "Записать"
msgstr "Programar"

#: tmainform.clearlogmenuitem.caption
msgid "Очистить"
msgstr "Limpar"

#: tmainform.comboaddrtype.hint
msgid "Тип адресации к памяти"
msgstr "Tipo de endereço"

#: tmainform.combochipsize.hint
msgid "Размер чипа в байтах"
msgstr "Tamanho do Chip em bytes"

#: tmainform.combochipsize.text
msgid "Tamanho do Chip"
msgstr ""

#: tmainform.comboitem1.caption
msgid "Снять защиту -> стереть -> записать -> проверить"
msgstr "Desproteger -> apagar -> programar -> verificar"

#: tmainform.combomwbitlen.hint
msgid "Длинна адреса в битах"
msgstr "Comprimento do endereço em bits"

#: tmainform.combomwbitlen.text
msgid "MW addr len"
msgstr ""

#: tmainform.combopagesize.hint
msgid "Размер страницы"
msgstr "Tamanho"

#: tmainform.combopagesize.text
msgid "Tamanho"
msgstr ""

#: tmainform.copylogmenuitem.caption
msgctxt "TMAINFORM.COPYLOGMENUITEM.CAPTION"
msgid "Копировать"
msgstr "Copiar"

#: tmainform.label1.caption
msgid "Страница"
msgstr "Página"

#: tmainform.label2.caption
msgid "Размер"
msgstr "Tamanho"

#: tmainform.label4.caption
msgid "Тип адреса"
msgstr "Tipo Endereço"

#: tmainform.label5.caption
msgid "Длина адреса"
msgstr "Comprimento do endereço"

#: tmainform.label3.caption
msgctxt "tmainform.label3.caption"
msgid "Микросхема:"
msgstr "Chip selecionado:"

#: tmainform.labelspicmd.caption
msgid "Команды SPI"
msgstr "Código SPI"

#: tmainform.menuautocheck.caption
msgid "Проверка записи"
msgstr "Verificar"

#: tmainform.menuchip.caption
msgctxt "TMAINFORM.MENUCHIP.CAPTION"
msgid "Микросхема"
msgstr "Seleção do Chip"

#: tmainform.menucopytoclip.caption
msgctxt "tmainform.menucopytoclip.caption"
msgid "Копировать"
msgstr "Copiar"

#: tmainform.menufind.caption
msgid "Поиск"
msgstr "Buscar"

#: tmainform.menufindchip.caption
msgctxt "tmainform.menufindchip.caption"
msgid "Поиск"
msgstr "Pesquisar"

#: tmainform.menugotooffset.caption
msgid "Перейти по адресу"
msgstr "Ir para endereço"

#: tmainform.menuignorebusybit.caption
msgid "Не проверять Busy бит"
msgstr "Não verificar bits ocupados"

#: tmainform.menuitemlockflash.caption
msgid "Поставить защиту"
msgstr "Definir os bits de proteção"

#: tmainform.menuitemreadsreg.caption
msgid "Прочитать SREG"
msgstr "Ler SREG"

#: tmainform.menuitemeditsreg.caption
msgid "Изменить SREG"
msgstr "Editar SREG"

#: tmainform.menumwclock.caption
msgctxt "TMAINFORM.MENUMWCLOCK.CAPTION"
msgid "Частота"
msgstr "Frequência"

#: tmainform.menuoptions.caption
msgid "Настройки"
msgstr "Opções"

#: tmainform.menuspiclock.caption
msgctxt "tmainform.menuspiclock.caption"
msgid "Частота"
msgstr "Frequência"

#: tsearchform.caption
msgid "Поиск"
msgstr "Encontrar"

#: tsearchform.casesensecheckbox.caption
msgid "Учитывать регистр"
msgstr "Sensibilidade a maiúsculas e minúsculas"

#: tsearchform.findbutton.caption
msgid "Найти"
msgstr "Encontrar"

#: tsearchform.frombeginingcheckbox.caption
msgid "Искать сначала"
msgstr "Do começo"

#: tsearchform.hexcheckbox.caption
msgid "Искать HEX значение"
msgstr "Pesquisar valor HEX"

#: tsearchform.replaceallcheckbox.caption
msgid "Заменить все"
msgstr "Substituir tudo"

#: tsearchform.replacecheckbox.caption
msgid "Заменить"
msgstr "Substituir"

#: tsearchform.replacelabel.caption
msgid "заменить на:"
msgstr "Substituir para:"

#: tsearchform.searchlabel.caption
msgid "Искать"
msgstr "Encontrar"

#: tsregeditform.buttonreadsreg.caption
msgctxt "TSREGEDITFORM.BUTTONREADSREG.CAPTION"
msgid "Прочитать"
msgstr "Ler"

#: tsregeditform.buttonwritesreg.caption
msgctxt "TSREGEDITFORM.BUTTONWRITESREG.CAPTION"
msgid "Записать"
msgstr "Escrever"

#: tchipsearchform.caption
msgid "Поиск микросхемы"
msgstr "Pesquisar"

#: tchipsearchform.label1.caption
msgid "Маркировка содержит:"
msgstr "Digite o código do Chip:"

#: tmainform.blankcheckmenuitem.caption
msgid "Проверка на чистоту"
msgstr "Verificar Em Branco "

#: tmainform.Label_I2C_DevAddr.caption
msgctxt "tmainform.Label_I2C_DevAddr.caption"
msgid "Адрес устройства"
msgstr "Endereço Dispositivo"

#: tmainform.CheckBox_I2C_ByteRead.caption
msgctxt "tmainform.CheckBox_I2C_ByteRead.caption"
msgid "Побайтовое чтение"
msgstr "Ler Byte"

#: tmainform.scriptsmenuitem.caption
msgid "Скрипты"
msgstr "Scripts"

#: msgstr.str_script_no_section
msgid "Нет секции: "
msgstr "Não há seção: "

#: msgstr.str_script_run_section
msgid "Выполняется секция: "
msgstr "Seção de execuções: "

#: msgstr.str_script_sel_section
msgid "Выберите секцию"
msgstr "Selecionar seção"

#: msgstr.str_dlg_filechgd
msgid "файл изменён"
msgstr "Arquivo modificado"

#: msgstr.str_dlg_savefile
msgid "Сохранить изменения?"
msgstr "Salvar alterações?"

#: msgstr.str_using_script
msgid "Используется скрипт: "
msgstr "Usando script: "

#: tscripteditform.menuitemfile.caption
msgid "Файл"
msgstr "Arquivo"

#: tscripteditform.menuitemopen.caption
msgid "Открыть"
msgstr "Abrir"

#: tscripteditform.menuitemrun.caption
msgid "Выполнить"
msgstr "Executar"

#: tscripteditform.menuitemsave.caption
msgid "Сохранить"
msgstr "Salvar"

#: tscripteditform.menuitemsaveas.caption
msgid "Сохранить как..."
msgstr "Salvar como"

#: tscripteditform.menuitemsection.caption
msgid "Секция ="
msgstr "Seção"

Cannot change language

Hello, i downloaded the latest version and for some reason i cannot change language from russian.
The language menu does not even open.
I run it on a Windows 7 VM on mac.
Any idea? thanks!

Problem Programming W25Q256FV

Hi
I have a problem with ASprogrammer using CH341a . I Can write erase W25Q256FV correctly but when it comes to Programming the flash it writes the BIN file to 0x01000000 which is second 16MB .
Is there any same experience ?

Cannot Read ID after playing with SREG bits

Hello all

Using Dell Inspiron 15-3567
Bios version: 2.13.0
Programer: CH341a
BIOS chip: MACRONIX 25L12873F

I made a full dump of the working BIOS before the changes.

Made some changes to the dump image.
Flashed it back despite the warning message "Possible protection is enabled. Press "Unprotect" and check datasheet".
Then I was able to successfully boot up the laptop using this modded image. Took some inconvenience with modded bios and decide to flashback the original image.
Taking into account previous warning about chip protection was trying to remove protection, by

  1. Read SREG
  2. Edit SREG
  3. Unprotect"
    but it says that failed, then I try to stop and reconnect. After so I was unable to read ID, and cannot write any image.
    Still learning how to program chips,
    so asking for help on how to recover and flashback the original dump to chip

Thank you for any help.

Here si the sreg bit after read "Read SREG"
image

Support for MX25L25673G

Hi,

I tried to look at the chiplist.xml but don't understand all the parameters required to add a new chip - what needs to go in the "id" field and how do you determine the "size"?

e.g.
<MX25U25673G_1.8V id="C22539" page="256" size="33554432"/>

I'm trying to add an MX25L25673G M2I-08G

https://www.macronix.com/en-us/products/NOR-Flash/Serial-NOR-Flash/Pages/spec.aspx?p=MX25L25673G&m=Serial%20NOR%20Flash&n=PM2323

https://www.macronix.com/Lists/Datasheet/Attachments/7989/MX25L25673G,%203V,%20256Mb,%20v1.7.pdf

Any help would be greatly appreciated.

Add support for IPhone Displays/Taptic engine

The Displays and Vibrators have an i2c eeprom which stores the serial numbers and other data
In repair cases the serial numbers have to be written onto the new parts in order to have a completely working phone

My idea was to do the programming with a cheap ch341a and make a board that plugs into it which accepts the display connectors and has a 1.8v regulator

With that only a cheap supported device with adapter is needed instead of a 50€+ programmer

I have a ch341a and Qianli Cloneboy here as well as some broken displays to test and a logic analyzer
Firmware of the cloneboy or icopy can be dissasembled in ghidra, cloneboy has most likely a GD32E507(RCT6)

Missing Ru in script_func.html

I have to add at the very beginning of your script_func.html in order to be able to read it:

<html lang="ru"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta http-equiv="Content-Language" content="ru"> </head>

winbond 25Q64FVSIG not detect

i have winbond 25Q64FVSIG and asprograsmmer dont have detect this chip.

chip is 3.3v W25Q64FV: 64M-bit / 8M-byte (8,388,608)

This is AverMedia GC550 HDMI grabber device.

asp

UI Bug? When loading a saved file after reading an EEPROM, the selected IC is reset to default

I'm using the ubiquitous CH341a USB MinProgrammer (Black Edition) and AsProgrammer 1.4.1 in conjunction with a 93XXX EEPROM adapter I've made so I can utilize this combination to read devices such as the 93C66. I came across a UI behavior that I thought might be unintentional, perhaps unique to the CH341a/Microwire UI path.

Steps to reproduce:

  1. Launch AsProgrammer (set previously to Hardware->CH341a)
  2. Select the IC (in my case IC->Microwire->Microchip->93c66)
  3. Read the EEPROM
  4. Click Open File Icon, select a previously saved EEPROM image and click open

Note that upon loading the selected file, the IC type is reset back to default. You then have to manually reselect it again.

Possible support for the ST M95M02D EEPROM

I've searched through the chiplist.xml and cannot find the ST M95M02D EEPROM.
Is it possible to add? the parameters are page=256 size=262144 x 8bits + 1 ID page (256 bytes)

Problem Programming I2C

I have a problem with ASprogrammer using FT232H . I Can read 24C08. but write erase not working

Implement specific (mismatching) page programming

Programming a flash with USBAsp could take a lot of time, e.g. 25Q127CS1G(16MBit) takes about a hour(at 1.5-3MHz SPI freq).

When programming of such a big flash fails at some address, it's necessary to repeat the whole process: unprotect - erase - program - verify.
Would be great to overwrite only some mismatching page(s) but not the whole flash instead to save lot of time.

USBasp trouble reading Macronix 25V4035

Not sure if you take bug reports here or on the forum but just in case... I have the above chip on an HDD PCB I'm working on. If I use my CH341A programmer with AsProgrammer v1.4.0, the IC is read correctly. However, the same AsProgrammer v1.4.0 reads all 0s if I use USBasp flashed to the latest firmware supplied with AsProgrammer. Tried a few different connection combinations too.

I can explain in more detail how I hook up USBasp if needed. If you need some oscilloscope traces to debug this, I think I could try taking them. Let me know what you need or if this is a hardware limitation and USBasp for some reason cannot and will never be able to correctly read a 25V4035.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.