реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Новая затея с USB, Организация обмена между внешней памятью AVR и USB через контроллер
Мах
сообщение May 13 2006, 16:56
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 27
Регистрация: 13-01-06
Пользователь №: 13 122



Здравствуйте, возникла необходимость подключить контроллер atmega16 к шине USB.
В общем затея такая: у микроконтроллера, скажем atmega16 есть внешняя память, к примеру at24c256, подключеная по шине I2C, надо все это дело подключить к шине USB таким образом, чтоб устройство инициализировалось как USB носитель информации (вроде флешки), в нашем случае емкостью памяти at24c256. glare.gif

AVR изучаю не так давно, но програмирую в IAR на С :-)
Плиз помогите реализовать затею. unsure.gif

В перспктиве можно добавить MMC карту biggrin.gif a14.gif

P.S. Знаю что тем про USB на форуме много, целый день читал, но подобного не нашел. sad.gif
Go to the top of the page
 
+Quote Post
Alex11
сообщение May 13 2006, 17:03
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 106
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965



Если хочется, чтобы изображала стандартную флешку, то придется реализовывать весь mass storage протокол. Аппаратно - нужно поставить любой нормальный контроллер USB. Простым вариантом, типа FT245 отделаться не удастся.
Go to the top of the page
 
+Quote Post
Мах
сообщение May 13 2006, 17:25
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 27
Регистрация: 13-01-06
Пользователь №: 13 122



Цитата(Alex11 @ May 13 2006, 21:03) *
Если хочется, чтобы изображала стандартную флешку, то придется реализовывать весь mass storage протокол. Аппаратно - нужно поставить любой нормальный контроллер USB. Простым вариантом, типа FT245 отделаться не удастся.



Не обязательно как флешка. Можно добавить ПО со стороны компьютера (если это проще) которая уже по заданным параметрам скопирует данные из внешней памяти.
Go to the top of the page
 
+Quote Post
Proton
сообщение May 14 2006, 08:54
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 185
Регистрация: 3-08-05
Из: Новосибирск
Пользователь №: 7 334



С AVR309 лучше не связываться т.к. там всё написано на ассемблере, поэтому тяжело будет разбираться и переделывать, особенно если до этого писал только на Си. Кроме того используемый там драйвер использует очень кривой способ приёма/передачи данных(кто смотрел его исходники меня поймёт).
Гораздо лучше взять за основу исходники примеров AVR-USB. Там всё более менее понятно написано на Си. Для упрощения программы можно использовать встроенный USB контроллер или драйвер типа FT245. Обязательно изучить описание mass storage протокола, а для верности посмотреть его снифером, типа SnoopyPro с реальной флэшки. Потом будет удобно сравнивать работу своего устройства с эталонным примером(снятым с флэшки).


--------------------
Всяк хорошая мысля к нам приходит опосля.
Go to the top of the page
 
+Quote Post
Dir
сообщение May 14 2006, 21:32
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 201
Регистрация: 6-01-05
Пользователь №: 1 830



Цитата(Мах @ May 13 2006, 19:56) *
AVR изучаю не так давно, но програмирую в IAR на С :-)
Плиз помогите реализовать затею. unsure.gif

В перспктиве можно добавить MMC карту biggrin.gif a14.gif

P.S. Знаю что тем про USB на форуме много, целый день читал, но подобного не нашел. sad.gif


Если хочешь чтобы все получилось быстро, дешево и надежно, советую использовать контроллер USB CP2102 (Silabs) и USBXpress со стороны ПК. Обмен Меги и CP2102 - по UART. CP2102 может обмениваться со скоростью до 1MБод. Самое ценное, что кроме самой CP2102 НИЧЕГО практически не надо, кроме разъема и конденсаторов по питанию. Некоторый минус - корпус MLF. Но это как для кого wink.gif
Если нужна скорость обмена по USB больше 1Мбод, то можно взглянуть на MAX3420. Обмен с этим зверем идет по SPI. Ну или уже упоминаемую FT245. Тут обмен по параллельной шине. В любом служае производитель снабжает софтом и драйверами для ПК. Самому нужно ваять только прикладной уровень.

Еще один вариант - использовать процы типа C8051F326/327 от Silabs в качестве контролера USB. Эти процы с Flash 16кБайт и производительностью 25Мипс стоят менее 3$ (т.е. даже меньше контроллеров). USB-ное Firmware и тот же USBXpress делают разработку устройства очень простым. Вот только тогда вопрос возникает: а зачем нам нужен тогда ATmega16?

Сообщение отредактировал Dir - May 14 2006, 21:46
Go to the top of the page
 
+Quote Post
Мах
сообщение May 15 2006, 18:12
Сообщение #6


Участник
*

Группа: Новичок
Сообщений: 27
Регистрация: 13-01-06
Пользователь №: 13 122



В общем за 3 дня немного ознакомился с USB. Сделал выводы :-)
Чтоб не терять времени и сил, необходимо воспользоваться готовой микросхемкой перехода от USB к интерфейсу мк, скажем к SPI. glare.gif
Отсюда вопрос:Кто с этим уже встречался и у кого есть исходники на С для данного решения?
И посоветуйте недорогой преобразователь USB=>SPI скажем до$3.
Заранее спасибо! biggrin.gif
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 15 2006, 19:30
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Самый простой вариант - FT2232C, но не подойдет для реализации стандартных классов. Еще есть MAX3420E (шибко дорого), USBN9603/04. Если не пугает параллельная шина, я бы рекомендовал PDIUSBD12 - очень достойная вещь с правильной ценой.
Go to the top of the page
 
+Quote Post
Dir
сообщение May 15 2006, 21:28
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 201
Регистрация: 6-01-05
Пользователь №: 1 830



Цитата(aaarrr @ May 15 2006, 22:30) *
Еще есть MAX3420E (шибко дорого).


Ну, на сайте производителя стоит 2,65$/1k. Я бы не сказал, что это шибко wink.gif

http://www.maxim-ic.com/quick_view2.cfm/qv_pk/4751
Go to the top of the page
 
+Quote Post
defunct
сообщение May 16 2006, 00:07
Сообщение #9


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(Мах @ May 15 2006, 21:12) *
И посоветуйте недорогой преобразователь USB=>SPI скажем до$3.
Заранее спасибо! biggrin.gif

А почему именно SPI? UART ведь вроде менее хлопотный ;>
хотя дело ваше, FT232BM и ее клоны, может работать как USB<>UART если использовать ее с драйвером VCP или как DirectIO если не использовать VCP драйвер ;>
Цена, в розницу около $4-5.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 16 2006, 01:45
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата
Ну, на сайте производителя стоит 2,65$/1k. Я бы не сказал, что это шибко

Согласитесь, сайт производителя и магазин за углом - немного разные вещи. У нас он стоит дороже $4.

Филипс тут вне конкуренции: меньше $3 в розницу.
Go to the top of the page
 
+Quote Post
Мах
сообщение May 16 2006, 13:47
Сообщение #11


Участник
*

Группа: Новичок
Сообщений: 27
Регистрация: 13-01-06
Пользователь №: 13 122



Мое внимание пока держится на pdiusbd12.
Что вы думаете относительно совмещения mega128 и pdiusbd12.
Конечно само собой возник вопросы относительно pdiusbd12.
1-й Как подключить физически
2-й С помощью какого интерфейса производится обмен между mega128 и pdiusbd12.
3-й У кого нибудь ест исходники или полезные ссылки на эту тему rolleyes.gif
Go to the top of the page
 
+Quote Post
rezident
сообщение May 16 2006, 14:14
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Мах @ May 16 2006, 19:47) *
Мое внимание пока держится на pdiusbd12.
Что вы думаете относительно совмещения mega128 и pdiusbd12.
Конечно само собой возник вопросы относительно pdiusbd12.
1-й Как подключить физически

Когда непонятно как подключить берется схема Evaluation Kit и изучается с пристрастием smile.gif
Цитата(Мах @ May 16 2006, 19:47) *
2-й С помощью какого интерфейса производится обмен между mega128 и pdiusbd12.

Подобный вопрос сразу наводит на мысль, что вы знаете только название м/с, но не смотрели ни ее описания, ни ее даташита. Не так ли? wink.gif
Цитата(Мах @ May 16 2006, 19:47) *
3-й У кого нибудь ест исходники или полезные ссылки на эту тему rolleyes.gif

Апликухи опять же см. у производителя.
Кстати, чем вам не понравилось решение с FT245 или CP2102? Тем более, что если вам не принципиальна поддержка MassStorage.
Go to the top of the page
 
+Quote Post
drka
сообщение May 17 2006, 03:15
Сообщение #13





Группа: Новичок
Сообщений: 9
Регистрация: 27-10-05
Пользователь №: 10 175



Рассматривая многи варианты реализации, в итоге остановился на USBN9604, т.к. наиболее доступный, весьма недорогой и позволят реализовать все классы USB устройств.

В результате на связке с atmega128 (во второй реализации atmega2560) и NAND Flash от Samsung реализован класс Mass Storage Device. Контроллер неизбежен был, т.к. кроме USB девайс делает очень много дел. + Важна была минимизация себестоимости устройсва. В итоге очень доволен микросхемой USBN.

С USBN работаю по параллельному порту, но т.к. шина общая и для USBN и для внешнего озу атмеги и для NAND Flash, то скорость ОЧЕНЬ мала. В новой схемотехнической реализации на atmega2560 и разнесением памятей и USBN на разные порты контроллера, надеюсь на увеличение скорости.

Все зависит какие объемы и как критично время считывания.... и вобще, что именно планирует делать тредстартер. Ведь информацию прежде чем считывать, необходимо записать в память. Мне пришлось реализовать в своем девайсе поддержку FAT.

Сообщение отредактировал drka - May 17 2006, 03:25
Go to the top of the page
 
+Quote Post
Мах
сообщение May 18 2006, 19:28
Сообщение #14


Участник
*

Группа: Новичок
Сообщений: 27
Регистрация: 13-01-06
Пользователь №: 13 122



После долгих раздумий, было решено выбрать USBN9604 (т.к он есть в моем любимом магазине :-) и на нем можно реализовать Mass Storage Device). + инфа на русском. smile.gif

Кому интересно: http://www.gaw.ru/html.cgi/txt/ic/National...603-4/index.htm

Сообщение отредактировал Мах - May 18 2006, 19:29
Go to the top of the page
 
+Quote Post
lazycamel
сообщение May 19 2006, 07:21
Сообщение #15


Участник
*

Группа: Свой
Сообщений: 48
Регистрация: 5-11-04
Пользователь №: 1 053



Цитата(Мах @ May 18 2006, 22:28) *
После долгих раздумий, было решено выбрать USBN9604 (т.к он есть в моем любимом магазине :-) и на нем можно реализовать Mass Storage Device). + инфа на русском. smile.gif

Кому интересно: http://www.gaw.ru/html.cgi/txt/ic/National...603-4/index.htm


Имхо лучше либо дождаться семейство At90USB, либo уйти от стандартной mass storage в сторону HID например.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 20:28
Рейтинг@Mail.ru


Страница сгенерированна за 0.0152 секунд с 7
ELECTRONIX ©2004-2016