... Всего-то подготовительная фаза к "выносным" индикационно-обрабатывающим "сомикроконтроллерам"... Правда там до комплекта еще кой-чего дособирать надо, но без излишних денюжкиных расходов и фанатизьму.
Продолжение жабодавной модернизации... Претерпели изменения схемки платок mcs51 и AVR40 - добавлен новый разъём и изменен бывший на линиях RxD/TxD на 14-ти контактный: архив shems Mcs52.spl7, AVR40.spl7 модуль на ПИКе претерпел вообще кардинальну переразборку : архив shems pic876a.spl7 отныне его назначение - периферийная "голова"... Соответственно добавились платки - расширители, аж три варианта: на одной из них установлены EEPROM 24C512 и датчик температуры/влажности DHT11 - архив shems expans_c.spl7 http://img.radiokot.ru/files/20529/i1yvkiykk.jpg ; вторая транзит с предустановленной панелькой под 2*24С512 - она же простое подключение кабеля с DS18B20 с подтягивающим резистором на линии данных ( если нету EEPROMок в панельке) - архив shems expans_d.spl7 и третья - "хитрый транзит" для светодиодных матриц с регфайлами и анодными ключами плюс коммуникационный транзит - архив shems expans_E.spl7 . Добавился в комплект кабло с датчиком DS18B20 на одном из концов архив shems ds18b20_wire.spl7 и фотки кабла http://img.radiokot.ru/files/20529/i1yvpkie4.jpg http://img.radiokot.ru/files/20529/i1yvqphaf.jpg. Причем предусматривается как непосредственное прямое подключение к выводам МК, так и подключение через ранее созданный адаптер (архив shems uLAN adapter.spl7). Добавились в комплект две ранее использовавшихся для отработки рекламных мигалок платки под 20-лапки для AT89C2051 архив shems flow_x8_2.jpeg http://img.radiokot.ru/files/20529/i1z4iz1a1.jpg и для ATtiny2313 архив shems tn2313.spl7 http://img.radiokot.ru/files/20529/i1z4jnj72.jpg они же предусматривают подключение регистрового файла как непосредственно, так и через комплекс переходников. Добавился простейший символьный 7-сегментный дисплейчик на 4 знакоместа архив shems testled_4x8.spl7 http://img.radiokot.ru/files/20529/i1z6sptqc.jpg . Также "на готове" схемка "удаленного" оптосимисторного ключика архив shems ключ_одиночный.jpeg. Вроде теперь можно и с программками побаловаться… собственно архивчик
В результате некоторой ленивой деятельности появилась видоизмененная схемка для макета с AT89S52(C52), оснащенная деморежимом присмотра текущей влажности и температуры с пристегнутой платки с датчиком DHT-11.
Вот так ноне выглядит сие устройство в сборе: http://img.radiokot.ru/files/20529/il5b9fo1r.jpg И переходник с DHT-11 с дополнительным джамперком поближе: http://img.radiokot.ru/files/20529/il5ba7ozk.jpg Температуру показывает в соответствии с ртутным термометром, насчет влажности – сложнее, нету с чем сравнить… Изменения претерпели и платки адаптеров (expans_C.lay и expans_d.lay в архиве – устранены ошибки). На платке расширения expsns_C появилась еще одна перемычка-джампер для подключения к свободному разъёму микроLAN адаптера с DS18B20 (на тот же разъём намечается и переходник связного адаптера – мож удастся сделать так, чтоб «не подрались»). Апетитус приходит с потреблением – попробую приладить внешний выносной датчик для совместного использования вместе с DHT-11. Ну и кой-чего дополнительного в режиме регулятора намутить. В последней версии программы t9.asm (
в архивчике в папочке «откомпилено» скомпилированные прошивки t9.bin и t9.hex – бинарный образ ПЗУ и интел HEX варианты) устранены некоторые «очепятки» и «сокрытие» окна менюшки календаря при «правой» прокрутке меню, хотя с другой стороны… та ошибка дает возможность ставить разные наборы «окон» на левую и правую прокрутки. Вобщем… пока устройство в стадии умысливания дальнейшего развития… Из ПЗУ захавано 6234 байта из 8192 возможных – в остатке еще 1958 байт, да и усушка/утруска пока особо не проводилась.
В процессе ленивых размышлений на тему «какую-бы пакость ещё удумать» для усложнения жисти программиста всплыла идея размещения части массива данных во внешнем EEPROM... Одначе туточки сразу повылазило некоторое количество «колючек». Допустим имеется два исходных текста: основной программы и области массивов
в которых обязательно повсплывают «перекрёстные ссылки»... Подставлять их вручную есть нерационально, тем более, что компилятор IDE может просто «далеко послать» такой исходник с заранее не определенными метками. Да и режим работы с внешней памятью данных в некоторых пределах поддерживают только компиляторы mcs51 (область XRAM/XSEG)… Создавать подобие DOS для применения в отношении 64-128 килобайт на основе 24С512 тоже вроде как-то некошерно... Вобщем пока стадия раздумий … а как бы сие приладить..??.. Мож кто-нибудь какую мыслю подкинет..?
В некоторых к.а. с *51-ым процессором доп."массивы данных" находятся в пзу-шках типа 24c** то есть в последовательных. Такой вариант подойдёт для проекта ?
_________________ < виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
Надысь попалась плата от к.а. с "двумями" 51-ыми .. "Атмельскими".. У йих тама "разделение труда" наблюдалося...
Так что несколько 51-ых , объединённых однопроводным ,"моноканалом" так сказать, вполне себе "уживутся" вместе (IMHO).
_________________ < виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
То вариант "сетки", а здесь внешнее EEPROM данных. Т. е. исходная программа разделена на две части - одна собственно исполнимый код и размещена в целевом МК, а другая-таблицы векторов, строки данных и управляющих байтовых комбинаций, селекторных табличек, подтягиваемых по мере выполнения основной программы из внешней EEPROMки (притом, что ранее все те данные нерационально пожирали 2/3 ПЗУ проекта). И ещё... речь идет не о внутреннем EEPROM или расширенном ОЗУ данных, учитываемом во всех компиляторах, а именно о разделенном на две области физического размещения тексте одной программы с "параллельным" исполнением обеих фрагментов (не путать с секционированным ПЗУ одного исходника при последовательном исполнении каждой секции - как пример две пзушки 16 килобайт для программы с объёмом 32 кило - то для компилятора единая область CSEG/CODE, независимо внешним ПЗУ представлена или внутренним - лишь бы "перекрытия адресов" не случилось)... Хоша есть случаи разделяемого ОЗУ/ПЗУ программ-данных, но такая версия только для 51-й и в данный момент интереса не представляет - узкоспециализировано только для MCS51... А в моей задачке - внешний накопитель/источник не только данных, но и значений управляющих векторов для вычисляемых /программных переходов. О программном коде пока речь не идет, хоша тоже возможный случай (ежли иметь встроенный интерпритатор псевдокода и надлежащее быстродействие по перезагрузке сегментов исполнимого кода (подобие файла рисунка в http://radiokot.ru/cherdak/03/ , только "внешнего")... но... пока получить бы простую и относительно универсальную методу по подстановке значений ... да и сам бинарник для 24-й EEPROMки также скомпилить надобно (под "съедаемость" для icprog/winpic800)... Но там попроще - c51asm.exe с такой задачей спокохонько управляется, ежли все переменные в дополнительном дефайне указаны. Причем независимо к какому семейству потом полученную EEPROMку приладить понадобится. Возможно... создание условной сетки "сегментов" - условной опорной разметки массива EEPROM для последующей подстановки дефайном в целевой исходник, а затем обратный вариант для исходника массива... Но то задача весьма "трахотливая" и выполнима только в ручном режиме. Вот и гадаю... может я чего-то в работе компиляторов упустил, и желаемый эфект может быть получен более простым способом?
пока тестируется с дисплейчиком от касячего аппарата на тему "когда высадит акумулятор"...
В ходе копания с асмом выползло немного вопросов по теме "переназначение имен" для регистров РПД у ПИКушек и аналогичного головноболезного для предопределенных регистров у mcs51/avr. Чего получилось в "попытке трактовать "святое писание"" прицеплено тут:
не факт, что "абсолютно верно" - ежли кому чего возразить/добавить будет с удовольствием почитаю - просто где ни смотрел, подходящего материала так и не усмотрел (может смотрел не все и не так внимательно?)
Вроде как стабильно работает и от акумулятора, пока буду пытать на устойчивость. Обработчик ошибок предусмотрен, но недописан - в тесте пока не требуется. В исходнике интересно прописаный файл присвоения имен... Прицел на удаленную управляющую системку, пристежкой к базовому блочку на (пока) AT89S52...
Вот фотка того тест-термометра в собранно-смотанном виде: http://img.radiokot.ru/files/20529/kjmicvkxi.jpg дисплейчик держал изображение (сохранял контраст сегментов) в диапазоне питания схемки от 5 до 3,0 вольт.
В результате теоретических разборок с алгоритмами формирования CRC по просмотру файлика mlan_3a.txt обнаружена досадная ошибка (в дэмоверсии проекта pic16f676prj я контроль ответа датчика и контроль CRC не задействовал - вот и проскочило). Добавлен один промежуточный регистр m_tmp в def_uim.txt файл (указано в шапке) и некоторое отличие в части текста mlan_3a.txt от метки l_crc2.
Добавлена защита при "обрыве" (отсутствие ответа датчика при запросе), при КЗ выхода (постоянный 0 на линии данных датчика) и включен контроль CRC. На практике проверил обрыв/КЗ, ошибочное CRC симулятором не гонял - если б появилось, то в реале на макете мгновенная блокировка с соответствующим отображением имела бы место... НО не проверено практикой... пока работает...на прокрутку в симуляторе терпения не хватило... Ну и соответственно в схему добавился "волшебный джампер" для снятия блокировки после устранения аварийных условий (схемка в архиве с исходниками). Исходник не оптимизирован, несколько "перемешан" - возможно далее при развитии задач поутрушу.
Кстати... Схемка - не догма, индикатор на ЖКИ просто более экономичен, на светодиодном пару недель от акума с мобилки явно не проработает. Но... кому чего удобнее и "ближе к лапам":
там некоторые коррективы относительно самого модуля обслуживания дисплея и знакогенератора с перераспределением буфера вывода переписать надо... И отдельно разговор о "полном имитаторе" ЖКИ на светиках - это самостоятельная конструкция.
Размер сегментов дисплея не ограничен. Минимальная конфигурация 4 позиции. Номинальная 4 строки по 8 позиций (несколько измененная схема с регистровым файл-расширителем). Максимум ... на сколько интереса будет - светики тоже не дешовое удовольствие. Для начала очередная цель прицепить туды канал связи и сцепить с компом и/или тем индикативным термометром на пичке или внешней мордой на базовом блоке...
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения