|
Библиотеки для USB, Нужно сделать устройство к которому можно подключать USB flash память |
|
|
|
Sep 4 2008, 12:31
|
Участник

Группа: Новичок
Сообщений: 34
Регистрация: 22-09-06
Из: Беларусь
Пользователь №: 20 595

|
Нужно сделать устройство к которому можно подключать USB flash память. Микроконтроллер LPC2388 с usb host внутри. Но ходят слухи что реализация поддержки USB flash довольно сложная штука. Может кто-нибудь реализовывал подобное. Может у кого есть библиотеки котоырми он может поделиться или ссылки.
|
|
|
|
|
Sep 18 2008, 16:06
|
Участник

Группа: Участник
Сообщений: 39
Регистрация: 1-11-06
Пользователь №: 21 855

|
У Микрочипа несколько апнот и с СД картой и флэшкой. Под PIC24 и PIC32 с USB OTG
|
|
|
|
|
Sep 19 2008, 04:06
|

Частый гость
 
Группа: Свой
Сообщений: 197
Регистрация: 6-08-05
Пользователь №: 7 409

|
Цитата(torik @ Sep 16 2008, 11:53)  А SD-карточку проще? Как с ней вообще работать-то? С сд картой конечно же проще. Работать с ней через SPI интерфес, если нужно могу скинуть исходники работы с картой на PIC'е Чегото на пик найти немогу вот мой вариант работы на авр с карточкой MMC CODE .device AT90S2313
;***** I/O Register Definitions .equ SREG =$3f .equ SPL =$3d .equ GIMSK =$3b .equ GIFR =$3a .equ TIMSK =$39 .equ TIFR =$38 .equ MCUCR =$35 .equ TCCR0 =$33 .equ TCNT0 =$32 .equ TCCR1A =$2f .equ TCCR1B =$2e .equ TCNT1H =$2d .equ TCNT1L =$2c .equ OCR1AH =$2b .equ OCR1AL =$2a .equ ICR1H =$25 .equ ICR1L =$24 .equ WDTCR =$21 .equ EEAR =$1e .equ EEARL =$1e .equ EEDR =$1d .equ EECR =$1c .equ PORTB =$18 .equ DDRB =$17 .equ PINB =$16 .equ PORTD =$12 .equ DDRD =$11 .equ PIND =$10
.def temp = r16 .def byte = r17 .def byte_read = r18
.def arg0 = r19 .def arg1 = r20 .def arg2 = r21 .def arg3 = r22 .def crc7 = r23 .def errmmc = r23 .def cmd = r24
.equ clk =0 .equ do =2 .equ di =1 .equ cs =3
.cseg ; CODE segment.
.org 0 rjmp init ;Reset reti ;INT 0 reti ;Pin Change reti ;Output compare reti ;Timer 1 reti ;Timer 0 reti ;EEPROM ready reti ;Analog Comparator
;Main Routine init: ldi r16, $DF out SPL, r16 rcall PORT_SETUP rcall MMC_RESSET
ldi cmd, 16 ldi arg0, $0 ldi arg1, $0 ldi arg2, $02 ldi arg3, $0 ser crc7 rcall MMC_CMD
rcall MMC_CLK_FF
ldi cmd, 17 clr arg0 clr arg1 ldi arg2, $02 clr arg3 ser crc7 rcall MMC_CMD rcall MMC_CLK_FF rcall MMC_CLK_FF cpi byte_read, $fe brne end_er
ldi temp, 0 READMMC: rcall SPI_SEND_FF dec temp brne READMMC READMMC_1: rcall SPI_SEND_FF dec temp brne READMMC_1
; rcall MMC_CLK_FF ;
; ldi cmd, 16 ; ldi arg0, $0 ; ldi arg1, $0 ; ldi arg2, $02 ; ldi arg3, $0 ; ser crc7 ; rcall MMC_CMD ; ; rcall MMC_CLK_FF ; ; ldi cmd, 24 ; ldi arg0, $0 ; ldi arg1, $0 ; ldi arg2, $0 ; ldi arg3, $0 ; ser crc7 ; rcall MMC_CMD ; rcall MMC_CLK_FF ; cpi byte_read, $FF ; breq end_er ; ; rcall SPI_SEND_FF ; rcall SPI_SEND_FF ; ldi byte, $FE ; rcall SPI_SEND ; ; clr temp ; clr byte ;MET: ; rcall SPI_SEND ; inc byte ; dec temp ; brne MET ; ; clr temp ;MET1: ; rcall SPI_SEND ; inc byte ; dec temp ; brne MET1 ; ; rcall MMC_CLK_FF ; rcall MMC_CLK_FF ; andi byte_read, $1F ; ; out PORTB, byte_read
LOOP: rjmp LOOP
end_er: sbi PORTB, 0 rjmp end_er
end_OK: sbi PORTB, 7 rjmp end_OK
PORT_SETUP: push r16 clr r16 out PORTD, r16 out PORTB, r16 out DDRB, r16 ldi r16, $0D out DDRD, r16 pop r16 ret
MMC_CMD: push temp push byte
mov byte, cmd ori byte, $40 rcall SPI_SEND
mov byte, arg0 rcall SPI_SEND
mov byte, arg1 rcall SPI_SEND
mov byte, arg2 rcall SPI_SEND
mov byte, arg3 rcall SPI_SEND
mov byte, crc7 rcall SPI_SEND
pop byte pop temp ret
MMC_CLK_FF: push temp ldi temp, $FF rjmp MMC_CLK_1 MMC_CLK: push temp ldi temp, $10 MMC_CLK_1: rcall SPI_SEND_FF cpi byte_read, $FF brne MMC_CLk_2 dec temp brne MMC_CLk_1 MMC_CLK_2: pop temp ret
MMC_RESSET: push byte push temp rcall SPI_CS_1 ldi temp, $10 MMC_RESSET_1: rcall SPI_SEND_FF dec temp brne MMC_RESSET_1 rcall SPI_CS_0
ldi cmd, 0 clr arg0 clr arg1 clr arg2 clr arg3 ldi crc7, $95 rcall MMC_CMD
ldi temp, $10 MMC_RESSET_2: rcall SPI_SEND_FF cpi byte_read, $FF brne MMC_RESSET_3 dec temp brne MMC_RESSET_2 ldi temp, $FF MMC_RESSET_3: dec temp breq MMC_RESSET_4 ldi cmd, 1 clr arg0 clr arg1 clr arg2 clr arg3 ser crc7 rcall MMC_CMD rcall MMC_CLK_FF cpi byte_read, $00 brne MMC_RESSET_3 MMC_RESSET_4: ; rcall MMC_CLK
pop temp pop byte ret
SPI_SEND_FF: push r16 push byte
ldi r16, $08 ldi byte, $FF rjmp SPI_SEND_1 SPI_SEND: push r16 push byte
ldi r16, $08 SPI_SEND_1: cbi PORTD, clk cbi PORTD, do sbrc byte, 7 sbi PORTD, do sbi PORTD, clk rol byte
lsl byte_read sbic PIND, di ori byte_read, 1
dec r16 brne SPI_SEND_1
cbi PORTD, clk sbi PORTD, do
pop byte pop r16 ret
SPI_CS_0: cbi PORTD, cs ret
SPI_CS_1: sbi PORTD, cs ret
Сообщение отредактировал zltigo - Sep 22 2008, 20:30
|
|
|
|
|
Sep 19 2008, 07:46
|
Участник

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

|
Началось все с ARM'а, прошло через PIC'и и закончилось AVR'ом По теме: если нет времени напрягать мозги, можно напрячь кошелек, готовые решения уже есть. Кстати, а что за операционку собираетесь использовать ?
|
|
|
|
|
Sep 22 2008, 16:26
|
Группа: Новичок
Сообщений: 1
Регистрация: 21-08-08
Пользователь №: 39 734

|
Цитата(Kuzmi4 @ Sep 19 2008, 11:15)  Кому интересно могу выложить Выложи, если не затруднит, есть желание разобраться..
|
|
|
|
|
Oct 1 2008, 08:17
|
Участник

Группа: Новичок
Сообщений: 34
Регистрация: 22-09-06
Из: Беларусь
Пользователь №: 20 595

|
Так что по поводу usb-host и поддержка usb flash? Кто - нибудь сталкивался? Пока использование операционной системы не предполагается.
|
|
|
|
|
Oct 4 2008, 17:54
|
Участник

Группа: Участник
Сообщений: 39
Регистрация: 1-11-06
Пользователь №: 21 855

|
Цитата(Androliz @ Oct 1 2008, 11:17)  Так что по поводу usb-host и поддержка usb flash? Кто - нибудь сталкивался? Пока использование операционной системы не предполагается. см ссылку
|
|
|
|
|
Nov 13 2008, 10:23
|
Группа: Новичок
Сообщений: 3
Регистрация: 13-11-08
Пользователь №: 41 590

|
Здравствуйте, товарищи! Вижу что форум у Вас полезный очень, однако решил отписать по причине следующей: Стоит задача подцепить к AT90USB128 сканер штрих кода, только вот он имеет USB интерфейс. Сам контроллер умеет работать хостом, иначе со сканером делать нечего. Сами понимаете руками писать обмен данными по USB можно свихнуться или как минимум потратить просто кучу времени. Я посмотрел ссылки - там указана библиотека под ПИКи, по видимому замечательная, нет ли чего такого же под АВР, я перекопал инет, но нашел только софтварные дрова, причем работающие только в режиме девайс, а мне как видите надо хоста сделать. Хелп плиз если кто что знает!
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|