В итоге смог прочититать / записать мою память, а так же её клон - 24c64 неизвестно чьего производства. Большое спасибо dosikus'у за распиновку, долго бы я так наверное тупил. В WinHEX'е продолжаю феерически тупить - как правильно называется формат, в который надо конвертировать? Там несколько hex образных форматов, но выходной код не очень похож на коды прошивок, читаемых из eeprom
Числа. Просто числа От 0 до 255. Это двумерный массив RGB цветов. Сейчас выглядит вот так (см. первый прикрепленный файл rgbarray.h). Понимаю что так прошить не выйдет, поэтому могу сгенерировать *.txt файл с большим одномерным массивом типа такого - см. в testarray.txt, только, соответственно, в полную длину. Пробелы между числами могу убрать, могу так же вместо них проставить какие-нибудь спец. символы (генерирую все это через Visual Studio c++, вывожу через fstream). Так же все числа есть в excel файлике, но от этого толку совсем мало, думается мне. Вот как то так. Что посоветуете делать?
Вложения:
Комментарий к файлу: Вариант txt представления в виде одномерного массива testarray.txt [195 байт]
Скачиваний: 204
Комментарий к файлу: Изначальный массив rgbarray.h [6.16 KiB]
Скачиваний: 570
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 адрес последнего байта!
Открыта удобная площадка с выгодными ценами, поставляющая весь ассортимент продукции, производимой компанией MEAN WELL – от завоевавших популярность и известных на рынке изделий до новинок. MEAN WELL.Market предоставляет гарантийную и сервисную поддержку, удобный подбор продукции, оперативную доставку по России.
На сайте интернет-магазина посетители смогут найти обзоры, интересные статьи о применении, максимальный объем технических сведений.
По началу тоже так показалось, но все было сделано за 5 минут, hex файл успешно сделал, не менее успешно зашил его в память
Цитата:
RGBRGBRGB... если в первой колонке R, во второй G, в третьей B
А вот такая организация вообще для меня идеальна. Теперь мне достаточно проделать только одно вычесление, что бы правильно адресоваться:
Код:
addr=str+(str*2);
И дальше считать сразу 3 байта. Это, конечно, при условии, что массив начинается с 0x00. В другом случае можно просто добавить смещение. Таким образом, у меня отпадает необходимость в организации какой то файловой системы, по крайней мере для этого блока данных (будут еще другие, о чем писал на 1 странице). В общем, спасибо всем за помощь, сажусь писать i2c
Продукция MOSO предназначена в основном для индустриальных приложений, использует инновационные решения на основе более 200 собственных патентов для силовой электроники и соответствует международным стандартам. LED-драйверы MOSO применяются в системах наружного освещения разных отраслей, включая промышленность, сельское хозяйство, транспорт и железную дорогу. В ряде серий реализована возможность дистанционного контроля и программирования работы по заданному сценарию. Разберем решения MOSO
подробнее>>
Albert_V
Заголовок сообщения: Re: Вопрос по EEPROM фирмы Microchip
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!
У нас несколько разный подход. Я для себя нарисовал такую шпаргалку, и по ней могу писать эффекты на ходу, адресуюясь к нужным участкам по номерам строк массива. В вашем же подходе во главе угла стоит сам эффект. Чем то напоминает разницу между процедурно-ориентированным и объектно-ориентированным программированием. Возможно, ваш подход действительно лучше, но вот заново писать код уж очень не хочется
Заголовок сообщения: Re: Вопрос по EEPROM фирмы Microchip
Добавлено: Пт апр 10, 2015 06:37:53
Родился
Зарегистрирован: Чт мар 05, 2015 11:26:37 Сообщений: 5
Рейтинг сообщения:0
manjey писал(а):
У меня вот такой адаптерик собран под 24СХХ сопроты 10к
Спасибо, что поделились адптерком очень пригодиться. Скажите есть ли какая нибудь разница в памяти 24lc256 и 24c256? Я первый раз буду шить данный чип программатором pickit2, заказал из Китая. Посмотрел в программе PICkit 2 Programmer там только есть 24lc256, прошьет ли данный программатор через вашу панельку память 24с256? если я правильно понимаю, то программа должна сама определить тип чипа при чтении?
я правильно понимаю, то программа должна сама определить тип чипа при чтении?
Я выбирал вручную
Цитата:
Скажите есть ли какая нибудь разница в памяти 24lc256 и 24c256?
Насколько помню, у Microchip они либо AA, либо LC. Вся разница там в диапазоне напряжения питания. У вас скорее всего аналог от другого производителя. По идее, все должно прошиться (по крайней мере у меня с аналогом проблем не возникало).
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения