Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Кто работал с FRAM памятью по SPI интерфейсу
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Serega Doc
Нужна библиотека по работе с FM25CL64
prottoss
Цитата(Serega Doc @ Dec 12 2005, 21:40) *
Нужна библиотека по работе с FM25CL64


Не знаю, как на счет FM25CL64, есть для AT25128/256, правда, только для чтения. Для записи не было нужды делать, т.к. заливал ее программатором. Надеюсь, они по программному интерфейсу одинаковы, вроде бы серия 25 одна.

Или там ньюансы есть какие?

Нажмите для просмотра прикрепленного файла
Igor26
При использовании FRAM столкнулись с одной бякой. При программировании МК, иногда портилось содержимое FRAM. Лечилось подключением ее входа HOLD к входу RESET МК.
Библиотеки, к сожалению, дать не могу. ПисАл другой программист и на АСМе.
prottoss
Цитата(Igor26 @ Dec 13 2005, 16:46) *
При использовании FRAM столкнулись с одной бякой. При программировании МК, иногда портилось содержимое FRAM. Лечилось подключением ее входа HOLD к входу RESET МК.
Библиотеки, к сожалению, дать не могу. ПисАл другой программист и на АСМе.


А я все программировал с помощью ПОНИПРОГа и обычного АТМЕЛОВСКОГО программатора. Правда на плату пришлось воткнуть джампер для переключения входа КС ФЛЭШа и РЕСЕТа АВРа. Флэшка шилась прям при работающем девайсе, (чтения флэш АВРом происходило только по нажатию кнопок :-))

Вот рисунок в MS Word и PCAD2001 Нажмите для просмотра прикрепленного файла
Igor26
Цитата(prottoss @ Dec 13 2005, 21:52) *
Цитата(Igor26 @ Dec 13 2005, 16:46) *
При использовании FRAM столкнулись с одной бякой. При программировании МК, иногда портилось содержимое FRAM. Лечилось подключением ее входа HOLD к входу RESET МК.
Библиотеки, к сожалению, дать не могу. ПисАл другой программист и на АСМе.


А я все программировал с помощью ПОНИПРОГа и обычного АТМЕЛОВСКОГО программатора. Правда на плату пришлось воткнуть джампер для переключения входа КС ФЛЭШа и РЕСЕТа АВРа. Флэшка шилась прям при работающем девайсе, (чтения флэш АВРом происходило только по нажатию кнопок :-))

Вот рисунок в MS Word и PCAD2001 Нажмите для просмотра прикрепленного файла

У нас во FRAM постоянно обновлялся архив событий - десятки раз в секунду. FRAM выбрали из-за её неограченного количества циклов записи и из-за того, что время записи равно циклу чтения. Применить ОЗУ с батарейной подпиткой не было возможности из-за особеностей схемотехники контроллера.

PS Уважаемый prottoss, а как Вы "затолкали" PCADовскую схему в WORD?
АДИКМ
Работа с FRAM FM25CL64 ничем не отличается с работой с AT25С64.
Просто нет задержек и ресурс очень большой.
А вы хоть укажите под какой процессор это вам надо.
Хотя для любого проца с аппаратным SPI там 20 строк программы...
prottoss
Цитата(Igor26 @ Dec 14 2005, 13:59) *
PS Уважаемый prottoss, а как Вы "затолкали" PCADовскую схему в WORD?


Элементарно, Ватсон! :-)

В ПИКАДЕ - Меню Edit->Select All, дальше щелчек правой кнопкой мыши, во всплывающей портянке Copy

Далее запускаем МСВОРД. Те же манипуляции с мышью только в портянке Paste. ВСЕ.

Единственно, в ПИКАДЕ предварительно (если хотите получить черно-белый рисунок), зайти в Options->Display->Colors и все переправить на черный цвет кроме Background, ну и, для удобства, гриды и выделение. Кстати таким макаром обычно я делаю печатные платы из того же ПИКАДА. В ВОРДЕ, мне, удобнее.



Цитата(АДИКМ @ Dec 14 2005, 15:53) *
А вы хоть укажите под какой процессор это вам надо.
Хотя для любого проца с аппаратным SPI там 20 строк программы...


Вообще эта часть форума относится к ATMEL AVR... :-)
Igor26
[quote name='prottoss' date='Dec 14 2005, 13:20' post='71382']
[quote name='Igor26' post='71308' date='Dec 14 2005, 13:59']
PS Уважаемый prottoss, а как Вы "затолкали" PCADовскую схему в WORD? [/quote]

Элементарно, Ватсон! :-)

В ПИКАДЕ - Меню Edit->Select All, дальше щелчек правой кнопкой мыши, во всплывающей портянке Copy

Далее запускаем МСВОРД. Те же манипуляции с мышью только в портянке Paste. ВСЕ.

Единственно, в ПИКАДЕ предварительно (если хотите получить черно-белый рисунок), зайти в Options->Display->Colors и все переправить на черный цвет кроме Background, ну и, для удобства, гриды и выделение. Кстати таким макаром обычно я делаю печатные платы из того же ПИКАДА. В ВОРДЕ, мне, удобнее.

Действительно просто! Спасибо!!!
Serega Doc
Подскажите как правильно инициализировать.
А то что то вроде как сделал как в DataSheet
Записываю 0xAA а читаю 0x00
Вот исходники процедур под AVR 64

void INIT_FRAM (void)
{
SETBIT(PORTB,WPM);
CLEARBIT(PORTB,CSM0);
SPI_W(CMD_WREN_FRAM);
SETBIT(PORTB,CSM0);
DELAY100(); // задержка 100 ns
CLEARBIT(PORTB,CSM0);
SPI_W(CMD_INIT_FRAM);
SPI_W(RG_STAT);
SETBIT(PORTB,CSM0);
CLEARBIT(PORTB,WPM);
}

void WRITE_FRAM (unsigned int ADR, unsigned char DATA)
{
char h_byte, l_byte;
l_byte=ADR;
h_byte=ADR>>8;
CLEARBIT(PORTB,CSM0);
SPI_W(CMD_WR_FRAM);
SPI_W(h_byte);
SPI_W(l_byte);
SPI_W(DATA);
SETBIT(PORTB,CSM0);

}

char READ_FRAM (unsigned int ADR)
{
char h_byte, l_byte, DATA;
l_byte=ADR;
h_byte=ADR>>8;
CLEARBIT(PORTB,CSM0);
SPI_W(CMD_RD_FRAM);
SPI_W(h_byte);
SPI_W(l_byte);
DATA=SPI_R();
SETBIT(PORTB,CSM0);
return DATA;
}
prottoss
Цитата(Serega Doc @ Dec 17 2005, 17:48) *
Подскажите как правильно инициализировать.
А то что то вроде как сделал как в DataSheet
Записываю 0xAA а читаю 0x00


SPI_W(...) - это что за процедура? Если это просто запись в регистр данных SPI SPDR - то после записи должно пройти минимум 16 тактов CPU на максимальной скорости SP2X, равной половине частоты CPU, для передачи всех восьми бит данных. Можно просто проверять бит SPIF, как только он установится в 1, все, передача окончена . Во всех даташитах на AVR со встроенным SPI-портом дан простой исходник, которым рекомендую пользоваться:

C Code Example(1)

void SPI_MasterInit(void)

{

/* Set MOSI and SCK output, all others input */

DDR_SPI = (1<<DD_MOSI)|(1<<DD_SCK);

/* Enable SPI, Master, set clock rate fck/16 */

SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR0);

}

void SPI_MasterTransmit(char cData)

{

/* Start transmission */

SPDR = cData;

/* Wait for transmission complete */

while(!(SPSR & (1<<SPIF)))

;

}

Код довольно компактный что на Си, что на Асме, а в туманном SPI_W(...) еще не известно что сидит...
Serega Doc
Вопрос не в инициализации SPI интерфейса а в правильной работе с FRAM.
С SPI вообще нет проблем
VslavX
В аттаче исходники абсолютно работающих c 25CL64 процедур для меги.
ИМХО, что-то Вы намутили с защитой от записи.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.