Roostick, что внутри ?

Barny
Offline
Зарегистрирован: 23.01.2015

Приветствую! В 2007 году баловался управлением домашнего робота-пылесоса Roomba. Одним из девайсов управления был мелкий контроллер Roostick. Недавно нашел его в ящике, хочу попробовать его использовать в своих проектах, но проблама в том, что сайт-производитель давно потух и узнать, что истоит внутри пока не понятно. По памяти вроде как Atmega8. Снаружи доступны только пины питания и Rx Dx. Как вообще узнать какой контроллер внутри ? Давно не брал в руки AVR Studio ^-(

Barny
Offline
Зарегистрирован: 23.01.2015

Сорри, девайс называется Mind Control.

Barny
Offline
Зарегистрирован: 23.01.2015

Ух, полазил в вэб архиве. Вот что сохранилось:

http://web.archive.org/web/20061025111332/http://www.elementdirect.com/wiki/tiki-index.php?page=MindControl

Внутри стоит atmega168. Интересно, его можно прошить на загрузчик Arduino ?

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Barny пишет:

Внутри стоит atmega168. Интересно, его можно прошить на загрузчик Arduino ?

Загрузчик можно прошить в любую атмегу, которая поддерживается в Arduino IDE.

Barny
Offline
Зарегистрирован: 23.01.2015

Да тут всего 2 пина торчат из корпуса... Фьюзы явно не на Arduino заточены.

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Загрузчик с фьюзами можно прошить только разобрав девайс и подключившись по ISP. Через UART (RX/TX) загрузчик не шьется.

Barny
Offline
Зарегистрирован: 23.01.2015

Я тут подумал, в принципе мне достаточно всего 2х портов для поекта. Можно не шить туда загрузчик arduino и оставить как есть. Интересно, эти 2 пина они аналоговые или цифровые ?

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Barny пишет:

Интересно, эти 2 пина они аналоговые или цифровые ?

Вы же сами в первом посте написали, что это пины RX/TX. Открываете даташит на ATmega168 и смотрите распиновку:  RX - PD0, TX - PD1. Никаких функций, кроме  RX/TX и PCINT на этих пинах нет. То есть, это цифровые пины с интерфейсом UART и прерываниями PCINT.

Barny
Offline
Зарегистрирован: 23.01.2015

Эх, что же с ним делать. Размеры отлично подходят. Мне нужно считывать наличие аналогового сигнала и выдавать цифровой. Корпус вскрыл, ножки очень мелкие, но думаю подпаяться можно. Его вообще реально переделать под ардуино или только использовать в том виде, в котором есть, но опять-таки подпаяться к двум свободным пинам ?

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Barny пишет:

Его вообще реально переделать под ардуино или только использовать в том виде, в котором есть

Не совсем понимаю, что Вы имеет в виду "переделать под ардуино". Ардуино - это микроконтроллер Atmega, распаянный на плате с некоторой обвязкой. В вашем случае тоже микроконтроллер Atmega распаян на плате. Только плата другая. В этот микроконтроллер точно также можно загружать скетчи из Arduino IDE. Для этого нужен либо программатор, либо ардуиновский загрузчик + USB-UART переходник. 

Но есть важный нюанс: как тактируется микрконтроллер, точнее какова тактовая частота. Это важно для рассчёта задержек (временных интервалов) в скетче и для загрузчика. Реальную тактовую частоту нужно внести в настройки в файле boards.txt. А загрузчик нужно скомпилировать на нужную частоту (ссылка).

Barny пишет:

, но опять-таки подпаяться к двум свободным пинам ?

Да к каким хотите, к таким и подпаивайтьесь.

Barny
Offline
Зарегистрирован: 23.01.2015

Из мертвого сайта производителя:

Technical specifications

  • Crystal frequency: 18.432 MHz
  • Available Flash memory: 7168 words (14336 bytes)
  • RAM memory: 1024 bytes
  • EEPROM memory: 512 bytes
  • Fuse and lock bits are set to their defaults, except as follows:
    • Boot Flash section size = 1024 words (BOOTSZ = 00)
    • Boot Reset vector enabled (BOOTRST = 0)
    • Brown-out detection level at VCC = 4.3V (BODLEVEL = 100)
    • Clock NOT divided by 8 (CKDIV8 = 1)
    • External Crystal Oscillator, Frequency 8- MHz (CKSEL=1111 SUT=11)
    • SPM not allowed to write to the Boot Loader section (BLB1 mode 2, BLB12:11 = 10)
  • Therefore, fuse and lock byte values are:
    • Extended Fuse = 0xF8
    • High Fuse = 0xDC
    • Low Fuse = 0xFF
    • Lock = 0xEF (read as 0x2F by avrdude)
  • Operating voltage: 5.0 VDC

У меня есть USB-UART переходник для этого устройства. Прошу извенить за дикие вопросы, Ардуино испортил своей доступностью... Паяльник в руках держать умею. Есть где-нить инструкция как сделать этот девайс ардуино-совместимым ?

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Barny пишет:

Из мертвого сайта производителя:

  • Crystal frequency: 18.432 MHz

Ага, значит стоит кварц на 18.432 MHz

Barny пишет:

У меня есть USB-UART переходник для этого устройства. Прошу извенить за дикие вопросы, Ардуино испортил своей доступностью... Паяльник в руках держать умею. Есть где-нить инструкция как сделать этот девайс ардуино-совместимым ?

Читайте внимательно то, что я написал выше. Нет такого понятия ардуино-совместимый. Есть микроконтроллер Atmega, в который можно загружать прошивку. Что для этого нужно, я уже писал.

Barny
Offline
Зарегистрирован: 23.01.2015

О, теперь вижу ссылку. Почему-то с телефона она не была видна, или вы дополнили свой комент.

Эту статью уже читал, там используется программатор, которого у меня нет. Где-то встречал, что можно использовать в качестве программатора другой Arduino. 

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Можно, гугли Arduino ISP.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

AtMega 168 в удобном для пайки на любую макетку DIP28 корпусе, даже не в Китае, а родном, российском ЧипДип стоит 320р.

Это равно цене одной бутылки средненькой водки. И программироваться будет сразу, без танцев, причем прямо на бареборде ("втыкалке").

Прекращайте морочить людям голову.

Научить вас программировать загрузчик на нестандартную частоту - стоит сильно дороже, даже если измерять в водке! ;)

Barny
Offline
Зарегистрирован: 23.01.2015

Есть несколько плат свободных, но эта реально очень маленькая. Место установки реально мелкое, практически трубочка. Вот он туда влазиет.

Пока еще не сказали, что не реально залить бутлоадер Arduino, даже наоборот...