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

 
 
> Ошибки записи 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
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 21)
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
zltigo
сообщение Aug 5 2009, 13:34
Сообщение #16


Гуру
******

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



Цитата(GetSmart @ Aug 5 2009, 15:41) *
Если вызывать IAP при включенном PLL, то 72 МГц вполне допустимо.

Да, когда-до на что-то старое типа LPC2114, помнится, была errata по недопущению использования, PLL. У "современных" такого нет. Лично у меня PLL настройки вычитываюся прямо из регистров при задании частоты. В неизвесности только частота кварца, но она уменя всегда одна и та-же. Кроме того, указывать частоты повыше реальных, полагаю, безобидно


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


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

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



Цитата(GetSmart @ Aug 5 2009, 16:41) *
Если вызывать IAP при включенном PLL, то 72 МГц вполне допустимо. Другое дело, что встроенный bootloader после ресета работает при выключенном PLL и для него допустимо 10..25 МГц.

работа идет во вторичном бут-лоадере, перед обращением к функциям первичного устанавливается PLL и включается частота 72MHz. Нигде в документации на 2478 запрета не нашел, а в разделе Introductory написано:
Цитата
The LPC2400 microcontrollers have 512 kB of on-chip high-speed
Flash memory. This Flash memory includes a special 128-bit wide memory interface and
accelerator architecture that enables the CPU to execute sequential instructions from
Flash memory at the maximum 72 MHz system clock rate. This feature is available only
on the LPC2000 ARM Microcontroller family of products.

у меня тут другое выяснилось, я обнаружил, что параметр частоты требуется передавать в килогерцах, а не в герцах smile.gif на это грешу, исправил, теперь пока что идет набор статистики
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Aug 13 2009, 12:15
Сообщение #18


.
******

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



Цитата(sergik_vrn @ Aug 13 2009, 17:54) *
работа идет во вторичном бут-лоадере, перед обращением к функциям первичного устанавливается PLL и включается частота 72MHz. Нигде в документации на 2478 запрета не нашел, а в разделе Introductory написано:
Ничего полезного здесь не написано. А первичный бутлодер не вызвать из вторичного, кроме как общим сбросом. А вот IAP можно вызывать, у него есть "точка входа".

Цитата(sergik_vrn @ Aug 13 2009, 17:54) *
у меня тут другое выяснилось, я обнаружил, что параметр частоты требуется передавать в килогерцах, а не в герцах smile.gif на это грешу, исправил, теперь пока что идет набор статистики
lol.gif
Интересно у zltigo что тогда было smile.gif

Сообщение отредактировал GetSmart - Aug 13 2009, 12:16


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


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

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



Цитата(GetSmart @ Aug 13 2009, 16:15) *
Ничего полезного здесь не написано. А первичный бутлодер не вызвать из вторичного, кроме как общим сбросом. А вот IAP можно вызывать, у него есть "точка входа".

ну я IAP и имел в виду, разумеется.
понятно, что ничего полезного, просто про флеш, тем более про его программирование, более нигде ничего вообще не написано sad.gif
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Aug 13 2009, 12:24
Сообщение #20


.
******

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



Цитата(sergik_vrn @ Aug 13 2009, 18:18) *
понятно, что ничего полезного, просто про флеш, тем более про его программирование, более нигде ничего вообще не написано sad.gif

В том то и дело, что не про программирование, а про чтение/исполнение кода.


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


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

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



Цитата(GetSmart @ Aug 13 2009, 16:24) *
В том то и дело, что не про программирование, а про чтение/исполнение кода.

Вашу мысль я понял, но кроме упомянутой фразы про исполнение кода о флеше больше ни слова sad.gif
Ладно, посмотрим что покажут испытания, хотя работоспособность/неработоспособность IAP при таких ошибках мне не совсем понятна. Если там тупо от частоты считаются циклы задержки, то ошибка в 1000 раз дала бы соответствующее ухудшение производительности, а если механизм другой, то вообще непонятно, как все это должно работать...
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 13 2009, 12:55
Сообщение #22


Гуру
******

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



Цитата(GetSmart @ Aug 13 2009, 14:15) *
Интересно у zltigo что тогда было smile.gif

Было и есть smile.gif Сейчас на стенде один заторможенный контроллер в работе. Экспериментов пока никаих дополнительно не делал - не до этого.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

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

 


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


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