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

 
 
> Выбор микроконтроллера
Visor
сообщение Jan 18 2009, 13:47
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 240
Регистрация: 23-03-07
Пользователь №: 26 428



Есть устройство подключаемое к компьютеру через USB, периферии мизер (несколько входов/выходов). Сейчас реализовано на AT90USB128. И всё бы хорошо, да производительности маловато, SRAM бы побольше (сейчас 8KБ), и цена у чипа не мала.
По сему стал задумываться о переходе на другую платформу. Опыта работы с ARM нет, но чувствую пора начинать.
Посоветуйте на какой чип лучше перейти, в свете вышеуказанных требований. Хорошо бы в минимальнопиновом корпусе.

PS
Забыл совсем, ещё EEPROM нужна, не менее 4КБ.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
GetSmart
сообщение Jan 19 2009, 06:13
Сообщение #2


.
******

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



Если очень-очень захотеть, то в LPC можно взять 32К страницу флэша и сделать в нём кольцевой буфер с элементами по 16 байт. Меньше нельзя, т.к. флэш там организована по 128 бит, для которых присутствуют дополнительные биты ECC (инфа для восстановления, типа Хэмминга)


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


Местный
***

Группа: Свой
Сообщений: 240
Регистрация: 23-03-07
Пользователь №: 26 428



Цитата(GetSmart @ Jan 19 2009, 13:13) *
Если очень-очень захотеть, то в LPC можно взять 32К страницу флэша и сделать в нём кольцевой буфер с элементами по 16 байт. Меньше нельзя, т.к. флэш там организована по 128 бит, для которых присутствуют дополнительные биты ECC (инфа для восстановления, типа Хэмминга)

Что-то я не понял как это. В описании написано: копирование из RAM во flash блоками по 256 | 512 | 1024 | 4096 байт.
Ткните носом пожалуйста. unsure.gif
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jan 20 2009, 11:46
Сообщение #4


.
******

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



Цитата(Visor @ Jan 19 2009, 23:57) *
Что-то я не понял как это. В описании написано: копирование из RAM во flash блоками по 256 | 512 | 1024 | 4096 байт.
Ткните носом пожалуйста. unsure.gif

Честно скажу, сам не проверял, но в User Manual на LPC213x (стр 222 из 270) написано
Цитата
When a sector of user’s Flash memory is erased, corresponding ECC bytes are also
erased. Once an ECC byte is written, it can not be updated unless it is erased first.
Therefore, for the implemented ECC mechanism to perform properly, data must be written
into the Flash memory in groups of 4 bytes (or multiples of 4), aligned as described above.

Щас проверю. Может и мне потом пригодится.
Принцип простой. В раме держится минимальный буфер (окно) 256 байт. В нём непрограммирующиеся байты запоняются 0xff, а нужные как надо. Это похоже на маску. Потом вызывается IAP для программирования. Эта маска во флэше объединяется с уже прошитыми данными. Так друг за другом можно "прошивать" группы по 16 байт.


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


Гуру
******

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



Цитата(GetSmart @ Jan 20 2009, 13:46) *
Принцип простой.



Все именно так, только "непрограмирующиеся" можно и считать из Flash.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
singlskv
сообщение Jan 20 2009, 19:31
Сообщение #6


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(zltigo @ Jan 20 2009, 15:19) *
Все именно так, только "непрограмирующиеся" можно и считать из Flash.
то есть пишем только изменения ? если можем записать... иначе сттираем страницу и перезаписываем...
так ?


Цитата(Visor @ Jan 19 2009, 20:57) *
Что-то я не понял как это. В описании написано: копирование из RAM во flash блоками по 256 | 512 | 1024 | 4096 байт.
Ткните носом пожалуйста. unsure.gif
Насколько я ничего не понимаю,
NXP просто не дал других вариантов нам юзерам...
флеш точно можно писать по 16байт минимум, но описания как это делать, нет...
можно конечно дизасемблировать их процедуру записи/стирания, но никто не гарантирует что
процедура не изменится в будующем...
тч минимум для записи это 256 байт
Go to the top of the page
 
+Quote Post
Visor
сообщение Jan 21 2009, 05:34
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 240
Регистрация: 23-03-07
Пользователь №: 26 428



Цитата(singlskv @ Jan 21 2009, 02:31) *
флеш точно можно писать по 16байт минимум, но описания как это делать, нет...
можно конечно дизасемблировать их процедуру записи/стирания, но никто не гарантирует что
процедура не изменится в будующем...
тч минимум для записи это 256 байт

Ясно.
Но если мы можем писать блок 256 байт, в котором все "0xff" (не изменяется ничего) и нет проблем с ECC, то записывая блок 256 байт, в котором первый "0x00" и далее все "0xff" (пишем первый байт только) будут проблемы?
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jan 21 2009, 06:47
Сообщение #8


.
******

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



Цитата(Visor @ Jan 21 2009, 11:34) *
Ясно.
Но если мы можем писать блок 256 байт, в котором все "0xff" (не изменяется ничего) и нет проблем с ECC, то записывая блок 256 байт, в котором первый "0x00" и далее все "0xff" (пишем первый байт только) будут проблемы?

Какие проблемы? Вполне корректно запишется первый байт нулём и обновится ECC для первых 16 байт. Из-за чего нельзя будет дописывать эти 16 байт. Но другие группы по 16 байт можно продолжать записывать. Можно даже прочитать флэшку и если в ней есть выравненные группы по 16 байт, то их запросто можно переписать не стирая сектор.


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


Местный
***

Группа: Свой
Сообщений: 240
Регистрация: 23-03-07
Пользователь №: 26 428



Цитата(GetSmart @ Jan 21 2009, 13:47) *
Какие проблемы? ...

Я не корректно выразил свою мысль, имелось ввиду следующее:
во флеш имеем группу из 16-ти байт: 00,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff
пишем поверх: ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff , без проблем с ECC
но если пишем поверх: ff,00,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff , то получаем ошибку, почему? Если ECC формируется по результату записи, то проблем не должно быть, а если по записываемым данным, то проблемы должны быть и со всеми ff.
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jan 21 2009, 09:24
Сообщение #10


.
******

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



Цитата(Visor @ Jan 21 2009, 14:48) *
но если пишем поверх: ff,00,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff , то получаем ошибку, почему? Если ECC формируется по результату записи, то проблем не должно быть, а если по записываемым данным, то проблемы должны быть и со всеми ff.

Дело в том, что после первой записи ECC сбросит некоторые из своих бит в 0. Даже если во второй раз записать в следующий байт группы не затронув предыдущий первый байт, то ECC изменится и с большой вероятностью некоторые биты ECC изменятся с "0" на "1", а так как флэш это не допускает делать без стирания байта (в LPC только сектор целиком), то ECC приобретёт совершенно некорректное значение. После этого читая эти 16 байт в них будут случайные биты (немного, возможно 1, 2 или 3) искажены алгоритмом ECC. Хотя большая часть бит в 16-ти байтах будет похожа на записанные значения.

Сообщение отредактировал GetSmart - Jan 21 2009, 09:36


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


Местный
***

Группа: Свой
Сообщений: 240
Регистрация: 23-03-07
Пользователь №: 26 428



Цитата(GetSmart @ Jan 21 2009, 16:24) *
... а так как флэш это не допускает делать без стирания байта ...

Дошло. smile.gif

Раз физически минимальновозможный размер записываемых данных = 16 байт, почему бы производителю и не сделать возможность записи от 16 байт, и было бы всем хорошо. smile.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Visor   Выбор микроконтроллера   Jan 18 2009, 13:47
- - vvvv   А USB FullSpeed устраивает, или нужен HighSpeed.   Jan 18 2009, 14:17
|- - Visor   Цитата(vvvv @ Jan 18 2009, 21:17) А USB F...   Jan 18 2009, 14:49
- - sonycman   А много-ли сейчас дешёвых армов с таким кол-вом ee...   Jan 18 2009, 18:03
|- - zltigo   Цитата(sonycman @ Jan 18 2009, 20:03) Поч...   Jan 18 2009, 21:16
|- - Visor   Цитата(sonycman @ Jan 19 2009, 01:03) А м...   Jan 19 2009, 05:00
|- - Qwertty   Цитата(Visor @ Jan 19 2009, 08:00) Но сам...   Jan 19 2009, 06:16
|- - Visor   Цитата(Qwertty @ Jan 19 2009, 13:16) Внеш...   Jan 19 2009, 06:30
- - GetSmart   У LPC много обычной флэш со 100К перезаписями. Стр...   Jan 19 2009, 05:28
|- - Visor   Цитата(GetSmart @ Jan 19 2009, 12:28) У L...   Jan 19 2009, 06:01
- - Diman_   У LPC программная flash имеет ресурс 100000, поэто...   Jan 19 2009, 05:31
||- - GetSmart   Цитата(zltigo @ Jan 20 2009, 18:19) Все и...   Jan 20 2009, 12:42
|||- - zltigo   Цитата(GetSmart @ Jan 20 2009, 14:42) У м...   Jan 20 2009, 12:59
||- - Visor   Как я понял, наличие "0xff" (GetSmart) и...   Jan 20 2009, 13:01
|||- - GetSmart   Цитата(Visor @ Jan 20 2009, 19:01) Как я ...   Jan 20 2009, 13:18
|||- - Visor   Цитата(GetSmart @ Jan 20 2009, 20:18) А п...   Jan 20 2009, 13:34
|||- - GetSmart   Цитата(Visor @ Jan 20 2009, 19:34) Т.е. з...   Jan 20 2009, 13:50
||- - Visor   А что будет, если во время записи страницы отключи...   Jan 30 2009, 05:50
||- - scifi   Цитата(Visor @ Jan 30 2009, 08:50) А что ...   Jan 30 2009, 06:54
||- - Visor   Цитата(scifi @ Jan 30 2009, 13:54) Вероят...   Jan 30 2009, 11:38
|- - Visor   Цитата(GetSmart @ Jan 19 2009, 13:13) Есл...   Jan 20 2009, 14:21
- - Rst7   ЦитатаВсе именно так, только "непрограмирующи...   Jan 20 2009, 12:53
- - GetSmart   Проверил программирование по 16 байт 0xFF. Работае...   Jan 20 2009, 14:27


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

 


RSS Текстовая версия Сейчас: 31st July 2025 - 00:58
Рейтинг@Mail.ru


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