Arduino и Mustek PowerMust 600

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

Всем привет, имеется Mustek PowerMust 600, в него есть и СОМ порт и USB, после знакомства с замечательным софтом для него Energy Controller 2 вот скрин из программы:

Как ведите мониторит всё, причём более имение нормально, вот задумался а что если мониторить всё параметры при помощи микроконтроллера и LCD дисплея, если подумать логично, как-то же упс отправляет данные ПК, МК думаю с этой задачей справится.

Так как недавно делал программатор Громова для СОМ порта сразу пришла мысль принимать данные по СОМ.

Сразу же полез в гугл и получил такую картинку:

Так, так, тааак.. подумал я, RDX и TXD и GND подключить к дуинке и и "слушать", ах да к чему это я вспомнил о программаторе Громова, там ведь всё довольно просто, диод + делитель напряжения, вот и я думаю таким образом собрать простенькую схемку.

Вопрос, я иду на верном пути?

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

HWman пишет:

Вопрос, я иду на верном пути?

Угу по верному, только зря идеш... в смысле выяснять что тебе ответил УПС в ком порт ты видимо собираешся опытным путем?

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

Угу, по ходу дела буду разгребать.
Сейчас моберу на коленке делитель и попробую подключится к TXD...

maksim
Offline
Зарегистрирован: 12.02.2012

Не выйдет. Даже что бы просто "слушать" и ничего не передавать в СОМ нужно еще инвертировать сигнал. Можно воспользоваться софтовым УАРТом, он позволяет работать с инвертированной логикой. Но не факт что данные идут сами, быть может нужно их запрашивать, тогда без нормального согласования уровней не обойтись. 

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

А может как-то напряму к МК  упса подключится? Наверное звучит глупо...

Вот нашёл схему полного аналога, сейчас буду переваривать...

maksim
Offline
Зарегистрирован: 12.02.2012

Можно. Нужно отключить этот ком-модуль от соновной платы

и подключиться напряму к МК

Но для начала, вы бы скачали какойнить монитор порта, который умеет "прослушивать" порт и посмотрели бы как программа общается с бесперебойником.

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

Итак, отвечает, но отвечает только [00] когда отключаю клему от аккумулятора, в сеть не подключен, ни на какие команды не реагирует

 

 

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

Итак, что успел заметить:

При запуске программы МК упса начинает отправлять по UARTе данные:

Окошко справа - слушаю UART МК упса при помощи дуинки.

Перекину проводки проследив тем самым что программа отсылает МК упса и перезапустив программу увидел следующее:

Подключился по PCB2:

 Её не отключал, боюсь несмогу отсоединить.

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

 

dtvims
Offline
Зарегистрирован: 26.11.2012

Судя по всему Вы что-то подключили не верно или скорость USART`а выбрали не ту. Очивидно, что данных должно быть больше и они должны быть разными, а не одинаковыми. Бывают программные сниферы com-портов прямо под windows, что упростит Вашу задачу.

Попробуйте почитать данную ветку: http://forum.easyelectronics.ru/viewtopic.php?f=9&t=744 - там есть и про снифер и про протокол упсов.

Для согласования уровней проще использовать max232, и доступен, и в разных корпусах есть.

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

Вот удалось у автора программы попросил документацию, блин, вот только нужно опять всё разбирать прикручивать проводки к перемычкам...

 

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

Написал простенький скетч:

void setup() {
  Serial.begin (2400);
}
void loop(){
  Serial.write("Q1 "); // отправляем команду
  Serial.write(0x0A); // переход на новую строчку
  delay(1000);
}

Подключился напрямую к ногам микроконтроллера а он молчит, как партизан. Что же может быть не так? Даже менял местами проводки RX и TX - глухо, как в танке.

maksim
Offline
Зарегистрирован: 12.02.2012

Землю подключить не забыли?

И попробуйте так:

void setup() {
  Serial.begin (2400);
}
void loop(){
  Serial.println("Q1");
  delay(1000);
}

или так:

void setup() {
  Serial.begin (2400);
}
void loop(){
  Serial.print("Q1");
  Serial.write(13);
  delay(1000);
}

 

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

Молчит, я как пёс, слышать слышу а сказать ничего немогу,если же подсоединится по юсб к безперебойнику и запустить программу то видно что она ему отправляет Q1 а он отвечает.

maksim
Offline
Зарегистрирован: 12.02.2012

Так а вы ком-модуль отключили от платы?

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

Никак, он там припаен, боюсь отпаять его не смогу, а подключился к перемычкам на плате, они идут до UART'а МК, земля это минус аккумулятора.

maksim
Offline
Зарегистрирован: 12.02.2012

Ну тогда забудьте о своей затее.

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

Я так понимаю что мне нужно только RXD TXD и землю отпаять, всё другое пускай будет?

maksim
Offline
Зарегистрирован: 12.02.2012

Достаточно отпаять только тот вывод, с которого вы читаете команду Q1 - это RX основной платы и TX ком-модуля, к RX основной платы нужно подключить TX дуины.

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

Возможно когда нибудь спаяю вот такую схемку:

И поиграюсь ещё с бесперебойником...

maksim
Offline
Зарегистрирован: 12.02.2012

Это всего лишь RS232<->TTL преобразователь на оптронах, причем не факт, что заработает при преобразовании из TTL в RS232, так как для этого необходимо двухполярное питание.