Пользователь
0,0
рейтинг
1 января 2015 в 17:38

Специалист-экспресс

Вы помните свой первый компьютер? Я помню. Это был ZX совместимый ПК Спектр. Это было в 89 году. Не знаю точно, купил тогда его отец или поменял на что-то, но в доме появился ПК, и все началось. Именно на нем я написал свои первые программы и освоил Бейсик. Потом, когда я был в 7-9 классах, были еще ПК-01 Львов и Вектор 06Ц.

В 11 классе была попытка собрать Орион-128. После школы я уехал учиться в Томск, и все что успел сделать на тот момент — это просверлить отверстия и нарисовать краской дорожки. До травления платы так дело и не дошло. Уже в ВУЗе у меня появились PC совместимые ПК и старые компьютеры стали в общем то не нужными. Но затея собрать свой собственный ПК продолжала летать в воздухе почти 14 лет. Затею подогревал спор с отцом времен сборки Ориона. Видимо для мотивации меня на сборку, он говорил, что у меня не получится его собрать.

Осенью 2014 года, собирая очередную конструкцию на Arduino, задумался, а нельзя ли собрать на ней тот же Орион-128, ну или что попроще, Радио-86РК например. Обдумывая эту идею, решился воплотить давнюю школьную мечту — ПК, собранный своими силами. Сказано — будет сделано. Уверенности придали видеоролики Алексея Морозова по ремонту старых компьютеров и статьи на различных форумах посвященных ретро-ПК. На этих форумах сидели люди, которые постоянно собирали ретро ПК.

И я начал искать подходящую схему, без дефицитных деталей — в идеале, только мелкая логика, процессор и порт ввода-вывода. Сначала присматривался к ПК Ленинград, но не смог найти в городе Z80, а на заказ было долго ждать. В итоге остановился на схеме ПК Специалист-экспресс. Схема, я думаю, идеальна для новичка, так как содержит минимум деталей, и проста в сборке и наладке.

Очень качественная схема нашлась на сайте www.spetsialist-mx.ru, перерисовал ее человек с ником Fifan, за что ему огромное спасибо.

Следующий вопрос — делать печатную плату по ЛУТ технологии, или окунуться в прошлое, и собрать ее навесным монтажом, с использованием провода МГТФ, как это делало большинство любителей в 80е годы. Так как основная идея была именно собрать устройство, а не найти ему большое практическое применение, ввиду низкой производительности, то остановился на втором варианте.

Все детали для сборки обошлись примерно в 4000 тенге (около 1000 рублей). Все микросхемы решил сажать в панельки.



В первый день собрал тактовый генератор и счетчики. Пайка МГТФ-ом оказалась очень проста. Кто то пишет в интернете, что нужно чистить концы, я же просто откусывал провод кусачками, после чего наносил на кончик небольшое количество канифоли и грел паяльником с капелькой олова. Оплетка при этом сползала примерно на 0.5 мм, этого как раз достаточно, чтобы его припаять.

Руки чесались подать питание, и убедиться, что генератор и счетчики работают. Но под рукой не было ни частотомера ни осциллографа, поэтому решено было завершить монтаж, и уже потом отлаживать.

Второй сеанс наметился только через неделю в выходные. За 2 выходных дня допаял синхрогенератор, регистры для формирования изображения, мультиплексоры и ОЗУ.



После очередной рабочей недели снова сел за пайку. За выходные допаял почти всю схему. Не припаяны оставались только порт клавиатуры и магнитофона. Еще позникла проблема с подключением питания к процессору, на схеме были противоречивые сведения.

К тому моменту я познакомился с Алексеем Морозовым (VINXRU) и Андреем Анищеко. Алексей помог разобраться с выводами процессора. Забегая вперед скажу, что ребята очень много помогали в процессе постройки и отладки ПК. За это Вам большое спасибо!

На этот момент компьютер имел практически законченный вид.



Руки чесались скорее включить его. Поэтому, как только припаял стабилизаторы, решить проверить формирование -5 Вольт. Для этого установил в панельки микросхемы тактового генератора, счетчиков и инвертора на 155ЛА3. Включил питание, и вот они, честные -5.6 Вольт на ножке микропроцессора! Радости в тот день не было предела.



Только один момент заставил задуматься — стабилизатор 7805 (даже посаженный на радиатор) разогревался так, что к нему нельзя было прикоснуться. И это только 4 микросхемы в цепи питания.

Второй вариант стабилизации не отличался оригинальностью. Я лишь посадил параллельно 2 корпуса 7805 на больший радиатор. Греться они начали меньше, но все равно прикоснуться к ним через 10 минут работы было невозможно. Это обстоятельство заставило купить внешний блок питания на +5В (4А) и +12В (1А). После этого проблемы с питанием больше не возникали, кроме этого, наличие напряжения на 12В позволило отказаться от стабилизатора 7812.

После того, как вся схема была собрана, осталось записать в ПЗУ Загрузчик и Монитор. Это оказалось не так просто, как казалось ранее.

У меня не было программатора. Я начал было собрать ручной программатор, но еще раз взглянув на код Загрузчика и Монитора, решил оставить эту гиблую затею, хотя в 80е многие шли именно этим путем. Найти программатор столь древних ПЗУ в Алматы не удалось, а заказывать, и потерять месяц, не хотелось. Поэтому начал экспериментировать с Arduino. Сначала спаял шилд, и научился читать содержимое ПЗУ. Обе микросхемы не были пустыми. И судя по коду, это скорее всего были прошивки от АОНов. Возникла еще одна проблема — их надо стереть. В школьном возрасте отец постоянно говорил мне что нельзя чтобы на кристалл ПЗУ попадал свет, они от этого стираются. Я положил обе ПЗУ на несколько дней на Солнце. На выходных снова проверил содержимое — ни стерлось ни бита информации.

Сообщения на форумах, а так же Алексей Морозов говорили о двух способах стирания — это внутренняя колба от ДРЛ лампы с дросселем, выделяющая большое количество вредного озона, и УФ бактерицидная медицинская лампа. Стирание ДРЛ-кой занимает около 3х часов, УФ лампой минут 15. Недолго думая, купил ОУФК-09-1, тем более дома были простуженные, и кварцевание помещения было бы кстати. Обе микросхемки были очищены за 10 минут. Теперь надо как то научить шилд писать в ПЗУ. На это ушло еще немного времени. Изначально планировал сделать программку-программатор на Visual Basic с пересылкой данных в Ардуинку через COM порт, но походив с этой мыслью день-два, решил упростить схему, а именно подключить к Ардуинке SD карту, на которой бы размещалась необходимая прошивка, а на шилде было бы 2 кнопки — Чтение и Запись. Ход исполнения программы выводился в COM порт и отображался бы на ПК в мониторе порта.

В итоге получился такой шилд:



Прошил в ПЗУ Загрузчик и Монитор, которые так же нашлись на сайте Fifan-a. Включил питание, и компьютер не заработал. Ну этого стоило ожидать. К тому моменту уже был найден частотомер, и быстро выяснилось, что не верно формируется сигнал RAS, его частота должна была быть около 2 мГц, а было то 6, то 4. Перепаивание панельки от ИР12 дало свои результаты, сигнал начал формироваться верно. На эту проблему ушло около недели. Но изображения все еще не было.

По совету Андрея прошил в ПЗУ тестовую программу, и из динамика начали доноситься звуки. Это означало, что процессор, буферы, ПЗУ и порт ввода-вывода работали правильно.

После недолгих разбирательств, выяснилось, что выходной транзистор дает уровень сигнала, которого не хватало телевизору для работы. Внеся небольшие изменения в схему этого узла, изображение наконец появилось! Но экран был разбит на 6 участков, а изображение выводилось только в 3 из них.



Подозрения пали на мультиплексоры. Но как бы я их не переставлял, изображение не менялось. Прозвонка платы тестером так же ничего не давала — все соединения были на месте. Потратив еще несколько дней на эту проблему и перебрав еще пару вариантов (подбор конденсаторов в цепях делителей и SYNC процессора), я нашел причину — все же имел место непропай одного контакта в мультиплексоре. Изображение пошло, но с помехами в виде вертикальных линий, кроме этого 2 ОЗУ светились как неисправные.



Перестановка микросхем местами результата не дала, значит еще один непропай. Так и оказалось. Питание на них отсутствовало. Видимо расплавил припой, когда допаивал сглаживающие конденсаторы.

После этого картинка стала такой, какой и должна была быть. Тест программа показывала что все в норме — изображение формируется, ОЗУ в норме.



Следующий шаг — клавиатура. Проще всего было бы взять клавиатуру с интерфейсом PS/2 и через AVR контроллер подключить ее. Но походив с этой идеей до конца рабочей недели решил собирать клавиатуру по оригинальной схеме. В итоге окончательный вид ПК получился таким:



И вид со стороны монтажа:



Осталось поставить его в человеческий корпус, и переделать разъем клавиатуры (идея с 25 ногим разъемом оказалась громоздкой, поэтому не очень удачной) и буду считать, что сборка завершена. Компьютер займет место на полке рядом со старыми ZX-Spectrum, ПК01-Львов, Вектор-06Ц и Микрошей, который мне недавно подарили, и который требует небольшого ремонта.

С одной стороны грустно, что одной давней мечтой стало меньше, но с другой на то они и нужны, чтобы сбывались. Еще грустно, что отец не дожил до того момента, когда проиграл спор.

Вывод? Чешутся, или когда то чесались руки — дерзайте, оно того стоит!

Приложение 1. Программатор
Схема программатора приведена на рисунке


Я не пытался сделать универсальный программатор, под разные типы ПЗУ (хотя это сделать просто), так же я не пытался сделать оптимальным код прошивки. Задачи этого шилда — прочесть и записать ПЗУ, и он с ними справляется.
В качестве источника питания на 25В я использовал универсальный блок питания для ноутбука. Он выдает напряжения от 12 до 24 Вольт, при входящем напряжении 12В или 110-220В. 24 В для записи оказалось достаточно.
Arduino Mega подключается через USB к компьютеру. В составе среды разработки Arduino есть утилита — Монитор порта. В ней будет отображаться весь процесс работы программатора.
Код программы для записи в ПЗУ должен быть сохранен в корневой папке SD карты под именем code.hex.
После включения питания, программатор предлагает ввести команду — Чтение или Запись.
Пример чтения данных из ПЗУ (записан Монитор)


Запись выглядит аналогичным образом. После нажатия кнопки Запись, в монитор порта выводятся адрес и записываемые данные.

Исходный текст программы
#include <SD.h>

int nMode = 0; //0-ожидание команды, 1-чтение, 2-запись

void WriteByte(int adr, int data){  

  int i;
  String sAdr, sData;
  
  // чтение
  digitalWrite(42, LOW);
  pinMode(24, OUTPUT);
  pinMode(25, OUTPUT);
  pinMode(26, OUTPUT);
  pinMode(27, OUTPUT);
  pinMode(28, OUTPUT);
  pinMode(29, OUTPUT);
  pinMode(30, OUTPUT);
  pinMode(31, OUTPUT);

  // сформируем строку адреса и данных
  sAdr = "";
  sData = "";
  for (i = sizeof(adr) * 8 - 1; i >= 0; --i)
  {
     sAdr = sAdr + (String)((adr >> i) & 1);
  }  
  for (i = sizeof(data) * 8 - 1; i >= 0; --i)
  {
     sData = sData + (String)((data >> i) & 1);
  }  

  // выберем адрес
  if (sAdr.substring(15) == "1")
    digitalWrite(39, HIGH);
  else 
    digitalWrite(39, LOW);
  if (sAdr.substring(14, 15) == "1")
    digitalWrite(38, HIGH);
  else 
    digitalWrite(38, LOW);    
  if (sAdr.substring(13, 14) == "1")
    digitalWrite(37, HIGH);
  else 
    digitalWrite(37, LOW);    
  if (sAdr.substring(12, 13) == "1")
    digitalWrite(36, HIGH);
  else 
    digitalWrite(36, LOW);    
  if (sAdr.substring(11, 12) == "1")
    digitalWrite(35, HIGH);
  else 
    digitalWrite(35, LOW);    
  if (sAdr.substring(10, 11) == "1")
    digitalWrite(34, HIGH);
  else 
    digitalWrite(34, LOW);    
  if (sAdr.substring(9, 10) == "1")
    digitalWrite(33, HIGH);
  else 
    digitalWrite(33, LOW);    
  if (sAdr.substring(8, 9) == "1")
    digitalWrite(32, HIGH);
  else 
    digitalWrite(32, LOW);    
  if (sAdr.substring(7, 8) == "1")
    digitalWrite(43, HIGH);
  else 
    digitalWrite(43, LOW);    
  if (sAdr.substring(6, 7) == "1")
    digitalWrite(41, HIGH);
  else 
    digitalWrite(41, LOW);    
  if (sAdr.substring(5, 6) == "1")
    digitalWrite(40, HIGH);
  else 
    digitalWrite(40, LOW);    

  // установим значение байта
  if (sData.substring(15) == "1")
    digitalWrite(24, HIGH);
  else 
    digitalWrite(24, LOW);
  if (sData.substring(14, 15) == "1")
    digitalWrite(25, HIGH);
  else 
    digitalWrite(25, LOW);    
  if (sData.substring(13, 14) == "1")
    digitalWrite(26, HIGH);
  else 
    digitalWrite(26, LOW);    
  if (sData.substring(12, 13) == "1")
    digitalWrite(27, HIGH);
  else 
    digitalWrite(27, LOW);    
  if (sData.substring(11, 12) == "1")
    digitalWrite(28, HIGH);
  else 
    digitalWrite(28, LOW);    
  if (sData.substring(10, 11) == "1")
    digitalWrite(29, HIGH);
  else 
    digitalWrite(29, LOW);    
  if (sData.substring(9, 10) == "1")
    digitalWrite(30, HIGH);
  else 
    digitalWrite(30, LOW);    
  if (sData.substring(8, 9) == "1")
    digitalWrite(31, HIGH);
  else 
    digitalWrite(31, LOW);    

  // подождем 10мс для выбора адреса
  delay(10);
  
  //запись
  digitalWrite(42, HIGH);
  digitalWrite(44, HIGH);
  delay(60); // задерживаем высокий уровень на 60мс для записи данных
  digitalWrite(44, LOW);
  digitalWrite(42, LOW);
}

void writeChip() {
  nMode = 0;
  int adr, dat;
  adr = 0;
  // открываем файл только для чтения
  File myFile = SD.open("code.hex");
  if (myFile) {
  
    // читаем файл посимвольно до конца:
    while (adr < 2048 && myFile.available()) {
        dat = myFile.read();
        Serial.print((String)adr+" - "+(String)dat+" - ");
        Serial.println(dat, HEX);
        WriteByte(adr, dat);
        adr++;
    }
    // закрываем файл:
    myFile.close();
  } else {
    // если файл не открылся, сообщает об ошибке:
    Serial.println("No file code.hex found!!!");
  }
}

void readChip() {

int r, i, adr = 0;
String sAdr, sData;

// чтение
  digitalWrite(42, LOW);
  pinMode(24, INPUT);
  pinMode(25, INPUT);
  pinMode(26, INPUT);
  pinMode(27, INPUT);
  pinMode(28, INPUT);
  pinMode(29, INPUT);
  pinMode(30, INPUT);
  pinMode(31, INPUT);
  adr = 0;
  while (adr < 2048) {
    // сформируем строку адреса
    sAdr = "";
    sData = "";
    for (i = sizeof(adr) * 8 - 1; i >= 0; --i)
    {
       sAdr = sAdr + (String)((adr >> i) & 1);
    }  
    
    // выберем адрес
    if (sAdr.substring(15) == "1")
      digitalWrite(39, HIGH);
    else 
      digitalWrite(39, LOW);
    if (sAdr.substring(14, 15) == "1")
      digitalWrite(38, HIGH);
    else 
      digitalWrite(38, LOW);    
    if (sAdr.substring(13, 14) == "1")
      digitalWrite(37, HIGH);
    else 
      digitalWrite(37, LOW);    
    if (sAdr.substring(12, 13) == "1")
      digitalWrite(36, HIGH);
    else 
      digitalWrite(36, LOW);    
    if (sAdr.substring(11, 12) == "1")
      digitalWrite(35, HIGH);
    else 
      digitalWrite(35, LOW);    
    if (sAdr.substring(10, 11) == "1")
      digitalWrite(34, HIGH);
    else 
      digitalWrite(34, LOW);    
    if (sAdr.substring(9, 10) == "1")
      digitalWrite(33, HIGH);
    else 
      digitalWrite(33, LOW);    
    if (sAdr.substring(8, 9) == "1")
      digitalWrite(32, HIGH);
    else 
      digitalWrite(32, LOW);    
    if (sAdr.substring(7, 8) == "1")
      digitalWrite(43, HIGH);
    else 
      digitalWrite(43, LOW);    
    if (sAdr.substring(6, 7) == "1")
      digitalWrite(41, HIGH);
    else 
      digitalWrite(41, LOW);    
    if (sAdr.substring(5, 6) == "1")
      digitalWrite(40, HIGH);
    else 
      digitalWrite(40, LOW);    
  
    // подождем 10мс для выбора адреса и прочтем данные
    delay(10);
    r = 0;
    if (digitalRead(24) == HIGH){
      sData = "1" + sData;
      r = r + pow(2, 0); } 
    else
      sData = "0" + sData; 
    if (digitalRead(25) == HIGH){
      sData = "1" + sData;
      r = r + pow(2, 1); } 
    else
      sData = "0" + sData; 
    if (digitalRead(26) == HIGH){
      sData = "1" + sData;
      r = r + pow(2, 2); } 
    else
      sData = "0" + sData;
    if (digitalRead(27) == HIGH){
      sData = "1" + sData;
      r = r + pow(2, 3); } 
    else
      sData = "0" + sData; 
    if (digitalRead(28) == HIGH){
      sData = "1" + sData;
      r = r + pow(2, 4); } 
    else
      sData = "0" + sData; 
    if (digitalRead(29) == HIGH){
      sData = "1" + sData;
      r = r + pow(2, 5); } 
    else
      sData = "0" + sData; 
    if (digitalRead(30) == HIGH){
      sData = "1" + sData;
      r = r + pow(2, 6); } 
    else
      sData = "0" + sData; 
    if (digitalRead(31) == HIGH){
      sData = "1" + sData;
      r = r + pow(2, 7); } 
    else
      sData = "0" + sData; 
  
    Serial.print(sAdr+" - "); 
    Serial.print(sData+" - ");
    Serial.println(r, HEX);

    adr++; 
  }
  nMode = 0;
}

void setup() {
  nMode = 0;
  Serial.begin(9600);
  pinMode(4, INPUT);
  pinMode(5, INPUT);
  pinMode(53, OUTPUT);
  if (!SD.begin(53)) {
    Serial.println("Card failed, or not present");
    return;
  }
  Serial.println("start...");
  pinMode(44, OUTPUT);
  digitalWrite(44, LOW);
  pinMode(42, OUTPUT);
  digitalWrite(42, LOW);  
  pinMode(39, OUTPUT);
  pinMode(38, OUTPUT);
  pinMode(37, OUTPUT);
  pinMode(36, OUTPUT);
  pinMode(35, OUTPUT);
  pinMode(34, OUTPUT);
  pinMode(33, OUTPUT);
  pinMode(32, OUTPUT);
  pinMode(43, OUTPUT);
  pinMode(41, OUTPUT);
  pinMode(40, OUTPUT);
  Serial.println("Init...done!");
  Serial.println("Waiting command...");
}
 
void loop() {
  if (digitalRead(4) == LOW && nMode == 0){
    delay(20); // защита от дребезга контактов
    if (digitalRead(4) == LOW && nMode == 0){
      Serial.println("Start writing chip...");
      nMode = 2;  
      writeChip();
      Serial.println("Writing complete!!!");
      delay(5000);
    }
  }

  if (digitalRead(5) == LOW && nMode == 0){
    delay(20); // защита от дребезга контактов
    if (digitalRead(5) == LOW && nMode == 0){
      Serial.println("Start reading chip...");
      nMode = 1;
      readChip();
      Serial.println("Reading complete!!!");
      delay(5000);
    }
  }  
  delay(100);
}


Денис @ParyshevD
карма
11,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое

Комментарии (92)

  • +12
    Прочитал до конца, а потом понял, что я не открывал эту статью в новом окне! Вывод — хорошим статьям хабракат не нужен :)
    • 0
      Согласен, допустил оплошность. Поправил. :)
  • +1
    На такое количество лапши даже смотреть страшно, я с ней мучался на схемах в десяток раз меньше этой. Настолько кропотливая работа с большой вероятностью ошибок, что лучше не думая, сразу нормально плату разводить. За усердие просто снимаю шляпу.
    • +5
      Спасибо. На «лапшу» ушло примерно 19 метров и 80 сантиметров провода. От двадцати метрового мотка МГТФ-а остался огрызок 20 см длиной :)
  • –20
    Вы хабракат не использовали специально, или просто забыли?
    • +1
      Кто минусучет? Я что один читаю Хабр через RSS, который в случае с данным постом вывалил мне его целиком и полностью?
  • +3
    Такое небольшой количество непропаев — очень хороший результат.
    Помню, что даже с классической печатной платой были многочисленные проблемы. Визуально покрытые припоем выводы не всегда «контачили». Поэтому большое внимание уделялось предварительной подготовке — выводы некоторых деталей приходилось чистить от окислов, плату перед пайкой протирали спиртом и т. д. В дорожках печатной платы встречались микротрещины. Невидимые токопроводяшие волоски замыкали соседние дорожки — только когда иголкой проведешь между ними, замыкание пропадало.
    С опыта пайки Синклеров появился опыт, что напряжение необходимо измерять не на дорожке, а именно на выводе детали.

    По поводу стирания ПЗУ. У меня не было доступа к лампе ДРЛ и бактерицидной лампе. Поэтому привязывал ПЗУ к деревянной палке и приближал к месту сварки. Расстояние такое, чтобы не доставали брызги. Время «экспозиции» сейчас не помню, но оно было небольшое и зависело от расстояния. После сварки — контроль на чистоту.
  • 0
    Вы не первый: habrahabr.ru/post/202010/

    Решения у вас получились очень похожими — та же лапша из белых проводов, собранная в пучки.
    • +3
      Они не белые, они розовые!
      • +3
        Изоляция белая, частично прозрачная. Под ней красная медь. В результате создается видимость розового цвета.
  • 0
    А какой провод вы используете для монтажа? У него вроде изоляция не плавится? Не можете его название сказать?
    • 0
      МГТФ, классика
    • +1
      МГТФ немного, но плавится. Скорее, оплавляются концы как в статье указано.
      Только надо быть аккуратнее с этим, так как эта изоляция выделает достаточно опасные пары при нагреве. Надо такое проводить в хорошо проветриваемом помещении или/и с вытяжкой.
      • 0
        Кстати, да, провод прекрасный, но при термическом разложении фторопласта выделяется вкусняшка а-ля фосген.
        • 0
          Чтобы его термически разложить, надо градусов 600 минимум, а паяльник максимум 400 дает. Процесс «разложения» вы точно не пропустите, это видно по дыму и очень неприятному запаху. А простой нагрев ничего из изоляции не выделяет
          • 0
            Я долгое время «зачищал» МГТФ путем обжигания кончика зажигалкой.
            • 0
              А изоляция сгорала или немного уменьшалась в размерах?
              • 0
                Скукоживалась и чернела. Но прямо-таки дыма не было.
            • 0
              Зажигалка турбо? Она ведь даёт 1200 градусов, если там что и выделится то продукты сгорают в верхнем пламени.
              • 0
                Не, обычная. Думаю, что в этом случае изоляция просто подплавляется-подгорает.
              • 0
                Ничерта там не сгорит. Фтор он и есть фтор.
      • +1
        На одном из предприятий мне рассказывали, что использовался похожий техпроцесс для зачистки МГТФ. Припой грели до 350 градусов (точную температуру не помню), а затем в него опускали провод МГТФ, не защищая изоляции. Изоляция при такой температуре ещё не оплавлялась, а уседала. И провод автоматически защищался и залуживался. В статье использовалась похожая технология.
  • 0
    Спасибо за статью! Воодушевляет на подвиги!
  • –1
    Интересно, почему не 86РК? Он же по идее, еще проще, там 29 корпусов вроде.

    Стирание ДРЛ-кой занимает около 3х часов, УФ лампой минут 15

    Это вообще удивительно. ДРЛка генерирует жесткий УФ, выгорает одежда, книги, цветы минут за 15-20. И озон не вреден сам по себе.
    • +2
      Вообще очень токсичен, но будет ли опасно дышать возле лампы — вопрос спорный
      • –1
        Смотря что считать опасностью. Какие могут быть последствия? Не слышал, чтобы озон считался токсичным. Видимо, зависит от концентрации?
        • +1
          Не слышал, чтобы озон считался токсичным.

          Озон в Российской Федерации отнесён к первому, самому высокому классу опасности вредных веществ.
          ru.wikipedia.org/wiki/Озон
          • +2
            И что? Посмотрите на то, при какой концентрации в воздухе запах начинает ощущаться, и какая считается токсичной. Если вы не блююете от запаха озона в помещении(а концентрированный он ужасно противный), значит ничего страшного с вами не произойдет. Жить в помещении с постоянным запахом, конечно, не надо, но от получаса нахождения ничего плохого не случится.
            • –1
              Ну так любой яд в малых дозах не опасен.
              Нужно различать токсичные вещества и не токсичные. Азот не токсичен, вы живём в атмосфере азота. Что станет с человеком в атмосфере озона?
              Ну а в малых дозах и пары серной кислоты не опасны, и хлор. Неприятно, но не опасно. От этого они не перестают быть токсичными.
              • +1
                А я не спорил, что озон токсичен. Но если подходить с таким мерилом, то вода тоже токсична — ей трудно, но можно отравиться. Значит, все зависит от возможности — хлором отравиться довольно просто, пару раз вдохнуть, и все, в лучшем случае отделаетесь месячным кашлем.

                Озоном отравиться еще надо постараться — ПДК, он же предел обнаружения носом — 0,1 мг/м³. Раздражающее действие начинает проявляться от 2 мг/м³, и он уже при этом жутко воняет. В 20 раз надо превысить обонятельный порог.
                ЛД50 для мышей — аж 46 мг/м³ при экспозиции в два часа, или 3000 мг/м³ при экспозиции в пять минут.
                А еще озон, во-первых, нифига не стойкий, во-вторых, отлично окисляет все вокруг, расходуясь на это. Даже для 2 мг/м3 в обычной комнате(не герметичной и с вещами) вам придется сильно постараться, генерируя озон. А еще вас вырвет, после того, как вы побудете там с минуту.

                А для хлора? Раздражающее действие он проявляет в концентрациях от 6 мг/м³. Порог восприятия — 3 мг/м³, ПДК — 1 мг/м³. Начинает ощущаться при превышении ПДК в три раза, оказывает действие при превышении в 6 раз. Сравнение с озоном в пользу последнего. Правда, ЛД50 у хлора повыше будет.
                • 0
                  Если говорить об остром отравлении — да, озоном отравиться от УФ-лампы сложно. Вместе с тем, озон типичный кумулятивный яд — его действие накапливается со временем. Даже при концентрации значительно ниже ПДК озон вреден.
                  • 0
                    Озон. Кумулятивный. Пруф? Он же даже от света распадается.
                    • 0
                      Кумулятивный — не обязательно означает, что он накапливается сам по себе. Накапливаться могут повреждения, которые порождает взаимодействие озона с мембранами клеток и с генетическим аппаратом (мутаген он слабый, но все же мутаген).
            • 0
              Порог чувствительности обоняния к озону — 0,1 ПДК. Но концентрации меньше нескольких ПДК дают не запах, а скорее ощущение грозовой свежести. Отчетливый запах озона — это уже очень плохо. К тому же чувствительность обоняния к озону быстро падает в его атмосфере.
            • 0
              В свое время во время экспериментов с блокинг-генератором отравлялся озоном, и скажу, что приятного немного. Было достаточно пары неосторожных вдохов над дугой.
          • 0
            Умереть и от воды можно. Все дело в концентрации.
    • 0
      Ничего удивительного, просто ДРЛ-ка даёт ультрафиолет не того спектра, который плохо действует на ячейки ПЗУ, так же как и дневной свет.
      • 0
        Можно уточню, вы ДРЛку с целой внешней колбой подразумеваете?
        • 0
          нет, внутренности. У меня правда не ДРЛ-ка а невесть где достатая лампа-колба для проточного обеззараживания воды(устройство то же самое, только размерчик покрупнее), 500Вт — 30 минут работы и на обоях отсвечивается контур предметов вокруг лампы… вот я такой лампой, почти впритык стирал ПЗУ-шки минут 10. Потом после нескольких таких стираний некоторые из них оказались полностью нерабочими. Слишком жесткое излучение.

          ПЗУ-шки чувствительны к стиранию только в определенной части спектра, все излучение которое дальше определенной длины волны в обе стороны чем дальше тем менее эффективно. Коротковолновое излучение просто не попадает в ячейку из-за эффекта интерференции(попадает но очень малая доля, в принципе зеленым светом ПЗУ-шку тоже стереть можно светя на нее несколько лет) на микроструктурах а коротковолновое проходит сквозь ячейку особо не взаимодействуя с ней — как рентгеновское излучение проходит через материальные объекты.
          • 0
            Спасибо. Просто хотел освежить в памяти этот жуткий процесс, один раз только довелось попробовать, и то безуспешно.
          • 0
            Для стирания ПЗУ эффективна резонансная линия ртути 254 нм, которой в свете ртутной дуги высокого давления мало, так как плотные холодные пары ртути вокруг дуги очень хорошо ее поглощают.
      • 0
        Понятно, спасибо.
    • 0
      Радио 86 рк содержит дефицитные микросхемки (ВГ75, ИК57). Я подбирал схему на мелкой логике, без дефицита.
      • 0
        Ясно, спасибо.
        Восхищен вашим упорством. Надеюсь, доберусь таки до повторения рк когда-нибудь.
        • 0
          Не стоит повторять один к одному, соберите свою собственную конструкцию. Например, с продвинутым генератором видеосигнала. Памяти динамической сейчас завались, те же планки памяти от 286-х машин если найти — это просто клад для этих целей, не надо никакие массивы 565РУ5 паять, 128Кб памяти — в удобном для пайки 36-пиновом SIMM модуле! К тому же, Z80 процессор имеет автоматический счетчик и рефреш динамической памяти в циклах между исполнениями команд когда шины адреса и данных и так простаивают.

          Помню как сейчас, как я делал для такой системы дисплей на 12 штуках матричных индикаторах 5x7 памятью для дисплея служила 537РУ13.

          Сейчас можно под видеопамять пустить хоть мегабайт, организовать 16 цветов или уровней яркости серого, не занимать шину данных процессора — сделать этот адаптер автономным с небольшим окном в адресное пространство процессора.
          • +1
            Мне интересно 1 в 1. Разве только можно сразу памяти до 48к поставить, но это переделка еще тех лет.

            Сейчас можно под видеопамять пустить хоть мегабайт, организовать 16 цветов или уровней яркости серого, не занимать шину данных процессора — сделать этот адаптер автономным с небольшим окном в адресное пространство процессора.

            Можно сразу взять IBM PC, зачем так мучаться?

            Самый шик собрать то же железо, с той же прошивкой, ввести руками какую-нибудь программу из старого журнала и увидеть ее работающей. Это как машина времени.
            • +1
              Поддерживаю. Вся прелесть процесса в том, чтобы собрать именно оригинальную схему. Можно конечно собрать схему на FPGA, и уместить все в 5-6 корпусов, но это уже будет не та, не оригинальная схема :)
              • 0
                О том и речь, что плис, что эмуляторы — суррогат.
                • 0
                  Ничуть не суррогат. Toshiba T1200 — наверно первый ноут от IBM был собран на многочисленных ПЛИС. Тем не менее, была очень даже оригинальная конструкция x86-совместимая.
                  • 0
                    Это несколько иное: мы говорим о повторении старой конструкции при помощи ПЛИС, а не о применении ПЛИС в принципе. Т.е. этот тошиба был изначально таким образом собран. А РК и Орионы — нет.
                  • 0
                    Процессор там не на ПЛИС, тем не менее. Так что это не эмулятор:)
            • 0
              Это лишь зря потраченные силы. IBM PC слишком сложен для ручной сборки. Да и программ под него фиг найдешь нынче — все равно с нуля разрабатывать.

              А вот собрать модель с лучшими характеристиками это имеет несколько больше смысла.
              Увидеть работающей программу со старого журнала можно и в эмуляторе.
              Повторять то что когда-то было в этом смысла очень мало, надо модифицировать, улучшать, делать что-то новое хоть и на основах старых технологий.
              • 0
                Я про то, что можно взять готовый, и не заморачиваться с ручной сборкой.

                А вот собрать модель с лучшими характеристиками это имеет несколько больше смысла.

                Можно взять Орион и пр.

                Увидеть работающей программу со старого журнала можно и в эмуляторе.

                Это совсем не то. Мир можно увидеть по фотографиям, но люди все равно хотят путешествовать.

                Повторять то что когда-то было в этом смысла очень мало, надо модифицировать, улучшать, делать что-то новое хоть и на основах старых технологий.

                Смысл есть: сделать такой же работающий экземпляр. Улучшать? Вы не сможете улучшить любительский компьютер настолько, чтобы он превзошел промышленные ПК. Это изначально бессмысленная затея.
                • 0
                  Конечно нет, но сделать оригинальный аппарат собственными руками и чтобы он заработал — это куда веселее чем повторить один в один конструкцию 20-летней давности.
                  За этим и едут смотреть мир, после фотографий — за НОВЫМИ ощущениями. Толку было бы от поездки если бы увидели там то же самое что было на фотографии?
                  Сам компьютер станет работать быстрее если с него снять задачу полупрограммного формирования изображения, да еще и в разрешении экрана выиграет. так к примеру сделали в упомянутом выше ноуте — Toshiba T1200, там за вывод на дисплей отвечала целая схема с применением STATIC RAM. и не пожалели же микросхем на это дело.
                  • 0
                    это куда веселее чем повторить один в один конструкцию 20-летней давности.

                    Это субъективно.

                    За этим и едут смотреть мир, после фотографий — за НОВЫМИ ощущениями

                    Собрать своими руками компьютер по старым схемам — это и есть новые ощущения.

                    Толку было бы от поездки если бы увидели там то же самое что было на фотографии?

                    Так вы и так видите то же, что и на фото. Вот Эйфелева башня на фото, вот — вживую.

                    Сам компьютер станет работать быстрее если с него снять задачу полупрограммного формирования изображения, да еще и в разрешении экрана выиграет.

                    А зачем? У меня полно современных персоналок, если требуется что-то сделать быстро, в цвете и т.д.
  • 0
    А можно поделиться схемой программатора? А то делаю нечто похожее и интересно посмотреть на это другим взглядом, а, может, какие-то другие идеи увидеть.
    • 0
      Постараюсь вечером выложить.
    • 0
      Опубликовал в приложении схему и исходный код прошивки программатора.
  • +2
    Окошки ПЗУ необходимо заклеить кусочками изоленты. В оригинале было еще немного сложнее, кроме не пропаев, грозили опечатки — или при наборе программ с распечаток в журнале или уже допущенные самим журналом.

    Кажется оригинал был чуть больше (возможно используются микросхемы ОЗУ и ПЗУ меньшего объема на штуку):
    image

    PS Плюсанул бы еще раз.
  • 0
    Эх, если бы все мечты сбывались ценой бухточки МГТФ и нескольких недель времени…

    Красиво получилось, поздравляю. Главное, чтобы не возникло необходимости разбираться в этой лапше ещё раз когда-нибудь. Такой хардварный аналог write-only.
    • 0
      Попадалась методичка, военная, по ремонту старой ламповой техники (хотя, быть может, и по ремонту конкретного агрегата), там были и указания по разбору кос, общие подходы, вязка кос проводов в шину… Короче, после неё всё выглядело далеко не так страшно. Хорошо напомнили, нужно будет пошукать у родителей.
  • 0
    спасибо, мне было интересно.
  • +3
    Когда прочёл вначале про спор, сразу промелькнула мысль: „Отец-то увидит?“. В конце оказалось, что нет.

    Берегите родных и близких, не откладывайте их на потом.
  • +1
    Прелесть, вспомнилось как я паял этот самый ZX spectrum кит с Оренбуржского конверсионного завода (если память не изменяет) в свои 13лет :) потом еще пол года корпел с помощью какой то матери местного телевизионщика — недоработок по схеме было уйма, там где плохо отрасировано было тоже проводами в нахлест пускали :) за то когда заработало…!!! Со мной резко все дружить захотели, в городе причем, а не только во дворе :)
  • +1
    начинал вот с этого, было круто! mirknig.com/knigi/apparatura/1181526031-mikroevm-svoimi-rukami.html
  • +1
    Первым, что я собрал, и что заработало, был Спектрум «ленинградский вариант». Возился долго, проверял всю логику перед монтажом (брака была уйма), потом долго искал, почему же не работает. Оказалось, на плате не была разведена одна цепь.
    В общем, ностальгия.
  • 0
    Спасибо за статью! Гештальт должен быть закрыт)). Я так и не сподвигнул себя к этому подвигу. Мой спаянный, но не отлаженный Спектр так и остался в прошлом, как неудачная попытка создать свой комп. И, видимо, так и останется там. Я очень рад, что Вам удалось сделать то, о чем мечталось!
  • 0
    Какие здоровские макетки. На фотографии не видно — чьи они?
    • 0
      Не знаю точно, но думаю качественный Китай. Из опознавательных знаков на ней только V2148. Размер 150 на 200 мм.
  • –1
    Очень повезло что процессор досихпор не сгорел. И это именно повезло! Данный процессор требует строгой последовательности подачи напряжений питания… если вдруг что пойдет не так — между слоями кристалла срабатывает тиристорный эффект и выгорает участок кристалла с его физическим разрушением. Z80 в этом отношении гораздо удобнее(они еще есть в вариантах до 12Мгц тактовой частоты), досихпор учавствует в подобной платке собственного изготовления. только я был достаточно ленивым и пошел на компромиссный вариант — питание и некоторая часть соединений была вытравлена на плате, а остальное что не получилось провести — проводками.
    Были попытки даже винчестер подцепить, но не удалось ему обеспечить питание — тогда для меня такое понятие как индуктивность провода было понятием неведомым в результате чего винчестеру не хватало питания на старте и он не мог даже раскрутить диск.
    • 0
      Допускается одновременная подача и снятие всех напряжений. Более того, все это было не столь критичным и многие экземпляры прекрасно работали при подаче на вывод +12 В пяти вольт, и даже при заземлении вывода подложки. Но в последнем случае — могло и сгореть.
      • 0
        Вообще то товарищ Alexeyslav прав. Питание надо подавать в определённом порядке, для этого помнится в журнале Радио специальную схему блока питания печатали. На практике процессор работал и при одновременной подаче всех питаний, но благодаря разной длине проводов и фильтрующих конденсаторов гарантировать в любом покупном блоке питания этого нельзя. Так что нашему автору просто повезло что всё так удачно сложилось.
        • +1
          В технической документации как раз и было написано, что допускается одновременная подача и снятие напряжений, но при этом должно было гарантироваться, что не будет обратного порядка — то есть не должно было быть ситуации, когда при отсутствии -5 В подавались какие-либо иные напряжения, а в отсутствии +12 В подавалось напряжение +5 В (или наоборот, не уверен — подзабылось). И в компьютерах промышленного изготовления (те же Партнер, Микроша) никакого порядка подачи не было — просто все одновременно включалось и выключалось. Исходный вариант БП для Радио-86 РК работал так же. Про длину проводов улыбнуло, ибо не настолько крутые фронты нарастания напряжения у БП, чтобы разница в длине проводов на чем-то сказалась.
          • 0
            Порядок включения там держался на величинах фильтрующих емкостей. Если все исправно — то схема работает, а случись какой затык и «привет».
  • 0
    По собственному опыту знаю, что для вас главное теперь — заставить себя доделать корпус.
    Потому что «оно же и так работает»
    :)
  • +1
    А мой первый комп был собран на КР580ИК80А в 81-82 году и монитор дописан до конца в 83. С этого все и началось :)
    По поводу корпуса — совершенно согласен! Он так и не был доделан.
  • 0
    Очень аккуратно собрано. Но, конечно, на макетке такие дела делать — извращение. Но, думаю, вы в этом уже сами убедились, мучаясь с непропаями:) Хороший пост. Респект автору.
  • 0
    Денис, а не могли бы Вы рассказать по-подробней про свой шилд… Схема, скетч, инструкция по применению. А то я прикупил себе плату для сборки — нужно будет К573РФ2 шить. Буду Вам ООООЧЕНЬ благодарен.
    • 0
      О, это для РК плата? Сколько стоила? Базовый вариант, без модификаций? Вы смогли достать микросхемы портов и видеоконтроллер в наши дни?
      • 0
        Да, это почти оригинал. Единственно заменили память на РУ5 и вместо РФ1 — РФ2. Именно поэтому её и беру. Почти все микрухи уже раздобыл (точнее нашел где взять). Плату обещали в пн уже отправить.
        • 0
          А почему заменили на РФ2? Тяжело достать?

          Сколько стоила? Пролистал форум по ссылке — вижу обсуждение, конкретно цену не нашел. Тоже думаю собрать, надеюсь будет еще дозаказ плат.

          Все микрухи есть, но в разных местах. Вы в СПБ нашли детали? Не поделитесь местами?
          • 0
            Плата обошлась в 20$ + пересыл. Уже в пути :) Микрухи заказал в Микронике и ЧипДипе. Выкупать пойду с тестером мелкой логики ))
            • 0
              Бывают битые? Не подскажете (извините, что прицепился, просто не хочется наступать на грабли): вроде всё в ЧиД есть из БИС, мелкашку не смотрел пока. В Микронике что-то дешевле, или чего-то нет в чид?
    • 0
      Кстати, по схеме идут РФ5 и РФ1. РФ2 в вашем варианте вместо одной из них идет? Как там с совместимостью, по ногам то же? Плата, что вы заказали, как я понял, под РУ5е идет, там разводка другая?
      • 0
        Там вместо РФ1 и РФ5 — 2шт РФ2. Ребята выложили документацию.
        • 0
          Отлично, спасибо!
          Микрухи заказал в Микронике и ЧипДипе

          Неужели у них есть ИК55/ИК57…
          • 0
            А, я не догнал поначалу! Они используют новые обозначения: ВВ55 и ВТ57. А я-то думал, почему никак не отыскать их.
            Еще раз спасибо!
    • 0
      Если немного изменить схему, можно прошивать другие РФ-ки
    • +1
      Схему, скетч и инструкцию по применению я уже опубликовал в статье. Смотрите ссылку внизу статьи. Там все подробно описано. Будут вопросы, задавайте
      • +1
        Выражаю огромную благодарность! Сегодня дособрал шилд и прошил две РФ-ки :-D
        Ещё раз убедился в поговорке: «Правильно собранная схема в наладке не нуждается» )) Я конечно забыл одну линию подтянуть к земле, при этом чтение содержимого работало ;) Но во время заметил — не пришлось ломать голову почему же не идёт запись.
        Ещё периодически не запускалось, если шилд стоял ровно параллельно Меге. Но это видимо раздолбанность контактов меги. Да и вообще на сборку убил пол дня. Уже когда до середины дошёл — плевался и корил себя словами: «Надо было развести и вытравить!».
        Ах да! Ещё была радость, когда вспомнил, что у меня есть компьютерный руль и надо бы посмотреть на сколько вольт у него БП. Какова же была моя радость, что не придётся ехать за БП на другой конец города по объявлению с Авито.
        • +1
          Рад, что смог помочь. Я прошивку Меги немного изменил, сейчас она при чтении умеет сравнивать содержимое ПЗУ и файла code.hex на флешке. Выглядит как еще одна колонка с данными в мониторе канала, и там же отображен статус для каждого байта. Плюс итог внизу. Если будет интересно, выложу скетч.
          • 0
            О, супер! Очень не хватало такой фичи! Выкладывайте конечно! Я их тогда по разочку на сравнение прогоню.
            Еще, кстати, мне кажется, не хватает задержки секунд пять перед началом чтения или записи — для стабилизации шилда после нажатия на кнопку, а то например у меня он болтается и я не уверен в качестве контактов. А в эти 5 секунд можно вообще устроить опрос всех задействованных портов на «таракане» и карте памяти. И если что-нибудь не отвечает — аварийно останавливаться. Ну это так… если есть время/желание ;)
            Еще раз спасибо!

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.