Работа блоков EEPROM с внешней микросхемой.

Вопросы по встроенным блокам
Ответить
zvukache
Рядовой
Сообщения: 8
Зарегистрирован: 14.11.2018{, 22:40}
Репутация: 0
Имя: Вячеслав

Работа блоков EEPROM с внешней микросхемой.

#1

Сообщение zvukache » 04.12.2018{, 13:29}

Добрый день, форумчане. У меня вопрос по работе с внешней памятью EEPROM.
В настройках контроллера я отключаю внутреннюю память и включаю работу с внешней микросхемой, делаю настройки: 256 байт, 50 адрес (у меня 24C02N) и контроллер не хочет (или не может?) работать с внешней микросхемой.
Применил метод исключения:
- моя программа прекрасно работает с внутренней памятью и она же не работает с внешней;
- подключена микросхема правильно, т. к. сканирование шины I2C это подтверждает - видятся сама микросхема и дисплей 1602;
- перепробованы несколько микросхем 24С02N и ни с одной микроконтроллер не захотел работать.
Я где-то на просторах форума читал, что некоторые пользователи сами пишут блоки для работы с микросхемой 24С08, в настройках блока есть микросхемы только с 32 и 256 килобитной памятью. У меня таймер для включения и выключения нагрузки и мне нужно хранить время для блоков будильника, в общем 12 байт, и нет смысла использовать микросхему на 4 килобайта или ещё больше. С другими микросхемами (которых нет в настройках блока) стандартный блок не работает?

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Работа блоков EEPROM с внешней микросхемой.

#2

Сообщение Sancho » 04.12.2018{, 15:42}

zvukache писал(а):
04.12.2018{, 13:29}
С другими микросхемами (которых нет в настройках блока) стандартный блок не работает?
Встроенная поддержка только для больших микрух. Связано с разным форматом адреса ячейки - один или два байта. У Вас умещается в один байт - увы...

Отправлено спустя 37 минут 26 секунд:
Сделаю блочок - какие данные: тип, кол-во для одного "массива".
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

zvukache
Рядовой
Сообщения: 8
Зарегистрирован: 14.11.2018{, 22:40}
Репутация: 0
Имя: Вячеслав

Работа блоков EEPROM с внешней микросхемой.

#3

Сообщение zvukache » 05.12.2018{, 16:13}

Спасибо за ответ. Я начинающий и об адресе ячейки не подумал.
Не представляю себе какие именно данные нужно хранить в объеме 4 килобайт - это больше двух тысяч переменных типа int. По киевским ценам разница между десятью микросхемами 24С02 и 24С32 - три с половиной цента, но, как говорил мой дедушка, зачем гнать грузовик, чтобы доставить на поле одного рабочего?
В моем случае это четыре будильника (по два на каждый таймер) + включено/выключено. Всего на каждый будильник: две переменных типа байт (часы:минуты) и одна булева (вкл/выкл). Спасибо за предложение написать блочок для работы с маленькой микросхемой. Но писать отдельный блок для выполнения одной конкретной задачи как-то не комильфо.
Скажите пожалуйста (не сочтите за наглость), а можно ли написать что-то вроде универсального блока (как встроенный блок), где в настройках блока можно было бы задавать тип переменной (хотя бы из трех: булева, байт и интеджер) и таких блоков в проекте можно было бы использовать столько, сколько нужно?

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Работа блоков EEPROM с внешней микросхемой.

#4

Сообщение Sancho » 05.12.2018{, 16:23}

zvukache писал(а):
05.12.2018{, 16:13}
Скажите пожалуйста (не сочтите за наглость), а можно ли написать что-то вроде универсального блока (как встроенный блок), где в настройках блока можно было бы задавать тип переменной (хотя бы из трех: булева, байт и интеджер) и таких блоков в проекте можно было бы использовать столько, сколько нужно?
Нет, проще сделать чистые byte входы и на них подавать нужное, предварительно разложив при необходимости на байты.
zvukache писал(а):
05.12.2018{, 16:13}
Но писать отдельный блок для выполнения одной конкретной задачи как-то не комильфо.
Я просто слегка подредактирую свои старые под одно байтовый адрес запоминающего пространства и соответствующие входы/выходы.
Вместо bool будет байт - один бит не пишется, минимум 8 - байт :)

Отправлено спустя 4 минуты 47 секунд:
Будет bool, сделаю :) Возьмём один у часов, у них лишние :)

Отправлено спустя 54 минуты 50 секунд:
Надеюсь, проведёшь эксперименты - разберёшься
Вложения
24C02_to_zvukache_v1.flp
(134.14 КБ) 90 скачиваний
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

seri0shka
Лейтенант
Сообщения: 391
Зарегистрирован: 09.04.2016{, 12:17}
Репутация: 22
Откуда: Кременчуг
Имя: Сергей

Работа блоков EEPROM с внешней микросхемой.

#5

Сообщение seri0shka » 05.12.2018{, 23:46}

У меня часы реального времени DS1307 с AT24C32, перерыл интернет, чтоб найти как её использовать, не нашёл. zvukache, можете выложить ваш проект для примера?

dsfbuy
Сержант
Сообщения: 171
Зарегистрирован: 03.11.2018{, 12:40}
Репутация: 21
Откуда: Братск
Имя: Виктор

Работа блоков EEPROM с внешней микросхемой.

#6

Сообщение dsfbuy » 06.12.2018{, 00:01}

Изображение
В DS1307 наверно так-же.
Вложения
121.png

zvukache
Рядовой
Сообщения: 8
Зарегистрирован: 14.11.2018{, 22:40}
Репутация: 0
Имя: Вячеслав

Работа блоков EEPROM с внешней микросхемой.

#7

Сообщение zvukache » 06.12.2018{, 14:10}

У меня проект управления подсветкой для рассады, где используется модуль времени 1302 (там связь по трем цифровым пинам). Модуль 1307 с микросхемой памяти у меня тоже есть, но нет аккумулятора для него, поэтому решил использовать именно 1302.
Прежде всего вам нужно отключить в настройках использование внутренней памяти и оставить только внешнюю микросхему. Потом запустить скетч сканирования I2C шины и посмотреть видит ли ваш МК микросхему памяти и на каком адресе она сидит. Далее ввести адрес в настройках и всё должно получиться (в теории, сам я пока только планирую это проделать).

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Работа блоков EEPROM с внешней микросхемой.

#8

Сообщение Sancho » 06.12.2018{, 14:15}

seri0shka, Какие проблемы по использованию? Никаких.
Главное - найти применение.
zvukache, попробовали блоки для 24С02?
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

zvukache
Рядовой
Сообщения: 8
Зарегистрирован: 14.11.2018{, 22:40}
Репутация: 0
Имя: Вячеслав

Работа блоков EEPROM с внешней микросхемой.

#9

Сообщение zvukache » 06.12.2018{, 14:37}

Sancho, спасибо за блок.
Правда в работе есть некоторые нюансы. Когда в проекте один блок, то он работает превосходно, а когда в проекте несколько блоков с разными номерами, то начинаются глюки. У меня в проекте пять блоков с номерами 0, 1, 2, 3, 4. В четырех блоках я использую часы и минуты, в пятом только минуты, а в первом третьем и пятом по одной булеве. Первый и пятый блоки с номерами 0 и 4 работают отлично, а вот 2-4 блоки с номерами 1, 2, 3 - не читаются часы и минуты, только булевы.
Сегодня вечером буду продолжать экспериментировать - создам генератор со счетчиком и обнулением, и буду периодически сохранять показания счетчика в разные ячейки памяти и сразу читать эти ячейки. После отпишусь.

Отправлено спустя 4 минуты 41 секунду:
Эх, если бы можно было создавать блоки на языке Ардуино (в СИ я немножко ноль). :smile37:

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Работа блоков EEPROM с внешней микросхемой.

#10

Сообщение Sancho » 06.12.2018{, 17:13}

zvukache, Пришлите Ваш проект - можете в личку.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

zvukache
Рядовой
Сообщения: 8
Зарегистрирован: 14.11.2018{, 22:40}
Репутация: 0
Имя: Вячеслав

Работа блоков EEPROM с внешней микросхемой.

#11

Сообщение zvukache » 06.12.2018{, 23:04}

Как я уже писал, проект состоит из трех таймеров:
1) Утренний (работает по времени);
2) Вечерний (работает по времени);
3) Дневной (настраивается автоматически между утренним и вечерним и работает в зависимости от интенсивности наружного освещения).
Порог интенсивности освещения можно вводить вручную, или запоминать текущие показатели нажатием отдельной кнопки.
В цепь управления реле добавлены временные задержки для предотвращения ложных срабатываний от кратковременного затемнения, или засвета фоторезистора.
Запись в память происходит только в момент выхода из меню настройки времени таймеров.
Считывание сначала делал по импульсу при включении МК (через 5 секунд), или сразу после записи, но потом отказался и сделал постоянное считывание.
Timer for rassada++.flp
Проект подсветки для рассады.
(1.48 МБ) 79 скачиваний

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Работа блоков EEPROM с внешней микросхемой.

#12

Сообщение Sancho » 07.12.2018{, 10:09}

zvukache,
1. Я правильно понял - bool блоке времени отвечает за задействовать таймер или нет?
2. Измените логику работы меню - выбирайте таймер, номер его подавайте на блок записи.....
3. Дневной режим, если активирован, работает только по уровню освещённости или как?

Отправлено спустя 54 минуты 49 секунд:
Отключить внешнюю память в проекте!!!!!!!!!!
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

zvukache
Рядовой
Сообщения: 8
Зарегистрирован: 14.11.2018{, 22:40}
Репутация: 0
Имя: Вячеслав

Работа блоков EEPROM с внешней микросхемой.

#13

Сообщение zvukache » 07.12.2018{, 12:59}

1. Да.
3. Да. Работать должно только если очень пасмурно.
Отключить внешнюю память. Ясно. Попробую - отпишусь.

Аватара пользователя
leons
Сержант
Сообщения: 141
Зарегистрирован: 18.06.2017{, 17:07}
Репутация: 3

Работа блоков EEPROM с внешней микросхемой.

#14

Сообщение leons » 08.12.2018{, 20:07}

вам видно что она подключена правильно а нам нет можно глянуть схему

Ответить

Вернуться в «Штатные блоки»