add default CFG_TUH_MAX3421 = 0, default spi speed for samd21/samd51 to 12Mhz

This commit is contained in:
hathach 2023-09-18 22:15:31 +07:00
parent 46f7cf4da2
commit 81cd995108
No known key found for this signature in database
GPG Key ID: F5D50C6D51D17CBA
4 changed files with 25 additions and 13 deletions

View File

@ -269,7 +269,8 @@ uint32_t board_millis(void) {
static void max3421_init(void) {
//------------- SPI Init -------------//
uint32_t const baudrate = 4000000u;
// MAX3421E max SPI clock is 26MHz however SAMD can only work reliably at 12 Mhz
uint32_t const baudrate = 12000000u;
// Enable the APB clock for SERCOM
PM->APBCMASK.reg |= 1u << (PM_APBCMASK_SERCOM0_Pos + MAX3421_SERCOM_ID);

View File

@ -183,7 +183,9 @@ uint32_t board_millis(void) {
static void max3421_init(void) {
//------------- SPI Init -------------//
uint32_t const baudrate = 4000000u;
// MAX3421E max SPI clock is 26MHz however SAMD can only work reliably at 12 Mhz
uint32_t const baudrate = 12000000u;
struct {
volatile uint32_t *mck_apb;
@ -229,7 +231,12 @@ static void max3421_init(void) {
while (sercom->SPI.SYNCBUSY.bit.CTRLB == 1);
// Set the baud rate
sercom->SPI.BAUD.reg = (uint8_t) (SystemCoreClock / (2 * baudrate) - 1);
uint8_t baud_reg = (uint8_t) (SystemCoreClock / (2 * baudrate));
if (baud_reg) {
baud_reg--;
}
sercom->SPI.BAUD.reg = baud_reg;
// Configure PA12 as MOSI (PAD0), PA13 as SCK (PAD1), PA14 as MISO (PAD2), function C (sercom)
gpio_set_pin_direction(MAX3421_SCK_PIN, GPIO_DIRECTION_OUT);

View File

@ -263,7 +263,7 @@ static void fifo_read(uint8_t rhport, uint8_t * buffer, uint16_t len, bool in_is
max3421_spi_lock(rhport, in_isr);
tuh_max3421_spi_xfer_api(rhport, &reg, 1, &hirq, 0);
tuh_max3421_spi_xfer_api(rhport, &reg, 1, &hirq, 1);
_hcd_data.hirq = hirq;
tuh_max3421_spi_xfer_api(rhport, NULL, 0, buffer, len);

View File

@ -424,11 +424,11 @@
//------------- CLASS -------------//
#ifndef CFG_TUH_HUB
#define CFG_TUH_HUB 0
#define CFG_TUH_HUB 0
#endif
#ifndef CFG_TUH_CDC
#define CFG_TUH_CDC 0
#define CFG_TUH_CDC 0
#endif
#ifndef CFG_TUH_CDC_FTDI
@ -442,34 +442,38 @@
#endif
#ifndef CFG_TUH_HID
#define CFG_TUH_HID 0
#define CFG_TUH_HID 0
#endif
#ifndef CFG_TUH_MIDI
#define CFG_TUH_MIDI 0
#define CFG_TUH_MIDI 0
#endif
#ifndef CFG_TUH_MSC
#define CFG_TUH_MSC 0
#define CFG_TUH_MSC 0
#endif
#ifndef CFG_TUH_VENDOR
#define CFG_TUH_VENDOR 0
#define CFG_TUH_VENDOR 0
#endif
#ifndef CFG_TUH_API_EDPT_XFER
#define CFG_TUH_API_EDPT_XFER 0
#define CFG_TUH_API_EDPT_XFER 0
#endif
// Enable PIO-USB software host controller
#ifndef CFG_TUH_RPI_PIO_USB
#define CFG_TUH_RPI_PIO_USB 0
#define CFG_TUH_RPI_PIO_USB 0
#endif
#ifndef CFG_TUD_RPI_PIO_USB
#define CFG_TUD_RPI_PIO_USB 0
#define CFG_TUD_RPI_PIO_USB 0
#endif
// MAX3421 Host controller option
#ifndef CFG_TUH_MAX3421
#define CFG_TUH_MAX3421 0
#endif
//--------------------------------------------------------------------+
// TypeC Options (Default)