Initial Commit
This commit is contained in:
44
README.md
Normal file
44
README.md
Normal file
@@ -0,0 +1,44 @@
|
||||
# LED Face Mask
|
||||
|
||||
Yep, it's gonna be awesome!
|
||||
|
||||
|
||||
|
||||
# Configuration
|
||||
|
||||
* Hardware:
|
||||
* STM32F429I-DISC1 Board
|
||||
* Contains STM32F429ZIT MCU
|
||||
* 8 x 8 WS2812B LED Array
|
||||
|
||||
* Software:
|
||||
* The WS2812B Datasheet says it uses "NZR" communication for data, which, I have no idea what that is and DuckDuckGo can't find anything on it
|
||||
* Using SPI in order to send the data fast enough
|
||||
* SPI Setup:
|
||||
* Mode: Transmit Only Master
|
||||
* Data size of 8 bits
|
||||
* Most Significant Bit (MSB) first, as that would be the most straightforward
|
||||
* Rate of 2.5 Mbit/sec, as that would allow for 400 nanosecond pulse widths
|
||||
* Clock Polarity: Don't Care
|
||||
* Clock Phase: Don't Care
|
||||
* Will NOT be using the SPI Clock signal, as the WS2812B LEDs do not need it
|
||||
* Global Interrupt: Enabled
|
||||
* For switching LED designs:
|
||||
* Using TIM6 as a "cooldown" to not have it switch the design hundreds of times on a single button-press
|
||||
* While in "cooldown" state, LEDs will be off, to signify that the button press has been received and the LED design will be changed
|
||||
* TIM6 is using APB1, which the timer clocks are set at 80 MHz
|
||||
* "Cooldown" time of 0.5 seconds is desired:
|
||||
* 80000000 Hz * 0.5 seconds = 40000000 clock cycles
|
||||
* TIM6 Configuration:
|
||||
* One Pulse Mode: Enabled
|
||||
* Prescaler: 4000
|
||||
* Counter Mode: Up
|
||||
* Counter Period: 10000
|
||||
* Auto-Reload Preload: Enabled
|
||||
* Trigger Event Selection: Reset (UG bit from TIMx_EGR)
|
||||
* Global Interrupt: Enabled
|
||||
|
||||
|
||||
|
||||
# Resources/Credits
|
||||
|
||||
Reference in New Issue
Block a user