Hej,
Przerabiam po raz kolejny LCD2USB, tutaj jest pierwsza wersja -> https://www.elektroda.pl/rtvforum/topic1253968.html
Wtedy przebudowałem bibliotekę LCD aby można było używać dowolnych pinów na dowolnych portach, i kilka drobnych zmian. Tym razem robię pod płytkę przewlekaną i znów musiałem wszystkie piny przekonfigurować, ale tym razem włącznie z pinami usb. Wszystko ok po za USB... komputer wywala błąd urządzenia USB...
Oto zmiany jakie poczyniłem dla zmiany pinów USB (zmiana dotyczy całego portu z C na D, linie DATA pozostały na bitach 0 i 1):
W usbconfig.h
na
W main.c
na
oraz
na
Linie DATA+ i DATA- są na pinach TxD i RxD więc z programu usunąłem wszystko co związane z uartem, było tam jakieś debugowanie, nawet chyba nie używane.
Dodaje cały kod w załączniku, a oryginał na dole strony http://www.harbaum.org/till/lcd2usb/index.shtml
Nie wiem, może jakiś głupi błąd robię, męcze się z tym i męcze i już chyba wszystkie możliwe sposoby przetestowałem i nic... będe wdzięczny za jakąś pomoc przy tym
Schemat:
Pozdrawiam
Przerabiam po raz kolejny LCD2USB, tutaj jest pierwsza wersja -> https://www.elektroda.pl/rtvforum/topic1253968.html
Wtedy przebudowałem bibliotekę LCD aby można było używać dowolnych pinów na dowolnych portach, i kilka drobnych zmian. Tym razem robię pod płytkę przewlekaną i znów musiałem wszystkie piny przekonfigurować, ale tym razem włącznie z pinami usb. Wszystko ok po za USB... komputer wywala błąd urządzenia USB...
Oto zmiany jakie poczyniłem dla zmiany pinów USB (zmiana dotyczy całego portu z C na D, linie DATA pozostały na bitach 0 i 1):
W usbconfig.h
#define USB_CFG_IOPORTNAME C
na
#define USB_CFG_IOPORTNAME D
W main.c
#define USBDDR DDRC
#define USB_CFG_IOPORT PORTC
na
#define USBDDR DDRD
#define USB_CFG_IOPORT PORTD
oraz
/* all outputs except INT0 and RxD/TxD */
DDRD = ~(_BV(2) | _BV(1) | _BV(0));
PORTD = 0;
PORTC = 0; /* no pullups on USB pins */
DDRC = ~0; /* output SE0 for USB reset */
/* USB Reset by device only required on Watchdog Reset */
_delay_loop_2(40000); // 10ms
DDRC = ~USBMASK; /* all outputs except USB data */
usbInit();
na
/* all outputs except INT0 and RxD/TxD */
//DDRD = ~(_BV(2) | _BV(1) | _BV(0));
DDRD &= ~_BV(2); /*INT0 wejście*/
DDRD &= ~_BV(1); /*DATA- wejście*/
DDRD |= _BV(0); /*DATA+ wyjście*/
PORTD = 0;
//DDRD = ~0; /* output SE0 for USB reset */
/* USB Reset by device only required on Watchdog Reset */
_delay_loop_2(40000); // 10ms
DDRD = ~USBMASK; /* all outputs except USB data */
usbInit();
Linie DATA+ i DATA- są na pinach TxD i RxD więc z programu usunąłem wszystko co związane z uartem, było tam jakieś debugowanie, nawet chyba nie używane.
Dodaje cały kod w załączniku, a oryginał na dole strony http://www.harbaum.org/till/lcd2usb/index.shtml
Nie wiem, może jakiś głupi błąd robię, męcze się z tym i męcze i już chyba wszystkie możliwe sposoby przetestowałem i nic... będe wdzięczny za jakąś pomoc przy tym
Schemat:
Pozdrawiam