Хардверный сериал сыпет в буфер. Проблемы только когда буфер переполняется. Именно тогда может теряется информация. Мне не понятно сейчас одно - какой сигнал на осциллограмме, где длительность импульса 6 мкс? По хорошему читать надо только в момент фронта SYNC.
imp Вы гений. Вся информация пратически, как на чеке, есть неточности но они не на что не влияют. Информация выводится в одной строке. Подскажите, как информацию расположить, как в чеке и вывести в ексель или вворд, лучше конечно в ексель, чтобы потом можно было сохранить и распечатать.
Imp cпасибо. Но уже только в понедельник отпишусь выходные. Все закрыто. Ещё один вопрос: если отключить от СЦВМ МПУ(которая печатает чек) и оставить на этом шлейфе только ардуино, СЦВМ выдаёт ошибку. Может сигнал ГТВ играет в этом роль.
Imp cпасибо. Но уже только в понедельник отпишусь выходные. Все закрыто. Ещё один вопрос: если отключить от СЦВМ МПУ(которая печатает чек) и оставить на этом шлейфе только ардуино, СЦВМ выдаёт ошибку. Может сигнал ГТВ играет в этом роль.
Естественно.
Ещё ПЧТ, ЗПР, ЗПС и СТП нужно читать или писать. Ну и счетчик до 16 программировать.
В начале когда вводится программа на СЦВМ для проверки сразу выдаёт ошибку что отсутствует устройство. Это должен быть один сигнал,
Сигнал ГТВ один единственный, который в покое имеет 3.8в.
В начале когда вводится программа на СЦВМ для проверки сразу выдаёт ошибку что отсутствует устройство. Это должен быть один сигнал, Сигнал ГТВ один единственный, который в покое имеет 3.8в.
это напряжение формируется в СЦВМ. разъём не подключен - СЦВМ справедливо считает, что печатка не готова.
================
Для начала следует всё же уточнить, в каком режиме вся эта лабуда работает - в минимальном или? (см. примечание 1 к п. 5.4.1.) Заодно проверить, задействована ли линия ВЗВ
==========
Если "запрос-ответ" (я бы рекомендовал выбрать его, даже если сейчас применен минимальный), то пишем программу:
ардуинская программа (АП) при включении должна связаться с программой на компе (ПК);
ПК проверяет готовность принтера, при готовности сообщает об этом АП;
АП выставляет сигнал ГТВ;
дальше смотрим стр. 14 мануала и программируем
после приема 16 символов (или получения сигнала СТП) АП выставляет сигнал ПЧТ и отправляет массив в ПК
ПК печатает строку, сообщает о готовности к приему следующей АП, АП снимает сигнал ПЧТ
Эти скетчи нужны только для лучшего понимания протокола обмена. Для подключения ардуины вместо печаталки, нужно воспроизвести остальные сигналы. Пока что, судя по эпюрам, для работы на прямую, сигналы "АВТ" должен быть подключен на общий, сигнал "ГТВ" на +5 вольт (на всякий случай через резистор 1к). Сигналы "СМС-К" и "ЗПС" никуда не подключены (у нас нет двигателя, который нужно разгонять). С сигналом "СТП" надо потом разбираться, а пока никуда не подключаем. Сигнал "ИНФ-Б" - понятно куда, остается понять что делатть с "ЗПР" и "ПЧТ". Отсюда план работы:
1. Проверить последний скетч. Если он заработает без сбоев, значит без прерываний не обойтись.
2. Проверить на реальной печаталке сигналы "АВТ" и "ГТВ" во время печати, убедиться что "АВТ" = "0" а "ГТВ" = "1".
3. Двухлучевым осциллографом снять осциллограммы с сигналов "ИНФ-Б" и "ЗПР" во время печати, таким образом, что бы было видна задержка "ЗПР" относительно "ИНФ-Б".
4. Осциллографом измерить длительность сигнала "ПЧТ".
5. Осциллографом в режиме "однократного срабатывания" снять сигнал "СТП" если конечно получится (он может не использоваться).
Эти скетчи нужны только для лучшего понимания протокола обмена. Для подключения ардуины вместо печаталки, нужно воспроизвести остальные сигналы. Пока что, судя по эпюрам, для работы на прямую, сигналы "АВТ" должен быть подключен на общий, сигнал "ГТВ" на +5 вольт (на всякий случай через резистор 1к).
не меньше 3к.
Цитата:
Сигналы "СМС-К" и "ЗПС" никуда не подключены (у нас нет двигателя, который нужно разгонять). С сигналом "СТП" надо потом разбираться, а пока никуда не подключаем. Сигнал "ИНФ-Б" - понятно куда, остается понять что делатть с "ЗПР" и "ПЧТ".
надо разбираться с соответствием сигналов из мануала и из картинки в #56 - есть там непонятки.
Цитата:
Отсюда план работы:
1. Проверить последний скетч. Если он заработает без сбоев, значит без прерываний не обойтись.
2. Проверить на реальной печаталке сигналы "АВТ" и "ГТВ" во время печати, убедиться что "АВТ" = "0" а "ГТВ" = "1".
3. Двухлучевым осциллографом снять осциллограммы с сигналов "ИНФ-Б" и "ЗПР" во время печати, таким образом, что бы было видна задержка "ЗПР" относительно "ИНФ-Б".
4. Осциллографом измерить длительность сигнала "ПЧТ".
5. Осциллографом в режиме "однократного срабатывания" снять сигнал "СТП" если конечно получится (он может не использоваться).
2 - если АВТ вообще задействован
4 - не надо. пока реальный принтер не подключен, можно сформировать ~50 мс.
5 - если в реале бывают строки меньше 16 символом (имхо, бывают)
=======
ну и можно начинать опторазвязки паять.
и я раньще был неправ - уна предпочтительнее, чем нано - у неё разъем юсб намного надежнее.
На разьеме "Ш12" сигнала "АВТ" нету. Сигнал "АВТ" можно взять либо с блока "БС" либо непосредственно с разьема. Осцилограмму "ЗПР" и "ИНФ-Б" сделай с разверткой 1ms.
Теперь попробуем ардуино вместо печаталки. Подключи третий пин ардуино в качестве "ЗПР" и четвертый пин в качестве "ПЧТ", остальные как было описано выше. Попробуй скетч:
Нет, одновременно МПУ и этот скетч включать не нужно. Нужно подключить ардуино вместо МПУ. И если при этом ошибку выдает сразу, то надо искать в чем отличие используемых сигналов. Сделай табличку всех задействованных пинов на разьеме, и заполни их состояние перед началом печати (т.е. СЦВМ включи но на печать ничего не отправляй) сначала с подключенным МПУ затем с ардуиной.
Ошибку выдает только после загрузки программы, когда должна начаться печать. Если отключить ардуино, то будет то же самое, т.е. СЦВМ не видит печатную машинку.
Ошибку выдает только после загрузки программы, когда должна начаться печать. Если отключить ардуино, то будет то же самое, т.е. СЦВМ не видит печатную машинку.
То есть отсутствует какой-то важный сигнал. Определить его мы сможем только сравнением. Нужно для всех задействованных пинов разъема получить значения в режиме кода идет печать и когда ничего не подключено и СЦВМ выдала ошибку. Для начала просто измерь напряжения на всех задействованных пинах. Лучше всего сведи эти данные в табличку что-бы было видно напряжение при ошибке и напряжение при печати. Потом некоторые пины возможно придется глядеть осцилографом. Другого пути кроме как понять разницу, я не вижу.
Ошибку выдает только после загрузки программы, когда должна начаться печать. Если отключить ардуино, то будет то же самое, т.е. СЦВМ не видит печатную машинку.
СЦВМ не будет печатать без сигнала ГТВ от МПУ или её заменителя/имитатора. Кстати, в скетче на #182 я этот сигнал не вижу.
Ошибку выдает только после загрузки программы, когда должна начаться печать. Если отключить ардуино, то будет то же самое, т.е. СЦВМ не видит печатную машинку.
СЦВМ не будет печатать без сигнала ГТВ от МПУ или её заменителя/имитатора. Кстати, в скетче на #182 я этот сигнал не вижу.
Про "ГТВ" я писал выше и думаю 61732 все подключил (через резистор на +5 вольт). Но сомнительно что этого достаточно. Скорее всего мы не учли какой-то не документированный сигнал.
Не напрямую, а через резистор 1кОм. Подключить вместе с ардуино (распиновка как для скетча с прерываниями, плюс два дополнительных пина, которые я описал выше). МПУ не подключать.
Если не заработает, снять значения на всех пинах разъема к которым есть подключение внутри МПУ. Затем подключить МПУ запустить печать, и во время печати так же списать все напряжения на используемых пинах. Нужно выявить пин, отвечающий за начальную готовность. По описанию это "АВТ" но так как его нет на разъеме, должен быть какой-то его заменяющий.
Можно уточнюсь, ГТВ подключаю напрямую ко входу +5в через резистор 1к.
на хрена? СКЗИ это читает и видит, что печатка НЕ готова.
RTFM хотя бы сейчас! ясно же тема расписана на уровне школьного кружка - пункты 3.14 и 5.2.2, рисунки 1 и 2.
на данной стадии экспериментов можно приколхозить к пину ардуины диод (шоттки или д9к), катодом к пину(!) и подавать на пин LOW. или вообще этот выход с gnd соединить (хотя это, конечно, хамство).
======
и, может быть, пора уже проверить примечание 1 к 5.4.1 - чтобы сомнений не было?
т.е
void
loop() убрать?
результат 64 мкс. При скорости 230400 кстати больше времени на отправку в буфер : 72 мкс
т.е
void
loop() убрать?
Serial.print(
"Code: "
);
Увеличь скорость до 57600 и приложи начало напечатанного документа.
Хардверный сериал сыпет в буфер. Проблемы только когда буфер переполняется. Именно тогда может теряется информация. Мне не понятно сейчас одно - какой сигнал на осциллограмме, где длительность импульса 6 мкс? По хорошему читать надо только в момент фронта SYNC.
Выглядит красиво. Теперь рядом надо то что в этот момент печаталось.
Попробуй вот этот код:
imp Вы гений. Вся информация пратически, как на чеке, есть неточности но они не на что не влияют. Информация выводится в одной строке. Подскажите, как информацию расположить, как в чеке и вывести в ексель или вворд, лучше конечно в ексель, чтобы потом можно было сохранить и распечатать.
Замените 27 строку на:
Serial
.println(String(buffer));
И про неточности подробнее.
Ноль куда-то убежал. Нижней строки нет. И вместо 0365 число 065.
Попробуй вот этот код, только нужно переключить вход синхроимпульсов с пятого пина на второй.
Imp cпасибо. Но уже только в понедельник отпишусь выходные. Все закрыто. Ещё один вопрос: если отключить от СЦВМ МПУ(которая печатает чек) и оставить на этом шлейфе только ардуино, СЦВМ выдаёт ошибку. Может сигнал ГТВ играет в этом роль.
Ещё ПЧТ, ЗПР, ЗПС и СТП нужно читать или писать. Ну и счетчик до 16 программировать.
В начале когда вводится программа на СЦВМ для проверки сразу выдаёт ошибку что отсутствует устройство. Это должен быть один сигнал,
Сигнал ГТВ один единственный, который в покое имеет 3.8в.
это напряжение формируется в СЦВМ. разъём не подключен - СЦВМ справедливо считает, что печатка не готова.
================
Для начала следует всё же уточнить, в каком режиме вся эта лабуда работает - в минимальном или? (см. примечание 1 к п. 5.4.1.) Заодно проверить, задействована ли линия ВЗВ
==========
Если "запрос-ответ" (я бы рекомендовал выбрать его, даже если сейчас применен минимальный), то пишем программу:
ардуинская программа (АП) при включении должна связаться с программой на компе (ПК);
ПК проверяет готовность принтера, при готовности сообщает об этом АП;
АП выставляет сигнал ГТВ;
дальше смотрим стр. 14 мануала и программируем
после приема 16 символов (или получения сигнала СТП) АП выставляет сигнал ПЧТ и отправляет массив в ПК
ПК печатает строку, сообщает о готовности к приему следующей АП, АП снимает сигнал ПЧТ
АП принимает следующую строку и т.д.
Эти скетчи нужны только для лучшего понимания протокола обмена. Для подключения ардуины вместо печаталки, нужно воспроизвести остальные сигналы. Пока что, судя по эпюрам, для работы на прямую, сигналы "АВТ" должен быть подключен на общий, сигнал "ГТВ" на +5 вольт (на всякий случай через резистор 1к). Сигналы "СМС-К" и "ЗПС" никуда не подключены (у нас нет двигателя, который нужно разгонять). С сигналом "СТП" надо потом разбираться, а пока никуда не подключаем. Сигнал "ИНФ-Б" - понятно куда, остается понять что делатть с "ЗПР" и "ПЧТ". Отсюда план работы:
1. Проверить последний скетч. Если он заработает без сбоев, значит без прерываний не обойтись.
2. Проверить на реальной печаталке сигналы "АВТ" и "ГТВ" во время печати, убедиться что "АВТ" = "0" а "ГТВ" = "1".
3. Двухлучевым осциллографом снять осциллограммы с сигналов "ИНФ-Б" и "ЗПР" во время печати, таким образом, что бы было видна задержка "ЗПР" относительно "ИНФ-Б".
4. Осциллографом измерить длительность сигнала "ПЧТ".
5. Осциллографом в режиме "однократного срабатывания" снять сигнал "СТП" если конечно получится (он может не использоваться).
Эти скетчи нужны только для лучшего понимания протокола обмена. Для подключения ардуины вместо печаталки, нужно воспроизвести остальные сигналы. Пока что, судя по эпюрам, для работы на прямую, сигналы "АВТ" должен быть подключен на общий, сигнал "ГТВ" на +5 вольт (на всякий случай через резистор 1к).
1. Проверить последний скетч. Если он заработает без сбоев, значит без прерываний не обойтись.
2. Проверить на реальной печаталке сигналы "АВТ" и "ГТВ" во время печати, убедиться что "АВТ" = "0" а "ГТВ" = "1".
3. Двухлучевым осциллографом снять осциллограммы с сигналов "ИНФ-Б" и "ЗПР" во время печати, таким образом, что бы было видна задержка "ЗПР" относительно "ИНФ-Б".
4. Осциллографом измерить длительность сигнала "ПЧТ".
5. Осциллографом в режиме "однократного срабатывания" снять сигнал "СТП" если конечно получится (он может не использоваться).
4 - не надо. пока реальный принтер не подключен, можно сформировать ~50 мс.
5 - если в реале бывают строки меньше 16 символом (имхо, бывают)
=======
ну и можно начинать опторазвязки паять.
и я раньще был неправ - уна предпочтительнее, чем нано - у неё разъем юсб намного надежнее.
1. Информация определилась правильно, как на чеке
2. С ГТВ я ошибся нет там 3,8 в. Перед печатью и во время печати 0, но если отключить печатную машинку то вот такая картина
АВТ - такого вывода нет
3. ЗПР и ИНФ-Б
4. ПЧТ
5. СТП - нет вывода.
1. Информация определилась правильно, как на чеке
2. С ГТВ я ошибся нет там 3,8 в. Перед печатью и во время печати 0, но если отключить печатную машинку то вот такая картина
АВТ - такого вывода нет
3. ЗПР и ИНФ-Б
4. ПЧТ
5. СТП - нет вывода.
на рис. 5 мануала 14 сигналов, на табличке 12
разница 2^4 (явно) и АВТ (предположительно).
Нужно как-то привязать в мануалу сигналы "ОШИБКА" и "КР"
"КР" сигнал заглушен.
На разьеме "Ш12" сигнала "АВТ" нету. Сигнал "АВТ" можно взять либо с блока "БС" либо непосредственно с разьема. Осцилограмму "ЗПР" и "ИНФ-Б" сделай с разверткой 1ms.
2. в любом случае необходимо понимание, где у нас какие сигналы из объявленных 14.
2. в любом случае необходимо понимание, где у нас какие сигналы из объявленных 14.
Не спаян на входе печатки.
ЗПР и ИНФ-Б
ЗПС во время печати
Сигнал "АВТ" пока разобраться не могу, Самой схемы на МПУ-16 нет.
Теперь попробуем ардуино вместо печаталки. Подключи третий пин ардуино в качестве "ЗПР" и четвертый пин в качестве "ПЧТ", остальные как было описано выше. Попробуй скетч:
Если отсоединить от МПУ кабель или его выключить, то после ввода программы, когда должна начаться печать СЦВМ выдает ошибку.
Если МПУ включить то:
Нет, одновременно МПУ и этот скетч включать не нужно. Нужно подключить ардуино вместо МПУ. И если при этом ошибку выдает сразу, то надо искать в чем отличие используемых сигналов. Сделай табличку всех задействованных пинов на разьеме, и заполни их состояние перед началом печати (т.е. СЦВМ включи но на печать ничего не отправляй) сначала с подключенным МПУ затем с ардуиной.
Ошибку выдает только после загрузки программы, когда должна начаться печать. Если отключить ардуино, то будет то же самое, т.е. СЦВМ не видит печатную машинку.
А почему Вы не рассматриваете, что это может быть сигнал "не исправность ПЧТ", он сигнатуру выбивает только во время печати.
Но если ардуино и включить СЦВМ его то же не видит. Завтра займусь.
Ошибку выдает только после загрузки программы, когда должна начаться печать. Если отключить ардуино, то будет то же самое, т.е. СЦВМ не видит печатную машинку.
Ошибку выдает только после загрузки программы, когда должна начаться печать. Если отключить ардуино, то будет то же самое, т.е. СЦВМ не видит печатную машинку.
Я наверное тогда лохонулся ГТВ я сейчас не подключал.
Подключи и попробуй. Заработает хорошо, не заработает, сравнивай сигналы.
Можно уточнюсь, ГТВ подключаю напрямую ко входу +5в через резистор 1к.
Не напрямую, а через резистор 1кОм. Подключить вместе с ардуино (распиновка как для скетча с прерываниями, плюс два дополнительных пина, которые я описал выше). МПУ не подключать.
Если не заработает, снять значения на всех пинах разъема к которым есть подключение внутри МПУ. Затем подключить МПУ запустить печать, и во время печати так же списать все напряжения на используемых пинах. Нужно выявить пин, отвечающий за начальную готовность. По описанию это "АВТ" но так как его нет на разъеме, должен быть какой-то его заменяющий.
Не печатает, буду снимать значения.
RTFM хотя бы сейчас! ясно же тема расписана на уровне школьного кружка - пункты 3.14 и 5.2.2, рисунки 1 и 2.
на данной стадии экспериментов можно приколхозить к пину ардуины диод (шоттки или д9к), катодом к пину(!) и подавать на пин LOW. или вообще этот выход с gnd соединить (хотя это, конечно, хамство).
======
и, может быть, пора уже проверить примечание 1 к 5.4.1 - чтобы сомнений не было?
https://www.youtube.com/watch?v=h3a3rhenW5s
Это сигнал ЗПС кинуть на gnd (23 контакт Ш3)?