Скомпилировал по просьбам прошивки для PIC16F870, PIC16F873, PIC16F876. У 870 занято 73%, в дальнейшем может прошивка не влезать. Все в первом сообщении.
Вид для печати
Скомпилировал по просьбам прошивки для PIC16F870, PIC16F873, PIC16F876. У 870 занято 73%, в дальнейшем может прошивка не влезать. Все в первом сообщении.
Ларису Ивановнухочу...прошивку под PIC16F876A :v2_dizzy_help:
Любой, из перечисленных в первом сообщении, исходя из соображений доступности в местном ларьке. Единственная разница - в железе я не проверял ничего кроме 16F73. Ждем отзывов от тех, кто возможно соберет на других МК. Но проблемы быть не должно, а если вдруг и будут, то думаю что без особого труда можно будет пофиксить.
Я когда начинал его делать исходил из соображений дешевизны. Сначала я вообще хотел взять за основу PIC16F819 dip18, тем более что он у меня уже был. Но, не хватило ног. Точнее, если без внешнего кварца - хватало в притык для светодиодов (без UART), но меня смутила частота внутренняя 8MHz - по моим прикидкам было маловато для необходимой частоты рефреша, мог не успевать. Поэтому взял самое дешевое с 28 ногами - PIC16F73 даже в нашем бутике шип и дип стоит 100 руб. Можно даже еще дешевле, взять из серии 16C что-то 28-пиновое, они вообще по ~40 руб, но они однократно-программируемые и для отладки мне точно не подошли бы.
Даже больше скажу - в принципе, можно любой PIC, с числом выводов не меньше 28, памяти не меньше 128 байт и памяти программ EEPROM не меньше 4К слов, хардварным UART и сам камень могущий работать на 20 MHz. Более там ничего из периферии не используется вроде.
Какой-то глюк у меня был - при приеме символов из UART, я принимал какой-то мусор всегда, не зависимо от того, что я передаю в UART. Поборолось пулл-апом в 300 ом на RX пин контроллера. Не знаю - то ли в шнурке дело, то ли какую хитрую инициализацию забыл, то ли так и надо.. Шнурок UART у меня вообще из сименовского COM-кабеля для древних телефонов сименс, но вроде с ним раньше всякие роутеры/жесткие диски/девборды нормально работали. Хз короче, причину не понял, но устранил.
В связи с этим набросал небольшое подобие CLI, распарсиваются команды, аргументы, обрабатываются бекспейс, и др. управляющие клавиши. Памяти программ в 16f73 стало меньше (занято 77%)
http://habrastorage.org/files/310/3c...828d9e92a9.png
Дальше в планах сделать тест 1mbit ных микросхем, которые DIP-20, типа 82C4256, 324256. Панельки такой нету, а специально ехать за ней влом. Ну и допилить наконец всякие режимы тестирования, задаваемые параметры рефреша и выбора типа микросхем из CLI.
Вообщем, как и ожидалось с самого начала, CCS C - такой же бейсик как и Mikro C, то есть мурзилочный язык программирования. Конечно привлекает тем, что не надо вкуривать даташит на контроллер от и до, а достаточно пролистать по диагонали. Я думал, что для простой задачи сойдет. Но - шаг в сторону и все. В частности указатели на функции в структурах. Просто тупо компилятор виснет, даже с созданными своими типами данных и другими обходными путями. Из-за этого обработка CLI превращается в быдлокодинг. Можно конечно и забить, ибо работает и так, но красивей все-таки переписать на XC 8. С другой стороны тогда потеряется некая мнимая кросс-платформенность, то есть простая перекомпиляция для различных PIC. Не знаю...
А 4х-битные ДОЗУ добавишь? Например такие: M514256B (4х256кбит) или GM71C4403CJ (4х1024кбит) и их аналоги. Тож в 20-ногих корпусах. Их богато бывает на модулях SIM.
---------- Post added at 21:46 ---------- Previous post was at 21:41 ----------
А конструктивно, прям бы на плате тестера параллельно панельке ОЗУ иметь доп.разъем и проверять целый модуль SIM - выбирать какие биты из него тестировать механическим или электронным коммутатором.
Не пробовал, ибо первый раз слышу. Щаз бегло глянул:
1) слишком избыточно (поддержка VT-100, автозаполнение и тд). Понимаю, что отключается кое чего, но все равно для маленького PIC слишком. А 16f73 маленький в плане памяти для прошивки.
2) Вот с этим в CCS C однозначно будут проблемы:
И тд...Код:// microrl struct, contain internal library data
typedef struct {
#ifdef _USE_ESC_SEQ
char escape_seq;
char escape;
#endif
#if (defined(_ENDL_CRLF) || defined(_ENDL_LFCR))
char tmpch;
#endif
#ifdef _USE_HISTORY
ring_history_t ring_hist; // history object
#endif
char * prompt_str; // pointer to prompt string
char cmdline [_COMMAND_LINE_LEN]; // cmdline buffer
int cmdlen; // last position in command line
int cursor; // input cursor
int (*execute) (int argc, const char * const * argv ); // ptr to 'execute' callback
char ** (*get_completion) (int argc, const char * const * argv ); // ptr to 'completion' callback
void (*print) (const char *); // ptr to 'print' callback
#ifdef _USE_CTLR_C
void (*sigint) (void);
#endif
} microrl_t;
---------- Post added at 21:55 ---------- Previous post was at 21:53 ----------
Дада, есть в планах. Встречный вопрос - а бывают такие микрухи битыми? Кто хоть раз видел?
А может кто-то платку одностороннюю " под ютуг" развести?.
Вот платка, проверяйте
Собрал на pic16f876a, все работает. хотелось бы прошивку под pic16f873а
Mrpin, спасибо за печатку.на выходных попробую залутить .проблема будет только пик прошить - раньше сними не особо имел дело.но как раз есть pic16f876a лишний
Добрый вечер.
Пробую шить 16f73, программатор пишет, что не найдена конфигурация в hex-файле. Подскажите пожалуйста, она там вообще есть, и как выставлять биты. И еще, какая скорость COM-порта, остальное 8N1?
Спасибо.
Vasily, что за прогер ? Небось какой нибудь экстрапук или того хуже ЖДМ и оболочка icprog ? :)))))))
Такой хренью только пЫки палить ...
Китайский G540. Вроде память, Atmel нормально шьёт.
Конфигурация там (в hex-файле) есть. Но если программатор тупой, можно самому выставить биты, в частности:
Скорость com-порта 9600 8N1, но туда пока мало что выводится.. Скорее больше развлечение, нежели реальная необходимость.PHP код:#FUSES NOWDT //No Watch Dog Timer
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOPUT
#FUSES NOPROTECT
Tronix, а кварц ? Конфиг генератора ...
20MHz, High Speed
---------- Post added at 11:37 ---------- Previous post was at 09:48 ----------
Выложил исходники, как есть (*****кодес). Нормальная обработка CLI команд уже не лезет в прошивку, поэтому UART скорее остается только для вывода отладочной информации, CLI можно вообще выпилить, или придумать формат покомпактнее, убрать длинные сообщения, сделать команды просто буквами D (dump), S (start) и тд.
Достал с полки willem, аккуратно сдул пыль. Подключил PIC через ISP, биты конфигурации определились нормально, правда все-равно ругается на ошибку контрольной суммы. Но в целом заработал, при включении мигает 4 раза светодиодами и приступает к тестированию. Как правильно тестировать память? Вставили в панельку память, включили питание - дождались зеленого светодиода, выключили питание, вставили следующую?
Спасибо.
Да, CCS C дописывает в конец hex-файла строку видакоторая виляму не нравится. Если ее просто удалить из hex-файла, то ругаться перестанет. У меня то же самое. В то же время IC-prog программа работает нормально с вилямом и с этими hex. В целом, да, можно игнорировать эту ошибку просто.Код:;CRC=81AC CREATED="23-ноя-14 11:26"
Полный цикл теста: 1) зеленый выключен (в память пишутся тестовые значения) - 2) зеленый включен (из памяти читаются данные и сверяются с тестовыми значениями). Дальше по новой (выключен, включен и тд) Если в это время красный не зажегся, то память нормальная.
Да, спасибо за тестер, попробовал потестить чипы - заработало как нужно.
Подкину пару идеек на усмотрение:
добавить кнопку старт/стоп тест,
в питание памяти mosfet(когда тест не бежит-снимаем питание с памяти, нет необходимости отключать питание целиком),
вместо UART подцепить 1602 по I2C lcd - по ногам тоже самое.
Тема приобрела вполне законченный вид, поехали в раздел "Память".
Достались по случаю интересные микросхемы, КР565РУ5 с пометкой - "спецотбор Т=100нс"
Вроде самые быстрые отечественные микросхемы памяти КР565РУ5Б имеют время выборки 120нс, а самые быстрые КР565РУ7В - 150нс.
Как и чем можно проверить время выборки этих микросхем?
Универсальные профессиональные стенды ОЗУ чудовищно дороги, даже б/у. Реально проверить тайминги можно только на самодельной схеме контроллера ДОЗУ - подбирая кварчик. К такому устройству необходим внешний управляющий комп - например, порт LPT ИБМ ЭВМ. Софт пишется на подходящем языке высокого уровня, например - Кубасик :cool:
*
Предполагаю, 100 нс чипы - это из партии для вояк - когда эксперементировали с травлением областей пластины. Припоминаю, были даже "А" - 80 нс , в конце 1980-х. Их хотели ставить в поделки типа "Хромкерамика" - но это вести с головного предприятия были, я особо не в курсах.
http://storage7.static.itmages.ru/i/...f3d7c97204.pnghttp://storage5.static.itmages.ru/i/...e7127ad208.png
На фото вообще то гражданские КН565РУ5Д, тут Тras=100нс и не пахнет.
А вот "спецотбор" на Т=100, думаю и есть "А", которые серийно не производились а отбирались, поэтому и в справочниках РУ5 начинаются с "Б", причем маркировка КР565РУ5 (без точек) - это именно "Б", хотя многие конторы путают и пишут что это "А", и соответственно одна точка - "В", две точки - "Г", три точки - "Д" и четыре точки - "Е"
А нельзя ли как нибудь проверить ру5 используя спектрум, установив их на панельки? Есть ли какие нибудь тесты памяти под спектрум, позволяющие определить T_RAS и T_CAS? Может есть какие нибудь другие способы.
на фото что это такое? процессор? или вообще процессорная плата в сборе? и какой архитектуры эта поделка?
а в центре 1806ВМ2.
жаль что такая железка не пошла в серию.
но судя по маркировке на ОЗУ КН должна быть гражданская железка.
по вот почему другие ИС без какой либо маркировки
"Нарисовать" свой стресс-тестер с двумя счетчиками типа ие7, переставляемым кварцем и м/к (чтоб огород в виде XOR схемы сравнения на мелочёвке не городить). Для 100нс ставим кварц на 10МГц (для больших еще и делитель до 10 предусмотреть), включаем и гоняем пока сизый не пойдёт ;)
Проще собрать схему однобитного ревера (например, "Радио" N 1 - 86, стр.47 хотя я встречал и попроще). Там как раз ДРАМ в режиме RMW используется. И оценить качество работы можно будет. Вот этот я собирал.