[an error occurred while processing this directive]
|
Решил я намедни с USB поиграться. Под это дело фирма прикупила партию чипов FT245, но по моему недосмотру :( это оказались чипы с буквой А. Ладно, дело житейское, вроде бы они тоже работают, вобщем, спаял тестовую плату с этим чипом и контроллером, без всяких извратов, все как в datasheet описано. Комп этот дивайс видит, драйвера все становятся, EEPROM программируется, виртуальный порт появляется, а дальше затык. Нога ТХЕ стоит всегда в 1, т.е. в комп ничего не пошлешь. RXF нормально отрабатывает приход байта, но с шины данных при этом стабильно читается 0b11101011 вместо посылаемого байта. Может ли кто-то подсказать, где ошибка - в чипе, в драйверах или в ДНК?
Вот кусок исходника для AVR - ноги задействованы так:
PORTB - шина данных
D3 - RXF
D4 - TXE
D5 - WR
D6 - RD
ldi tmp, 0
out DDRB, tmp
out PORTB, tmp
ldi tmp, 0b01110000
out DDRD, tmp
ldi tmp, 0b01100000
out PORTD, tmp
[...]
loop:
sbic PIND, 2
rjmp loop
cbi PORTD, 5
DELAY
in char_i, PINB
sbi PORTD, 5
lll:
sbis PIND,2
rjmp lll
sbi PORTD, 4
out PORTB, char_i
out UDR, char_i
ldi tmp, 0xFF
out DDRB, tmp
DELAY
cbi PORTD, 4
ldi tmp, 0
out DDRB, tmp
out PORTB, tmp
rjmp loop
E-mail: info@telesys.ru