На днях разбирался с неким устройством на ATmega128, с целью превращения в Arduino-совместимую платформу.
Но поскольку на нем нет ни COM, ни, тем более, USB-портов, решил использовать свой же собственный USB-TTL конвертер. И все бы хорошо, если бы не пару но:
1. Автосброс - очень удобная вещь, а я не вывел наружу сигнал DTR и тем самым обрек себя на ручной сброс при загрузке каждого нового скетча;
2. Нет резисторов 1К, которые включены последовательно в линии Rx и Tx. Так надежнее, особенно если в скетче есть вероятность манипулирования этими пинами.
Родилась идея создать новую версию переходника с исправлением этих мелких недостатков:
По-прежнему получилось обойтись лишь одной SMD-перемычкой 1206, удлиннив корпус на несколько миллиметров:
Попутно поправил размер контактных площадок - если кто-то уже пробовал изготавливать эту плату, наверняка заклеймил меня нехорошим словом при сверлении отверстий под светодиоды и разъем USB. Хочу принести им свои заочные извинения ;)
Испытания нового экземпляра прошли успешно.
Скачать файл проекта USB-TTL v.3 (лицензия CC-SA).
Внутри вы найдете файлы:
UPD: по поводу "моей любви к огромному USB-разъему"
Но поскольку на нем нет ни COM, ни, тем более, USB-портов, решил использовать свой же собственный USB-TTL конвертер. И все бы хорошо, если бы не пару но:
1. Автосброс - очень удобная вещь, а я не вывел наружу сигнал DTR и тем самым обрек себя на ручной сброс при загрузке каждого нового скетча;
2. Нет резисторов 1К, которые включены последовательно в линии Rx и Tx. Так надежнее, особенно если в скетче есть вероятность манипулирования этими пинами.
Родилась идея создать новую версию переходника с исправлением этих мелких недостатков:
По-прежнему получилось обойтись лишь одной SMD-перемычкой 1206, удлиннив корпус на несколько миллиметров:
Part Value Device Package C1 100n C-EUC0805 C0805 C2 100n C-EUC0805 C0805 C3 100n C-EUC0805 C0805 FUSE 500mA L-EUL1812 L1812 IC1 FT232RL FT232RL SSOP28 JP1 PWR JP1E JP1 JP2 PINHD-1X5 1X05 LED1 TX LED3MM LED3MM LED2 RX LED3MM LED3MM R1 330 R-EU_R0805 R0805 R2 330 R-EU_R0805 R0805 R3 0 R-EU_M1206 M1206 R4 1K R-EU_M0805 M0805 R5 1K R-EU_M1206 M1206 X1 USB PN61729-S PN61729-S
Попутно поправил размер контактных площадок - если кто-то уже пробовал изготавливать эту плату, наверняка заклеймил меня нехорошим словом при сверлении отверстий под светодиоды и разъем USB. Хочу принести им свои заочные извинения ;)
Испытания нового экземпляра прошли успешно.
Скачать файл проекта USB-TTL v.3 (лицензия CC-SA).
Внутри вы найдете файлы:
- со схемой и печатной платой в формате CAD Eagle;
- для изготовления одной платы по ЛУТ-технологии, в формате EPS;
- для печати сразу нескольких заготовок на одном листе (для экономии бумаги) - в формате GIMP.
UPD: по поводу "моей любви к огромному USB-разъему"
Интересно, откуда такая любовь к этому огромному USB-B разъему? Почему бы не mini-USB? А в идеале я как разберусь хоть с каким-нибудь CAD софтом (пока что всё на макетках колхозю) сделаю плату под толстый текстолит, чтобы USB контакты были прямо на ней (чтобы саму плату в USB разъем можно было бы вставлять)
ОтветитьУдалитьДействительно. А почему вообще не micro-USB? Классный разъем, и главное - очень компактный!
ОтветитьУдалитьВ СтикДуино - http://spiffie.org/kits/stickduino/start.shtml USB-вилка тип "А", "прорисована" прямо на плате. Единственное неудобство - ограничение на длину линий TTL от микросхемы FTDI, к тому же, желательно поставить на эти линии фербиды - http://www.murata.com/emc/example/d_4/dvd_2.html - для защиты от помех.
ОтветитьУдалитьздравствуйте!подскажите пожалуйста,как сделать на выходах 0,1,2,3 такой сигнал как на обведенной картинке ?
ОтветитьУдалитьhttp://s59.radikal.ru/i166/1002/c3/5aa5af1ce690.png
это для вот такого творения :)
http://www.cncmasterkit.ru/modules.php?name=Forums&file=viewtopic&p=7710#7710
прошу прощения за глупый вопрос - выходы 0,1,2,3 - это выходы ЧЕГО?
ОтветитьУдалитьпростите!так сейчас выглядит,я не знаю как сделать перекрывающиеся импульсы
ОтветитьУдалитьvoid setup() {
pinMode(0, OUTPUT);
pinMode(1, OUTPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
}
void loop()
{
digitalWrite(0, HIGH);
delay(50);
digitalWrite(0, LOW);
digitalWrite(1, HIGH);
delay(50);
digitalWrite(1, LOW);
digitalWrite(2, HIGH);
delay(50);
digitalWrite(2, LOW);
digitalWrite(3, HIGH);
delay(50);
digitalWrite(3, LOW);
}
Если я ничего не перепутал, то должно быть так:
ОтветитьУдалитьvoid setup() {
pinMode(0, OUTPUT);
pinMode(1, OUTPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
digitalWrite(0,HIGH);
digitalWrite(1,LOW);
digitalWrite(2,LOW);
digitalWrite(3,HIGH);
}
void loop()
{
delay(50);
digitalWrite(1, HIGH);
digitalWrite(3, LOW);
delay(50);
digitalWrite(0, LOW);
digitalWrite(2, HIGH);
delay(50);
digitalWrite(1, LOW);
digitalWrite(3, HIGH);
delay(50);
digitalWrite(0, HIGH);
digitalWrite(2, LOW);
}
а ведь и правда перепутал,спасибо! :)сейчас все ок :)
ОтветитьУдалитьа если подвинуть разъем питания и сигнальный на те места как они расположены на бредбоард, использовать мини usb и smd светики - то Фтыкать сей девайс можно будет прямо в макетку а не колхозить на проводах.
ОтветитьУдалитьДа, полностью согласен! Я с удовольствием размещу здесь ссылку на производные от моей работы, содержащие любые усовершенствования.
ОтветитьУдалитьбудем ждать плату с usb-mini ;)
ОтветитьУдалитьА как работает автосброс, а то у меня он отказывается...
ОтветитьУдалитьПеред заливкой скетча в Arduino IDE дергается DTR. Только он должен быть подключен к RESET-у, разумеется ;)
ОтветитьУдалитьРаботает только первый раз, дальше постоянно низкий уровень DTR (не возвращается на высокий), как у вас то это работет? Я где-то читал, что Arduino IDE для такого не пропатчен и используется RTS вместо DTR. Это так?
ОтветитьУдалитьПервый раз про такое слышу - у меня все нормально работает.
ОтветитьУдалитьПо сути, схема переходника ничем не отличается от схемы моста на Arduino.
А вот про RTS - на схеме Duemilanova есть ненапаянный резюк 10К R2, между RTS и reset. Но что они этим хотели сказать - ума не приложу...
А какая у вас версия Arduino IDE и avrdude в ней?
ОтветитьУдалитьПотому что мой баг описан вот здесь:
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1251415313
А решение якобы здесь:
http://code.google.com/p/arduino/issues/detail?id=106