29.10.2010

SMPReaderUSB - frontend?

Очередной экземпляр SMPReaderUSB благополучно завелся у нового владельца со штатными СМП от МК-90, так что теперь уже точно понятно, что он 100%-но работоспособен не только с моими СМП. 

Снова возник вопрос написания графического UI, хотя бы даже и в виде frontend-а к CLI-утилите, которая сейчас выполняет чтение, запись и замер напряжения батареи. Размышляю про Java - чтобы получилось кроссплатформенно. Все-таки опыт работы с ArduinoIDE и PDE оказал существенное влияние на мое неокрепшее сознание ;) 

Также зреет идея по превращению этого устройства в имитатор СМП, то бишь интерфейс между МК-90 и "большим братом". Страшно подумать, сколько может образов влезть на HDD ;) Впрочем, это самый туманный вопрос - неясно, будет ли успевать low-speed bulk transfer и libusb за тактовой МК-90 - протокол обмена построен так, что картридж в принципе не может попросить притормозить обмен :(  

9 комментариев:

  1. Для этой задачи больше подойдёт микроконтроллер со встроенным USB-интерфейсом, например AT90USB. К нему дополнительно цепляется микросхема RAM, которая используется при работе с МК-90, а по мере необходимости её содержимое закачивается в комп и наоборот.

    То есть как бы не эмулятор СМП, а СМП+ - с дополнительными фичами.

    ОтветитьУдалить
  2. Так если внешнюю RAM прицепить, то можно будет и USB на драйвере Objective Development обойтись, думаю.

    ОтветитьУдалить
  3. Ну, не знаю. По мне так чем быстрее железо работает, тем лучше, поскольку чем медленнее оно работает, тем больше оно тратит моего времени впустую. Ну, и моих денег, конечно, поскольку это ж электроэнергия.

    ОтветитьУдалить
  4. Быстрее? В таком случае неясно, зачем нужен МК90 - почти все современные компьютеры "соображают" - гораздо быстрее.

    Со скоростью работы можно было бы согласиться, но... а вы уверены, что low-speed такой уж медленный? Все-таки 1,5 Мбит/с. На какое абсолютное время ускорится процесс на Full Speed? Гораздо логичнее исключить сам процесс перегонки программы в картридж и делать это сразу в калькулятор.

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

    А то ведь скорость работы устройства связана с мощностью его потребления - в этом случае мы входим в прямое противоречие с максимальной скоростью работы и минимальными затратами на электричество ;)

    ОтветитьУдалить
  5. ДВК в pocket size - это было круто тогда, и это столь же круто на самом деле и сейчас. Хотя бы потому, что в нём есть Basic, и его можно программировать. Что важно - полноценная клавиатура.

    Не думаю, что у этого устройства так уж много более современных аналогов.

    ОтветитьУдалить
  6. Если использовать Arduino вместо СМП, то у него стабильная скорость обмена около 19200 бод. Так что просто физически МК-90 с ним работать откажется.

    Подключить же МК-90 к USB напрямую тоже не получится, поскольку МК-90 в данном случае должен быть хостом, а для компа он slave.

    ОтветитьУдалить
  7. Насчёт электричества и мощности, то на мой взгляд вполне очевидно, что устройство, которое может передавать-принимать информацию со скоростью, например, в несколько мегабод нет смысла использовать в режиме передачи данных со скоростью в несколько килобод.

    Дело в том, что комп, к которому подключается МК-90, потребляет порядка полукиловатта в час. То есть от 8 Вт в минуту. Несложно подсчитать, что чип стоимостью в 10-20 долларов окупится примерно за пару лет, зато удобство его использования - это что называется бесценно.

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

    ОтветитьУдалить
  8. Достойные рассуждения, хотя в отдельных местах в корне неверные (например, насчет скорости "19200 бод" в Arduino ;), но в целом Вы меня убедили!

    Готов оказать всяческое содействие в разработке ридера на AT90USB - в качестве бета-тестера как минимум. Таким образом, Вы получите желаемый Вами девайс, а общественность - еще одно альтернативное устройство. Что скажете?

    ОтветитьУдалить
  9. 19200 - это, если мне память не изменяет, скорость обмена, с которой bootloader Arduino общается с компом через чип FDTI.

    Я пробовал в своих скетчах использовать и большие скорости, но результат не слишком предсказуем - то есть коннект, то только трэш на терминале.

    Если говорить о разработке ридера, то для себя я бы сделал девайс попроще. Насколько я понимаю, МК-90 использует СМП вместо винчестера или кассет магнитофона (по аналогии с БК-0010).

    Соответственно, я бы просто сделал картридж, в который вставляется флэш-карта типа SD с файловой системой FAT, и соответственно, данные хранятся на ней.

    Это решение позволило бы использовать менее навороченный контроллер. Тем более, что их скорее всего потребуется два - один для интерфейса с MK-90, другой для интерфейса с SD-картой.

    Дело в том, что поскольку в контроллерах AVR8 нет DMA, то организовать в одном контроллере приём данных по одному последовательному интерфейсу и передачу их по другому последовательному интерфейсу не получается. Пока одни данные передаются, другие данные теряются.

    ОтветитьУдалить