|
At91SAM7S256 с буквой С |
|
|
|
Mar 16 2011, 13:07
|

Дух погибшего транзистора
   
Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288

|
Только что получил следующее: Цитата В новой версии исправлены ошибки в АЦП, ШИМ, интерфейсах SPI, SSC, TWI, USART и регуляторе напряжения. Увеличено время доступа к Flash-памяти, что может потребовать перепрограммирования количества циклов ожидания. Количество циклов перезаписи энергонезависимой памяти улучшено. Полный перечень изменений имеется в data sheet на серию AT91SAM7S ревизии 6175K (раздел 40, Errata). Ну и как водится старую ревизию снимают, будет только новая. Всем кто на них делал что-либо большой привет! Если не хватит производительности или переделывайте или снимайте прибор с производства. Какая неожиданная радость!! Ну и цена 7 баксов теперь будет. Когда этих дол...ов уже купит микрочип?
--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
|
|
|
|
|
Mar 16 2011, 14:05
|

Дух погибшего транзистора
   
Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288

|
Цитата(kovigor @ Mar 16 2011, 16:44)  Может быть, ваш проект позволяет разместить часть кода в ОЗУ ? Да вроде бы должно все прокатить без изменений. Осталось только впаять семплы и молиться. Выкрутиться, если не прокатит, тоже как-нибудь можно будет, я думаю. Проблема в том, что у меня и без этого работы полно, а править что-то в уже написанном когда-то и работающем коде почему то не хочется. Зачем надо что-то изменять в процессоре, которому 8 лет? То есть большинство проектов под него уже сделано и тупо клепается на конвеере. Матерных эпитетов не хватает.
--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
|
|
|
|
|
Mar 16 2011, 15:53
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Xenia @ Mar 16 2011, 18:25)  Зато в новой ревизии "C" огромную кучу прочих эррат исправили! Причем так, что тех практически не осталось. Зачем только было так напрягаться, если продукт как-бы доживает свой век? В новое изделие его уже никто закладывать не станет, а старые, как верно заметили, уже давно производятся. Цитата(Xenia @ Mar 16 2011, 18:25)  А что предел флеша с 30 до 20 МГц понизили, то, думаю, лишь для пущей гарантии надежности. Т.е. они не флешь хуже поставили, а по прежним образцам статистически обнаружили (или жаловались клиенты), что какие-то экземпляры на пределе частоты сбоят. Вот они в даташите и понизили на треть гарантированный порог, типа перестраховались. Угу, а для SAM7S64 решили что и так сгодится. Цитата(Xenia @ Mar 16 2011, 18:25)  Ставить новый экземпляр вместо старого и не брать в голову!  Ну-ну. Цитата(Xenia @ Mar 16 2011, 18:25)  А что предел флеша с 30 до 20 МГц понизили, то, думаю, лишь для пущей гарантии надежности. Кстати, цифра 48.1МГц для предела 3WS тоже вызывает сомнения: 20 * 2 = 40МГц. Но если бы они написали в еррате такое, клиенты бы с говном съели совсем не поняли. Так что вполне может оказаться, что истинные масштабы проблемы скрываются.
|
|
|
|
|
Mar 16 2011, 16:50
|

Гуру
     
Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237

|
Цитата(aaarrr @ Mar 16 2011, 18:45)  Зачем только было так напрягаться, если продукт как бы доживает свой век? В новое изделие его уже никто закладывать не станет, а старые, как верно заметили, уже давно производятся. Снимешь изделие с производства - народ ругается, и оставишь - тоже ругается. Только в первом случае за то, что клиентам трудно тиражировать свои старые конструкции, а во втором случае из-за того, что для новых конструкций устарели морально. На всех не угодишь, каждый найдет повод попинать производителя. А с другой стороны, у Atmel как раз и был затык с производством, т.к. он фактически на новое место с производством переехал. С понедельника заново жить начал  . Поговаривают, что на новом месте даже технология стала на сколько-то нанометров меньше, оттого и пришлось чипы по-новому "разводить". А раз так, то самое время всякие прогрессивные изменения в конструктив вносить, т.к. потом в процессе тиражирования будет поздно. И в AVR-ок это тоже коснулось - там с буквой "A" серии появились, а так же новые чипы на замену старым. Цитата(aaarrr @ Mar 16 2011, 18:45)  Угу, а для SAM7S64 решили что и так сгодится. А про этот фиг его знает  . Может быть у них flash блоками по 64К или того меньше? Делают, скажем, все под одну гребенку как SAM7S256, испытывают на высокой частоте, и если не тянет, то кастрируют тормозные блоки, оставляя самый быстрый. Т.е. почти так же, как Intel свои процессоры под Селерон маркировал, когда кэш оказывался с брачком. _____________________ Хотя по правде сказать, я на Atmel тоже маленько обижена за медленный flаsh. Похоже на то, что 25-33 МГц ему предел, а дальше приходится по частоте прореживать, добавляя лишние такты ожидания. Видимо по этой же причине AVR тоже выше 20 Мгц не работают, поскольку такт пропускать не умеют. И с AVR32 та же история, что с SAM7S. Т.е похоже, что независимо от архитектуры (ARM, AVR или AVR32), flash они тачают по одной и той же технологии, которая еще быстрее работать не может. По началу я думала, что так и быть должно - мол, физический предел флешу в этом месте положен. Но когда узнала, что серия RX600 от Renesas работает на своем флеше без дополнительных тактов ожидания аж до 100 МГц, расстроилась за Atmel. Ведь фактически только скорость flаsh не дает их контроллерам работать быстрее. И тут 100 МГц не надо, было бы достаточно 55-60, чтобы стали не нужны такты ожидания практически на всех моделях выпускаемых контроллеров. Ведь время идет вперед, и одного только повышения энергосбережения маловато будет, хотелось бы, чтобы и в скорости была прибавка. И хотя эта тема находится в разделе ARM и формально посвящена одному из МК этой архитектуры, тем не менее, обсуждаемый вопрос касается исключительно скорости flash. А стало быть, данная проблема простирается на только на SAM7S, но и на всю продукцию компании Atmel. Что они там написали в даташите - лишь частности, а суть же в том, что, начиная с 20 Мгц начинается у них зона неустойчивой работы flash. Завестись такой МК заведется, но сколько протянет на этой частоте без единой ошибки? - Вот в чем вопрос! А нормы очень жесткие - контроллер годами должен работать, не допуская сбоя по внутренним причинам. Отсюда и тот лимит скорости, который закладывает производитель в даташит своего изделия. Полагаю, что не будет для этой темы флеймом, если кто-нибудь знающий поделится здесь информацией о том, до каких частот может работать flash в роли ПЗУ. А то вдруг уже проявилась flash-память "нового поколения", которая может работать в несколько раз быстрее, чем та, с которой начинал и продолжает использоваться Atmel?
|
|
|
|
|
Mar 17 2011, 05:47
|

Дух погибшего транзистора
   
Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288

|
Цитата(prottoss @ Mar 16 2011, 17:38)  Можно не надеяться на "вроде бы" а проверять ревизию МК при запуске программы. Я надеюсь, что мне не придется ничего переделывать. Проверка ревизии МК не поможет если какая то функция будет не успевать нормально выполнятся - нужно будет оптимизировать код, если это возможно. Цитата(Xenia @ Mar 16 2011, 18:25)  Ставить новый экземпляр вместо старого и не брать в голову!  Да-да. Цитата(Xenia @ Mar 16 2011, 19:50)  Снимешь изделие с производства - народ ругается, Не народ, а производители, кто на это изделие заложился с перспективой на годы. Цитата(Xenia @ Mar 16 2011, 19:50)  и оставишь - тоже ругается. Вы, Ксения, что-то путаете.
--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
|
|
|
|
|
Mar 22 2011, 05:26
|
Группа: Новичок
Сообщений: 4
Регистрация: 11-04-10
Из: Spb
Пользователь №: 56 568

|
Цитата(SpiritDance @ Mar 18 2011, 11:50)  Прошел слушок, что в связи с японскими событиями у ST ожидаются проблемы с поставками. Почему это так не имею понятия. Дай бог чтобы это оказалось только слухом и происками конкурентов. вот официальные заявления разных производителей электр. компонентов на события в Японии....как я понял из офиц письма у ST там только офисы продаж .))) http://www.ebv.com/en/press-print/earthqua...ref=u1264-c7237вот выдержка оттуда "ST does not have any manufacturing operations in Japan.Our office operations in Japan continue both in Tokyo and Osaka, while distribution in Japan of our finished products is encountering temporary difficulties for obvious reasons. We are collaborating very closely with our Japanese customer and supplier base."
Сообщение отредактировал model25 - Mar 22 2011, 05:27
|
|
|
|
|
Mar 22 2011, 13:32
|

Дух погибшего транзистора
   
Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288

|
Цитата(model25 @ Mar 22 2011, 08:26)  "ST does not have any ... Ну вот и отличненько. Сейчас напаяли несколько образцов из серии С. На одном приборе почти все получилось: прибор воспроизводит звук с частотой 12КГц - различимы подергивания - очевидно работает процессор чуть помедленнее, думаю это можно победить, главное что USB запустилось и прочее. На втором приборе (другом) вылез затык: не работает нормально ADXL345 - атмеловские индусы улучшили SPI. Придется ковыряться в этом, искать повидло. И возможно это еще не все.
--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
|
|
|
|
|
Mar 22 2011, 17:47
|
Группа: Новичок
Сообщений: 4
Регистрация: 11-04-10
Из: Spb
Пользователь №: 56 568

|
Цитата(SpiritDance @ Mar 22 2011, 16:32)  На втором приборе (другом) вылез затык: не работает нормально ADXL345 - атмеловские индусы улучшили SPI. я в своем проекте тоже сначала хотел заюзать ADXL345 , но приобрел аксель MMA7455 (Freescale), ..вот именно Фрискейловцы пострадали от землятресения в Японии (у них там оказывается есть производство и не одно ) ..хотел спросить как Ваши впечатления от ADXL345 ??? .. и почему бы не использовать i2c в таком случае??? у меня сразу все заработало по i2c (правда мануал к MMa7455 ужасно написан, в противовес adxl345 )))))
|
|
|
|
|
Mar 28 2011, 15:11
|

Дух погибшего транзистора
   
Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288

|
Цитата(model25 @ Mar 22 2011, 21:47)  я в своем проекте тоже сначала хотел заюзать ADXL345 , но приобрел аксель MMA7455 (Freescale), ..вот именно Фрискейловцы пострадали от землятресения в Японии (у них там оказывается есть производство и не одно ) Я насколько понял они взаимозаменяемы pin-to-pin, хотя freescale не пробовал. Цитата(model25 @ Mar 22 2011, 21:47)  ..хотел спросить как Ваши впечатления от ADXL345 ??? Сугубо положительные. Правда на шкале 16G, на которой я работаю есть шумы измерения ускорения свободного падения. Также весьма подвержен наводкам от GSM - нужно убирать от модема подальше. Цитата(model25 @ Mar 22 2011, 21:47)  .. и почему бы не использовать i2c в таком случае??? у меня сразу все заработало по i2c (правда мануал к MMa7455 ужасно написан, в противовес adxl345 ))))) Поздно уже. Да и ног нет.
--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
|
|
|
|
|
Apr 25 2011, 12:49
|

Дух погибшего транзистора
   
Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288

|
Волосатые руки наконец дотянулись до SPI. Оказалось теперь не срабатывает бит LASTXFER и CS1 после окончания передачи лежит в нуле и не дышит. И это на двух платах, сигналы все в норме. Код инициализации вот такой: CODE /* SPI reset */ //* Disable all interrupts AT91C_BASE_SPI->SPI_IDR = 0xFFFFFFFF; //* Reset all the Chip Select register AT91C_BASE_SPI->SPI_CSR[0] = 0; AT91C_BASE_SPI->SPI_CSR[1] = 0; AT91C_BASE_SPI->SPI_CSR[2] = 0; AT91C_BASE_SPI->SPI_CSR[3] = 0;
//* Reset the SPI mode AT91C_BASE_SPI->SPI_MR = 0 ;
//* Disable the RX and TX PDC transfer requests AT91C_BASE_SPI->SPI_PTCR = AT91C_PDC_RXTDIS | AT91C_PDC_TXTDIS; //* Reset all Counter register Next buffer first AT91C_BASE_SPI->SPI_TNPR = 0; AT91C_BASE_SPI->SPI_TNCR = 0; AT91C_BASE_SPI->SPI_RNPR = 0; AT91C_BASE_SPI->SPI_TNCR = 0; AT91C_BASE_SPI->SPI_TPR = 0; AT91C_BASE_SPI->SPI_TCR = 0; AT91C_BASE_SPI->SPI_RPR = 0; AT91C_BASE_SPI->SPI_RCR = 0; //* Disable receiver and transmitter and stop any activity immediately AT91C_BASE_SPI->SPI_CR = AT91C_SPI_SWRST | AT91C_SPI_SPIDIS; AT91C_BASE_SPI->SPI_CR = AT91C_SPI_SWRST | AT91C_SPI_SPIDIS; /* Configure PIOs */ AT91C_BASE_PIOA->PIO_PDR = (unsigned int) AT91C_PA13_MOSI |(unsigned int) AT91C_PA14_SPCK |(unsigned int) AT91C_PA12_MISO; AT91C_BASE_PIOA->PIO_ASR = (unsigned int) AT91C_PA13_MOSI |(unsigned int) AT91C_PA14_SPCK |(unsigned int) AT91C_PA12_MISO; /* аппаратный сигнал CS для акселерометра */ AT91C_BASE_PIOA->PIO_PDR = (unsigned int) AT91C_PA31_NPCS1; AT91C_BASE_PIOA->PIO_ASR = (unsigned int) AT91C_PA31_NPCS1; /* Включаем модуль SPI в PMC */ AT91C_BASE_PMC->PMC_PCER = (unsigned int) 1 << AT91C_ID_SPI; /* Кофигурируем SPI в режиме MASTER без CS */ AT91C_BASE_SPI->SPI_MR = AT91C_SPI_MSTR | AT91C_SPI_MODFDIS | AT91C_SPI_PCS;
/* Конфигурируем CS */ /* Конфигурируем канал SPI для DF AT45DBXXX */ AT91C_BASE_SPI->SPI_CSR[0] = AT91C_SPI_BITS_8 /* отрицательная полярность тактов */ | AT91C_SPI_CPOL | ((16 << 8) & AT91C_SPI_SCBR); /* делитель MCK */ /* конфигурируем канал 1 для акселерометра ADXL345 4 MHz максимум */ AT91C_BASE_SPI->SPI_CSR[1] = AT91C_SPI_BITS_8 | AT91C_SPI_CPOL /* отрицательная полярность тактов */ | AT91C_SPI_CSAAT /* не поднимать CS после предачи слова */ | ((16 << 8) & AT91C_SPI_SCBR) /* делитель MCK */ | ((24 << 16) & AT91C_SPI_DLYBS); /* пауза перед подачей тактирующего сигнала */ /* Включаем SPI */ AT91C_BASE_SPI->SPI_CR = AT91C_SPI_SPIEN; Работа с SPI вкратце выглядит вот так: CODE /* ЗАПИСЬ в регистр */ /* дожидаемся окончания передачи */ while(!(AT91C_BASE_SPI->SPI_SR & AT91C_SPI_TXEMPTY)) { continue; }
/* выбираем указанный чип-селект */ AT91C_BASE_SPI->SPI_MR &= 0xFFF0FFFF; pcs_device = (~(1 << chip_select)); AT91C_BASE_SPI->SPI_MR |= ( (pcs_device << 16) & AT91C_SPI_PCS ); /* отсылаем слово */ AT91C_BASE_SPI->SPI_TDR = send_word | (( pcs_device << 16) & AT91C_SPI_TPCS);
/* ЧТЕНИЕ из регистра */ /* дожидаемся окончания передачи */ while(!(AT91C_BASE_SPI->SPI_SR & AT91C_SPI_TXEMPTY)) { continue; } /* убираем последствия предидущих транзакций */ temp = AT91C_BASE_SPI->SPI_RDR; /* выбираем указанный CS */ AT91C_BASE_SPI->SPI_MR &= 0xFFF0FFFF; pcs_device = (~(1 << chip_select)); AT91C_BASE_SPI->SPI_MR |= ( (pcs_device << 16) & AT91C_SPI_PCS ); /* для корректной работы нужно записывать нули */ AT91C_BASE_SPI->SPI_TDR = 0x0000 | ((pcs_device << 16) & AT91C_SPI_TPCS) | AT91C_SPI_LASTXFER; /* дожидаемся окончания передачи */ while(!(AT91C_BASE_SPI->SPI_SR & AT91C_SPI_RDRF)) { continue; }
temp = AT91C_BASE_SPI->SPI_RDR; После последней транзыкции наблюдаю печальное положение вещей на CS1, данные вроде такие как надо, с тактированием точно все ОК. На старых ревизиях A и B все работает как надо. Никаких упоминаний в эррате о таком поведении конечно не нашел. Продолжаю изучать улучшенный кристалл за 7 баксов.
Сообщение отредактировал IgorKossak - Dec 21 2011, 10:05
Причина редактирования: [codebox] !!!
--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
|
|
|
|
|
Dec 21 2011, 06:20
|

Частый гость
 
Группа: Свой
Сообщений: 156
Регистрация: 24-05-05
Из: Москва
Пользователь №: 5 354

|
Подниму тему по любимой ревизии С  Пред история... Был приборчик разработан пару лет назад, все с ним было хорошо, собирали прошивали короче все было ок, SAM7S256 был ревизии В... Намедни собрали серию, хорошо что не большую, на новой ревизии... И тут начались танцы с бубном!!! Прибор миниатюрный, житага нет.. Шьется через Самбу... Загрузчик стартует самба чип увидела, но прошить не может!!! log erase+write loading history file ... 0 events added SAM-BA console display active (Tcl8.4.13 / Tk8.4.13) (AT91-ISP v1.13) 1 % (AT91-ISP v1.13) 1 % FLASH::EraseAll -I- GENERIC::EraseAll -I- Sector 0 unlocked -I- Sector 1 unlocked -I- Sector 2 unlocked -I- Sector 3 unlocked -I- Sector 4 unlocked -I- Sector 5 unlocked -I- Sector 6 unlocked -I- Sector 7 unlocked -I- Sector 8 unlocked -I- Sector 9 unlocked -I- Sector 10 unlocked -I- Sector 11 unlocked -I- Sector 12 unlocked -I- Sector 13 unlocked -I- Sector 14 unlocked -I- Sector 15 unlocked -I- GENERIC::EraseAll -E- Generic::EraseAll returned error (0x00000004) (AT91-ISP v1.13) 1 % send_file {Flash} "C:/Documents and Settings/Fly/Рабочий стол/job_test.bin" 0x100000 0 -I- Send File C:/Documents and Settings/Fly/Рабочий стол/job_test.bin at address 0x100000 first_sector 0 last_sector 3 -I- Writing: 0xD300 bytes at 0x0 (buffer addr : 0x202BC8) -I- 0xD300 bytes written by applet -I- Writing: 0x7E4 bytes at 0xD300 (buffer addr : 0x202BC8) -I- 0x7E4 bytes written by applet -I- Sector 0 locked -I- Sector 1 locked -I- Sector 2 locked -I- Sector 3 locked (AT91-ISP v1.13) 1 % Устройство перегружаешь, а оно опа опять на загручики стоит... Типа и не прошивали.... Зная что самба вещь довольно не перманентная, начали прошивать самба прог, он заливает весело дергает ножкой, выбранной в программе, рапортуя о том что прошил удачно.. Устройство после перезагрузки стартует, вроде все ок, но работает не стабильно часто виснет.... В это же место ставишь чип ревизии В, все становить нормально и самба видет его, и глюков нет... Ну думали может сборка, перебрали все платы, на всех так же... Ставишь чип В вопрос сразу снимается... Начали дальше копать, чип QFN64 особо не потыкаешься скопом... Благо был еще один проект с таким же корпусом и на нем есть житаг... Снимаем с него чип ставим туда С... Чип перед этим затираем ножкой ERASE, для чистоты эксперимента. Желинк его увидел.... Запускаем отладку во флешь и начинаются чудеса на виража.... После входа в функцию низкоуровневой иницилизации LOWLEVELINIT он начинает беспорядочно скакать по флешь в неопределенной последовательности.... Пока колдовали с настройками случайно был выбран тип SE256, и прошит в отладку во флешь.... Ну бывает, ошиблись... Вернули обратно S256 и тут наступает занавес  чип нормально начинает работать в отладчике, все ок.... Все повторяется как только делаешь erase.... Проверили на 10 чипах... Еще раз скажу что с ривизией B такого не происходить.. Чип под микроскоп сразу изучать все нормально атмеловский произведен 10 год 52 неделя... Мы к поставщику, где брал? он говорить у атмела в канаде... Вот и думаем или лыжи не едут....... или... Явно проблемные чипы... С атмелом кто нибудь попадался на таком??? И как то возможно проверить что чип именно атмеловский? И вопрос как теперь поставщику то доказать что брак в явной форме, они то все уже после пайки...
--------------------
BST RGDS, Aquatik...
|
|
|
|
|
Dec 21 2011, 11:18
|

Частый гость
 
Группа: Свой
Сообщений: 156
Регистрация: 24-05-05
Из: Москва
Пользователь №: 5 354

|
Цитата(aaarrr @ Dec 21 2011, 13:53)  Этот параграф не относится к ревизии C.
Тут вопрос, когда процессор "падает" - при работе от кварца, от PLL, в моменты переключения? да согласен, попутал версия 58818С... хоть это радует... Проц падает при переключение из ПЛЛ в майнклок А не может ли дело быть Embedded Flash conroller в 40.9.1.1?
--------------------
BST RGDS, Aquatik...
|
|
|
|
|
Dec 21 2011, 11:22
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Aquatik @ Dec 21 2011, 15:18)  Проц падает при переключение из ПЛЛ в майнклок А с переключением все корректно? Т.е. последовательность такая: меняем CSS -> ждем MCKRDY -> меняем PRES? Цитата(Aquatik @ Dec 21 2011, 15:18)  А не может ли дело быть Embedded Flash conroller в 40.9.1.1? Добавьте WS - узнаете. Но вряд ли, как мне кажется.
|
|
|
|
|
Oct 17 2012, 11:09
|
Участник

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

|
Здравствуйте. Тоже пришлось переходить на ревизию С (at91sam7s256)  . Проблема в записи флэша - не пишет и все. Может кто что-то подскажет. Плата работает на частоте 48МГц задержку памяти ставил 1,2,3 всеравно нет записи в флеш. Да на чипе бес буквы С все работает нормально
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|