Вопрос по EEPROM фирмы Microchip

Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 157
Зарегистрирован: Вс дек 08, 2013 14:57:33
Откуда: Россия, Иваново

Сообщение 4elovek37 »

У меня вот такой адаптерик собран под 24СХХ
К моменту, когда прочел, уже спаял свою. Сделал что бы можно было прошить память, а потом сразу дать работать с ней МК (второй слот)
Изображение
В гугле и не нашёл
Эх, не там я гуглил :?
http://yandex.ru/yandsearch?lr=5&oprnd= ... 2%20eeprom

В итоге смог прочититать / записать мою память, а так же её клон - 24c64 неизвестно чьего производства. Большое спасибо dosikus'у за распиновку, долго бы я так наверное тупил.
В WinHEX'е продолжаю феерически тупить - как правильно называется формат, в который надо конвертировать? Там несколько hex образных форматов, но выходной код не очень похож на коды прошивок, читаемых из eeprom
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

4elovek37 , winhex тебе здесь не поможет, точней ты запутаешься.
Сначала покажи что за файл льешь.
Реклама
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 157
Зарегистрирован: Вс дек 08, 2013 14:57:33
Откуда: Россия, Иваново

Сообщение 4elovek37 »

Числа. Просто числа :) От 0 до 255. Это двумерный массив RGB цветов. Сейчас выглядит вот так (см. первый прикрепленный файл rgbarray.h). Понимаю что так прошить не выйдет, поэтому могу сгенерировать *.txt файл с большим одномерным массивом типа такого - см. в testarray.txt, только, соответственно, в полную длину. Пробелы между числами могу убрать, могу так же вместо них проставить какие-нибудь спец. символы (генерирую все это через Visual Studio c++, вывожу через fstream). Так же все числа есть в excel файлике, но от этого толку совсем мало, думается мне. Вот как то так. Что посоветуете делать?
Вложения
testarray.txt
Вариант txt представления в виде одномерного массива
(195 байт) 212 скачиваний
rgbarray.h
Изначальный массив
(6.16 КБ) 575 скачиваний
Друг Кота
Аватара пользователя
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

Сообщение Albert_V »

4elovek37, можно сделать так ("слегка" через ...., но точно получится):
"На выходе" получите файл для программатора с данными "построчно" (RGBRGBRGB... если в первой колонке R, во второй G, в третьей B)!!!
1. В Excel-е делаете преобразование данных из DEC в HEX (функция =ДЕС.В.ШЕСТН(ячейка;2) или =DEC2HEX(ячейка;2) в зависимости от "языка" Excel) в отдельные ТРИ колонки (подряд!!!).
2. Выделяете все данные в трёх колонках (HEX), копируете в "блокнот" и сохраняете без изменений в файл *.txt (ANSI)
3. Открываете этот файл в WinHex.
4. Выделяете все данные (Ctrl+A)
5. Edit > Convert Block > Hex ASCII -> Binary
6. Если программатор поддерживает файлы *.bin - сохраняете файл с расширением *.bin.
Если нет и нужно перевести в *.hex:
Выделяете все данные и далее Edit > Convert Block > Binary -> Intel Hex и сохраняете файл с расширением *.hex.
Не забудьте посмотреть в WinHex адрес последнего байта!
Реклама
Эиком - электронные компоненты и радиодетали
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 157
Зарегистрирован: Вс дек 08, 2013 14:57:33
Откуда: Россия, Иваново

Сообщение 4elovek37 »

"слегка" через ....
По началу тоже так показалось, но все было сделано за 5 минут, hex файл успешно сделал, не менее успешно зашил его в память :)
RGBRGBRGB... если в первой колонке R, во второй G, в третьей B
А вот такая организация вообще для меня идеальна. Теперь мне достаточно проделать только одно вычесление, что бы правильно адресоваться:

Код: Выделить всё

addr=str+(str*2);
И дальше считать сразу 3 байта.
Это, конечно, при условии, что массив начинается с 0x00. В другом случае можно просто добавить смещение.
Таким образом, у меня отпадает необходимость в организации какой то файловой системы, по крайней мере для этого блока данных (будут еще другие, о чем писал на 1 странице).
В общем, спасибо всем за помощь, сажусь писать i2c :))
Реклама
Друг Кота
Аватара пользователя
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

Сообщение Albert_V »

4elovek37, в качестве идеи....
[по тексту "эффект" = массив данных одной последовательности изменений яркости светодиодов]
На мой взгляд, отличить яркость светодиода 255 от 254 практически невозможно. Если согласны, можно "зарезервировать" число 255 (первое в "тройке байт" + два байта со значениями, к примеру, номер эффекта, скорость/время "шага") как признак начала данных эффекта. Если данные эффекта начинаются с 255, 255, 255 - "предыдущий эффект был последним".
В таком случае не нужно будет каждый раз после записи эффектов в EEPROM вносить изменения в программу (указывать адреса эффектов "вручную").
При старте программы "прошерстить" данные и запомнить адреса и количество эффектов - не проблема. А может быть, это и в "real-time" будет проще делать...
---------------
Что касается подготовки файла для записи нескольких эффектов:
1. Для каждого эффекта подготавливаете свой *.bin (!!!) файл.
2. В WinHex открываете *.bin файлы всех эффектов.
3. Переходите на файл второго эффекта, выделяете все данные и копируете в буфер обмена.
4. Переходите на файл первого эффекта (это будет файл "сборки эффектов") и, сняв выделение блока данных (если надо, (Esc)), переходите на последний байт (Ctrl+End).
5. Нажимаете Ctrl+V. Появится вопрос (перевод мой): "Вы хотите вставить данные из буфера обмена в конец файла (после адреса ххххх)?"
6. Отвечаете "Yes". Появится предупреждение: "Данные из буфера обмена будут размещены с адреса ххххх. Размер файла увеличится".
7. Если нужно, записываете этот адрес как адрес первого байта добавляемого эффекта!!!
8. Отвечаете "OK".
9. При необходимости, аналогично добавляете данные других эффектов. Если надо, записываете адрес последнего байта и, на всякий случай, сохраняете файл как *.bin.
10. Выделяете все данные и далее Edit > Convert Block > Binary -> Intel Hex и сохраняете файл с расширением *.hex.
---------------
Это, конечно, при условии, что массив начинается с 0x00
Если специально не добавите "лишние" данные - первый массив всегда будет начинаться с адреса 0000h.
---------------
P.S.
Извиняюсь. В предыдущем посте я не совсем корректно сказал про адрес последнего байта.

Правильно: Не забудьте посмотреть в WinHex адрес последнего байта до Edit > Convert Block > Binary -> Intel Hex!
Реклама
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 157
Зарегистрирован: Вс дек 08, 2013 14:57:33
Откуда: Россия, Иваново

Сообщение 4elovek37 »

У нас несколько разный подход. Я для себя нарисовал такую шпаргалку, и по ней могу писать эффекты на ходу, адресуюясь к нужным участкам по номерам строк массива.
Изображение
В вашем же подходе во главе угла стоит сам эффект. Чем то напоминает разницу между процедурно-ориентированным и объектно-ориентированным программированием.
Возможно, ваш подход действительно лучше, но вот заново писать код уж очень не хочется :)
Родился
Сообщения: 5
Зарегистрирован: Чт мар 05, 2015 11:26:37

Сообщение a.kostyukov »

manjey писал(а):Изображение

У меня вот такой адаптерик собран под 24СХХ
сопроты 10к
Спасибо, что поделились адптерком :) очень пригодиться. Скажите есть ли какая нибудь разница в памяти 24lc256 и 24c256? Я первый раз буду шить данный чип программатором pickit2, заказал из Китая. Посмотрел в программе PICkit 2 Programmer там только есть 24lc256, прошьет ли данный программатор через вашу панельку память 24с256? если я правильно понимаю, то программа должна сама определить тип чипа при чтении?
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 157
Зарегистрирован: Вс дек 08, 2013 14:57:33
Откуда: Россия, Иваново

Сообщение 4elovek37 »

я правильно понимаю, то программа должна сама определить тип чипа при чтении?
Я выбирал вручную
Скажите есть ли какая нибудь разница в памяти 24lc256 и 24c256?
Насколько помню, у Microchip они либо AA, либо LC. Вся разница там в диапазоне напряжения питания. У вас скорее всего аналог от другого производителя. По идее, все должно прошиться (по крайней мере у меня с аналогом проблем не возникало).
Ответить

Вернуться в «PIC»