реклама на сайте
подробности

 
 
> Проблемы с программированием ATmega64
In_vivo
сообщение May 1 2009, 15:27
Сообщение #1





Группа: Новичок
Сообщений: 11
Регистрация: 24-05-08
Пользователь №: 37 775



Давно использую ATmega64L. Не было никаких проблем ни по освоению, ни по программирванию. Выпущено больше тысячи различных приборов на данном чипе. С конца прошлого года появилась проблема - определенная партия микросхем (причем ВСЯ ПАРТИЯ 100%) не шьется по ISP. В первый раз (декабрь 2008) я подумал, что это случайность. Сейчас май 2009 и снова на руках "битая" партия. Конкретно о чипе:
ATMega64L-8AU
маркировка на обратной стороне:
8H6144
355D9E
1-P
0903 e3
Просьба к тем, кто сталкивался с подобным, что это такое вообще и что делать!? Возможно стоит попробовать зашить на STK500(600) (к сожалению не имею в настоящее время) в паралельном режиме или это уже диагноз?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SysRq
сообщение May 1 2009, 21:27
Сообщение #2


Чайник, 1 литр
****

Группа: Свой
Сообщений: 655
Регистрация: 17-05-06
Из: Moscow
Пользователь №: 17 168



А внешний клок пробовали подавать? М.б. партия ошибочно зашита на тактирование от внешнего генератора.
Go to the top of the page
 
+Quote Post
In_vivo
сообщение May 2 2009, 05:02
Сообщение #3





Группа: Новичок
Сообщений: 11
Регистрация: 24-05-08
Пользователь №: 37 775



Попробую конечно, но в даташите четко указано что по дефолту включен внутренний RC-генератор


Цитата(plombir @ May 2 2009, 08:44) *
Чем шьёте? Сигнатура читается?
Частоту SPI обмена попробуйте уменьшить.

Не видит прогер чип вообще - ни сигнатура, ничего!
шью Ponyprog-ом, проггер аналогичен STK200 (на LPT, буфер 74hc244). Прикол же в состоит в том, что выкусив из платы "странный" чип и запаяв чип из другой партии ВСЕ нормально программируется и работает! Слышал как-то что бывают "гнилые" чипы распространяемые китайцами , может в этом дело?

Сообщение отредактировал In_vivo - May 2 2009, 05:05
Go to the top of the page
 
+Quote Post
defunct
сообщение May 2 2009, 16:00
Сообщение #4


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(In_vivo @ May 2 2009, 08:02) *
Не видит прогер чип вообще - ни сигнатура, ничего!
шью Ponyprog-ом, проггер аналогичен STK200 (на LPT, буфер 74hc244). Прикол же в состоит в том, что выкусив из платы "странный" чип и запаяв чип из другой партии ВСЕ нормально программируется и работает! Слышал как-то что бывают "гнилые" чипы распространяемые китайцами , может в этом дело?

....
А на "гнилой" понипрог не подумали?

Чем чипы ломать, купите нормальный программатор вначале. У m64 к тому же есть JTAG, через него подключались?
Диву даюсь. Как ломать 3 чипа по 5$ каждый, деньги есть. А как купить программатор, да хотя бы AVR-Dragon за 50$ так нет.

Обратите внимание, ни один обладатель SKT500 ни разу не создавал тему, о том что что-то не программируется. Зато у почитателей Ponyprog'а такая тема регулярно появляется.
Go to the top of the page
 
+Quote Post
In_vivo
сообщение May 2 2009, 19:10
Сообщение #5





Группа: Новичок
Сообщений: 11
Регистрация: 24-05-08
Пользователь №: 37 775



Цитата(defunct @ May 2 2009, 20:00) *
....
А на "гнилой" понипрог не подумали?

Чем чипы ломать, купите нормальный программатор вначале. У m64 к тому же есть JTAG, через него подключались?
Диву даюсь. Как ломать 3 чипа по 5$ каждый, деньги есть. А как купить программатор, да хотя бы AVR-Dragon за 50$ так нет.

Обратите внимание, ни один обладатель SKT500 ни разу не создавал тему, о том что что-то не программируется. Зато у почитателей Ponyprog'а такая тема регулярно появляется.

Чипы все равно выкушенные из платы были (некогда разбираться было - изделия надо отгружать), так что потери не большие. А насчет понипрога... Ну не знаю, насколько он "гнил", повторюсь, в течении 4 лет сделана масса приборов на 8515, m64, m32, m169, tiny15 (на данном чипе больше 20 000 изделий) все было запрограммировано программатором типа STK200, и никаких проблем не было. Использовался также программатор из CVAVR. Все былочетко.
Я конечно попробую прошить на STK500 в ближайшее время, но сдается мне не в проггере дело...
Go to the top of the page
 
+Quote Post
defunct
сообщение May 3 2009, 05:35
Сообщение #6


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(In_vivo @ May 2 2009, 22:10) *
Я конечно попробую прошить на STK500 в ближайшее время, но сдается мне не в проггере дело...

Через JTAG тоже попробуйте. Сдается мне чипы тут не при чем. Цвет подложки роли не играет, к тому же медная подложка лучше и дороже чем алюминиевая.
Еще чипы у вас L, предполагаю питаются от ~3V? А буферок на 74HC имеет проблемы с совместимостью с TTL уровнями и может не дружить с 3V, для 3V надо ставить 74LS или 74HCT. Если каким-то чудом работало со старыми чипами, совсем не обязательно что будет работать со всеми.
Go to the top of the page
 
+Quote Post
In_vivo
сообщение May 3 2009, 05:54
Сообщение #7





Группа: Новичок
Сообщений: 11
Регистрация: 24-05-08
Пользователь №: 37 775



Цитата(defunct @ May 3 2009, 09:35) *
Через JTAG тоже попробуйте. Сдается мне чипы тут не при чем. Цвет подложки роли не играет, к тому же медная подложка лучше и дороже чем алюминиевая.
Еще чипы у вас L, предполагаю питаются от ~3V? А буферок на 74HC имеет проблемы с совместимостью с TTL уровнями и может не дружить с 3V, для 3V надо ставить 74LS или 74HCT. Если каким-то чудом работало со старыми чипами, совсем не обязательно что будет работать со всеми.

Я об этом (о возможной проблеме 3В) подумал сразу, я установил чип в ПП другого изделия (там тоже используется m64 но питание 5В), результат тот же: чип не видит ни один программатор- ни STK200, ни USB от PROTOSSа, ни AVreal. Для контроля (мало ли чего cool.gif ) перед попыткой зашить сабж, пробовал зашить заведомо исправное изделие - все три проггера работали без изъянов.
Go to the top of the page
 
+Quote Post
defunct
сообщение May 3 2009, 06:08
Сообщение #8


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(In_vivo @ May 3 2009, 08:54) *
перед попыткой зашить сабж, пробовал зашить заведомо исправное изделие - все три проггера работали без изъянов.

От партии к партии чипы таки меняются. Один раз наткнулся, что работающая программа перестала работать с очередной партией МК (чипы дико глючили, даже тактирование останавливалось). Как оказалось в программе была ошибка, в результате которой в самом начале программы (перед инициализацией) происходила запись мусора по нулевым адресам. Т.е. сперва записывался мусор, хоть и всегда одинаковый, в некоторые (или во все) регистры периферии, а потом производилась корректная инициализация. Вопрос почему старая партия это "хавала", а новая затыкаталась меня как-то не особо волоновал, исправил и теперь все ОК и со старыми чипами и с новыми.

было вот так:

printf("bla bla bla");
...
console_init();

printf писал в непроинициализированный буфер.

Вот и вам советую. Сперва перепробовать все с настроем, что проблема не в чипе, а во внешних факторах.

PS: Ни один из названных вами программаторов, у меня не вызывает полного доверия. Пусть к AVReal как к софту вопросов нет, но тут упираемся в сомнительное железо тобиш ваш STK200 адаптер.
Go to the top of the page
 
+Quote Post
Petka
сообщение May 3 2009, 07:05
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Цитата(defunct @ May 3 2009, 10:08) *
..............
PS: Ни один из названных вами программаторов, у меня не вызывает полного доверия. Пусть к AVReal как к софту вопросов нет, но тут упираемся в
сомнительное железо тобиш ваш STK200 адаптер.

bb-offtopic.gif Откуда у вас такая нелюбовь к stk200? Между прочим это ФИРМЕННЫЙ программатор от Атмел. Аналогичным образом построены "фирменый" Byteblaster от Altera, и пр. гигантов. Ну и что что стоит этот программатор копейки. Или по вашему "дешёвая" вещь не может работать отлично? Без USB у нас теперь ничего работать не должно?
Извините, наболело.
Если по существу, то в спорных случаях как раз хорошо пробовать абсолютно "дубовые" утсройства, функциональность который легко проверить и которые в себе не содержат "интеллекта". Согласитесь, буфер 555 серии гораздо надёжнее чем целое устройство с софтверным USB, в котором ещё и некая прошивка есть...
А вот в последнее время палёных микросхем всё больше и больше.

Цитата(INT1 @ May 3 2009, 10:35) *
ИМХО, это самое интересное, может он просто не подключен к выводам, а вы достучаться до него хотите.

Тоже вариант. Можно начать с прозвонки питания. Одноимённые пины "GND" в атмелках должны звониться (проверял на M32).
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 3 2009, 07:48
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Petka @ May 3 2009, 10:05) *
Аналогичным образом построены....

В прошлом веке. Причем и в прошлом веке далеко не всегда все эти "байтбластеры" вели себя во всех условиях прилично. С тех пор окружение несколько ушло вперед и совсем перестало даже задумыватся о том, а как это оно будет "буферу 555 серии" работаться при хрен знает каком питани, как там диаграмка ногодрыгания будет выглядеть и что там с фронтами будет на метровом кабеле приделанном к программатору похожему (ну выкинули там пару "ненужных" деталей, а все остальное похожее поставили ) на "фирменный", и прочее....
Цитата
в спорных случаях как раз хорошо пробовать абсолютно "дубовые" утсройства, функциональность который легко проверить и которые в себе не содержат "интеллекта".

Как-же не содержат sad.gif черный ящик ака "компьютер" зачем лихо за скобки выносить? Пытаетесь Райкину подражать - "к пуговицам притензии есть"?


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Petka
сообщение May 3 2009, 08:22
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Цитата(zltigo @ May 3 2009, 11:48) *
В прошлом веке. Причем и в прошлом веке далеко не всегда все эти "байтбластеры" вели себя во всех условиях прилично. С тех пор окружение несколько ушло вперед и совсем перестало даже задумыватся о том, а как это оно будет "буферу 555 серии" работаться при хрен знает каком питани, как там диаграмка ногодрыгания будет выглядеть и что там с фронтами будет на метровом кабеле приделанном к программатору похожему (ну выкинули там пару "ненужных" деталей, а все остальное похожее поставили ) на "фирменный", и прочее....

Как-же не содержат sad.gif черный ящик ака "компьютер" зачем лихо за скобки выносить? Пытаетесь Райкину подражать - "к пуговицам притензии есть"?

1) Вы перегибаете. "Метровый кабель" можно приделать для удобства и к выходу "фирменного USB" программатора. "Хрен знает какое питание" обеспечивается от программируемого устройства. Если уж буферу оно не понравилось, то АВРке вообще не жить там. Фирменные программаторы сделаны зачастую гораздо хуже (Dragon, например).
2) zltigo, Вы уважаемый в форуме участник. Ваши необоснованные утверждения могут быть восприняты "неокрепшими" умами как истина. Прошу далее обосновать (с привлечение ссылок на datasheets) почему железо stk200 может быть причиной "даже сигнатура не читается".
3) Софт тоже не без "огрехов" бывает. avreal, как видите постоянно совершенствуется. Но когда топикстартер говорит что несколько разных софтин дают одинаковый результат банальная логика подсказывает что вероятно не в софте дело.

топикстартеру:
1) попробуйте ещё avrdude + stk200. (проверить ещё один софт).
2) посмотрите осциллом на линии программирования. всё ли нормально (соответствует даташиту атмела) с фронтами, уровнями, времянками.
3) всё-таки подайте частоту на XTAL1, посмотрите не стал ли программироваться.
4) вместе с (3) к avreal добавьте ключики "-5 -O800Hz".
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 3 2009, 08:42
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Petka @ May 3 2009, 11:22) *
Почему железо stk200 может быть причиной...

Потому, что в российских условиях, то что Вы пытаетесь назвать "железом STK200" им не является, а является неким подобием неведомо как и из чего собранным, "упрощенным" ну и само собой "удобства" ввиде метровых проводов и сокращения земель присутствуют почти обязательно. Диаграммы работы этого "железа" полностью зависят, НО НИКАК НЕ НОРМИРУЮТСЯ железом, драйверами и софтом комппьютера.
Предмета обсуждения а может-ли все это НЕ влиять на работоспособность просто нет sad.gif.
А тема "AVR не программируется, всегда программировался (пять проводков, STK, бластер, пони, дуде......) и тут опять не..." есть практически ЕЖЕДНЕВНАЯ дежурная тема этого форума sad.gif.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Petka
сообщение May 3 2009, 09:11
Сообщение #13


Профессионал
*****

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Цитата(zltigo @ May 3 2009, 12:42) *
Потому, что в российских условиях, то что Вы пытаетесь назвать "железом STK200" им не является, а является неким подобием неведомо как и из чего собранным, "упрощенным" ну и само собой "удобства" в виде метровых проводов и сокращения земель присутствуют почти обязательно. Диаграммы работы этого "железа" полностью зависят, НО НИКАК НЕ НОРМИРУЮТСЯ железом, драйверами и софтом компьютера.
Предмета обсуждения а может-ли все это НЕ влиять на работоспособность просто нет sad.gif.

Ни ссылок на datasheets, ни одной электрической физической величины нету (зато есть метры и ссылки на "российские" условия). Понимаю, Вы занимались бы продажей или производством "фирменных" программаторов. Ваши тезисы можно было бы понять (понять почему Вы так говорите). Но когда вы ставите под сомнение работу проверенных десятилетиями микросхем буферов, это выходит за рамки разумного.

Цитата(zltigo @ May 3 2009, 12:42) *
А тема "AVR не программируется, всегда программировался (пять проводков, STK, бластер, пони, дуде......) и тут опять не..." есть практически ЕЖЕДНЕВНАЯ дежурная тема этого форума sad.gif.

Upd:
Железо:
5 проводков на несколько метров - да. (и этому факту есть логичное обьяснение: нагрузочная способность LPT, логические уровни, ёмкость кабеля, входов атмелки, омическое сопротивление, отсутствие "Z" состояния и пр.)
STK, бластер - проблемы ТОЛЬКО когда от программатора к устройству кабель более метра. Как только кабель укорачивают - программатор работает. Такая проблема будет возникать и у "дорогих, патентованных стиральных порошков" и к программатору отношения не имеет.
Софт:
Могу сказать про свой опыт. Пони глюкавил. avrdude - не был замечен. Avreal - версии, которые "release" не были замечены в критических глюках.
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 3 2009, 09:44
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Petka @ May 3 2009, 11:59) *
Но когда вы ставите под сомнение работу проверенных десятилетиями микросхем буферов..

Я уже писал в первом посте - не пытайтесь свести КОМПЛЕКСНУЮ проблему нестабильности работы конгломерата к работе или не работе пуговиц буферов. Ну нет у меня притензий к отдельно лежащим в коробке пуговицам. А к той многочисленной хрени, которую называют "програматорами AVR" подключаемыми к LPT, и в которой "555 буфер" только один из винтиков - есть, ибо не работают они нормально и стабильно. Вечно что-то случается. Я достаточно редко с AVR работаю, но и то сталкиваюсь с фокусами,когда у заказчиков "не программируется". Другие, как видно неворуженным глазом на этом форуме - тоже. Ненормальность работы с такими "программаторами" никаких сомнений вызывать просто НЕ может. И я Вас умоляю, не надо опять повторять про проверенные временем "пуговицы". Глупо.
P.S.
Самые первые (но не единственные) грабли на которые лично наступал - имеем ATMega162. Попросил, дабы не терять время у заказчика какую-нибудь похожую железку с этим контроллером. В моем распоряжении аккуратно и безкопромисно собранный алтеровский байтбластер (с полным пониманием того, как, почему, что и зачем) и AvReal. Все это уже несколько раз использовалось для разнообразных "лабораторных" работ. Ну не шьется и даже сигнатура не определяется, хоть убейся. Еду к заказчику - он на моих глазах через "пять проводков полтора метра из под стола" и "Пони" хошь определяет, хошь стирает, хошь шьет. Подключаю к его комьюьеру байтбластер - все работает, как ни в чем ни бывало. Меняю дома компьютер - работает, но через два раза на третий. Шаманство с ключами, avrdude... Работает. Покупка USB программатора - работает. Заказчиком сделано другое железо, отправка прошивки заказчику - у него НЕ шьется через 5 проводков и Пони sad.gif. Не шьется и все тут. Отличия - другая разводка (обе просто страшные, но по разному) и контроллер из другой (пару лет разницы) партии. Ставлю у него байтбластер, AvReal - все шьется на ура, заказчик прошивает порядка 500 изделий по ходу дела меняя компьютеры - нет проблем. Из дальнейших эксзерсисов у самых разных заказчиков максимальные проблемы с Пони. С дареными мной алтерианскими бластерами + AvReal - проблем более не замечалось, хотя тут мой опыт обширным назвать нельзя. Время потраченное на разборки с такими "программаторами" (а так-же с их ближайшим "родственником" Виглером) совершенно не адекватно стоимости простеньких оригинальных USB адаптеров или их полных клонов ( коие по нынешним временам более 60 баксов уже стоят редко). Точка.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
In_vivo
сообщение May 3 2009, 13:24
Сообщение #15





Группа: Новичок
Сообщений: 11
Регистрация: 24-05-08
Пользователь №: 37 775



Цитата(zltigo @ May 3 2009, 13:44) *
Ненормальность работы с такими "программаторами" никаких сомнений вызывать просто НЕ может. И я Вас умоляю, не надо опять повторять про проверенные временем "пуговицы". Глупо.
P.S.
В моем распоряжении аккуратно и безкопромисно собранный алтеровский байтбластер (с полным пониманием того, как, почему, что и зачем) и AvReal.

Не сорьтесь, и не ругайтесь господа хорошие. Это же просто микросхемы. rolleyes.gif
Категоричность и бескомпромиссность г-на zltigo мне понятна. Профессионал ДОЛЖЕН использовать профессиональные средства разработки и программирования. Но с другой стороны свято верить что только у меня "полное понимание того как, зачем и почему" по меньшей мере чересчур самоуверенно... Наш STK200 собран вполне профессионально, длина кабеля соединяющего (который имеет хорошее экранирование и достаточное количество проводников "земли") составляет 65см, сама плата (не макетка, нормальная плата) сделана едино с разъемом DB25 . Если бы речь шла об одной-двух штуках злосчастных чипов, мне бы даже в страшном сне не пришла мысль постить тему на electronix'е, но речь идет о целой ПАРТИИ (и даже двух)! И речь идет о том, что чип из другой партии (равно как и все другие чипы из этой другой партии) будучи установленными вместо "проблемных" чипов на ту же самую плату, прекрасно программируются и работают!

P.S. Для тех кому интересно - внешнее тактирование и AVRDUDE не помогли. Проверка данной схемы на другом приборе, с чипом из другой партии (с заранее установленным fuse битом, включающим режим работы от внешнего источника тактовых сигналов) показала все Ок! Завтра пнд, постараюсь найти STK500. Уже просто из спортивного интереса выясню в чем-же дело...
PPS. Статус простого участника форума далеко не всегда говорит о том, что это начинающий любитель. Лично моя цель -не дать оценку чьих либо действий, а просто разобраться где тут ротвейлер зарыт. Обязательно доведу дело до конца и дам знать. Засим откланиваюсь до выяснения подробностей.

Сообщение отредактировал In_vivo - May 3 2009, 13:24
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- In_vivo   Проблемы с программированием ATmega64   May 1 2009, 15:27
|- - kostik2   Цитата(In_vivo @ May 2 2009, 08:02) Попро...   May 2 2009, 06:06
||- - yung   Цитата(kostik2 @ May 2 2009, 10:06) atmeg...   May 2 2009, 09:34
||- - In_vivo   atmega64 шьется по spi, но не через mosi,miso, а ч...   May 2 2009, 10:10
||- - Petka   Цитата(In_vivo @ May 2 2009, 14:10) Битые...   May 2 2009, 10:22
|- - Nick_Shl   Цитата(In_vivo @ May 2 2009, 07:02) Не ви...   May 2 2009, 08:11
|- - In_vivo   Цитата(Petka @ May 3 2009, 11:05) Откуда...   May 3 2009, 07:38
|- - rx3apf   Цитата(In_vivo @ May 3 2009, 17:24) Наш S...   May 3 2009, 14:50
|- - defunct   Цитата(In_vivo @ May 3 2009, 16:24) Если ...   May 3 2009, 16:27
- - plombir   Чем шьёте? Сигнатура читается? Частоту SPI обмена...   May 2 2009, 04:44
- - In_vivo   Для тех кому интересно фото разломаных кристаллов....   May 2 2009, 10:39
- - Dx!   Так а где кристаллы то? На фотографии до них не ...   May 2 2009, 13:59
|- - In_vivo   Цитата(Dx! @ May 2 2009, 16:59) Так а...   May 2 2009, 14:25
- - INT1   Цитата(In_vivo @ May 2 2009, 13:39) Не по...   May 2 2009, 14:37
- - INT1   А если попробовать "неинвазивный метод",...   May 3 2009, 04:11
- - INT1   Цитата(In_vivo @ May 2 2009, 17:25) Крист...   May 3 2009, 06:35
- - INT1   Цитата(In_vivo @ May 3 2009, 10:38) Прозв...   May 3 2009, 08:13
- - Marian   1.Сколько току потребляет не запрограммированный п...   May 3 2009, 09:39
- - Dx!   Кстати мне попадались чипы (90usb1287), которые пр...   May 3 2009, 17:02
- - VladimirYU   Цитата(Dx! @ May 3 2009, 21:02) Кстат...   May 4 2009, 05:55
- - RA3WUM   Цитата(Dx! @ May 3 2009, 21:02) Кстат...   May 5 2009, 07:25
- - IGK   Попробовал на своем устройстве ATmega164Р, вместо ...   May 6 2009, 15:36
- - defunct   Цитата(IGK @ May 6 2009, 18:36) Наверное,...   May 6 2009, 23:13
- - IGK   Цитата(defunct @ May 7 2009, 02:13) Цена ...   May 7 2009, 11:57


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th June 2025 - 00:57
Рейтинг@Mail.ru


Страница сгенерированна за 0.01581 секунд с 7
ELECTRONIX ©2004-2016