Zdravím, jako školní práci navrhuji desku, na které je mikročip ATmega2560. U ní je usbasp, které ji umí naprogramovat. Aby s deskou mohl dělat i začátečník, musí to umět i Arduino. Mám takový problém bootloader jde naprogramovat přes usbasp, to funguje, akorát nefunguje přes sériovou linku. Piny co jsou v Arduino\hardware\arduino\bootloaders\stk500v2\stk500boot.c jsou nastaveny na RXD0,TXD0 (PE0,PE1). Já to mám z USB->FTDI-> na TXD1,RXD1 piny (PD3,PD2). V stk500boot.c jsem tedy změnil v definici mega2560 na #elif defined(__AVR_ATmega64__) || defined(__AVR_ATmega128__) || defined(__AVR_ATmega162__) \
|| defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega2561__)
/* ATMega with two USART, use UART0 */
#define UART_BAUD_RATE_LOW UBRR1L
#define UART_STATUS_REG UCSR1A
#define UART_CONTROL_REG UCSR1B
#define UART_ENABLE_TRANSMITTER TXEN1
#define UART_ENABLE_RECEIVER RXEN1
#define UART_TRANSMIT_COMPLETE TXC1
#define UART_RECEIVE_COMPLETE RXC1
#define UART_DATA_REG UDR1
#define UART_DOUBLE_SPEED U2X1
bohužel to asi nestačí. Zkoušel jsem tedy odstranit ovladač COM portu a znova ho nahrát, to taky nefunguje. A když upload běží už hrozně dlouho tak ho vypnu a objeví se klasická hláška
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer
Když naprogramuju mega2560 třeba na čtení sd karty pomocí usbasp a pak dám usb kabel do druhého usb přes FTDI tak to nalezne port COM10 což je správně, pak ho zaškrtnu v Arduinu, ale bohužel Serial Monitor je prázdný :/. Takže shrnutí: potřebuji rozběhat programování po sériové lince a tím tak umožnit zobrazování komunikace v Serial Monitoru. Děkuji předem za každou radu a pomoc.