Skip to content

Adding Daisy #1

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 14 commits into from
May 5, 2020
Merged

Adding Daisy #1

merged 14 commits into from
May 5, 2020

Conversation

stephenhensley
Copy link

@stephenhensley stephenhensley commented May 5, 2020

Add Daisy base board

Summary

Adds Daisy board, with "Daisy Seed" variant for Electro-Smith Daisy product embedding STM32H750.

This PR fixes/implements the following bugs/features

  • Adds Daisy (Seed) Board/Variant

@stephenhensley
Copy link
Author

stephenhensley commented May 5, 2020

I have tested the following behaviors, etc.

  • digital I/O functions for Digital IO, and LED_BUILTIN
  • analogRead() for Analog Ins (A0-A10) -- See below for 12th input
  • analogWrite() for A8/A9 (DAC 1/2 pins) and also PWM via digital pins (i.e. D28, etc.)
  • Serial functionality for U(S)ART1 peripheral (PB6/PB7 aka D13/D14)
  • Serial functionality for USB CDC (FS only so far).

Things that still need to be addressed here.

  • Add variant init that initializes FMC for SDRAM usage.
  • Test USB HS (as FS)
  • Fix/Test A11 (only non-sequential ADC input on the board).
  • Test I2C at least via primary pins ( PB8/PB9 aka D11, D12)
  • Test SPI at least via primary pins ( PG10, PG11, PB4, PB5 aka D7-D10 )
  • Test SD Card via SDMMC (if there is support for this within stm32duino)
  • Add menu item for RAM configurations, etc.

Things that need to happen outside of this (and likely outside of this repo):

  • DaisyAudio library that uses the stm32 HAL, etc. Audio.begin(callback), and similar
  • MPU/Cache handling for DMA buffers (for audio primarily but for anything DMA based).
  • Not having to press a button to reflash code from Arduino IDE

@stephenhensley
Copy link
Author

So actually, looking at the structure of the variants, it almost looks like for alternate RAM mappings we'll need to use a different 'variant'

so we may end up with a few versions of the 'Daisy Seed' at launch. Each variant can have its own linker script, startup file, etc. Which should make adding variants the leverage the additional memories easy enough.

Though, I'm going to take a look at some of the internal mechanisms because we may need to add some MPU config for the SDRAM to work with the cache enabled.

With that stuff in mind, I may ignore the FMC/SDRAM bullet items above for now while getting the rest of this working.

@stephenhensley stephenhensley changed the title Daisy Adding Daisy May 5, 2020
@stephenhensley
Copy link
Author

Removed note about testing SD card as it seems the native SD library will just use SPI to access the SD card.

We will want to publish a little jumper wire guide for connecting the onboard SD card connectors on our breakout boards to the SPI peripheral when possible (this is possible on the Pod current hardware).

@stephenhensley
Copy link
Author

Alright, confirmed UART, I2C, SPI, DAC, ADC, and generic GPIO, millis(), etc.

It works!

@stephenhensley stephenhensley merged commit ea59c48 into electro-smith:master May 5, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant