[Решенные] переменные записи??

ТИМОТЕО
Солнце 16 сентября 2018 г. 11:31
Всем здравствуйте,

Еще раз я здесь ищу помощь.
Поскольку STM32 не имеет внутреннего eEPROM, как ATMEGA328, в любом случае, чтобы записать переменную, которую можно изменить и записать снова, чтобы отслеживать его изменения?
Моя идея состоит в том, чтобы использовать внешнюю вспышку (W25N01) для использования в качестве DataLogger, но чтобы не читать ее все, каждый раз, когда я хотел бы использовать дополнительную переменную, которая дает мне знать, что была последняя страница, написанная на.
Еще один вариант, немного более сложный, - использовать первую страницу Flash и написать это значение в переменной, но для этого мне нужно прочитать ее, очистить страницу и снова написать новое значение, но потому что у меня высокий уровень Образцы и количество чтения и записи ограничены, я боюсь, что они достигают максимума, и вспышка больше не будет хорошей.
Спасибо за вашу помощь.

Тим

Стивестронг
Солнце 16 сентября 2018 г. 11:43
Ищите Mram или Fram.

Mrburnette
Солнце 16 сентября 2018 г. 13:50
В любом случае, когда вы работаете за журналом данных, вы можете просто использовать один из дешевых модулей DS3231 RTC в реальном времени с на борту EEPROM, большинство из них имеет что -то вроде чипа 24C02.


Луча

ТИМОТЕО
Солнце 16 сентября 2018 г. 15:00
привет,

@Stevestrong, этим воспоминаниям нужно немного места, и я хотел бы использовать полный потенциал STM32, так что, возможно, какая -то хитрость для написания вспышки...

@Ray, как объяснено до моей идеи, состоит в том, чтобы использовать минимальные внешние компоненты рядом с STM32, уже есть RTC.

Вероятно, единственный вариант - использовать внешний eEPROM, i2c

Будет продолжать искать.

Спасибо

Тим

Энтропийзард
Солнце 16 сентября 2018 г. 15:51
Поскольку вы указываете, что будете использовать RTC, я предполагаю, что вы планируете питание VBAT, чтобы поддерживать работу RTC, когда вы останетесь в противном случае. Если вы посмотрите на главу 6 справочного руководства, есть несколько резервных регистров для пользовательских приложений. Они не eeprom, но они могут работать на вас, пока вы продолжаете работать RTC.

Fredbox
Солнце 16 сентября 2018 г. 16:31
@Ray, как объяснено до моей идеи, состоит в том, чтобы использовать минимальные внешние компоненты рядом с STM32, уже есть RTC. Рэй дал вам хороший совет. Модуль DS3231 с EEPROM является одним из внешних компонентов. Четыре провода необходимы, чтобы заставить его работать. Это дает вам 4K eeprom (обычно 24C32), который вы можете переписать миллионы раз вместе с довольно точным RTC (несколько секунд в месяц). У меня есть пара из них, которые работают в течение нескольких лет, и я еще не сбросил время. В настоящее время они примерно на 10 секунд опережают фактическое время.

Когда вы попытаетесь использовать встроенный RTC, вы обнаружите, что он не содержит очень точного времени и нужно синхронизировать с внешним источником.

Эти модули легко доступны для смены кармана. Возможно, вам придется удалить один компонент, если вы используете стандартную батарею 2032, так как эти модули обычно предназначены для перезаряжаемых ячеек.

ТИМОТЕО
Солнце 16 сентября 2018 г., 17:50
@Entropywizard это кажется мне очень хорошим подходом!
Похоже, есть 42 BKR с 16 битами, это очень хорошо для того, что мне нужно.
Теперь просто нужно понять, как его достичь, чтобы прочитать и записать значения, есть ли вы идеи, как получить к ним доступ?

@Fredbox Я прекрасно понимаю идею, но для того, чтобы устройство очень маленьким я постараюсь понять, как реализовать идею @EntropyWizard.
RTC на самом деле не очень точные, но поскольку устройство просто для регистрации данных в течение недели, это не такая большая проблема.

Спасибо всем.

Тим

Flyboy74
Солнце 16 сентября 2018 г. 20:11
Новый вопрос здесь.

Невозможно ли использовать вспышку для хранения переменных?? Я имею в виду, что программа занимает определенное количество вспышки, но можно использовать любую неиспользованную вспышку в качестве хранилища. Я имею в виду, что это делает Micro-Python, а прошивка Micropython написана в C

ТИМОТЕО
Солнце 16 сентября 2018 г. 20:46
@flyboy74 это было то, что я искал...
Но вариант с резервными регистрами также действителен.
Если вы знаете, как реализовать свое предложение, вы больше, чем поделиться : D
Спасибо
Тим

Mrburnette
Солнце 16 сентября 2018 г. 22:44
[Flyboy74 - Солнце 16 сентября 2018 г. 20:11] - Новый вопрос здесь.

Невозможно ли использовать вспышку для хранения переменных?? Я имею в виду, что программа занимает определенное количество вспышки, но можно использовать любую неиспользованную вспышку в качестве хранилища. Я имею в виду, что это делает Micro-Python, а прошивка Micropython написана в C
Очень часто используемая библиотека называется Speffs. http: // stm32duino.com/viewtopic.PHP?T = 1187

Я не знаю о реализации синей бои.

На ESP8266 я смог сохранить довольно большую базу данных, 800 КБ
https: // www.хакерс.io/rayburne/oui-ou ... ON-ESP8266

Flyboy74
Пн 17 сентября 2018 г., 3:19
ОК, снова вопрос нума, и я задаю, потому что это то, как я учусь.

Если вы знаете базовый адрес, на котором записывается файл bin, и вы знаете, что размер вашего файла bin в том, что это возможно, просто чтобы указать на адрес = base_adress + bin_size, сделайте массив или структуру, затем напишите на указатель указатель???

Если я посмотрю на приведенный ниже клип из руководства, это означает, что эта вспышка доступна между 0x4002 2000 - 0x4002 23ff
RAM Map.jpg
Карта оперативной памяти.JPG (57.3 киб) просмотрено 345 раз

Эдогальдо
Пн 17 сентября 2018 г., 6:51
Может это помочь: Обе реализации используют часть MCU Flash в качестве EEPROM.

Racemaniac
Пн 17 сентября 2018 г. 12:07
[Flyboy74 - Пн 17 сентября 2018 г. 3:19] - ОК, снова вопрос нума, и я задаю, потому что это то, как я учусь.

Если вы знаете базовый адрес, на котором записывается файл bin, и вы знаете, что размер вашего файла bin в том, что это возможно, просто чтобы указать на адрес = base_adress + bin_size, сделайте массив или структуру, затем напишите на указатель указатель???

Если я посмотрю на приведенный ниже клип из руководства, это означает, что эта вспышка доступна между 0x4002 2000 - 0x4002 23ff

Карта оперативной памяти.JPG
Чтобы немного уточнить: вы действительно правы, однако... Таким образом, эти местоположения памяти относятся к флэш -памяти и... Вы не можете просто написать, чтобы Flash, как вы можете написать в Ram. Посмотрите на ссылки, предоставленные Edogaldo, люди написали библиотеки, чтобы использовать вспышку, но это не просто написание по этим адресам, Flash немного сложнее в использовании.

Моду
Пн 17 сентября 2018 г. 13:25
Рассмотрели ли вы модуль флэш -памяти SPI или модуль FRAM?

Mrburnette
Пн 17 сентября 2018 г. 16:51
[Моду - Пн 17 сентября 2018 г. 13:25] - Рассмотрели ли вы модуль флэш -памяти SPI или модуль FRAM?
... это было предложено ранее, но ОП хочет изучить нефизические дополнения.

Mrburnette
Пн 17 сентября 2018 г., 17:09
[ТИМОТЕО - Солнце 16 сентября 2018 г., 17:50] - @Entropywizard это кажется мне очень хорошим подходом!
Похоже, есть 42 BKR с 16 битами, это очень хорошо для того, что мне нужно.
Теперь просто нужно понять, как его достичь, чтобы прочитать и записать значения, есть ли вы идеи, как получить к ним доступ?

@Fredbox Я прекрасно понимаю идею, но для того, чтобы устройство очень маленьким я постараюсь понять, как реализовать идею @EntropyWizard.
RTC на самом деле не очень точные, но поскольку устройство просто для регистрации данных в течение недели, это не такая большая проблема.

Спасибо всем.

Тим
Вы можете посмотреть на эту ветку; https: // www.STM32duino.com/viewtopic.pH ... t = 30#P1495
Кажется, Энди успешно в письменной форме & чтение.

Луча

ТИМОТЕО
Пт 21 сентября 2018 г. 9:16 утра
Всем здравствуйте,

@mrburnette Спасибо, что указали мне в этом направлении, это отлично работает для моих тестов.
Кажется, что в C8 есть только 10 доступных регистров, но поскольку они 16 бит, больше, чем мне нужно.

Тим

Эдогальдо
Пт 21 сентября 2018 г. 9:37 утра
Если использование ядра Роджера и особенно загрузчика Роджера, учтите, что 10 -й регистр используется загрузчиком..

кленовый сериал на Android?