1 Отредактировано Squanchy (2017-08-16 23:52:08)

Тема: Ошибка программатора -22

День добрый. Прошу помощи с прошивкой.
Безуспешно пытаюсь залить скаченный с сайта тестовый Hello world на отладку SF2-Junior-KIT.
Версия Libero 11.8.0.26. Windows 8.1 x64.
Проект успешно синтезируется. На этапе PROGRAMM выдаёт:

Error: programmer '06974' : device 'M2S010' : Executing action PROGRAM FAILED, EXIT -22, refer to FlashPro online help for details.

UPDATE. Решение, которое помогло мне:
Нужно заменить в настройках программатора режим TCK Mode с "Free running clock" на "Discrete clocking".
Настройки живут в окне "Design Flow".
Program and Debug Design -> Configure Hardware -> Configure Programmer

Уже радует первое знакомство со средой. Никаких пояснений ошибки и даже ссылки на этот online help. Нашёл в документации такое пояснение -22 ошибки:

Unstable VPUMP voltage level.
Unstable VCC
Unstable VCC_OSC (Fusion only)
Unstable VCC_ROSC voltage
level (SmartFusion only)
Signal integrity issues on JTAG
pins.

В рекомендациях советуют проверить все сигналы. Проверил. Reset-ProgMode-Vpump дергаются. На цифровых TCK-TMS-TDI-TDO данные бегают. Смущает то, что программатор видит микросхему. Boundary scan проходит.
Пробовал отдельно запускать утилиту FlashPro и прошивать через неё. Файл прошивки причём пришлось создавать через Export. Потому как .ipd файлы среда стирает сразу же после генерации bitstreamа. В итоге выдаёт ту же самую ошибку.
На всякий случай выкладываю полные логи:

Software Version: 11.8.0.26
Driver : 3.0.0 build 1
programmer '06974' : FlashPro4
Opened 'C:\tmp\MyFirstProject\designer\MyFirstProject\MyFirstProject_fp\MyFirstProject.pro'
The 'open_project' command succeeded.
IPD file 'C:/tmp/MyFirstProject/designer/MyFirstProject/MyFirstProject.ipd' has been loaded successfully.
DESIGN : MyFirstProject;  CHECKSUM : 6A3D;  PDB_VERSION : 1.9
The 'set_programming_file' command succeeded.
Warning: Programming is already enabled for device 'M2S010'.
The 'enable_device' command succeeded.
The 'set_programming_action' command succeeded.
programmer '06974' : Scan Chain...
Warning: programmer '06974' : Vpump has been selected on programmer AND an externally provided Vpump has also been detected. Using externally provided Vpump voltage source.
programmer '06974' : Check Chain...
programmer '06974' : Scan and Check Chain PASSED.
programmer '06974' : device 'M2S010' : Executing action PROGRAM
programmer '06974' : device 'M2S010' : Family: SmartFusion2
programmer '06974' : device 'M2S010' : Product:      M2S010
programmer '06974' : device 'M2S010' : EXPORT ISC_ENABLE_RESULT[32] = 00756344
programmer '06974' : device 'M2S010' : EXPORT CRCERR[1] = 0
programmer '06974' : device 'M2S010' : EXPORT EDCERR[1] = 0
programmer '06974' : device 'M2S010' : TEMPGRADE: ROOM
programmer '06974' : device 'M2S010' : EXPORT VPPRANGE[3] = 2
programmer '06974' : device 'M2S010' : VPPRANGE: HIGH
programmer '06974' : device 'M2S010' : EXPORT TEMP[8] = 63
programmer '06974' : device 'M2S010' : EXPORT VPP[8] = 75
programmer '06974' : device 'M2S010' : Programming FPGA Array...
programmer '06974' : device 'M2S010' : Authentication Error.
programmer '06974' : device 'M2S010' : Bitstream or data is corrupted or noisy.
programmer '06974' : device 'M2S010' : EXPORT ERROR_CODE[16] = 801f
programmer '06974' : device 'M2S010' : componentNo: 2
programmer '06974' : device 'M2S010' : blockNo: 91
programmer '06974' : device 'M2S010' : EXPORT DATA_STATUS_RESULT: [32] = 00000104
programmer '06974' : device 'M2S010' : ===================================================================================
programmer '06974' : device 'M2S010' : EXPORT DSN[128] = 278444932d7fa7b53a298f81c54c429e
programmer '06974' : device 'M2S010' : ===================================================================================
programmer '06974' : device 'M2S010' : Finished: Thu Aug 03 15:45:26 2017 (Elapsed time 00:00:11)
Error: programmer '06974' : device 'M2S010' : Executing action PROGRAM FAILED, EXIT -22, refer to FlashPro online help for details.
Error: programmer '06974' : Chain programming FAILED.
Chain Programming Finished: Thu Aug 03 15:45:28 2017 (Elapsed time 00:00:13)
Error: Failed to run Action.

2

Re: Ошибка программатора -22

Несколько раз ошибка менялась на

Software Version: 11.8.0.26
Driver : 3.0.0 build 1
programmer '06974' : FlashPro4
Opened 'C:\tmp\MyFirstProject\designer\MyFirstProject\MyFirstProject_fp\MyFirstProject.pro'
The 'open_project' command succeeded.
IPD file 'C:/tmp/MyFirstProject/designer/MyFirstProject/MyFirstProject.ipd' has been loaded successfully.
DESIGN : MyFirstProject;  CHECKSUM : 6A3D;  PDB_VERSION : 1.9
The 'set_programming_file' command succeeded.
Warning: Programming is already enabled for device 'M2S010'.
The 'enable_device' command succeeded.
The 'set_programming_action' command succeeded.
programmer '06974' : Scan Chain...
Warning: programmer '06974' : Vpump has been selected on programmer AND an externally provided Vpump has also been detected. Using externally provided Vpump voltage source.
programmer '06974' : Check Chain...
programmer '06974' : Scan and Check Chain PASSED.
programmer '06974' : device 'M2S010' : Executing action PROGRAM
programmer '06974' : device 'M2S010' : Family: SmartFusion2
programmer '06974' : device 'M2S010' : Product:      M2S010
programmer '06974' : device 'M2S010' : EXPORT ISC_ENABLE_RESULT[32] = 00746244
programmer '06974' : device 'M2S010' : EXPORT CRCERR[1] = 0
programmer '06974' : device 'M2S010' : EXPORT EDCERR[1] = 0
programmer '06974' : device 'M2S010' : TEMPGRADE: ROOM
programmer '06974' : device 'M2S010' : EXPORT VPPRANGE[3] = 2
programmer '06974' : device 'M2S010' : VPPRANGE: HIGH
programmer '06974' : device 'M2S010' : EXPORT TEMP[8] = 62
programmer '06974' : device 'M2S010' : EXPORT VPP[8] = 74
programmer '06974' : device 'M2S010' : Programming FPGA Array...
Error: programmer '06974' : device 'M2S010' : Microsemi FlashPro3/3x/4/5 Programmer has been disconnected. Please check connection.
programmer '06974' : device 'M2S010' : Finished: Thu Aug 03 00:33:15 2017 (Elapsed time 00:00:01)
Error: programmer '06974' : device 'M2S010' : Executing action PROGRAM FAILED.
Error: programmer '06974' : Chain programming FAILED.
Chain Programming Finished: Thu Aug 03 00:33:17 2017 (Elapsed time 00:00:03)
Error: Failed to run Action.
n.

Прошла после попадания ёмкости на nRESET(щуп осциллографа). Возможно просто совпадение. Эта часть совсем непонятна, ибо программатор никуда не девается. Даже успешно зажигает красный светодиод Fail.

3 Отредактировано prya (2017-08-04 09:36:30)

Re: Ошибка программатора -22

Ну вот в логах вроде как раз описана ошибка:  Bitstream or data is corrupted or noisy.
А другая Programmer has been disconnected. Please check connection. - ну может быть отвалилось что-то в процессе экспериментов. А может и вариация первой.
Я бы смотрел в первую очередь в сторону питаний и контактов.
Возможно провода программатора слишком длинные и хватают помехи.
Пока могу только предполагать что могло бы быть, как пришлют плату посмотрю внимательно сам.
Скорее всего у меня еще выплывут дополнительные нюансы)))

Да, вот это не мешало бы проверить
Warning: programmer '06974' : Vpump has been selected on programmer AND an externally provided Vpump has also been detected. Using externally provided Vpump voltage source.
может там и нет никакого externally provided а если есть, то попытаться отключить соответствующую опцию чтобы убрать Warning

4

Re: Ошибка программатора -22

prya пишет:

Да, вот это не мешало бы проверить
Warning: programmer '06974' : Vpump has been selected on programmer AND an externally provided Vpump has also been detected. Using externally provided Vpump voltage source.
может там и нет никакого externally provided а если есть, то попытаться отключить соответствующую опцию чтобы убрать Warning

А где это отключить можно? В настройках проекта и PROGRAM не нахожу подобного.

5

Re: Ошибка программатора -22

У меня возникает такая же ошибка.

6 Отредактировано prya (2017-08-04 22:20:58)

Re: Ошибка программатора -22

Squanchy пишет:
prya пишет:

Да, вот это не мешало бы проверить
Warning: programmer '06974' : Vpump has been selected on programmer AND an externally provided Vpump has also been detected. Using externally provided Vpump voltage source.
может там и нет никакого externally provided а если есть, то попытаться отключить соответствующую опцию чтобы убрать Warning

А где это отключить можно? В настройках проекта и PROGRAM не нахожу подобного.

А джамперы на плате есть? Возможно там выставляется, надо все кстати проверить.
К сожалению могу только теоретически предполагать по аналогии с проблемами ксайлинкса и альтеры))

7

Re: Ошибка программатора -22

prya пишет:

А джамперы на плате есть?

Есть, но на шелкографии сэкономили, так что можно только гадать для чего они)

8

Re: Ошибка программатора -22

vlotnik пишет:

У меня возникает такая же ошибка.

Какая у вас операционная система?

9

Re: Ошибка программатора -22

перед отправкой каждый отладочный набор прошивался пятью тестовыми прошивками, отправлялись только те наборы, которые прошли все тесты
нечто похожее было на старых версиях Libero SoC (v.11.1, 11.2). Тогда проблема решилась с перевыпуском драйверов программатора. Наши наборы тестировались на ПК с Windows 7.

Пока могу предложить 3 направления устранения\диагностики проблемы:
1) несколько раз вынуть и вставить 20-контактный шлейф в программатор и отладочный набор, после чего попытаться прошить. смешно но иногда помогает
2) попробовать прошить набор прошивкой другого примера из опубликованных на сайте
3) если  есть под рукой комп с windows7 попробовать установить на нем Libero SoC или хотя бы утилиту для программирования и прошить набор из Windows 7

10 Отредактировано Squanchy (2017-08-08 09:33:09)

Re: Ошибка программатора -22

pitpg пишет:

перед отправкой каждый отладочный набор прошивался пятью тестовыми прошивками, отправлялись только те наборы, которые прошли все тесты
нечто похожее было на старых версиях Libero SoC (v.11.1, 11.2). Тогда проблема решилась с перевыпуском драйверов программатора. Наши наборы тестировались на ПК с Windows 7.

Пока могу предложить 3 направления устранения\диагностики проблемы:
1) несколько раз вынуть и вставить 20-контактный шлейф в программатор и отладочный набор, после чего попытаться прошить. смешно но иногда помогает
2) попробовать прошить набор прошивкой другого примера из опубликованных на сайте
3) если  есть под рукой комп с windows7 попробовать установить на нем Libero SoC или хотя бы утилиту для программирования и прошить набор из Windows 7

Плата приехала с залитой прошивкой(пингвины были на экране), так что думаю дело не в плате. Да и в целом видно, что она откликается на сканирование, очищает память.
1. У программатора10пиновый IDC. Тем не менее не помогло.
2. Попробовал. Те же ошибки.
3. Установил на другой ПК с Win7 x64. Те же ошибки.

Не может быть дело в разрядности системы? Я так понимаю приложение 32разрядное. В папке bin64 exe файла не нахожу.
UPD Косяк точно не в этом. На сайте производителя написано, что 32разрядные системы больше не поддерживаются даже.

Заметил ещё в консоли warning:

Executing programming action PROGRAM...
Qt: Untested Windows version 6.2 detected!

Но в Win7 его нет.

Понял что перепутал в документации первое семейство со вторым. Для SmartFusion2 вообще не представлено кода расшифровки -22 ошибки.

11

Re: Ошибка программатора -22

pitpg пишет:

Какая у вас операционная система?

Windows 10, x64.

Re: Ошибка программатора -22

У меня такая ошибка на  ProAsic 3 вылезает если я забываю включить внешнее питание на плате которую прошиваю.
То что с документацией всё плохо - привыкайте, это Вам не ксайлинкс или альтера, это актель, ещё не раз столкнётесь, особенно если знакомство только начали.
Мне набор ещё не пришёл, а в интернетах нормальной доки и схемы что то не очень нашлось. Но из того что нашлось http://www.emcraft.com/docs/M2S-FG484-S … 1.14.3.pdf  User Guide. Для начала Страница 7-12 Вам нужно посмотреть положение джамперов. Vpump не должен дёргаться, но он вроде нужен для прошивки Flash, так что скорее всего не ваш случай.
Ещё вот что пишут 
The M2S-FG484 SOM comes with the U-Boot firmware and an appropriate Libero project preinstalled
into SmartFusion2. U-Boot provides sufficient interfaces for uploading and installing
new firmware images onto the board so you may never need to re-install firmware over the
JTAG interface. If however at some point you require re-programming U-Boot onto your
board, connect it to a Microsemi FlashPro programmer tool by plugging a standard JTAG
cable into the P3 connector.
По умолчанию я так понимаю всё настроено на работу через Usb, проверьте перемычку активирующую JTAG интерфейс

13

Re: Ошибка программатора -22

sergey@mtronics.ru пишет:

У меня такая ошибка на  ProAsic 3 вылезает если я забываю включить внешнее питание на плате которую прошиваю.
То что с документацией всё плохо - привыкайте, это Вам не ксайлинкс или альтера, это актель, ещё не раз столкнётесь, особенно если знакомство только начали.
Мне набор ещё не пришёл, а в интернетах нормальной доки и схемы что то не очень нашлось. Но из того что нашлось http://www.emcraft.com/docs/M2S-FG484-S … 1.14.3.pdf  User Guide. Для начала Страница 7-12 Вам нужно посмотреть положение джамперов. Vpump не должен дёргаться, но он вроде нужен для прошивки Flash, так что скорее всего не ваш случай.
Ещё вот что пишут 
The M2S-FG484 SOM comes with the U-Boot firmware and an appropriate Libero project preinstalled
into SmartFusion2. U-Boot provides sufficient interfaces for uploading and installing
new firmware images onto the board so you may never need to re-install firmware over the
JTAG interface. If however at some point you require re-programming U-Boot onto your
board, connect it to a Microsemi FlashPro programmer tool by plugging a standard JTAG
cable into the P3 connector.
По умолчанию я так понимаю всё настроено на работу через Usb, проверьте перемычку активирующую JTAG интерфейс

Схема то есть, но Вас она не обрадует, понять по ней что-либо тяжело. Забыл дописать в заголовке что речь о плате SF2-Junior-KIT.
https://actel.ru/files/uploads/SF2-Junior-KIT_sch.pdf
Добавим к этому отсутствие какого-либо обозначения элементов на плате, сопоставить их со схемой становится вдвойне веселее, приходится лезть в сборочный чертёж.

Джамперов там 5(картинки форум не позволяет прикрепить):
2 для соединения выходов ЦАПов с ОУ.
1 для соединия RC цепочки с портом ПЛИС.Или АЦП, пока нет желания вникать.
и 2 для коммутации питания. От 9В, либо USB.

Тут если питание не подать, совсем другая ошибка вылетает: "Vjtag is disconnected or shorted. Please check the FPGA's Vjtag pin is properly connected. Please check that the target board is powered.".

Для чего вообще нужен этот Vpump? В xilinx такого не встречал, там достаточно одного напряжения для программатора.

По поводу прошивки - я так понимаю тут в комплекте идёт своя прошивка от Питера. Честно говоря не очень понимаю как плата вообще может прошиваться через USB. Часть с ARMом понятно, бутлоадер может быть встроенный. Но ПЛИС вроде не имеет такой возможности.

14

Re: Ошибка программатора -22

На всякий случай дополню про положение джамперов. Пробовал все 4 варианта прошивки:
Джамперы надеты, питание на плату подано.
Джамперы не надеты, питание на плату подано.
Джамперы надеты, питание на плату не подано.
Джамперы не надеты, питание на плату не подано.

15 Отредактировано sergey@mtronics.ru (2017-08-10 17:12:37)

Re: Ошибка программатора -22

Получил набор. Извиняюсь вчера совсем другой нашёл, доку на него смог посмотреть только когда в живую увидел, надо будет разобраться что к чему.
Programming Voltage (VPUMP) and VJTAG
Low-power flash devices support on-chip charge pumps, and therefore require only a single 3.3 V
programming voltage for the VPUMP pin during programming. When the device is not being
programmed, the VPUMP pin can be left floating or can be tied (pulled up) to any voltage between
0 V and 3.6 V. During programming, the target board or the FlashPro3 programmer can provide
VPUMP. FlashPro3 is capable of supplying VPUMP to a single device. If more than one device is to be
programmed using FlashPro3 on a given board, FlashPro3 should not be relied on to supply the
VPUMP voltage.

Re: Ошибка программатора -22

Посмотрел схему, там на Vjtag и VPUMP по конденсатору 0.1 мкФ стоит.
Раньше в проектах ставили всегда  в параллель 0,01мкФ и 0,33 мкФ как рекомендовано производителем, иногда даже добавляли 10 мкФ для надёжности. Похоже в этом может быть потенциальная проблемма.

Описание из документа In-System Programming (ISP) of Actel’s Low-Power Flash Devices Using FlashPro4/3/3X

Board-Level Considerations
A bypass capacitor is required from VPUMP to GND for all low-power flash devices during
programming. This bypass capacitor protects the devices from voltage spikes that may occur on the
VPUMP supplies during the erase and programming cycles. Refer to Pin Descriptions for specific
recommendations. For proper programming, 0.01 µF and 0.33 µF capacitors (both rated at 16 V) are
to be connected in parallel across VPUMP and GND, and positioned as close to the FPGA pins as
possible. The bypass capacitor must be placed within 2.5 cm of the device pins.

17

Re: Ошибка программатора -22

Спасибо, попробую напаять вечером. У Вас такой проблемы не возникает при прошивке?

Re: Ошибка программатора -22

Мне в 17-10 по Москве курьер принёс коробку, пока только успел поглядеть что внутри

19 Отредактировано Squanchy (2017-08-11 14:58:02)

Re: Ошибка программатора -22

Напаял поверх С3 и С6 по паре конденсаторов 10 и 200 нФ - не помогло.
Глянул осциллографом - никаких игл в момент программирования не видно. Шумы порядка 20-40 мВ, в момент прошивки картина не меняется.

20

Re: Ошибка программатора -22

В очередной раз натыкаюсь на ошибку "Microsemi FlashPro3/3x/4/5 Programmer has been disconnected. Please check connection.". Раньше лечилось в момент прикладывания щупа nTRST. Щуп 16пФ. Глянул схему - ёмкости нет, только подтяжка к земле. Нет возможности пока углубиться в документацию, но честно говоря впервые встречаю пин Reset без небольшого конденсатора на землю.
Теперь и щуп не помогает. Иглы на осциллограмме достаточно приличные. 100мВ и их много. И это в моменты, когда Reset не дёргается. Каждый длиной до 20-40нс. Тяжело оценить, критично ли это. Как будет время попробую и сюда ёмкостей напаять.

21

Re: Ошибка программатора -22

100 нФ на nTRST убрало иглы, но ошибки не изменились.

22

Re: Ошибка программатора -22

sergey@mtronics.ru пишет:

То что с документацией всё плохо - привыкайте, это Вам не ксайлинкс или альтера, это актель, ещё не раз столкнётесь, особенно если знакомство только начали.

По поводу документации на первый взгляд примерно так-же. Для конкретно этой платы вроде тоже на уровне сделано, хоть и на русском))
Вобщем-то у ксайлинкса и альтеры тоже вылезает всякое неприятное местами.
Хотя..
Вот то что в линуксе поддерживается только flashpro5 - это хороший сюрприз, да((

23

Re: Ошибка программатора -22

vlotnik пишет:

У меня возникает такая же ошибка.

попробуйте пришить с питанием платы не от AC/DC, а от USB

24

Re: Ошибка программатора -22

pitpg пишет:
vlotnik пишет:

У меня возникает такая же ошибка.

попробуйте пришить с питанием платы не от AC/DC, а от USB

Попробовал. Та же ошибка.

25

Re: Ошибка программатора -22

У меня под виндой прошилось.
Предупреждение по поводу Vpump тоже выскочило, но проблем не вызвало.
Настройки программатора в Design Flow->Configure Programmer
Там есть галочка управления Vpump и интересная опция Force TCK Frequency, я бы в случае проблем поигрался с этим.

Да, еще на всякий случай проверьте что чип в настройках проекта правильный выставлен, все-таки

or data is corrupted