Arduino, COM порт и проблема "Мухи цэ цэ" очень нужна помощь

Gennady
Offline
Зарегистрирован: 19.12.2012

 

Очень нужна помощь в решении следующего вопроса. 
Грохнулся HDD с важными данными, как показало исслдеование интернета это была довольно распростарненная проблема с HDD этой серии и версией прошивки названая Мухой CC. В двух словах проблема заключается в том, что слеатает прошивка микроконтроллера на диске. Восстанвоить это можно подключившись к диску через Tx Rx. 
В интернете предлагали соорудить конвертор RS-232, но все предложенные схемы были на основе COM порта, котрого волею судьбы на моей материнской плате в явном виде нет. После некоторых поисков я вышел на эту статью  http://habrahabr.ru/post/140289/ , где вместо конвертора предлагали использовать  Arduino. 
Почитав про нее я загорелся этой идеей потому как давно хотел попрактиковаться в чем то подобном но небыло случая и повода, поэтому была куплена Arduino Leonardo. 
Подключить как ее предлагали в этой статье (привожу рисунки для тех кто не хочет ходить по ссылкам) у меня не получилось. Т.е. терминал Putty вообще не видит COM9 под которым у меня инсталлировалась Arduino поэтому я не могу понять то ли проблема с инсталяцией самой Arduino, то ли проблема в соединении ее с HDD. 
Надо также заметить, что при замыкании GRD с RESET как указано на картинке, Arduino вообще пропадает из списка доступных устройств в администрировании, а Putty не видит этот 9COM порт как в незамкнутом так и в замкнутом режиме. 
Поэтому прошу помощи в анализе данной статьи, так как в элеткоронике до позавчерашнего дня я не понимал вообще ничего и о существовании таких устройств просто не подозревал, но данные восстановить очень надо  
Gennady
Offline
Зарегистрирован: 19.12.2012

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

Если вы посмотрите на картинку дуины и прочитаете что написано на дуине, то вам все станет ясно.
Использовать дуину как USB-UART преобразователь в качестве виртуального СОМ-порта можно если на дуине установлена FTDI FT232RL, к таким платам относятся NanoDuemilanoveDiecimila и Mega1280, но никак не Leonardo.

Gennady
Offline
Зарегистрирован: 19.12.2012

Спасибо! Для меня это было не слишком очевидно ибо я очень новичок :) Спасибо еще раз , так как сегдоня ночью впал в маразм и думал что что-то вообще в этой жизни не понимаю. Пока тему закрывать не буду, так как после приобретения одной из плат из этого списка эксперименты продолжатся 

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

Вам в таком случае лучше приобрести просто адаптер

но дело ваше, адаптер потом врядли понадобится, а с дуиной поиграться можно.

И еще раз повторюсь - смотрите не на название платы, а на обязательное наличие FTDI FT232RL, потому как не оригинальные платы могут быть друугими.

Gennady
Offline
Зарегистрирован: 19.12.2012

maksim пишет:

 

И еще раз повторюсь - смотрите не на название платы, а на обязательное наличие FTDI FT232RL, потому как не оригинальные платы могут быть друугими.

Да, я теперь это осознал, просто изначально думал что по функциональности дуины вообще никак не различаются кроме как объемом памяти и количеством разъемов. 

Сейчас наверно на адаптере остановлюсь , на вторую дуину денег нет, в Чип и Дипе дорого а другого магазина под рукой просто нет

leshak
Offline
Зарегистрирован: 29.09.2011

Не торопитесь c покупкой. Можно еще попытатся програмно организовать порт на других пинах и пробрасывать данные на него.

Посмотрите пример идущие в стандартной поставке File/Examples/SoftwareSerial/SoftwareSerialExample - он пробрасывает все что приходит в Serial на 2,3 пины.

Только не забудте скорость подправить под вашу (кажись 38400)

 

leshak
Offline
Зарегистрирован: 29.09.2011

>Сейчас наверно на адаптере остановлюсь

Кстати если "денег нет", то можно посмотреть в сторону кабельков для старых мобилок. CA-42 и DKU-5 и т.п. на prolific чипе. Мне на рынке их удалось по $1.25 найти если брать "пачкой", если нет то $2.

Отрезаем разъем мобилки и имеем конвертер за смешные денги:)  Правда он на 3.3v, а не 5v. Если вашему винту этого не хватит, возможно прийдется еще согласование уровеней организовать http://we.easyelectronics.ru/Shematech/soglasovanie-logicheskih-urovney-5v-i-33v-ustroystv.html

Ну и в нем нет питания (в вашем случае он вроде и не нужен). Только RX,TX и земля. Но если распилить разъем, то тестером его можно найти и вывести (вообщем поменять шнурок с трех-жильного на 4-рех жильный).

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

leshak пишет:

Не торопитесь c покупкой. Можно еще попытатся програмно организовать порт на других пинах и пробрасывать данные на него.

Посмотрите пример идущие в стандартной поставке File/Examples/SoftwareSerial/SoftwareSerialExample - он пробрасывает все что приходит в Serial на 2,3 пины.

Только не забудте скорость подправить под вашу (кажись 38400)

Можно попытаться конечно, убераете провод RESET->GND, на Леонардо останутся те же 0 и 1 выводы, так как у него 2 сериала, это будет выглядеть так:

void setup()  
{
  Serial.begin(38400);
  Serial1.begin(38400);
}

void loop()
{
  if (Serial1.available())
    Serial.write(Serial1.read());
  if (Serial.available())
    Serial1.write(Serial.read());
}

 

Gennady
Offline
Зарегистрирован: 19.12.2012

С кабелем не получится у меня COM порта нетв компьютере. 

А вот попытаться орагнизовать программно - это выход, потому что я только что из ЧИП и ДИПа , там нужных мне компонетов так и не нашли. Буду заказывать , но это время. 

Как я понимаю , данный скейтч после запуска можно использовать с этими двумя пинам Rx Tx , но к диску их надо подключать в обратном порядке т.е. Rx леонарда в Tx диска и наоборот ? 

 

P.S. И как я понимаю после активации такого скетча все манипуляции с диском проводить через встроенный в среду разработки монитор порта ? 

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

Gennady пишет:

Rx леонарда в Tx диска

Да, все верно, потому как в статьях наоборот, так как там используют преобразователь, а не МК.

 

Gennady пишет:

P.S. И как я понимаю после активации такого скетча все манипуляции с диском проводить через встроенный в среду разработки монитор порта ? 

Думаю, что для этого есть какое-то ПО, что бы шить винты.
upd: А там просто команды, тогда можете и сериал-монитор попробовать, в статье предлагают  PuTTY.

leshak
Offline
Зарегистрирован: 29.09.2011

Gennady пишет:

P.S. И как я понимаю после активации такого скетча все манипуляции с диском проводить через встроенный в среду разработки монитор порта ? 

Нет. Стандартынй COM-порт порт он и в африке COM-порт. То что его нет физически - не беда. В системе, благодаря установленыным драйверам, он все равно будет виден как COM-порт.

Работать с ним можно любой терминальной программой. В том числе и теми что перечисленны в статье по вашей ссылке (вообщем дальше "действуем по статье"). 

"встроенный в среду разработки монитор порта" - один из представителей семейства "терминальных програм". Ничего особого "ардуинистого" в нем нет (кроме очень бедного функционала). В IDE встроен просто "что-бы был минимально необходимый" (что-бы новичкам не объяснять "скачайте putty" и т.п.).

leshak
Offline
Зарегистрирован: 29.09.2011

Gennady пишет:

С кабелем не получится у меня COM порта нетв компьютере. 

Возможно. Но не по причине отсуствия COM-порта, а его 3.3v- вольтовости (а может и получится).

Собственно кабель же и нужен для этого. Строго говоря это не "кабель", а именно преобразователь USB->UART. Я же не зря упомнул на "чипе profilink". В разъеме там стоит микруха, дешевый аналог-конкурент FT232RL

Нужно просто загуглить название этих кабельков со словом Arduino

http://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/

http://letsmakerobots.com/node/33342

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

Gennady
Offline
Зарегистрирован: 19.12.2012

leshak пишет:

 

Нет. Стандартынй COM-порт порт он и в африке COM-порт. То что его нет физически - не беда. В системе, благодаря установленыным драйверам, он все равно будет виден как COM-порт.

Работать с ним можно любой терминальной программой. В том числе и теми что перечисленны в статье по вашей ссылке (вообщем дальше "действуем по статье"). 

"встроенный в среду разработки монитор порта" - один из представителей семейства "терминальных програм". Ничего особого "ардуинистого" в нем нет (кроме очень бедного функционала). В IDE встроен просто "что-бы был минимально необходимый" (что-бы новичкам не объяснять "скачайте putty" и т.п.).

[/quote]

Если я Вас правильно понял, теперь (при наличии драйвером COM от дуины) можно перепаять USB кабель в необходимую последовательность Rx Tx GRD ? 

А насчет putty меня просто смутило что он этого порта не видит, когда его в настройках Serial выбираю и нажимаю подключится, но это видимо из за того, что Leonardo находился не в том режиме , т.е. без вышеописанного скетча. 

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

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

Gennady пишет:

теперь (при наличии драйвером COM от дуины) можно перепаять USB кабель в необходимую последовательность Rx Tx GRD ? 

Нет, нельзя.

Gennady
Offline
Зарегистрирован: 19.12.2012

leshak пишет:

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

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

leshak
Offline
Зарегистрирован: 29.09.2011

Gennady пишет:

Если я Вас правильно понял, теперь (при наличии драйвером COM от дуины) можно перепаять USB кабель в необходимую последовательность Rx Tx GRD ? 

Почти.  Не USB кабель, а конкретный кабельки для мобилок содержащие нужный чип. DKU-5 (вряди ли найдете) или CA-42. И драйвера нужны будут не от "ардуины" (на самом деле это драйвера не "для ардуины", а "для FT232 чипа), а именно для этого чипа (proflilic). На одной машине у меня семерка сама опознала и поставила дрова, достаточно было втыкнуть, на другой пришлось искать, скачивать, ставить.

Gennady пишет:

А насчет putty меня просто смутило что он этого порта не видит, когда его в настройках Serial выбираю и нажимаю подключится,

А стандартыный видит? (если нет, то нуно возможно дрова не стоят). Кстати убедитесь что вы стандартный закрыли. Две програмы однорменно не могут открыть один и тот же порт. А иногда вообще лучше закрыть все экземпляры ArduinoIDE. Иногда она подключивает и "не освобождает порт", даже когда Serial монитор закрыт.

Gennady пишет:

но это видимо из за того, что Leonardo находился не в том режиме , т.е. без вышеописанного скетча. 

Да нет там никого собого "режима". Или то что выше, или напутали в настройках (номер порта, скорость, четность и т.п.)

Gennady пишет:

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

Да нет. Вопросы вполне нормальные. Особенно для новичка (и не нужно этого стеснятся. и постоянно упоминать это :). Далеко не каждый бы новичек догадался, что нужно RX,TX местами поменять :)

Gennady
Offline
Зарегистрирован: 19.12.2012

leshak пишет:

Да нет. Вопросы вполне нормальные. Особенно для новичка (и не нужно этого стеснятся. и постоянно упоминать это :). Далеко не каждый бы новичек догадался, что нужно RX,TX местами поменять :)

Кстати о Rx Tx , а куда лучше GRD выводить ? На соответсвующий пин в Leonardo или сразу на GRD на блоке питания ? 

leshak
Offline
Зарегистрирован: 29.09.2011

Gennady пишет:

leshak пишет:

Да нет. Вопросы вполне нормальные. Особенно для новичка (и не нужно этого стеснятся. и постоянно упоминать это :). Далеко не каждый бы новичек догадался, что нужно RX,TX местами поменять :)

Кстати о Rx Tx , а куда лучше GRD выводить ? На соответсвующий пин в Leonardo или сразу на GRD на блоке питания ? 

Если все правильно, то без разницы. GND леонарды и блока питания должны быть соеденены между собой. Возьмите тестер и прозвоните их между собой. Если они не звенят - то странно как у вас леонардо работает.

Так что "это вопрос удоства". Думаю удобней будет к GND пину  леонарды подключать.

А вообще зачем тут блок?  питание от USB вполне хватит ардуине.

Или вы блоком питаете сам винт? Тогда нужно будет на GND-пин дуины от него землю пробросить (либо от блока, либо из разъема винта). Вообщем в итоге: все земли должны быть между собой связаны, а уж к каком порядке, и кого-кому, не очень важно. Можно "от блока к дуине и винту", от "блока к винту, от него к дуине", от блока к дуине, от нее к винту.

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

А причем тут блок питания? Вам нужно организовать связь между дуиной и винтом, а значит нужно соеденить GND дуины с GND винта. Но теоретически, если все это делается на одном компе, то земля у всего будет и так общей.

leshak
Offline
Зарегистрирован: 29.09.2011

leshak пишет:

Или вы блоком питаете сам винт? Тогда нужно будет на GND-пин дуины от него землю пробросить (либо от блока, либо из разъема винта). Вообщем в итоге: все земли должны быть между собой связаны, а уж к каком порядке, и кого-кому, не очень важно. Можно "от блока к дуине и винту", от "блока к винту, от него к дуине", от блока к дуине, от нее к винту.

Если вы взяли землю от блока как в статье (как я понял комповый там используется), то скорее всего у вас уже соеденены земли. Ардуина, через USB уже имеет ту же самую землю (это если винт и дуину вы питаете от одного и того же компьютера)

Gennady
Offline
Зарегистрирован: 19.12.2012

Да, блок питания от самого HDD. Я использую отдельный, чтобы можно было безболезнено подавать на него питание или отключать. 

Gennady
Offline
Зарегистрирован: 19.12.2012

Не могу выразить словами благодарность! 

Все получилось через выше означенный скейтч и аккуратное подключение. Диск успешно стал определятся в БИОСе, после чего я смог подключить его к компьютеру. Запуститься с него мне не удалось, но тем не менее я смог выковорить файл почты pst и без запуска. Теперь почта восстановлена в полном объеме. Еще оаз ОГРОМНОЕ спасибо за участие!

leshak
Offline
Зарегистрирован: 29.09.2011

Люди делятся на две категории: одни уже делают бекапы, другие, пока, не делают.

Надеюсь теперь вы перейдете в первую :)

Смотрите на вещи типа Acronis  (для того и предназначен).

Или хотя-бы DropBox и иже с ними (предназначены для другого, но можно "заточить" и под бекапы).

Gennady
Offline
Зарегистрирован: 19.12.2012

leshak пишет:

Люди делятся на две категории: одни уже делают бекапы, другие, пока, не делают.

Надеюсь теперь вы перейдете в первую :)

Смотрите на вещи типа Acronis  (для того и предназначен).

Или хотя-бы DropBox и иже с ними (предназначены для другого, но можно "заточить" и под бекапы).

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

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

serger
Offline
Зарегистрирован: 01.01.2013

 Купить дуино для ремонта HDD это жесть!

Прочитал эту ветку  и в шоке от того, каким сложным путем пошел автор для подключения COM  к HDD... ))

Но в любом случае молодец, разобрался!

ЗЫ

1. Неужели не проще было купить переходник ком порт - USB и появился бы ком порт.

2. Спаять на max232 преобразователь уровня RS-232 (4 маленьких кондера, микросхема, разъём DB9, макетная плата, проводники, макс.  час работы с паяльником), питается он от самого HDD (5 вольт).  и терминалка  Putty "увидела" бы HDD без дуино..

Но это видимо не интересно, да?

 

leshak
Offline
Зарегистрирован: 29.09.2011

Ну вариант "спаять" - не выдерживает критики. Вам может и проще, а человеку который вообщени никогда не лез в эту область? Вы сказали "макетная плата", а среднему человеку что это "за зверь" - не известно. Я уж не говрю про max232 и RS-232. Понятно что "нагуглить их легко", только вначале нужно знать эти слова. И понимать чем этот max232 занимается, понимать "что вообще нужно получить". Если вы заметили то даже разница (вернее отсуствие) между putty и Serial Monitor была не совсем очевидна. Человек гуглил "как востановить винт", нашел решение - применил. Чуток возникли проблемы - спросил. Все.

Если так подходить, то ардуина бы вообще не существовала. Статьи "ардуина за $3" - тоже находятся "в лет". Толко, как правило, эти "арудина на макетке", делают люди которые уже "основательно в теме". Мне сейчас тоже проще/быстрее прошить камень на макетке. Но только потому что вначалае переплатил, купил готовую и основательно с ней "поигрался". Вначале решается задача "чт-бы как можно быстрее получить результат", а потому уже почастям ищешь "как оптимальней сделать".

Цена - в случае востановления винта зачастую вообще не играет роли. Тем более что разница между "готовый переходник" и "ардуина" - не так уж и велика (а в случае китайцев вообще может стать исчезающе мала). А уж если человек давно присматирвался к ардуине, хотел игрушку, но немного жаба давила, а тут "повод" подвернулся, то пуркуа бы и не па? А ардуине, в дальнейшем можно много применений найти (или продать).

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Согласен. Я свою ардуину купил задорого в России,но я доволен, теперь есть о чем подумать при следующем заказе. Теперь можно и паять и проги писать, "макетка" есть. Вот следующую Ардуину куплю подешевле, но первая цену свою уже отбила, потому что узнал я через неё очень много, нежели бы ждал из Китая месяц или больше.

Tanner
Offline
Зарегистрирован: 17.05.2015

Данная программа не работает :(

Пошел тем же путем что и автор темы, только на ардуино нано, и никак не могу законнектится. А на программку, которую предложил Максим - отвечает 

 

Arduino: 1.6.4 (Windows 7), Плата"Arduino Nano, ATmega328"

 
Изменена опция сборки, пересобираем все
 
_9600.ino: In function 'void setup()':
_9600:4: error: 'Serial1' was not declared in this scope
_9600.ino: In function 'void loop()':
_9600:9: error: 'Serial1' was not declared in this scope
_9600:12: error: 'Serial1' was not declared in this scope
'Serial1' was not declared in this scope
 
  Это сообщение будет содержать больше информации чем
  "Отображать вывод во время компиляции"
  включено в Файл > Настройки
 
maksim
Offline
Зарегистрирован: 12.02.2012

Работает. Читайте внимательнее.

maksim пишет:

... на Леонардо ...

wivelt
Offline
Зарегистрирован: 30.04.2016

Доброе время суток!

Вот набрел на эту статью замечательную.

У меня лежит "LEONARDO" и как раз сломался hdd "Seagete" ST3320613AS.

Прочитал все, но не смог сложить до кучи. Мог бы кто-то в одном сообшении к примеру пошаговую инструкцию сделать?

Буду сам благодарен, да и думаю не только я=)