Отговори на тема  [ 13 мнения ] 
FIFO 
Автор Съобщение
Ранг: Популярен
Ранг: Популярен

Регистриран на: Пон Мар 22, 2010 8:52 pm
Мнения: 328
Мнение FIFO
Търся си сорс на реализация на ФИФО върху сериен флаш. Размер на един запис 512 байта (256 може би също).

Някой да е срещал готов сорс за това? Или поне теория :)


Чет Авг 22, 2013 8:11 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Фев 07, 2012 11:22 pm
Мнения: 3084
Мнение Re: FIFO
Каква теория?
Разгледай описанието на един ФИФО чип , помисли си какво ще правиш с данните и почвай.
Като начало ти трябват няколко указателя/поинтера. Трябва ти "ресет пин" - тоест функция, която нулира тези два указателя.
Трябва ти "пин за запълване" - тоест флаг, че разликата между указателя за запис и този за четене е равна на обема на флаша - тоест нов запис ще презапише непрочетени данни. Тогава или трябва да спреш записването на нови данни , или да активираш "ресет пина". Този флаг трябва да се проверява/манипулира при всяка операция на четене или запис.

Трябват ти функции за писане в серийния флаш, които зависят от конкретния чип. Изтриването на флаша по сектори сигурно ще иска време, това пък може да доведе до буфер в РАМа, това пък усложнява всичко допълнително.
Ако приемем ,че ти трябва точно флаш фифо - пътят е някакъв такъв.


Пет Авг 23, 2013 7:00 am
Профил
Ранг: Популярен
Ранг: Популярен

Регистриран на: Пон Мар 22, 2010 8:52 pm
Мнения: 328
Мнение Re: FIFO
FIFO горе долу знамкак работи. Въпросът е къде да съхранявам поинтерите, така че при powerloss да не се загубят.


Пет Авг 23, 2013 8:18 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Яну 25, 2012 9:14 am
Мнения: 5298
Мнение Re: FIFO
Vesko написа:
FIFO горе долу знамкак работи. Въпросът е къде да съхранявам поинтерите, така че при powerloss да не се загубят.


за такова малко FIFO, ползвай не флаш а EEPROM или още по-добре FRAM. ще си пазиш пойнтерите вътре

_________________
'просто' е технически синоним на 'красиво'


Пет Авг 23, 2013 8:48 am
Профил
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Чет Яну 04, 2007 12:43 am
Мнения: 178
Мнение Re: FIFO
Най-добре е да не използваш явно записани пойнтери във флаша между две включвания на захранването, а те да се преизчисляват по време на power-up. Причината е, че тези пойнтери биха се презаписвали много по-начесто от данните и ресурсът на запис на тези клетки ще се изчерпи много бързо.
Разбира се, има вариации на темата - напр. редуване на различни клетки за записа им, но има и начини да се мине и без тях при изключване на захранването.
Вариантите за организация на записите могат да бъдат най-различни. Един възможен е към всеки запис да има поле за индикация на валиден запис (CRC) и индекс, който нараства при всеки следващ. При включване се претърсва паметта, за да се намерят валидните записи и да се определи от тях къде е "главата" и къде "опашката" на буфера и да се генерират указатели към тях в RAM-а. След това се работи само с указателите до изключване на захранването. При изваждане на запис от FIFO-то трябва и да го изтриеш от паметта, за да се инвалидира.


Пет Авг 23, 2013 8:55 am
Профил
Ранг: Популярен
Ранг: Популярен

Регистриран на: Пон Мар 22, 2010 8:52 pm
Мнения: 328
Мнение Re: FIFO
Това със сканирането на флашасъм си го мислил, но така и още не съм проверил колко време ще ми трябва да сканирам целият флаш.

А еепром или Ффрам къммомента е неприложимо. платките са ми готови :)


Пет Авг 23, 2013 9:17 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение Re: FIFO
Аз бих ти предложил и друго решение, ама казваш че вече имаш хардуер, та не знам. Аз много често слагам DS1307 по платките си и с него получавам "екстра" 48 байта рам захранена от батерийката. Когато ползвам клетките за нещо, при power-up проверявам дали имам валидни данни в клетките (дали евентуално не е сменяна батерията примерно) и ако имам си ги ползвам, ако не си ги генерирам. В твоя случай пак си го правиш сканирането ама само когато се смени батерията. Което при консумацията на DS-a от една CR2032 би се наложили чак след 15-20 години...


Пет Авг 23, 2013 10:07 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Юни 10, 2007 2:22 pm
Мнения: 6492
Местоположение: София
Мнение Re: FIFO
Просто двата pointer-а в RAM, а при отпадане на захранването се пишат във
флаша. Това е начинът за такива работи, хардуерът трябва да го може (т.е. да има
сигнализация - най-вероятно някакво прекъсване - като отпадне захранването и кондензатор
за 100-ина милисекунди работа след това).

_________________
-------------------
www.tgi-sci.com
-------------------
http://www.flickr.com/photos/didi_tgi/


Пет Авг 23, 2013 10:22 am
Профил WWW
Ранг: Популярен
Ранг: Популярен

Регистриран на: Пон Мар 22, 2010 8:52 pm
Мнения: 328
Мнение Re: FIFO
Май не съм предвидил в хардуер-а прекъсване при отпадане на напрежението :( Но входното напрежение все пак стига до АЦП-то ми. А STM32F2-ката май можеше д агенерира прекъсване като напрежението е извън дадени рамки, щего проверя. Отделно имам BateryBackUp клетки в процесора и това с запазването в тях на поинтерите също е изпълнимо :)


Пет Авг 23, 2013 11:24 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Юни 10, 2007 2:22 pm
Мнения: 6492
Местоположение: София
Мнение Re: FIFO
О ако имаш подпрян RAM хич не му се чуди ами ги слагай в него. То и цялото ФИФО
ако се събере там ще е къде по-добре. Някаква чексума за цялата салата та като
излезе от reset процесора да види помни ли валидни данни не помни ли и това е.

_________________
-------------------
www.tgi-sci.com
-------------------
http://www.flickr.com/photos/didi_tgi/


Пет Авг 23, 2013 11:29 am
Профил WWW
Ранг: Популярен
Ранг: Популярен

Регистриран на: Пон Мар 22, 2010 8:52 pm
Мнения: 328
Мнение Re: FIFO
Към 3МБ ще ми е фифото. :) Нямам толкова РАМ в СТМ-а


Пет Авг 23, 2013 3:00 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Фев 07, 2012 11:22 pm
Мнения: 3084
Мнение Re: FIFO
а флаша ти ако е атмелски ДатаФлаш- маса тревоги ще ти отпаднат;


Пет Авг 23, 2013 3:24 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пет Фев 04, 2005 9:59 pm
Мнения: 6019
Местоположение: София
Мнение Re: FIFO
Vesko не ти знам проекта, ама с тези 3МБ отиваш към R pi с 3000mAh батерия.

_________________
Warriors of the Night, ASSEMBLER!!!


Пет Авг 23, 2013 5:39 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 13 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 3 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни