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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Ошибки записи FLASH через IAP
sergik_vrn
сообщение Aug 3 2009, 12:57
Сообщение #1


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

Группа: Свой
Сообщений: 152
Регистрация: 11-10-05
Из: Воронеж
Пользователь №: 9 491



Процессор LPC2478, загрузчик по ком-порту, все замечательно работает за исключением того, что иногда при верификации записанных данных появляются ошибки. Скажем, на 20 записей прошивки размером ~400k один раз возникает ошибка в одном бите (условно говоря, 0x49 вместо 0x4B) в произвольном месте памяти. При этом иногда даже верифицированная прошивка иногда подглюкивает. Когда пишу через j-tag, проблем не возникает, и в переписанной прошивке глюки пропадают сами собой. Процедура обмена по ком-порту использует блоки размером 1К, проверка CRC 16
На что грешить не знаю, может ли быть, что CRC-16 не покажет ошибку в подобной ситуации? Или может кто-то сталкивался с подобными проблемами в филипсовских процах?
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Aug 3 2009, 13:28
Сообщение #2


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Версия №1
Неправильно указывается частота SYSCLK при вызове IAP. Точнее в IAP передаётся заниженная частота, а на самом деле SYSCLK выше.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
scifi
сообщение Aug 3 2009, 13:33
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Я где-то слышал, что в микроконтроллерах LPC для флэш есть ограничение: в каждый 512-байтовый ряд можно дописывать не более 16 раз (пачками, кратными 16 байт). Если число записей больше, то позже могут быть сбои при чтении. У Вас это ограничение не нарушается?
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Aug 3 2009, 13:37
Сообщение #4


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(scifi @ Aug 3 2009, 19:33) *
Я где-то слышал, что в микроконтроллерах LPC для флэш есть ограничение: в каждый 512-байтовый ряд можно дописывать не более 16 раз (пачками, кратными 16 байт). Если число записей больше, то позже могут быть сбои при чтении. У Вас это ограничение не нарушается?

Откуда дровишки?!


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
sergik_vrn
сообщение Aug 3 2009, 13:50
Сообщение #5


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

Группа: Свой
Сообщений: 152
Регистрация: 11-10-05
Из: Воронеж
Пользователь №: 9 491



Цитата(GetSmart @ Aug 3 2009, 17:28) *
Версия №1
Неправильно указывается частота SYSCLK при вызове IAP. Точнее в IAP передаётся заниженная частота, а на самом деле SYSCLK выше.

указываю 72MHz, что в моем понимании и есть SYSCLK.
На эту тему были подозрения, но вроде как все правильно. Может, ему на всякий случай чуток завышенную частоту передать, 75МHz скажем? скорость записи не является принципиальным вопросом

Цитата(scifi @ Aug 3 2009, 17:33) *
Я где-то слышал, что в микроконтроллерах LPC для флэш есть ограничение: в каждый 512-байтовый ряд можно дописывать не более 16 раз (пачками, кратными 16 байт). Если число записей больше, то позже могут быть сбои при чтении. У Вас это ограничение не нарушается?

перед каждой записью чипа производится его очистка через SBI
Код
void erase_user_flash()
{
    prepare_sector(USER_START_SECTOR, MAX_USER_SECTOR);
    erase_sector(USER_START_SECTOR, MAX_USER_SECTOR);
    check_result();
}
Go to the top of the page
 
+Quote Post
shahr
сообщение Aug 3 2009, 13:56
Сообщение #6


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

Группа: Участник
Сообщений: 128
Регистрация: 6-06-06
Из: Москва
Пользователь №: 17 793



кабель?


--------------------
wbw
shahr
Go to the top of the page
 
+Quote Post
scifi
сообщение Aug 3 2009, 14:53
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(GetSmart @ Aug 3 2009, 17:37) *
Откуда дровишки?!

Partial (Less than 512 bytes) Flash Programming
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 4 2009, 04:59
Сообщение #8


Гуру
******

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



Цитата(shahr @ Aug 3 2009, 16:56) *
кабель?

Увы sad.gif, думаю, что нет. Сталкивался с подобными вещами sad.gif. Была партия LPC2148, в которй не все чипы через IAP не записывались с первого раза, точнее так, после такой записи была неустйчивая работа - пред запуском загрузчик проверял CRC и вылезала ошибка. Явное тяготение всего к нескольким вариантам ошибки CRC. Иногда запускалось и в работу. Перезапись несколько раз приводила все "в норму" разбираться было некогда, под руками замены небыло. Десяток ушел на объект, ни с ними, ни с оставшимися на стенде проблем в работе нет. Дело с год назад, ревизий, и прочего не помню.
Сейчас есть два LPC2138 чипа, причем из разных партий, но довольно старые, но уже 'D' - из запаса для макетных работ. Там ситуация совершенно такая-же, только никакими перезаписями стабильной работы не добиться. Экспромтом увеличил waitstates со штатных 3, до 5 и все "заработало". Устойство в отладке - перезапись десятки раз в день. Через неделю опять начало сбоить. Поставил 6ws - "заработало". Дошли руки, чип был перепаян - все, как и положено заработало на 3ws. Был собран второй экземпляр, чип из другой партии - на пару месяцев позже. Опять та-же история, только много много реже сбои и 4ws ему помогли сразу и навсегда. В плотной работе месяц. Естественно, при этом все пляски с MAM были испробованы - влияет только ws. Несколько офигеваю. Сам загрузчик (8K)на свою сумму не ругается никогда. На блок памяти рсположенный сразу просле загрузчика размером под 256К - ругается редко. А вот на данные в старших блоках, практически всегда. При этом, как и в первом случае ошибки CRC не ссовсем произвольные - повторяются несколько вариантов.
Подобный звоночек был от серийного производителя (совершенно другое изделие, но LPC21x8)- один экземпляр точно так-же не загрузчик ругался. Заменили чип. Появилась новая мысль, может действительно попробовать через JTAG залить и посмотреть на результат. Выберу минутку - сделаю.
P.S.
Глючный чип не выбросил, могу предоставить, как информацию по дате выпуска, так и сам чип, нежели, это shahr интересно.
P.P.S.
Чипы всегда покупались в MT-System


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
sergik_vrn
сообщение Aug 4 2009, 06:17
Сообщение #9


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

Группа: Свой
Сообщений: 152
Регистрация: 11-10-05
Из: Воронеж
Пользователь №: 9 491



Цитата(shahr @ Aug 3 2009, 17:56) *
кабель?

этот вопрос все равно сводится к достаточности CRC16 для отслеживания возникающих ошибок связи. должен отметить, что подобная же прошивалка используется для записи STR710, там ни разу сбоев не наблюдалось...
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Aug 4 2009, 07:45
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206



Цитата(sergik_vrn @ Aug 4 2009, 10:17) *
этот вопрос все равно сводится к достаточности CRC16 для отслеживания возникающих ошибок связи. должен отметить, что подобная же прошивалка используется для записи STR710, там ни разу сбоев не наблюдалось...

Насколько я понял - проблема не в искажении данных при их передаче через интерфейс связи - а проблемы в "качестве Flash" (условно).
Я на данный момент пока что с таким не сталкивался. Были ранее проблемы с глючностью программы, непонятными вылетами в Data и Prefetch Abort в LPC2368, но связано было с проблемой MAM в ранних ревизиях чипов. Описываемого эффекта не наблюдал (пока?).
По поводу способа заливки софта (JTAG, ISP, IAP). Если я правильно понимаю, то во всех случаях используется встроенный IAP, разница только в способе (и интерфейсе) передачи данных для записи Flash. Тем не менее, если настройки для IAP в собственном загрузчике выполнены корректно, то разница в "качестве записи" между собственным IAP и JTAG мне не понятна.


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
sergik_vrn
сообщение Aug 4 2009, 08:22
Сообщение #11


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

Группа: Свой
Сообщений: 152
Регистрация: 11-10-05
Из: Воронеж
Пользователь №: 9 491



Цитата(Andy Mozzhevilov @ Aug 4 2009, 11:45) *
По поводу способа заливки софта (JTAG, ISP, IAP). Если я правильно понимаю, то во всех случаях используется встроенный IAP, разница только в способе (и интерфейсе) передачи данных для записи Flash. Тем не менее, если настройки для IAP в собственном загрузчике выполнены корректно, то разница в "качестве записи" между собственным IAP и JTAG мне не понятна.

мысли аналогичные. может быть, стоит еще раз сверить настройки... какие они вообще нужны для внутреннего IAP, кроме SYSCLK, конечно?
Go to the top of the page
 
+Quote Post
etoja
сообщение Aug 4 2009, 09:53
Сообщение #12


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

Группа: Свой
Сообщений: 1 121
Регистрация: 14-01-05
Из: Москва
Пользователь №: 1 952



Цитата(zltigo @ Aug 4 2009, 08:59) *
Сейчас есть два LPC2138 чипа, только никакими перезаписями стабильной работы не добиться.
Чипы всегда покупались в MT-System


Устойчиво программируем LPC2138 десятками тысяч.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 4 2009, 18:07
Сообщение #13


Гуру
******

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



Цитата(etoja @ Aug 4 2009, 12:53) *
Устойчиво программируем LPC2138 десятками тысяч.

Верю, но тем не менее sad.gif


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
etoja
сообщение Aug 5 2009, 06:29
Сообщение #14


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

Группа: Свой
Сообщений: 1 121
Регистрация: 14-01-05
Из: Москва
Пользователь №: 1 952



Вот подробный пример программирования FLASH для LPC21xx.
Взято в своё время с сахары.ру
Обращаю внимание, что этот пример - для компилятора CrossStudio v1.4 Build 5,
поэтому для иара и кейла не годится.

При программировании прошивки через UART/RS232 важно иметь:
1) корректный преобразователь уровней RS232 с крутыми фронтами;
2) стабильное напряжение питания +3.3v на LPC21xx
3) указывать правильную входную тактовую частоту, которая по документации должна быть в пределах 10МГц...25МГц.
Автор темы указывает 72МГц - чего быть не должно.
Прикрепленные файлы
Прикрепленный файл  IAP.zip ( 4.03 килобайт ) Кол-во скачиваний: 48
 
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Aug 5 2009, 12:41
Сообщение #15


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(etoja @ Aug 5 2009, 12:29) *
...
Автор темы указывает 72МГц - чего быть не должно.

Если вызывать IAP при включенном PLL, то 72 МГц вполне допустимо. Другое дело, что встроенный bootloader после ресета работает при выключенном PLL и для него допустимо 10..25 МГц.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post

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

 


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


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