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

 
 
15 страниц V  « < 12 13 14 15 >  
Reply to this topicStart new topic
> XMEGA: будущее, которого мы так долго ждали, наступило., XMEGA - лучший 8 битный микроконтроллер.
SasaVitebsk
сообщение Jul 14 2008, 11:55
Сообщение #196


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(oran-be @ Jul 14 2008, 09:19) *
Пожалуйста - аппаратное зависание TWI. Исходный код - возьмите прямо из даташита.

Уважаемый. Если бы я не работал с AVR, то наверное я бы вам поверил. Слышал какие-то легенды на эту тему, но мне как-то сложно в это поверить и я не вдавался в подробности. Причина проста:
Только в одном из последних изделий у меня применена связка m640+m48. Связка работает по общей шине I2C на которой, в том числе, сидят 2 at24c512. m640 является мастером, а m48 слэйвом, который эмулирует 24с01. Там часы, температура и другие датчики. Инфу с m48 я читаю 1 раз в минуту. Чтение с 24с512 идёт непрерывно. Самое древнее изделие работает с короткими остановками 2.5 года. Изделий таких несколько десятков. Были ошибки программного характера. Сейчас устранили и никаких проблем просто нет. Ни с какими висами вообще не сталкивался. Кстати очень похожий по структуре контроллер в LPC2106.
Go to the top of the page
 
+Quote Post
ArtemKAD
сообщение Jul 14 2008, 19:25
Сообщение #197


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

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



Цитата
Прерывание, вызываемое генератором собаки. Оказывается, оно может не срабатывать. Решение, предлагаемое Атмелами - это разрешать это прерываение перед его срабатыванием. Просто писк.

Понимаешь, собака она и есть собака. Но если ты ее сильно хочешь использовать как обычный таймер с автономным генератором, то будь любезен руками очищать флаг этого прерывания когда туда попадаешь (иначе следующий раз не попадешь).
Да и насколько я помню эта проблема была лишь на первых чипах (A).
ЗЫ. А тебе что, остальных таймеров в M48 не хватает?

Сообщение отредактировал ArtemKAD - Jul 14 2008, 19:29
Go to the top of the page
 
+Quote Post
defunct
сообщение Jul 14 2008, 20:15
Сообщение #198


кекс
******

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



Цитата(oran-be @ Jul 14 2008, 09:19) *
Третье - эта ошибка описана в еррате, но предложение по ее решению мне очень нравится. МЕГА48/88/168. Прерывание, вызываемое генератором собаки. Оказывается, оно может не срабатывать. Решение, предлагаемое Атмелами - это разрешать это прерываение перед его срабатыванием. Просто писк.

Обождите, причем тут разрешение перед его срабатыванием? Особливо если учесть, что этот режим WatchDog'a используется для пробуджения МК из глубокого сна.

2. Watchdog Timer Interrupt disabled
If the watchdog timer interrupt flag is not cleared before a new timeout occurs, the watchdog will
be disabled, and the interrupt flag will automatically be cleared. This is only applicable in interrupt
only mode. If the Watchdog is configured to reset the device in the watchdog time-out
following an interrupt, the device works correctly.
Problem fix / Workaround
Make sure there is enough time to always service the first timeout event before a new watchdog
timeout occurs.
This is done by selecting a long enough time-out period.

Если туго с переводом, поможем:
Главное успеть попасть в обработчик прерывания WDT до того как произойдет следующий таймаут. Что обеспечивается выбором WDT интервала достаточной длительности.
Go to the top of the page
 
+Quote Post
oran-be
сообщение Jul 15 2008, 11:13
Сообщение #199


Местный
***

Группа: Свой
Сообщений: 234
Регистрация: 30-03-07
Из: Одесса
Пользователь №: 26 621



Цитата(SasaVitebsk @ Jul 14 2008, 14:55) *
Только в одном из последних изделий у меня применена связка m640+m48. Связка работает по общей шине I2C на которой, в том числе, сидят 2 at24c512. m640 является мастером, а m48 слэйвом, который эмулирует 24с01. Там часы, температура и другие датчики. Инфу с m48 я читаю 1 раз в минуту. Чтение с 24с512 идёт непрерывно. Самое древнее изделие работает с короткими остановками 2.5 года. Изделий таких несколько десятков. Были ошибки программного характера. Сейчас устранили и никаких проблем просто нет. Ни с какими висами вообще не сталкивался. Кстати очень похожий по структуре контроллер в LPC2106.
Читайте внимательно - если возвращается ошибка, повторный запрос сразу с возвратом ошибки завешивает узел. У нас тоже такие связки работали, пока не понадобился контроль ошибок. Потом пришлось в весь софт встраивать патчи.
Цитата(ArtemKAD @ Jul 14 2008, 22:25) *
Понимаешь, собака она и есть собака. Но если ты ее сильно хочешь использовать как обычный таймер с автономным генератором, то будь любезен руками очищать флаг этого прерывания когда туда попадаешь (иначе следующий раз не попадешь).
Да и насколько я помню эта проблема была лишь на первых чипах (A).
ЗЫ. А тебе что, остальных таймеров в M48 не хватает?

Цитата(defunct @ Jul 14 2008, 23:15) *
Обождите, причем тут разрешение перед его срабатыванием? Особливо если учесть, что этот режим WatchDog'a используется для пробуджения МК из глубокого сна.
....
Если туго с переводом, поможем:
Главное успеть попасть в обработчик прерывания WDT до того как произойдет следующий таймаут. Что обеспечивается выбором WDT интервала достаточной длительности.
Сорри - немного некорректно выразился ввиду некоторой давности попытки разрешить этот глюк. В общем, преложенное решение не работало и непонятно - сколько конкретно времени надо дать до срабатывания прерывания? Системы была следующая - таймер собаки использовался ввиду его маложручести. Устройство должно было отсчитывать таймаут, работая на конденсаторе при пропадании питания. Интервал собаки - 2 секунды - то есть - нереально не попасть в обработчик. Прикол заключался в том, что хотя флаг прерывания и сбрасывался (проверено), но прерывание наступало далеко не каждый раз. То есть - из 10 прерываний могли сработать все 10, а могло и не одного не сработать. После первого же несрабатывания прерывание зависает где то во внутренней логике. Кристалл был точно не А. Я, кстати постил эту проблему - безрезультатно.
Вообще, что я хочу всем этим сказать - что политика фирмы Атмел в основном ориентирована на объем продаж, а не на получение качественного изделия, в результате мы получаем даташит в котором на первой странице жирным шрифтом написано количество powerful команд, часть из которых на поверку оказывается виртуальными и указанием наличия узлов, которые на самом деле ни фига не работают или рабоотают настолько коряво. что лучше забыть о том, что они есть.
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Jul 15 2008, 14:04
Сообщение #200


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Цитата(oran-be @ Jul 15 2008, 11:13) *
В общем, преложенное решение не работало и непонятно - сколько конкретно времени надо дать до срабатывания прерывания? Системы была следующая - таймер собаки использовался ввиду его маложручести.

Видимо, атмеловскую собаку дрессировали сразу кусать, а Вы ее тяффкать заставляете. -Бобик, фас! -aф, аф(с)


Вспомнил еще один приятный момент.
Номенклатура AVR сейчас просто бешеная, так вот, с х-мега, похоже, ситуация улучшается - будет несколько корпусов и несколько вариантов памяти _одного_ камня.
Go to the top of the page
 
+Quote Post
ArtemKAD
сообщение Jul 15 2008, 14:24
Сообщение #201


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

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



Цитата
Прикол заключался в том, что хотя флаг прерывания и сбрасывался (проверено), но прерывание наступало далеко не каждый раз. То есть - из 10 прерываний могли сработать все 10, а могло и не одного не сработать. После первого же несрабатывания прерывание зависает где то во внутренней логике. Кристалл был точно не А. Я, кстати постил эту проблему - безрезультатно.

Наверное потому и безрезультатно, что никто воспроизвести не смог wink.gif .
А вообще, мог бы использовать WDT по той-же схеме, но по прямому назначению - через каждые пару секунд проходя через Reset (когда-то в AtTiny13 так и сделал).
Go to the top of the page
 
+Quote Post
defunct
сообщение Jul 15 2008, 15:03
Сообщение #202


кекс
******

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



Цитата(oran-be @ Jul 15 2008, 14:13) *
преложенное решение не работало и непонятно - сколько конкретно времени надо дать до срабатывания прерывания?

Время пробуждения + C,
где C определяется как время выполнения максимально длинной цепочки более высокоприоритетных прерываний. Если грубо - это сумма времени выполнения всех разрешенных более приоритетных обработчиков.

Цитата
Прикол заключался в том, что хотя флаг прерывания и сбрасывался (проверено), но прерывание наступало далеко не каждый раз.
...
То есть - из 10 прерываний могли сработать все 10, а могло и не одного не сработать. После первого же несрабатывания прерывание зависает где то во внутренней логике. Кристалл был точно не А. Я, кстати постил эту проблему - безрезультатно.

Ну может быть. Уж извините все проблемы отследить сложно...
Кстати проверяли Вы с честным Sleep или все-таки под отладкой (когда все sleep'ы эмулируются).

Цитата
указанием наличия узлов, которые на самом деле ни фига не работают или рабоотают настолько коряво. что лучше забыть о том, что они есть.

Вы преувеличиваете. Даже если взять ваш пример насчет WDT, то все-таки давайте вспомним, что основную свою функцию (сброс МК) этот узел выполняет!
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Jul 15 2008, 15:20
Сообщение #203


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



2 oran-be. Ваши наезды на Atmel просто бредовые. В Пентиуме, как известно, была обнаружена ошибка математики ч/з 2.5 года. И это при миллионных тиражах. Проблема не в самой ошибке, а в её диагностике. Что вы бы хотели? Что бы Вам написали, что если на TWI устройство даст ошибку и после этого сразу обратится на шину и получить ещё одну ошибку, то шина зависнет? Причём не произвольную ошибку, а ошибку при конкретной структуре обращения. Такие вещи продиагностировать сложно. Такие ситуации вот у меня не встречались к примеру. Я на ходу обрывал и подключал устройство. Пробовал работать без подпорки и т.д. У меня это просто приводит к сбоям, но никак не висам. Кроме всего прочего I2C шина не предназначена для коммутации устр-в на горячую. Я, к примеру, даже не вижу смысла обрабатывать такие ошибки. Всё равно моё изделие будет функционировать неправильно, если чтение 24с неверным. Как известно, что если делать изделие с защитой от дурака, то только дурак им и воспользуется.
Иными словами такие хомуты можно найти в любом МК любого производителя.

Скажите что смешнее, что при определённых ошибках на шине I2C (собственно при некоректной работе слэйва) можно подвесить шину (выход из этого есть), что при нестандартном использовании WDT можно отлавить @опу (тоже выход есть) ..... или что при команде сложения процессор может некорректно установить бит переноса? (В errate на PIC, что я уже прилагал). То есть 1 команда из выстраданных 39 работает .... ммм ... не совсем корректно. Настолько "несовсем" что надо править компилятор или перетранслировать проверенную программу!

Или вот такая шляпа (Обратите внимание не в режиме ошибки, а в режиме работы!!!)
6. Module: MSSP (All I2C™ and SPI Modes)
The Buffer Full (BF) flag bit of the SSPSTAT register
(SSPSTAT<0>) may be inadvertently cleared even
when the SSPBUF register has not been read. This
will occur only when the following two conditions
occur simultaneously:
• The four Least Significant bits of the BSR
register are equal to 0Fh (BSR<3:0> = 1111);
and
• Any instruction that contains C9h in its 8 Least
Significant bits (i.e., register file addresses,
literal data, address offsets, etc.) is executed.


Так что лучше недокументированная шляпа в I2C, с которой я, к примеру ни разу не сталкивался (и не только я)? Или документированный хомут ядра?

Я например считаю, что при ошибках которые в той errata описаны - солидная фирма должна была бы камни свои просто назад забрать. Как это интел сделал.

Я не защищаю Atmel, я просто объективно смотрю на вещи.
Go to the top of the page
 
+Quote Post
oran-be
сообщение Jul 15 2008, 17:29
Сообщение #204


Местный
***

Группа: Свой
Сообщений: 234
Регистрация: 30-03-07
Из: Одесса
Пользователь №: 26 621



Цитата(defunct @ Jul 15 2008, 18:03) *
Кстати проверяли Вы с честным Sleep или все-таки под отладкой (когда все sleep'ы эмулируются).
Вы преувеличиваете. Даже если взять ваш пример насчет WDT, то все-таки давайте вспомним, что основную свою функцию (сброс МК) этот узел выполняет!
Честно - отключил дебаггер и флаги на порт выводил. насчет выполняет - согласен. Здесь не поспоришь. Ну по этому поводу хорошо сказал
Цитата(Огурцов @ Jul 15 2008, 17:04) *
Видимо, атмеловскую собаку дрессировали сразу кусать, а Вы ее тяффкать заставляете. -Бобик, фас! -aф, аф(с)
lol.gif
Проблему решил - влепил кварц часовой и увеличили раза в 2 электролит. Эти Меги48/88/168, как я понимаю, сделали в пику пикам нановаттным. Пока их отладят - а судя по семейству до Меги 8/16, то как раз года 2.5 - лучше считать их Мегами8 и не рыпаться сильно далеко. ИМХО- этот подход экономит кучу времени и нервов. Так же и ХМЕГИ.
Цитата(SasaVitebsk @ Jul 15 2008, 18:20) *
В Пентиуме, как известно, была обнаружена ошибка математики ч/з 2.5 года. И это при миллионных тиражах.
....
Я например считаю, что при ошибках которые в той errata описаны - солидная фирма должна была бы камни свои просто назад забрать. Как это интел сделал.
lol.gif Да. И заставить их, чтобы они выпаяли их из собранных плат, причем непременно китайским паяльником. Шоб знали. Эти кристаллы тоже отзывают иногда, только не с уровня конечных потребителей. Майкрочипы так точно отзывали какие то - ПИКи16 еще.
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Jul 15 2008, 19:56
Сообщение #205


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(oran-be @ Jul 15 2008, 20:29) *
lol.gif Да. И заставить их, чтобы они выпаяли их из собранных плат, причем непременно китайским паяльником. Шоб знали. Эти кристаллы тоже отзывают иногда, только не с уровня конечных потребителей. Майкрочипы так точно отзывали какие то - ПИКи16 еще.

lol.gif Так я про микрочипы и писал. Это же выдержка из микрочиповской ерраты. biggrin.gif Вчера с официального сайта скачал.

Ошибок в ядре AVR-ки даже на заре становления не припомню. lol.gif Такое только микрочип отмочить может.
Go to the top of the page
 
+Quote Post
Alex B._
сообщение Jul 15 2008, 20:08
Сообщение #206


Знающий
****

Группа: Свой
Сообщений: 943
Регистрация: 6-07-04
Из: Санкт-Петербург
Пользователь №: 274



Цитата(SasaVitebsk @ Jul 15 2008, 19:20) *
Что бы Вам написали, что если на TWI устройство даст ошибку и после этого сразу обратится на шину и получить ещё одну ошибку, то шина зависнет? Причём не произвольную ошибку, а ошибку при конкретной структуре обращения.
Да хотелось бы. Если вы на эту ошибку не натыкались, это не значит, что нет смысла о ней заявлять. Ситуация вполне жизненная - несколько устройств на шине (емкость, соответственно затягиваются фронты) + высокая скорость + относительно высокоомные подтяжки (энергопотребление). Основной критерий потребление - отсюда желание увеличить скорость и подтяжки. Фиг с ним, что ACK в каких-то очень редких ситуациях (сильные помехи) опуститься не успеет, переспросим (интегральное потребление будет все равно ниже). Но не тут-то было...

Цитата(SasaVitebsk @ Jul 15 2008, 19:20) *
или что при команде сложения процессор может некорректно установить бит переноса? (В errate на PIC, что я уже прилагал).

Начнем с того, что это не команда сложения. Это инструкция приведения к BCD. Ни один компилятор ее использовать не будет. Объяснять почему? Про дремучих (в хорошем смысле этого слова) асматиков промолчу.

Цитата(SasaVitebsk @ Jul 15 2008, 19:20) *
перетранслировать проверенную программу!

эта ошибка известна с незапамятных времен, чуть ли не с первых PIC18

Цитата(SasaVitebsk @ Jul 15 2008, 19:20) *
Или вот такая шляпа (Обратите внимание не в режиме ошибки, а в режиме работы!!!)
6. Module: MSSP (All I2C™ and SPI Modes)

Тож самое, ошибка старинная и обходится компилером.
И вообще, крайне неудачный вы контроллер выбрали для примера. =) Его конечно не сняли с производства и не скоро снимут, но для новых разработок он не рекомендуется. Его даже в табличке нету.

Цитата(SasaVitebsk @ Jul 15 2008, 19:20) *
Так что лучше недокументированная шляпа в I2C, с которой я, к примеру ни разу не сталкивался (и не только я)? Или документированный хомут ядра?

Бред какой-то. Вы хотите сказать, что недокументированая, но мелкая ошибка в кристалле лучше чем документированная, но посложней? =)) гениально - вы наверное никогда просто не сталкивались с не внесенными в еррату багами.

Цитата(SasaVitebsk @ Jul 15 2008, 19:20) *
Я например считаю, что при ошибках которые в той errata описаны - солидная фирма должна была бы камни свои просто назад забрать. Как это интел сделал.

Забрать, закопать и надпись написать. В следующий раз когда будете приводить контраргумент, постарайтесь разобраться в теме. Приводите хотя бы адекватные примеры.

Цитата(SasaVitebsk @ Jul 15 2008, 23:56) *
Ошибок в ядре AVR-ки даже на заре становления не припомню. lol.gif Такое только микрочип отмочить может.

Постарайтесь не начинать холивар. Разнесу в пух и прах, надоело, чес слово. Рождайте легенды у себя в голове, отделе, на предприятии, но не на форуме - это не профессионально, легенды рождать. А до кучи вспомним STM, NXP и иже с ними. Для начала поищите по форуму на тему еррат в STR91 производства уважаемой конторы STMicroelecronics.
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Jul 15 2008, 20:30
Сообщение #207


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Давайте к теме вернёмся, а именно к XMEGA.
Если тема исчерпала себя, могу закрыть по желанию трудящихся.
Go to the top of the page
 
+Quote Post
Serjio
сообщение Jul 30 2008, 19:34
Сообщение #208


Частый гость
**

Группа: Свой
Сообщений: 137
Регистрация: 3-09-04
Пользователь №: 594



Узнал в Rainbow 128Xmega при 100шт ~ 101руб.
Уже доступны для заказа.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 30 2008, 20:06
Сообщение #209


Гуру
******

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



Цитата(Serjio @ Jul 30 2008, 21:34) *
Узнал в Rainbow 128Xmega при 100шт ~ 101руб.

Это все фигня, вот тут http://efind.ru/icsearch/?search=ATxmega128 и по одному евро обещают. Верите?
А 101руб почему-то верите sad.gif ну бог с ним ru - например http://www.mouser.com/Search/Refine.aspx?N...ouser_Wildcards
И что характерно сроков поставки не называют. Скоро уже осень...


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
rezident
сообщение Jul 30 2008, 21:13
Сообщение #210


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(zltigo @ Jul 31 2008, 02:06) *
Это все фигня, вот тут http://efind.ru/icsearch/?search=ATxmega128 и по одному евро обещают. Верите?
А 101руб почему-то верите sad.gif ну бог с ним ru - например http://www.mouser.com/Search/Refine.aspx?N...ouser_Wildcards
И что характерно сроков поставки не называют. Скоро уже осень...
А это типичная ситуация из анекдота biggrin.gif
Сорри bb-offtopic.gif анекдот в тему.
Приходит мужик в винную лавку.
- А чёй-то у вас водка по 3 рубля?
- Такая цена. Будете брать?
- Не-а. Вон там за углом по рублю предлагают.
- Ну так идите и купите там за углом.
- Так у них нету в наличии.
- Вот когда у меня закончится, то я тоже по рублю предлагать буду.
Go to the top of the page
 
+Quote Post

15 страниц V  « < 12 13 14 15 >
Reply to this topicStart new topic
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 14:14
Рейтинг@Mail.ru


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