|
Считывание и программирование флеш памяти через JTAG |
|
|
|
Jul 20 2015, 20:30
|
Участник

Группа: Участник
Сообщений: 21
Регистрация: 26-04-07
Пользователь №: 27 317

|
Здравствуйте уважаемые коллеги ! Имею устройство имеющее в своем составе ПЛИС XC9572 и флеш AM29F040. Мне нужно считать флеш не выпаивая из устройства через JTAG . До этого никогда не сталкивался с данной задачей . Подскажите как мне это сделать ,что для этого требуется ,какие проги, что прочитать и т д Купил USB бластер Altera ,но пока что не могу его никак оседлать .Бластер нормально установил под QUARTUS 2
Надеюсь на вашу помощь
|
|
|
|
|
Jul 21 2015, 05:11
|
Участник

Группа: Участник
Сообщений: 21
Регистрация: 26-04-07
Пользователь №: 27 317

|
Цитата(Alex11 @ Jul 21 2015, 03:59)  Вам это надо один раз сделать, или регулярно? Если один раз - пишите программку на jam, загоняйте в jam-плеер альтеровский и будет Вам счастье. Если это нужно делать регулярно - придумывайте что-нибудь другое. Типа специальной прошивки в плис, которая поддержит считывание и пересылку данных. Через jtag жутко медленно с параллельной флешкой работать. Мне это нужно делать периодически (ремонт оборудования ) Скажите пожалуйста ,а определятся должна ПЛИС или флеш при подключении к бластеру и автодетектировании в QUARTUS ? И должно ли выходить 5 вольт из бластера на плату ? У меня на Vcc отсутствует напряжение . Или я должен запитать плату извне ?
|
|
|
|
|
Jul 21 2015, 05:35
|
Участник

Группа: Участник
Сообщений: 27
Регистрация: 16-02-15
Из: С-Петербург
Пользователь №: 85 185

|
Цитата(stas69 @ Jul 21 2015, 08:11)  Мне это нужно делать периодически (ремонт оборудования ) Скажите пожалуйста ,а определятся должна ПЛИС или флеш при подключении к бластеру и автодетектировании в QUARTUS ? И должно ли выходить 5 вольт из бластера на плату ? У меня на Vcc отсутствует напряжение . Или я должен запитать плату извне ? Питание на бластер должно идти с платы
|
|
|
|
|
Jul 21 2015, 08:43
|

Знающий
   
Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950

|
Поддерживаю - для частого использования надо делать отдельный разьем для программатора, а разово -с использованием boundary scan писать программу на JAM, а затем проигрывать альтеровским jam-player. Думаю, с помощью Perl можно из прошивки даже автоматически JAM- файлы генерировать, но сам такого не пробовал.
Я максимум что делал через boundary scan, это считывал ID флешек (включая параллельные NOR и NAND, а так же флешки с SPI интерфейсом), и делал дамп первых 256 байт прошивки, где обычно хранится хеадер. Такой изврат обычно требовался для работы с модулями заказчика, либо если плата залита лаком - т.е. в случаях, когда даже подпаяться нельзя.
|
|
|
|
|
Jul 21 2015, 10:40
|
Участник

Группа: Участник
Сообщений: 21
Регистрация: 26-04-07
Пользователь №: 27 317

|
Коллеги по порядку : Итак мне нужно считывать и соответственно записывать внешнюю память не выпаивая . Исходя из ответов ,я понял ,что нужно либо писать программу и загружать в плеер ,либо купить бластер от xilinx Что правильней ? Распишите по порядку : что покупать ,что читать ,что изучать ? (Я не программист) Желательно на русском (переводчики криво переводят )
Буду благодарен за содействие в изучении вопроса .
|
|
|
|
|
Jul 22 2015, 14:44
|

Знающий
   
Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950

|
Цитата(XVR @ Jul 22 2015, 14:31)  1) Читать флэш через BSCAN команды JTAG'а. Это очень и очень медленно (думаю, что речь идет о десятках минут или единиц часов) Да, пожалуй с той скоростью, что у меня получалась, полный дамп 1 час точно займет. Все зависит от того, где в цепочке находится интерфейс, и от частоты JTAG. У меня было около 1000 нодов в цепи, JTAG работал на 10MHz, и 256 байт выводилось секунд 20 (тоже была NOR флеш аналогичная АМ29F). Можно посчитать, сколько будет 4Мбит дампить. А запись будет идти еще медленнее. На самом деле, есть третий способ - сначала житагом переводить все IO в тристейт (если возможно), затем на зайлинкс или флеш одевать клипсу со шлейфом, и перепрошивать флеш программатором. И овцы целы, и волки сыты. p.s. если только там WP жестко не запаян, и программирование 12 вольт не требует. Давно я уже такими вещами не занимался, забывать стал ..
|
|
|
|
|
Jul 22 2015, 17:34
|
Участник

Группа: Участник
Сообщений: 21
Регистрация: 26-04-07
Пользователь №: 27 317

|
Цитата(XVR @ Jul 22 2015, 15:31)  Флэш AM29F040 не относится ни к Altera ни к Xilinx, и тем более не относится к любым вариантам загрузочных флэшей. Так что никакие тулы ни от Xilinx ни от Altera 'из коробки' этот флэш прочесть не смогут.
Вам придется самому сделать одно из 2х: 1) Читать флэш через BSCAN команды JTAG'а. Это очень и очень медленно (думаю, что речь идет о десятках минут или единиц часов) 2) Сделать и зашить в XC9572 программатор для подключенного флэша. IMHO это невозможно, т.к. доступа к JTAG порту из прошивки XC9572 нет (насколько я помню)
Для подключения к JTAG подойдет любой софт, лишь бы ему можно было скормить какой нибудь файл для проигрывания и получить назад результат. Кажется и Altera и Xilinx это поддерживают Первый вариант меня вполне устроит .Спешки нет . Хотел уточнить по подключению Изначально я подключал бластер к плате ;GND,TCK,TDI,TDO,TMS,Vpp/ Нужно ли подавать питание на плату извне ,или всё питается через бластер ? Измерял на бластере на Vpp ,там нету напруги. Цитата(Shivers @ Jul 22 2015, 18:44)  Да, пожалуй с той скоростью, что у меня получалась, полный дамп 1 час точно займет. Все зависит от того, где в цепочке находится интерфейс, и от частоты JTAG. У меня было около 1000 нодов в цепи, JTAG работал на 10MHz, и 256 байт выводилось секунд 20 (тоже была NOR флеш аналогичная АМ29F). Можно посчитать, сколько будет 4Мбит дампить. А запись будет идти еще медленнее.
На самом деле, есть третий способ - сначала житагом переводить все IO в тристейт (если возможно), затем на зайлинкс или флеш одевать клипсу со шлейфом, и перепрошивать флеш программатором. И овцы целы, и волки сыты. p.s. если только там WP жестко не запаян, и программирование 12 вольт не требует. Давно я уже такими вещами не занимался, забывать стал .. Честно говоря подумывал про клипсу .Но ничего подходящего для данной памяти не нашел в инете . А что такое IO в тристейт ?
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|