Перейти к содержанию
    

"Классический" 8051 (АТ89С51) и софтовый USB 1.1?

Привет,

 

Ну все знают, что есть софтовый USB для AVR (V-USB). Есть аналог и для PIC16F (16fusb). Есть попытки и для MSP430 (Mecrimus-B ). А вот не попадалось ли кому такое же решение для "классического" 8051? В смысле, исходников. То, что принципиально такое возможно, косвено можно судить по этому проекту: http://www.cqham.ru/usb-hdd.htm (к сожалению, без исходных кодов).

Изменено пользователем Tronix286

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

То, что принципиально такое возможно, косвено можно судить по этому проекту: ...

No comments. Начну с того, что Mass-Storage, согласно спецификации, реализуем на скоростях не ниже FS. А еще добавлю, что даже на ujhfplj более быстром AVR программный USB выглядит попыткой сэкономить на грузовике и возить кирпичи на Жигулях. Хорошо все равно не получится, так стоит ли тратить время и силы ? И это еще при том, что давно уже есть 8051 с аппаратным USB - движком (например, те же AT89C5131) ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Про "классику" с 12 тактами на МЦ сразу забываем - понадобится тактовая частота этак 150 МГц.

Можно попытаться вытянуть аналог V-USB на однотактовых ядрах (CIP-51, MPC82, AT89LP...) при тактовой частоте от 16 МГц - но разве что из спортивного интереса; зачем извращаться, если у того же Силабса есть валом чипов с аппаратным USB по вполне вменяемым ценам?

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А вот не попадалось ли кому такое же решение для "классического" 8051?
"Классический" - это 12-тактовый с частотой 12 МГц? Для 1-2 тактового AVR на 12 МГц процедура приема вылизана до такта, "классический" 8051 просто не успеет. Совсем. Вы можете проверить сами - в V-USB ассемблера всего-то полсотни команд. Остальное на Си должно перенестись вообще без правок. Впрочем, чтобы понять бесперспективность затеи, достаточно прочитать пару страниц описания V-USB. Но читать документацию - это для слабых.

 

А статья по ссылке - первоапрельская шутка.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

зачем извращаться, если у того же Силабса есть ..... [skip]

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

 

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

 

"Классический" - это 12-тактовый с частотой 12 МГц?

 

А статья по ссылке - первоапрельская шутка.

 

Классический, это хотя бы тот флеш атмеловеский AT80C51, который в статье. Я не очень с 8051, поэтому собственно и обратился в этот раздел к людям, работающих с этими камнями. Вдруг во времена нелегких советско-российских 90-хх кто-то тоже поднимал на сабжах USB, так как выбора не было?

 

Дизассемблить 4кб кода - мне кажется слишком трудно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Во времена (90-х годов) ламп, транзисторов, ИК580 (Intel8080, Z80) как то про USB ничего не писали, ни кто не делал такого. Почему?

Историю создания стандарта USB для начала не пробовали копнуть в инете?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А статья по ссылке - первоапрельская шутка.

Тем более интересно, чего там в коде нашутили. :)

 

P.S. В конце 90-х в USB было просто нечего включать, да и не на всякой материнке сия шина присутствовала.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Молодое поколение оно такое, истории не знает. Среди ламп и ламповых схем USB никак не отыщут. Потом тупо чухают диз для 4К кода. Непонимая, что там скоростная аппаратно-регистровая архитектура нужна. А уж потом кусок софта. Да, многие интерфейсы не учат, по причине того, что не кому преподавать.

Фреймворк электронной советско-российской промышленности сломан и рухнул давно. Взамен ноль и сырьё. Госты тихо постарели и померли. Тут намедни еще один молодой ГОСТ искал на Езернет ( Ethernet...) ... и чёт не нашёл. Удивлялся, узнав что не гоже нам американские военные стандарты передирать.

 

Частники наконец дозарабатывались на нефте и газе. В китае спасение. На сегодня USB первой версии, как и AVRы превратились в ископаемые. Так что, тот кто этим будет заниматься знайте: вы занимаетесь интерфейсно-микропроцессорной археологией. И электронные мусорки ваш удел. Позанимались с USB для AVR недельку не более. Все стоп. Смотрим, что у китайцев, ARMы USB2/USB3 ... уже не догнать. Начинаем ползти, двигатся, ... не догоним, ... но хоть немного согреетесь - говорят китайцы.

 

С Новым Старым годом! всех читающих это.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Молодое поколение оно такое, истории не знает. Среди ламп и ламповых схем USB никак не отыщут. Потом тупо чухают диз для 4К кода. Непонимая, что там скоростная аппаратно-регистровая архитектура нужна.

 

Молодое может быть и не знает истории, но хотя-бы интересуется. Согласитесь, что уже хотя бы это (интерес) не плохо. Ну промахнулся я с 90-ми, но позвольте, и вы тоже с лампами тогда промазали, причем похлеще меня. 4Кб кода незнакомой архитектуры - да, мне кажется много. Даже для родного и близкого мне x86 ассемблера - это прилично, хотя читать (а когда то, давным-давно, и писать) могу без словаря.

 

Чем вас так задела эта тема? Я прекрасно понимаю, что практического применения у сабжа нет. Я же написал, что интерес чисто спортивной, вашими словами - цифровая археология.

 

Примерно такие матерые дедушки эмбедеры тоже лет 7-8 назад твердили, что на PIC16F не может быть USB потому что такого быть не может, и что система команд ущербная, и частота никакая, и практически ваши слова один в один повторяли. А потом чувак взял и сделал, принял вызов, так сказать. Конечно пришлось идти на кучу ухищрений и не стандартных решений, разгона частоты с дефолтных 20МГц до 24МГц. Но сделал, и оно прекрасно работает. Вот я сам на прошлой неделе нашел у себя давно валявшийся PIC16F628A и сделал на нем музыкальную USB-безделушку за пару вечеров. Чисто для себя, ради забавы. Все работает, песенки поет и теплыми ламповыми DIP-корпусами поблескивает.

 

Конечно, находясь в здравом рассудке, никуда в продакшен я такое не потащу. Конечно там ARMы. Конечно там USB3. Разве я с этим спорю?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хотя да, если верить какому-то даташиту на 8051, который нашел, то простая команда у него при 12Мгц выполняется за 1мкс. По спецификации USB 1.1 low speed один бит передается за 666,7нс. То есть даже не успеет бит обработать, не говоря уже о том, что бы еще параллельно поймать конец пакета (когда D+ и D- в нуле). В принципе, конец пакета можно и не ловить, а разбирать с начала пакета, скажем первые 88 бит, а дальше переходить уже на декодинг... Но, черт возьми, действительно не укладывается даже на декодинг одного бита по времени.

 

Действительно, проект по первой ссылке, кажется теперь и мне сомнительным. Хотя, может у 89C51 какой-нибудь множитель можно x2 включить, или время выполнения команд другое. Не могу на него нормальный даташит найти, попадается только краткий. Да хотя какое - другое, ну максимум что сделали - однотактовые команды все, то есть та же микросекунда на все про все.

 

Возможно в схеме ошибка, и камень тактуется от 24MHz кварца - тут уже разговор другой.

Изменено пользователем Tronix286

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну все знают, что есть софтовый USB для AVR (V-USB). Есть аналог и для PIC16F (16fusb). Есть попытки и для MSP430 (Mecrimus-B ). А вот не попадалось ли кому такое же решение для "классического" 8051?

самый главный вопрос: ЗАЧЕМ городить софтовый USB на "ржавом ведре", если есть Silabs с двухтактным ядром 51 и замечательной библиотекой для работы с USB? Если нужен именно режим FS, то силабс-самое то. Если HS и 51, то Cypress FX2.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У более поздних версих AT есть внутренний множитель на 2 и внешний кварц может стоять до 24 МГц. Итого 4 МГц частота ядра. С таким железом уже можно "извращаться".

Но все равно сомнительно - поскольку за один такт (ядра не генератора) выполняется не очень большой набор команд, большинство требует 2-3 циклов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

То, что принципиально такое возможно, косвено можно судить по этому проекту:

 

8051 на 12!!! Мгц, плюс еще работа с винтом по иде.... Мммда, либо программист ГЕНИЙ, но судя по этому"Контроллер проверен с несколькими дисководами... " я уже ничему не удивлен :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...