|
STM32 + параллельная FRAM. |
|
|
|
Feb 15 2012, 07:55
|
Группа: Участник
Сообщений: 9
Регистрация: 14-02-12
Из: Краснодар
Пользователь №: 70 255

|
Цитата(Dron_Gus @ Dec 14 2011, 22:20)  Немного прокололись с регистром на младшую часть адреса - для нашей SRAM был нужен "прозрачный" при низком Addres Valid (или как он называется у STM). Мы же вначале поставили тот, что защелкивает (и выставляет данные на выход) по положительному фронту. И словили кучу чудес. При замене на правильный регистр все взлетело. Скажите, пожалуйста, что за такая защелка? С прозрачностью на низком уровне никак не найду. Уже все перечитал: 74хх373 и 573 - прозрачность же на высоком? 74хх374 и 574 - защелкивают по положительному фронту. Остальные регистры-защелки , что нашел, - вариации первых на 16 бит и др. PS. Интерес не праздный, хочу к Discovery на STM32F407V подключить память и опасаюсь граблей с выбором правильных регистров.
|
|
|
|
|
Jun 8 2016, 21:26
|
Группа: Новичок
Сообщений: 2
Регистрация: 28-04-16
Пользователь №: 91 533

|
Цитата(Dron_Gus @ Dec 14 2011, 22:20)  3) SRAM к 100-ногому цепляли. И еще три NAND'ины. Немного прокололись с регитром на младшую часть адреса - для нашей SRAM был нужен "прозрачный" при низком Addres Valid (или как он называется у STM). Мы же вначале поставили тот, что защелкивает (и выставляет данные на выход) по положительному фронту. И словили кучу чудес. При замене на правильный регистр все взлетело. 2) ИМХО, должно работать. На остальные вопросы, вроде, уже ответили. А как называется этот регистр защелка с прозрачный при низком значении защелкивающий адрес . Все 573 и 373 по высокому защелкиваются .
|
|
|
|
|
Jun 9 2016, 03:15
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(Goodvin @ Dec 19 2011, 01:19)  Вот планирую освобождать FSMC к моменту появления первых данных, а со вторыми работать в промежутках. Скажите, а в других сериях STM можно работать в режиме "multimaster FSMC access"? К стати, откуда эту фразу взяли, в DataSheet'е ее не заметил? Жесть какая. Костыли. Цитата(Goodvin @ Dec 19 2011, 01:19)  Сейчас мучаюсь с тем, что не могу выбрать какой МК использовать. Используйте что-нить из LPC. Зачем мазохизмом с этим FSMC заниматься если он такой кривой? В LPC таких проблем нет - хоть сколько мастеров с внешней памятью работают и DMA ещё параллельно - нет проблем. Есть проект на LPC1788 с кучей параллельных задач и тяжёлыми вычислениями на больших массивах во внешней SDRAM (одна задача читает/пишет через DMA во внешнюю SDRAM, другая читает через DMA из неё же, третья (декодер MP3) читает/пишет туда-же и ещё несколько задач у которых есть данные там же; и значительная часть кода в это же время выполняется из этой же SDRAM) - даже и не заморачивался никогда ни с какими проблемами доступа. Да и вообще - нужна-ли Вам реально параллельная FRAM? Может достаточно SPI-ной? Если надо быстро - можно повесить на quad-SPI. Если надо чтобы была в адресном пространстве CPU - можно повесить на SPIFI.
|
|
|
|
|
Jun 10 2016, 07:31
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
В stm32f407 есть BackUp память. Там 4 килобайта от батарейки часовой. +1 мкА при отключенном питании. Вполне приемлемо. Я для сохранения контекста использую FLASH память. Работал двумя способами. 1. Свал питания. а) Завожу сигнал входного питания, (отделяю диодом от входного накопительного кондёра) на АЦП. Благо в АЦП есть режим типа компаратора, с прерыванием б) В одном устройстве делал даже динамическое определение начала свала (если входное напряжение может меняться в значительных пределах. Например +12/ +24) в) По прерыванию о свале питания, останавливаю работу, отключаю потребляющие цепи (например подсветку дисплея), завершаю незаконченные текущие транзакции по флэш памяти. г) Сохраняю текущее состояние важных переменных (областей памяти) С контрольной суммой. д) Повисаю до выключения / либо рестарта. 2. Текущая работа. а) периодически сохраняю файловым способом важные данные, указывая текущее время сохранки ... б) по свалу (PVD) сохраняю время выключения. в) при подаче питания, ищу последнюю актуальную запись, и восстанавливаюсь по ней.
|
|
|
|
|
Jun 10 2016, 08:45
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(SasaVitebsk @ Jun 10 2016, 13:31)  В stm32f407 есть BackUp память. Там 4 килобайта от батарейки часовой. +1 мкА при отключенном питании. Вполне приемлемо. Я для сохранения контекста использую FLASH память. Работал двумя способами. 1. Свал питания. а) Завожу сигнал входного питания, (отделяю диодом от входного накопительного кондёра) на АЦП. Благо в АЦП есть режим типа компаратора, с прерыванием ... Пытались как-то делать мы подобным образом (думали отказаться от FRAM). В реальной эксплуатации выявились проблемы: иногда стали происходить потери данных (т.е. вроде была перезагрузка, но сохранения данных не было, так как не было сигнала срабатывания монитора питания). То ли это были перезагрузки из-за каких-то багов в ПО, то ли срабатывания сторожевика, то-ли возникали сигналы сброса из-за аппаратных помех (срабатывания супервизора питания по низкой части (сигнал монитора формировался высокой частью - +12 или +24В, после которого стоял вторичный понижающий DC-DC до 3.3В с супервизором)) то ли ещё чего. Так и не разобрались, так как происходило это очень редко и на столе не проявлялось, а только на реальном объекте. В общем - если будут причины формирования сброса после высоковольтной части, то будут потери данных. В результате отказались от такого решения и вернулись к надёжному решению на FRAM.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|