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

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

Привет,

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

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата(Tronix286 @ Jan 13 2015, 01:38) <{POST_SNAPBACK}>
То, что принципиально такое возможно, косвено можно судить по этому проекту: ...

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

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


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

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

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата(Tronix286 @ Jan 12 2015, 23:38) <{POST_SNAPBACK}>
А вот не попадалось ли кому такое же решение для "классического" 8051?
"Классический" - это 12-тактовый с частотой 12 МГц? Для 1-2 тактового AVR на 12 МГц процедура приема вылизана до такта, "классический" 8051 просто не успеет. Совсем. Вы можете проверить сами - в V-USB ассемблера всего-то полсотни команд. Остальное на Си должно перенестись вообще без правок. Впрочем, чтобы понять бесперспективность затеи, достаточно прочитать пару страниц описания V-USB. Но читать документацию - это для слабых.

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

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата(Harbinger @ Jan 13 2015, 10:30) <{POST_SNAPBACK}>
зачем извращаться, если у того же Силабса есть ..... [skip]
P.S. Прошивку по ссылке скачал, на досуге дизассемблирую. Что-то слабо верится, что оно может работать.


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

Цитата(Сергей Борщ @ Jan 13 2015, 10:32) <{POST_SNAPBACK}>
"Классический" - это 12-тактовый с частотой 12 МГц?

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


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

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

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


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

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата(Сергей Борщ @ Jan 13 2015, 09:32) <{POST_SNAPBACK}>
А статья по ссылке - первоапрельская шутка.

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

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

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


Ссылка на сообщение
Поделиться на другие сайты
Молодое поколение оно такое, истории не знает. Среди ламп и ламповых схем USB никак не отыщут. Потом тупо чухают диз для 4К кода. Непонимая, что там скоростная аппаратно-регистровая архитектура нужна. А уж потом кусок софта. Да, многие интерфейсы не учат, по причине того, что не кому преподавать.
Фреймворк электронной советско-российской промышленности сломан и рухнул давно. Взамен ноль и сырьё. Госты тихо постарели и померли. Тут намедни еще один молодой ГОСТ искал на Езернет ( Ethernet...) ... и чёт не нашёл. Удивлялся, узнав что не гоже нам американские военные стандарты передирать.

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

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

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата(Aner @ Jan 13 2015, 21:40) <{POST_SNAPBACK}>
Молодое поколение оно такое, истории не знает. Среди ламп и ламповых схем 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

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата(Tronix286 @ Jan 13 2015, 01:38) <{POST_SNAPBACK}>
Ну все знают, что есть софтовый 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 циклов.

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата(Tronix286 @ Jan 13 2015, 00:38) <{POST_SNAPBACK}>
То, что принципиально такое возможно, косвено можно судить по этому проекту:


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

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация