Перейти к содержанию
    

клон AVRISP MKII при 1,8В-работает ли полностью (стирает ли)

Здравствуйте,

 

 

стирается ли FLASH-память ATXmega при питании 1,8В клоном AVRISP MKII на базе проекта LUFA?

кто-нибудь пробовал?

 

если да, прошу сообщить,

какой буфер или преобразователь уровня используется (или и то, и другое),

если можно, схему по двум линиям PDI от AT90USB162 до входов PDI ATXmega, достоверно СТИРАЮЩУЮ Flash при 1,8В

или

может, что-то подправить в исходнике LUFA? например, временные параметры для 1,8В другие?

 

===

проблема: при 1,8В не выполняется команда Erase Flash

 

сделал программатор с преобразователем уровней ADG3308

 

все команды выполняются при 3,3В на программируемом XMega, (Erase Flash, Erase EEPROM, Write, Read, ...)

 

все команды, кроме Erase Flash, выполняются при 1,8В,

 

при 1,8В AVR Studio 4.19 cсообщает "Erase FAILED"

 

провода короткие, BOD Xmega отклюен, Fuse-биты XMega заводские, внешнего кварца нет,

фильтрация по питаниям 1,8В и 5В и сами источники нормальные

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вообще-то, у данного чипа есть команда "Chip Erase", стирающая Flash и EEPROM вместе, команды "Erase Flash" нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вообще-то, у данного чипа есть команда "Chip Erase", стирающая Flash и EEPROM вместе, команды "Erase Flash" нет.

возможен выбор стирания Flash, или ее областей Application или Boot.

У меня не выполняется стирание Flash или ее областей именно при питании 1,8В на программируемом МК.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1) Состояние фьюзов можете привести (конкретно, без отсылки к default)?

 

2) Точно у вас на 1.8В все хорошо с генерацией клоков?

 

3) Можете ли проконтролировать обмен по SPI при подаче команды на стирание? Что возвращает чип? Сколько раз он опрашивается после команды? После какого промежутка времени принимается решение об отказе?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1) Состояние фьюзов можете привести (конкретно, без отсылки к default)?

 

Fuses программируемого ATxmega32A4U (далее-Хмега) на картинке,

post-468-1377939759_thumb.png

 

2) Точно у вас на 1.8В все хорошо с генерацией клоков?

 

в динамике смотреть нечем,

только в статике тестером (простенькая прошивка в AT90USB162 для дергания ее линий) - уровни на линиях Хмега после преобразователя уровней ADG3308 не в дугу:

линии Хмега (от ADG3308), питание 1,8В, точнее, 1,77В

PDI_Data PDI_Clk

0В 0.33В

0.85|1.42 0.33В

0В 1.76В

0.85|1.42 1.76В

 

По поводу 0.85|1.42В:

если тестер (цифровой) подключен при переключении с лог.0 в лог.1, показания 0,85В,

если отключить/подключить тесетр при установившейся лог.1, показывает 1,42В,

 

судя по статике, уровни PDI_data более-менее,

для PDI_Clk 0,33В, соотв.лог.нулю, слишком большое

 

НО ПРИ ЭТОМ при 1,8В ВСЕ КОМАНДЫ, КРОМЕ ERASE (ДЛЯ ФЛЕШ), РАБОТАЮТ! Вот что смущает.

И к прохождению Erase от AVR Studio тоже нет вопросов - она при 3,3В работает

отсюда и вопрос, вынесенный в заголовок темы.

 

Что добавил:

оставил ADG3308 для согласования уровней по линиям PDI_Data

на линию PDI_Clk поставил буфер 74LVC07 с открытым стоком, запитал от 1,8В, резистор 10кОм на 1,8В со стока 74LVC07 и ставил, и убирал;

сигнал по линии в статике хороший - ноль чистый, при единице почти питание.

 

эффект один - при 3,3В ERASE работает, при 1,8В - сообщение на картинке

post-468-1377941419_thumb.png

 

 

проверил и схему с 2-мя буферами 74LVC07

ISPMKII.pdf

при работе с Хмега выдает ошибки при вызове любой команды, в т.ч. при питании 3,3В;

правда, при 3,3В по линии PDI_Data лог.1 соотв.2,33В,

по линии PDI_Clk 3,23В

для этой схемы также пробовал убирать резисторы 10кОм по линиям PDI - как по одному, так и оба,

посмотрел в статике - все передается от AT90 к Хмега и обратно, уровни согласуются,

 

 

3) Можете ли проконтролировать обмен по SPI при подаче команды на стирание? Что возвращает чип? Сколько раз он опрашивается после команды? После какого промежутка времени принимается решение об отказе?

 

нет,

могу разве что исходники GCC слегка скорректировать

 

===

Т.к. данные туда-сюда гоняются, впечатление, что для Erase при 1,8В

либо требуются другие временные параметры (например, время, отводимое на стирание),

либо в динамике существенно больший ток при стирании - стабилизатор 1.8В по паспорту на 150мА,

либо какие-то изменения на линиях Хмега в режиме стирания, отличные от других режимов

 

А может в принципе не может стирать при 1,8В - некоторые серии флеш-памяти требуют повышенного напряжения для стирания

Для оригинального MKII работа при 1,8В вроде предусматривается,

но я не встретил информации, что Хмега может стираться при 1,8В

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Похоже, XMEGA вообще не самое любимое сообществом семейство. Из-за некотторой сырости, которая до сих пор дает о себе знать. И по документации это видно. Действительно, нигде не написано, каков диапазон напряжений для операций программирования NVM памятей.

 

Можно предположить, что он совпадает с диапазоном operating voltages (1.6 - 3.6 V), но подозрительное молчание во всех остальных документах, кол-во errata и отзывы на AVR Freaks о семействе в целом (не говоря уже вашем случае) заставляют усомниться в этом (мягко говоря). Известный атмеловский девкит Xplain, кстати, работает на 3.3В.

 

Поскольку предыдущим достижением Atmel в сфере пониженного напряжения, достаточного для программирования, можно считать serial programming voltage 1.8V, то, конечно, хочется рассчитывать хотя бы на этот уровень в XMEGE. НО! Семейство имеет явно сильно перетрушенную микроархитектуру, чипы выпускаются совсем на другом тех.процессе, так что неизвестно, на что XMEGA способен.

 

Теперь ближе к делу. У вас промелькнуло, что на тагете VCC = 1.77V. Это может быть критичным (и в свете вышеуказанного, и вообще - даже для старых Mega; чуток не хватило - и все, не туннелируются носители в плавающий затвор). Попробуйте поднять до 1.85 V (как пример). И вообще, м.б., здорово было бы проверить программируемость для серии напряжений в диапазоне 1.8 .. 3.3V последовательным приближением (последовательным делением пополам диапазона неопределенности).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за помощь,

 

у мега есть микросхемы с питанием 1,8..5,5В,

у хмега 1,6...3,6В

смысл использования хмега - не подбирать стабилизатор 1,8В и не делать его подстраиваемым, а использовать попавшийся - попался 1.77В

 

с прогрммированием Мега при 1,8В по ISP-интерфейсу было бы проще - у меня свое ПО, можно было бы временнЫе параметры при необходимости менять, получить информацию в режиме отладки при программировании, к тому же в ISP нет двунаправленных линий

 

времени на исследования программатора нет, разве что еще поищу информацию,

 

на AVRFreaks ответили, что atxmega32a4u должна программироваться от 1,6В

- она действительно программируется при 1,8В, но не стирается

 

попросил ссылку на док ХМега о зависимости напряжения-тока-временных параметров при стирании в службе поддержки атмел - если пришлют, может, что-то прояснится

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за помощь,

К сожалению - пока не за что... Но тема интересна и мне - прошу вас, обязательно опубликуйте здесь ход дальнейших событий и особенно - ответ Atmel (если будет).

 

у мега есть микросхемы с питанием 1,8..5,5В,

у хмега 1,6...3,6В

смысл использования хмега - не подбирать стабилизатор 1,8В и не делать его подстраиваемым, а использовать попавшийся - попался 1.77В

Если регулятор у вас - это что-то 3-ногое типа нашего КРЕН5 (ну, понятное дело, что-то low-voltage, конечно, из современного), то обычно они позволяют очень простым и известным способом регулировать выходное напряжение. Если у вас импульсный преобразователь - то тоже обячно регулировка допускается. Можно было бы провести небольшое исследование по стираемости при разных напряжениях. Что у вас за источник для 1.8В (может, подскажу что-нибудь в этом направлении)?

 

с прогрммированием Мега при 1,8В по ISP-интерфейсу было бы проще - у меня свое ПО, можно было бы временнЫе параметры при необходимости менять, получить информацию в режиме отладки при программировании, к тому же в ISP нет двунаправленных линий

Судя по всему, так просто не получится. Придется и с напряжением тоже что-то делать. Ну, и если вы что-то более-менее универсальное делаете - то тем более. Одной комбинацией невозможно все жизненные ситуации накрыть.

 

времени на исследования программатора нет, разве что еще поищу информацию,

Жаль... но проверить зависимость стираемости от напряжения - это может быть не очень долго.

 

на AVRFreaks ответили, что atxmega32a4u должна программироваться от 1,6В

- она действительно программируется при 1,8В, но не стирается

Это уже интересно. Но надо иметь в виду, что запись и стирание - все же немного разные физически процессы, причем стирать тяжелее, так что такое сочетание вполне может иметь место. Кстати, интересно также понять, насколько плохо/хорошо не стирается - т.е. считать память и посмотреть, сколько битов осталось в 0 (ну, а если уж совсем интересно - то еще и меняют ли нули свое положение, или остаются стабильными).

 

попросил ссылку на док ХМега о зависимости напряжения-тока-временных параметров при стирании в службе поддержки атмел - если пришлют, может, что-то прояснится

Хорошо бы, если они вообще ответили что-то конкретно по теме. Даже без документа. Держите в курсе, пожалуйста. Вопрос интересный.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ответ службы поддержки:

 

"I tried with ATXmega32A4U device mounted in STK600 and tried to erase the flash at 1.8V and at 1.7V. I couldn't see any issue while erasing the flash at 1.8V and 1.7V."

 

по поводу электрических и временных параметров при стирании ничего не сообщили

 

==

оригинальный AVRISP MKII последних версий по описанию программирует устройства с питанием 1,8В,

значит, заказчик его приобретет

 

==

LDO для задачи рекомендуется малошумящий, AD производит их и с подстройкой, и на 1,8В

 

==

для отладки при программировании Мега по ISP-интерфейсу (а не ХМега по PDI),

например, ATmega168, способного работать от 1.8В,

проблем не вижу - LPT-программатор, к нему добавить согласователь уровней

отладка своего приложения позволила бы видеть, что отвечает программируемый МК, где виснет

 

но и необходимости не вижу - применение Меги в проекте не удобно не только из-за ее питания >=1,8В, ее линии под ISP-программирования SCK,MISO,MOSI идут и на управление другим устройством.

 

 

писать же приложение для PDI-интерфейса с целью понять, как стереть при пониженном напряжении, хлопотно,

разобраться в чужом, написанном под WinAVR, не могу

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за информацию.

 

Я еще раз просмотрел на все уже написанное, и у меня, кажется, есть идеи, почему могло не работать у вас.

 

1) Использование level translators со встречным включением внутренних буферов (типа используемого вами ADG3308) для согласования уровней сигналов, меняющих направление передачи динамически в процессе транзакции (типа I2C или нашего PDI) - плохая идея. Это из моей практики. Возможно, что потратив приличное кол-во времени и можно было довести такое его применение до ума, но у меня такового не было. Да и вообще, схемы с ПОС по-любому склонны к самовозбуждению или "триггерному" эффекту, причем в то состояние, которое им самим показалось более логичным из-за сложившегося в какой-то момент расклада напряжений на "левой" и "правой" сторонах. Так что они у меня все равно были бы под подозрением. Для однонаправленных линий, или сигналов, направление которых определяется единожды в начале "сессии" - это пожалуйста, можно использовать на здоровье. Но не для I2C и т.п.

 

2) Однако порывшись в интернете, обнаружил вот такое вот решение (возможно, известное вам): USBTiny-MkII SLIM (на РадиоЛоцмане есть и русскоязычный вариант этого описания). Обратите внимание на подключение PD2, PD3 через резисторы к MAX3002 - рекомендую попробовать и вам такой подход. Ну, и остальное проверьте уж заодно. MAX2003 и ADG3308 работают по похожим принципам, поэтому если у ребят сработало - есть надежда и для вас.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

все-так проверил стирание при разных напряжениях - это сработало:

 

для регулировки напряжения заменил на LM317

установленный на плату маломощный LDO с фиксированным напряжением 1,8В (тестер показывал 1,77В)

 

-при напряжении 1,8В флеш Хмега уверенно стирается

-при понижении напряжения до 1,7В программатор писал/стирал нормально, может, несколько медленнее в AVR Studio появлялся ответ "Erase OK"

-следующая установка 1,62В - стирать перестал

-поднял до 1,72В - не стирал

-при 1,75В программатор начал стирать, но сообщение "Erase OK" появлялось с явной задержкой

-при выходе на 1,8В и последующем понижении до 1,?В снова стирал нормально

 

проверял с ADG3308

о MAX3002 автор пишет, что МАХ выбран из-за доступности по сравнению с GTL2003 - у нас ADG дешевле и в наличии

да, МАХ по функциям и цоколевке тот же преобразователь уровня с автоопределением направления,

 

спасибо за ссылку на программатор с MAX3002, у меня такое же подключение резисторов - оно действительно вызывало некоторые сомнения: не подключить ли две ячейки ADG отдельно, соединив их (резисторами?) со стороны программируемого МК

 

Итог:

Т.к. другие команды проходят и при 1,62В, причина в cамой Flash,

вероятно, от одной хмега к другой напряжение стирания будет слегка изменяться

 

На рабочую плату поставлю стабилизатор с подстройкой, буду выгонять чуть более 1,8В.

При существовании фиксированных LDO на 1,8В это, хоть и небольшое, но неудобство.

 

Спасибо за содействие.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И вам спасибо - за интересное и полезное расследование. Хорошо, что все разъяснилось в конце концов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подскажите atxmega после выставления Lock битов уже нестирается? Или все таки должна?

 

Изменено пользователем IgorKossak

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...