* - Fixed Pipe_GetBoundEndpointAddress() returning invalid endpoint directions on AVR8 architecture devices (thanks to decerri)
* under some circumstances
* - Fixed incorrect USB device state set when a suspended LUFA device is woken while addressed but not configured (thanks to Balaji Krishnan)
+ * - Fixed broken USART SPI driver for the AVR8 architecture due to incorrect initialization
+ * - Fixed re-enumeration issue of XMEGA architecture targets (thanks to xjedlins)
* - Library Applications:
* - Added handler for SCSI_CMD_START_STOP_UNIT in demos using the Mass Storage class, to prevent ejection errors on *nix systems due to an
* unknown SCSI command
static inline void SerialSPI_Init(const uint8_t SPIOptions,
const uint32_t BaudRate)
{
- UBRR1 = SERIAL_SPI_UBBRVAL(BaudRate);
+ DDRD |= ((1 << 3) | (1 << 5));
+ PORTD |= (1 << 2);
UCSR1C = ((1 << UMSEL11) | (1 << UMSEL10) | SPIOptions);
UCSR1B = ((1 << TXEN1) | (1 << RXEN1));
- DDRD |= (1 << 3);
- PORTD |= (1 << 2);
+ UBRR1 = SERIAL_SPI_UBBRVAL(BaudRate);
}
/** Turns off the USART driver, disabling and returning used hardware to their default configuration. */
UBRR1 = 0;
- DDRD &= ~(1 << 3);
+ DDRD &= ~((1 << 3) | (1 << 5));
PORTD &= ~(1 << 2);
}
USB_DeviceState = DEVICE_STATE_Default;
USB_Device_ConfigurationNumber = 0;
- USB_Device_SetDeviceAddress(0);
+ USB_Device_EnableDeviceAddress(0);
Endpoint_ClearEndpoints();
Endpoint_ConfigureEndpoint(ENDPOINT_CONTROLEP, EP_TYPE_CONTROL,
<require idref="lufa.platform"/>\r
<require idref="lufa.drivers.peripheral.usart"/>\r
<require idref="lufa.drivers.usb"/>\r
+ <require idref="lufa.drivers.board"/>\r
+ <require idref="lufa.drivers.board.leds"/>\r
<require idref="lufa.drivers.misc.ringbuffer"/>\r
</module>\r
</asf>\r