
Фотография mk61avr комплекса vitasam на "бредовой доске"
Решение хранить во внутреннем EEPROM AVR программы МК61, конечно самое простое, но хочется что бы порядок был во всем. Приятно когда память внешняя и ее может быть не один или два, а много. А еще хорошо когда что то кроме памяти можно зацепить.. А еще хорошо управлять чем то зацепленным к mk61avr... А еще.., а еще.. Вот так собственно мы и пришли к мнению, что лучшим из лучших, удобнейшим из удобнейших будет решение оснастить mk61avr внешней шиной стандарта I2C - мало того что это возможность подключить 127 устройств, семь из которых могут быть памятью EEPROM для хранения программ или памятью для хранения процедур mk61avr, но так же и возможность зацепить различные датчики I2C и любые устройства обладающие I2C интерфейсом. Так же было решено что I2C шина расширяет во вне адресное пространство виртуальной машины VM61 и дает возможность передавать исполнение на куски кода находящиеся не в стандартной странице mk61avr (в отличии от MK61, mk61avr поддерживает размер страницы 256 байт) и работать с EEPROM как с частью адресного пространства для mk61avr распространяющимся от 0..0xFFFFFFFF (базовая разрядность). Так же пришли к выводу что оснастить внешним EEPROM хотя бы в количестве одна штука для хранения программ было бы для базовой конфигурации вполне сносным решением, не сильно тяготящим карман, но и дающим возможность хранить более 2-4 стандартных программ.
Вот так чаяниями Vitasam и моим "кодингом" и "паянингом" платформа mk61avr обзавелась внешней шиной I2C и EEPROM 24LC32 хорошо известной фирмы Microchip.
Схема I2C встроенного "хранилища" программ.
Надо сказать что фирма Филипс очень хорошо позаботилась о логичности и понятности двух проводного синхронного интерфейса I2C. Разборки с ним, для меня еще не подходившему к данному протоколу, не составили большого труда.
P.S. Ну а внутренний EEPROM с подачи Vitasam теперь принято считать резервным хранилищем контекста (регистров,стеков и страницы кода из ОЗУ) mk61avr при выключении.
P.P.S. На комплексе Vitasam была проверена работа с внешним EEPROM 24LC128. В принципе до значения адреса FFFF внутреннего счетчика все EEPROM будут работать увеличивая кол-во страниц под программы - пропорционально размерной сетке.
24LC32 - 4Кб
24LC64 - 8Кб
24LC128 - 16Кб
24LC256 - 32Кб
24LC512 - 64Кб
единственный пока не вписывающийся EEPROM
24LC1025 - 128Кб
Если я не ошибся :), то разжился микрочиповскими 24LC128 в DIP корпусе, что удобно для экспериментов в "бредовой" доске
ОтветитьУдалитьНу отлично Виталий, впаивай и проверяй, точнее для "бредовой доски" вставляй :) и проверяй! Жду отчета от тебя по этим EEPROM.
ОтветитьУдалитьУдобная вещь - бредовая доска. Ставил память минут 5.
ОтветитьУдалитьВсе, работает! Отчет:
--- Ввел прогу ---
mk61avr [00. 00]>m00
00. 05
01. 0E
02. 06
03. 12
04. 50
05.
mk61avr [05. 00]>d
05 0E 06 12 50 00<00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
...
--- Сохранил в eeprom ---
mk61avr [05. 00]>f01
>>> Выключил и включил mk61avr <<<
--- Прочитал из eeprom ---
Прочитал из eeprom
mk61avr [00. 00]>i01
mk61avr [00. 05]>d
05<0E 06 12 50 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
...
--- Проверил работу ---
mk61avr [00. 05]>g00
mk61avr [05. 00]>x
30.0000000000
X=30.0000000000
mk61avr [05. 00]>
Спасибо Виталий! По идее у тебя 24LC128, это 16К, запись в последнюю страничку это f40. Попробуй как будет в предпоследнюю и последнюю странички. Разные программы если можно.
ОтветитьУдалитьДа, 16 Кбайт - во времена мк61 это казалось несбыточной мечтой :)
ОтветитьУдалитьЗапись в 39ю и 40ю странички работает.
Отчет:
--- Включил mk61avr, память чистая ---
mk61avr [00. 00]>d
00<00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
...
--- Загрузил предыдущую программу из eeprom ---
mk61avr [00. 00]>i01
mk61avr [00. 05]>d
05<0E 06 12 50 00 00 00 00 00 00 00 00 00 00 00
...
mk61avr [00. 05]>g00
mk61avr [05. 00]>x
30.0000000000
X=30.0000000000
--- Ввод новой программы ---
mk61avr [05. 00]>m00
00. 09
01. 02
02. 0E
03. 07
04. 12
05. 50
...
--- Сохранение в eeprom, страница 39 ---
mk61avr [06. 00]>f39
--- Ввод новой программы ---
mk61avr [00. 00]>m00
00. 01
01. 05
02. 05
03. 0E
04. 02
05. 07
06. 12
07. 50
--- Сохранение в eeprom, страница 40 ---
mk61avr [08. 00]>f40
>>> Момент истины. Выключаю mk61avr <<<
--- Загрузка и проверка программы из eeprom#01 ---
mk61avr [00. 00]>i01
mk61avr [00. 05]>g00
mk61avr [05. 00]>x
30.0000000000
X=30.0000000000
--- Загрузка и проверка программы из eeprom#39 ---
mk61avr [05. 00]>i39
mk61avr [05. 50]>g00
mk61avr [06. 00]>x
644.0000000000
X=644.0000000000
--- Загрузка и проверка программы из eeprom#40 ---
mk61avr [06. 00]>i40
mk61avr [06. 12]>g00
mk61avr [08. 00]>x
4185.0000000000
X=4185.0000000000
Спасибо Виталий!
ОтветитьУдалитьТормознул я - запись в предпоследнюю страничку будет f3F, а не f39 :)
ОтветитьУдалитьТочно так, вслед за тобой тормознул и я. Как с 3F? Пишет?
ОтветитьУдалитьДумаю, пишет, конечно же. Но проверить смогу недели через две только
ОтветитьУдалитьВ самом начале нашей основной и единственной деятельностью была эффективная юзабилити раскрутка сайтов. В настоящее время мы предлагаем полный пакет комплексного маркетинга, хотя продвижение оптимизации сайтов - Яндекс, Google, Rambler - остается нашим приоритетным видом деятельности Влияние юзабилити сайта на ранжирование в поисковых системах Эффективная раскрутка сайта подразумевает не только выведение на доминирующие позиции поисковых систем, но еще и сохранение завоеванных мест. Основу нашей компании составляет группа оптимизаторов с почти девятилетним опытом работ в сфере раскрутка оптимизации сайтов. За эти 9 лет приемы работы были отшлифованы нашими специалистами до мелочей. http://seo-miheeff.ru/vliyanie_usability_na_range.php
ОтветитьУдалить