LINUX.ORG.RU

[SOLVED] Программатор ни в какую не видит чип, нужен совет

 , ,


0

1

Дано:

  • Thinkpad X230 в роли пациента;
  • Beaglebone Green в роли программатора;
  • CH341 китайского происхождения в роли RS-232 для внешнего управления вышеупомянутым одноплатником.

На BBG установлен Debian:

uname -a
Linux beaglebone 4.9.82-ti-r102 #1 SMP PREEMPT Thu Feb 22 01:16:12 UTC 2018 armv7l GNU/Linux
К нему подключена прищепка на SOIC-8, которая прикреплена к чипу биоса на ноуте в соответствии со схемой:
(MOSI) 18 ------ 1  (GND)
(SCLK) 22 -|  |- N/C
      N/C -|  |- 21 (MISO)
  (VCC) 3 ----+- 17 (CS)
Соответствующие пины на гребёнке P9 я перевёл в режим SPI командой config-pin:
for i in 17 18 21 22; do config-pin -q P9_${i}; done
P9_17 Mode: spi_cs
P9_18 Mode: spi
P9_21 Mode: spi
P9_22 Mode: spi_sclk
Однако при попытке выполнить команду
flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=1024 -c "MX25L6406E/MX25L6408E" -r X230_8_current.rom
не происходит, в общем-то, ничего:
flashrom v0.9.9-r1954 on Linux 4.9.82-ti-r102 (armv7l)
flashrom is free software, get the source code at https://flashrom.org

Calibrating delay loop... OK.
No EEPROM/flash device found.
Note: flashrom can never write if the flash chip isn't found automatically.
Я пробовал подключать 3 и 7 ноги к 3.3V, как рекомендуют кое-где в интернетах, и когда-то давно это помогло мне считать содержимое обоих чипов. Сейчас это не даёт ровным счётом никакого эффекта. Кроме того, я пробовал менять скорость (от 128 до 8192) — тоже не помогло.
Сам чип на ноуте точно живой, потому что ноут вполне благополучно грузится и работает с той прошивкой, которая залита сейчас. Прищепку прозванивал, в плотности контакта с чипом уверен, провода подпаял как можно короче (фото с тапка).

Собственно, вопрос: какие могут быть причины моей неудачи, если не рассматривать в качестве вариантов дурную судьбу и плохую карму?

Ответ на: комментарий от al-kasch

Если бы она не поддерживала, то я бы ничего не сумел туда залить. Тем не менее, это у меня когда-то вышло (больше одного раза). А сейчас — облом по неясным причинам.

Есть рекомендации на тему нормальных программаторов?

beresk_let ★★★★★ ()
Последнее исправление: beresk_let (всего исправлений: 1)
Ответ на: комментарий от sehellion

Затрудняюсь представить, как именно предлагается использовать CH341 напрямую.

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

beresk_let ★★★★★ ()
Ответ на: комментарий от sehellion

У меня ch341, который переходник с UART на обычный USB.

Увы, у меня слишком мало опыта, чтобы аккуратно снять чип обычным паяльником: ссыкотно запороть материнку (с предыдущей так и произошло). Кроватка нужна, чтобы чип прошивать; или речь о том, чтобы цеплять выпаянный чип тупо на ту же самую прищепку? В чём тогда разница?

beresk_let ★★★★★ ()
Ответ на: комментарий от beresk_let

Ну прищепка или кроватка особой роли не играет. Есть еще вариант просто приподнять ногу питания пробовать. Ну или потренироваться на уже снятой откуда-либо флешке. Насколько вообще срочное дело? ch341a стоит копейки и найти человека, у которого он есть не сложно

sehellion ★★★★★ ()
Ответ на: комментарий от sehellion

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

Хм, а потренироваться на снятой с предыдущей матери флешке — мысль. Надо попробовать.

beresk_let ★★★★★ ()
Последнее исправление: beresk_let (всего исправлений: 1)
Ответ на: комментарий от beresk_let

ссыкотно запороть материнку (с предыдущей так и произошло)

а я usb-ch341a программатором с SOIC8 прищепкой прицепился к чипу, замкнул или типа того — и сжег его или вообще чипсет в целом на T440p, так что не угадаешь.

Bruce_Lee ★★ ()
Ответ на: комментарий от Bruce_Lee

Да, вся эта затея сама по себе довольно авантюрная, согласен. Но с аккуратным подключением проводов лично мне справиться проще, чем с паяльником (хотя и стыдно в этом признаваться), — так что я предпочитаю этот риск.

beresk_let ★★★★★ ()
Ответ на: комментарий от beresk_let

Оно тебе нужно будет раз или два в жизни. Очевидно, что производители не заинтересованы в том, чтобы перешивали и будут чинить всё большие препятствия и совать палки в колеса (велосипеда).

Ну совсем как на свежих синкпадах.

Bruce_Lee ★★ ()
Ответ на: комментарий от Bruce_Lee

нужно будет раз или два в жизни

Кто знает: я, может, не отказался от идеи уйти в эмбеддед.
Да и вообще, чем больше навыков освоено — тем дальше Альцгеймер.

beresk_let ★★★★★ ()

Методика вполне себе нормальная, судя по фото. Скорее всего не хватает питания, судя по тому что не видит прошивку. К той знатной прищепке осциллограф бы навесить, чтобы уровень сигналов посмотреть.;-) Пробуй ногу питания приподнять.

SergeySVold ★★★★ ()

А ты не рассматриваешь вариант, что прищепка отстает/не дожимает и т.п., потому что я как вспомню свои мучения с ней и то, что только на 25-й, в лучшем случае, раз можно нормально прицепиться, чтобы считывало/записывало — жуть.

Bruce_Lee ★★ ()
Ответ на: комментарий от Bruce_Lee

потому что я как вспомню свои мучения с ней и то, что только на 25-й, в лучшем случае, раз можно нормально прицепиться, чтобы считывало/записывало — жуть.

У меня вообще за всю жизнь 2 или 3 раза получилось что-то этим говном сделать, последнее время даже не пытаюсь, проще феном дунуть.

al-kasch ()

flashrom-ch341a(НЕ в режиме uart преобразователя!)-soic прищепка с питанием от ch341-профит coreboot! Внимание: обязательно снять все источники питания с матплаты! Акум и батарею cmos памяти.

anonymous ()
Ответ на: комментарий от SergeySVold

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

beresk_let ★★★★★ ()
Ответ на: комментарий от anonymous

У меня не тот CH341, который программатор, а тупо мелкая платка, которая не делает ничего, кроме преобразования. Возможно, я зря её обозвал CH341, но система общается с ней через модуль ядра ch341, потому так и написал.

beresk_let ★★★★★ ()

al-kasch, sehellion, Bruce_Lee, SergeySVold

Благодарю за помощь и советы: проблема действительно была в том, что чип сидел на плате.
После того, как я перестал ссать и решился отпаять флешку, всё прекрасно прочиталось (и записалось) с помощью той самой прищепки. Осталось теперь аккуратно вернуть чип на место, но это уже не так сложно: в отличие от прошлого раза, площадки остались на месте (смотри мам я не рукожоп).

beresk_let ★★★★★ ()

Кроме того, я пробовал менять скорость (от 128 до 8192) — тоже не помогло.

https://www.flashrom.org/FAQ

The linux_spi driver has a spispeed parameter that should always be set to a reasonable speed (100kHz..10,000kHz, try lower frequencies first)

надо начинать с 10000, а не заканчивать 8192. Если осцила нет чтобы посмотреть наличие сигналов на интерфейсе - то хотя бы вольтметром CS посмотреть опускается ли он в 0 при чтении.

anonymous ()
Ответ на: комментарий от beresk_let

Любая плата на CH341 является двойным устройством:uart режим и spi/i2c режим, за это отвечает джампер на плате, жёлтый который на фото. flashrom как раз поддерживает ch341 в spi режиме в качестве «программатора». И да, люди, обесточивайте платы при внутрисхемном программировании! Это жёлтая батарея на плате (на фото)!

anonymous ()
Ответ на: комментарий от intelfx

Аккуратно прижал жало с одной стороны чипа, приподнял пинцетом; потом прижал с другой, снял чип. Сложнее всего было не задеть соседние резисторы, но всё равно не рокетсаенс.

beresk_let ★★★★★ ()
Ответ на: комментарий от intelfx

Широкое жало, сплавом розе для начала припой разбавить, почти всё можно выпаять. Ещё желательно чтобы паяльник индукционный был, гг. Ну а по-человечески без фена никак.

al-kasch ()