add the disassembling dps8005 article

This commit is contained in:
makefu 2019-01-31 09:20:39 +01:00
parent 89cd24a833
commit effe6d2927
No known key found for this signature in database
GPG key ID: 36F7711F3FC0F225
14 changed files with 2452 additions and 0 deletions

View file

@ -0,0 +1,393 @@
>>>> spi2
SPI2 settings
CR2 : 0x00000347 [0x40003800]
CR1 : 0x00000000 [0x40003804]
SR : 0x00000002 [0x40003808]
DR : 0x000000ff [0x4000380c]
CRCPR : 0x00000007 [0x40003810]
RXCRCR : 0x00000000 [0x40003814]
TXCRCR : 0x00000000 [0x40003818]
>>>> dma
DMA settings
ISR : 0x00000000 [0x40020000]
IFCR : 0x00000000 [0x40020004]
CCR1 : 0x00000000 [0x40020008]
CNDTR : 0x00000000 [0x40020084]
CPAR1 : 0x00000000 [0x40020010]
CMAR1 : 0x00000000 [0x40020014]
CCR2 : 0x00000000 [0x4002001c]
CNDTR : 0x00000000 [0x40020084]
CPAR2 : 0x00000000 [0x40020024]
CMAR2 : 0x00000000 [0x40020028]
CCR3 : 0x00000000 [0x40020030]
CNDTR : 0x00000000 [0x40020084]
CPAR3 : 0x00000000 [0x40020038]
CMAR3 : 0x00000000 [0x4002003c]
CCR4 : 0x00000000 [0x40020044]
CNDTR : 0x00000000 [0x40020084]
CPAR4 : 0x00000000 [0x4002004c]
CMAR4 : 0x00000000 [0x40020050]
CCR5 : 0x00000000 [0x40020058]
CNDTR : 0x00000000 [0x40020084]
CPAR5 : 0x00000000 [0x40020060]
CMAR5 : 0x00000000 [0x40020064]
CCR6 : 0x00000000 [0x4002006c]
CNDTR : 0x00000000 [0x40020084]
CPAR6 : 0x00000000 [0x40020074]
CMAR6 : 0x00000000 [0x40020078]
CCR7 : 0x00000000 [0x40020080]
CNDTR : 0x00000000 [0x40020084]
CPAR7 : 0x00000000 [0x40020088]
>>>> spi1
SPI1 settings
CR2 : 0x00000000 [0x40013000]
CR1 : 0x00000000 [0x40013004]
SR : 0x00000000 [0x40013008]
DR : 0x00000000 [0x4001300c]
CRCPR : 0x00000000 [0x40013010]
RXCRCR : 0x00000000 [0x40013014]
TXCRCR : 0x00000000 [0x40013018]
>>>> tim4
TIM4 settings
CR1 : 0x00000081 [0x40000800]
CR2 : 0x00000000 [0x40000804]
SMC : 0x00000000 [0x40000808]
DIER : 0x00000000 [0x4000080c]
SR : 0x0000001f [0x40000810]
EGR : 0x00000000 [0x40000814]
CCMR1 : 0x00006800 [0x40000818]
CCMR2 : 0x00000000 [0x4000081c]
CCER : 0x00000010 [0x40000820]
CNT : 0x000057ea [0x40000824]
PSC : 0x00000000 [0x40000828]
ARR : 0x00005dbf [0x4000082c]
RCR : 0x00000000 [0x40000830]
CCR1 : 0x00000000 [0x40000834]
CCR2 : 0x00004e20 [0x40000838]
CCR3 : 0x00000000 [0x4000083c]
CCR4 : 0x00000000 [0x40000840]
BDTR : 0x00000000 [0x40000844]
DCR : 0x00000000 [0x40000848]
DMAR : 0x00000081 [0x4000084c]
>>>> dac
DAC settings
CR : 0x00030003 [0x40007400]
SWTRIGR : 0x00000000 [0x40007404]
DHR12R1 : 0x00000000 [0x40007408]
DHR12L1 : 0x00000000 [0x4000740c]
DHR8R1 : 0x00000000 [0x40007410]
DHR12R2 : 0x00000000 [0x40007414]
DHR12L2 : 0x00000000 [0x40007418]
DHR8R2 : 0x00000000 [0x4000741c]
DHR12RD : 0x00000000 [0x40007420]
DHR12LD : 0x00000000 [0x40007424]
DHR8RD : 0x00000000 [0x40007428]
DOR1 : 0x00000000 [0x4000742c]
DOR2 : 0x00000000 [0x40007430]
SR : 0x00000000 [0x40007434]
>>>> gpio
// PA0 O 1 OD (50 Mhz) U7
gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_OPENDRAIN, GPIO0);
// PA1 I 1 PuPd M2 button
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO1);
gpio_set(GPIOA, GPIO1);
// PA2 I 1 PuPd SEL button
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO2);
gpio_set(GPIOA, GPIO2);
// PA3 I 1 PuPd M1 button
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO3);
gpio_set(GPIOA, GPIO3);
// PA4 I 0 An DAC1_OUT TL594.2 (1IN-)
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_ANALOG, GPIO4);
// PA5 I 0 An DAC2_OUT TL594.15 (2IN-)
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_ANALOG, GPIO5);
// PA6 I 1 PuPd
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO6);
gpio_set(GPIOA, GPIO6);
// PA7 I 0 An ADC1_IN7 R30-U2.7:V_OUT-B (measures Vout)
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_ANALOG, GPIO7);
// PA8 O 1 PP (50 Mhz) TFT.7 (not used by TFT)
gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO8);
// PA9 O 0 AF-PP (50 Mhz)
gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, GPIO9);
// PA10 I 0 PuPd
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO10);
gpio_clear(GPIOA, GPIO10);
// PA11 O 0 AF-PP (50 Mhz)
gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, GPIO11);
// PA12 I 1 Flt
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO12);
// PA13 I 0 PuPd
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO13);
gpio_clear(GPIOA, GPIO13);
// PA14 I 1 PuPd SWDCLK
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO14);
gpio_set(GPIOA, GPIO14);
// PA15 O 1 OD (50 Mhz) R41-TL594.16 (2IN+)
gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_OPENDRAIN, GPIO15);
// PB0 I 0 An ADC1_IN8 R7/R2-R14-D4 (measures Vin)
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_ANALOG, GPIO0);
// PB1 I 0 An ADC1_IN9 R33-U2.1:V_OUT-A (measures Iout)
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_ANALOG, GPIO1);
// PB2 I 1 Flt
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO2);
// PB3 O 1 OD (50 Mhz) R11-R17-R25-U2.5 (V_inB+)
gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_OPENDRAIN, GPIO3);
// PB4 I 1 PuPd PWR button
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO4);
gpio_set(GPIOB, GPIO4);
// PB5 I 1 PuPd Rotary press
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO5);
gpio_set(GPIOB, GPIO5);
// PB6 I 1 Flt NC?
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO6);
// PB7 O 0 AF-PP (50 Mhz) TIM4_CH2
gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, GPIO7);
// PB8 I 1 PuPd Rotary enc
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO8);
gpio_set(GPIOB, GPIO8);
// PB9 I 1 PuPd Rotary enc
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO9);
gpio_set(GPIOB, GPIO9);
// PB10 I 1 Flt
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO10);
// PB11 O 1 PP (50 Mhz) nPwrEnable R29-TFT.2 (TFT_VCC)
gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO11);
// PB12 O 1 PP (50 Mhz) SPI2_NSS TFT_RESET
gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO12);
// PB13 O 1 AF-PP (50 Mhz) SPI2_SCK
gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, GPIO13);
// PB14 O 1 PP (50 Mhz) SPI2_MISO TFT_A0
gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO14);
// PB15 O 1 AF-PP (50 Mhz) SPI2_MOSI
gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, GPIO15);
// PC0 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO0);
// PC1 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO1);
// PC2 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO2);
// PC3 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO3);
// PC4 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO4);
// PC5 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO5);
// PC6 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO6);
// PC7 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO7);
// PC8 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO8);
// PC9 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO9);
// PC10 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO10);
// PC11 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO11);
// PC12 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO12);
// PC13 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO13);
// PC14 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO14);
// PC15 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO15);
// PD0 I 1 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO0);
// PD1 O 1 PP (50 Mhz) U7
gpio_set_mode(GPIOD, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO1);
// PD2 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO2);
// PD3 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO3);
// PD4 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO4);
// PD5 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO5);
// PD6 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO6);
// PD7 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO7);
// PD8 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO8);
// PD9 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO9);
// PD10 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO10);
// PD11 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO11);
// PD12 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO12);
// PD13 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO13);
// PD14 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO14);
// PD15 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO15);
>>>> gpiob
GPIOB settings
CRL : 0xb4887400 [0x40010c00]
CRH : 0xb3b33488 [0x40010c04]
IDR : 0x00007ff4 [0x40010c08]
ODR : 0x0000fb38 [0x40010c0c]
BSRR : 0x00000000 [0x40010c10]
BRR : 0x00000000 [0x40010c14]
LCKR : 0x00000000 [0x40010c18]
>>>> gpioc
GPIOC settings
CRL : 0x44444444 [0x40011000]
CRH : 0x44444444 [0x40011004]
IDR : 0x00000000 [0x40011008]
ODR : 0x00000000 [0x4001100c]
BSRR : 0x00000000 [0x40011010]
BRR : 0x00000000 [0x40011014]
LCKR : 0x00000000 [0x40011018]
>>>> gpioa
GPIOA settings
CRL : 0x08008887 [0x40010800]
CRH : 0x7884b8b3 [0x40010804]
IDR : 0x0000534f [0x40010808]
ODR : 0x0000a14f [0x4001080c]
BSRR : 0x00000000 [0x40010810]
BRR : 0x00000000 [0x40010814]
LCKR : 0x00000000 [0x40010818]
>>>> gpiod
GPIOD settings
CRL : 0x44444434 [0x40011400]
CRH : 0x44444444 [0x40011404]
IDR : 0x00000003 [0x40011408]
ODR : 0x00000002 [0x4001140c]
BSRR : 0x00000000 [0x40011410]
BRR : 0x00000000 [0x40011414]
LCKR : 0x00000000 [0x40011418]
>>>> adc1
ADC1 settings
SR : 0x00000010 [0x40012400]
CR1 : 0x00000000 [0x40012404]
CR2 : 0x009e0001 [0x40012408]
SMPR1 : 0x00000000 [0x4001240c]
SMPR2 : 0x36c00000 [0x40012410]
JOFR1 : 0x00000000 [0x40012414]
JOFR2 : 0x00000000 [0x40012418]
JOFR3 : 0x00000000 [0x4001241c]
JOFR4 : 0x00000000 [0x40012420]
HTR : 0x00000fff [0x40012424]
LTR : 0x00000000 [0x40012428]
SQR1 : 0x00000000 [0x4001242c]
SQR2 : 0x00000000 [0x40012430]
SQR3 : 0x00000008 [0x40012434]
JSQR : 0x00000000 [0x40012438]
JDR1 : 0x00000000 [0x4001243c]
JDR2 : 0x00000000 [0x40012440]
JDR3 : 0x00000000 [0x40012444]
JDR4 : 0x00000000 [0x40012448]
DR : 0x00000312 [0x4001244c]
>>>> afio
AFIO settings
EVCR : 0x00000000 [0x40010000]
MAPR : 0x02008000 [0x40010004]
EXTICR1 : 0x00000000 [0x40010008]
EXTICR2 : 0x00000011 [0x4001000c]
EXTICR3 : 0x00000011 [0x40010010]
EXTICR4 : 0x00000000 [0x40010014]
MAPR2 : 0x00000000 [0x40010018]
>>>> exti
EXTI settings
IMR : 0x0000033e [0x40010400]
EMR : 0x00000000 [0x40010404]
RTSR : 0x00000300 [0x40010408]
FTSR : 0x0000033e [0x4001040c]
SWIER : 0x00000000 [0x40010410]
PR : 0x00000000 [0x40010414]
>>>> rcc
RCC settings
CR : 0x03003d83 [0x40021000]
CFGR : 0x0410000a [0x40021004]
CIR : 0x00000000 [0x40021008]
APB2RSTR : 0x00000000 [0x4002100c]
APB1RSTR : 0x00000000 [0x40021010]
AHBENR : 0x00000014 [0x40021014]
APB2ENR : 0x00004a2d [0x40021018]
APB1ENR : 0x20004006 [0x4002101c]
BDCR : 0x00000000 [0x40021020]
CSR : 0x0c000000 [0x40021024]
CFGR2 : 0x00000000 [0x4002102c]

View file

@ -0,0 +1,393 @@
>>>> spi2
SPI2 settings
CR2 : 0x00000347 [0x40003800]
CR1 : 0x00000000 [0x40003804]
SR : 0x00000003 [0x40003808]
DR : 0x000000ff [0x4000380c]
CRCPR : 0x00000007 [0x40003810]
RXCRCR : 0x00000000 [0x40003814]
TXCRCR : 0x00000000 [0x40003818]
>>>> dma
DMA settings
ISR : 0x00000000 [0x40020000]
IFCR : 0x00000000 [0x40020004]
CCR1 : 0x00000000 [0x40020008]
CNDTR : 0x00000000 [0x40020084]
CPAR1 : 0x00000000 [0x40020010]
CMAR1 : 0x00000000 [0x40020014]
CCR2 : 0x00000000 [0x4002001c]
CNDTR : 0x00000000 [0x40020084]
CPAR2 : 0x00000000 [0x40020024]
CMAR2 : 0x00000000 [0x40020028]
CCR3 : 0x00000000 [0x40020030]
CNDTR : 0x00000000 [0x40020084]
CPAR3 : 0x00000000 [0x40020038]
CMAR3 : 0x00000000 [0x4002003c]
CCR4 : 0x00000000 [0x40020044]
CNDTR : 0x00000000 [0x40020084]
CPAR4 : 0x00000000 [0x4002004c]
CMAR4 : 0x00000000 [0x40020050]
CCR5 : 0x00000000 [0x40020058]
CNDTR : 0x00000000 [0x40020084]
CPAR5 : 0x00000000 [0x40020060]
CMAR5 : 0x00000000 [0x40020064]
CCR6 : 0x00000000 [0x4002006c]
CNDTR : 0x00000000 [0x40020084]
CPAR6 : 0x00000000 [0x40020074]
CMAR6 : 0x00000000 [0x40020078]
CCR7 : 0x00000000 [0x40020080]
CNDTR : 0x00000000 [0x40020084]
CPAR7 : 0x00000000 [0x40020088]
>>>> spi1
SPI1 settings
CR2 : 0x00000000 [0x40013000]
CR1 : 0x00000000 [0x40013004]
SR : 0x00000000 [0x40013008]
DR : 0x00000000 [0x4001300c]
CRCPR : 0x00000000 [0x40013010]
RXCRCR : 0x00000000 [0x40013014]
TXCRCR : 0x00000000 [0x40013018]
>>>> tim4
TIM4 settings
CR1 : 0x00000081 [0x40000800]
CR2 : 0x00000000 [0x40000804]
SMC : 0x00000000 [0x40000808]
DIER : 0x00000000 [0x4000080c]
SR : 0x0000001f [0x40000810]
EGR : 0x00000000 [0x40000814]
CCMR1 : 0x00006800 [0x40000818]
CCMR2 : 0x00000000 [0x4000081c]
CCER : 0x00000010 [0x40000820]
CNT : 0x00005091 [0x40000824]
PSC : 0x00000000 [0x40000828]
ARR : 0x00005dbf [0x4000082c]
RCR : 0x00000000 [0x40000830]
CCR1 : 0x00000000 [0x40000834]
CCR2 : 0x00004e20 [0x40000838]
CCR3 : 0x00000000 [0x4000083c]
CCR4 : 0x00000000 [0x40000840]
BDTR : 0x00000000 [0x40000844]
DCR : 0x00000000 [0x40000848]
DMAR : 0x00000081 [0x4000084c]
>>>> dac
DAC settings
CR : 0x00030003 [0x40007400]
SWTRIGR : 0x00000000 [0x40007404]
DHR12R1 : 0x00000000 [0x40007408]
DHR12L1 : 0x00000000 [0x4000740c]
DHR8R1 : 0x00000000 [0x40007410]
DHR12R2 : 0x00000e1c [0x40007414]
DHR12L2 : 0x0000e1c0 [0x40007418]
DHR8R2 : 0x000000e1 [0x4000741c]
DHR12RD : 0x0e1c0000 [0x40007420]
DHR12LD : 0xe1c00000 [0x40007424]
DHR8RD : 0x0000e100 [0x40007428]
DOR1 : 0x00000000 [0x4000742c]
DOR2 : 0x00000e1c [0x40007430]
SR : 0x00000000 [0x40007434]
>>>> gpio
// PA0 O 1 OD (50 Mhz) U7
gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_OPENDRAIN, GPIO0);
// PA1 I 1 PuPd M2 button
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO1);
gpio_set(GPIOA, GPIO1);
// PA2 I 1 PuPd SEL button
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO2);
gpio_set(GPIOA, GPIO2);
// PA3 I 1 PuPd M1 button
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO3);
gpio_set(GPIOA, GPIO3);
// PA4 I 0 An DAC1_OUT TL594.2 (1IN-)
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_ANALOG, GPIO4);
// PA5 I 0 An DAC2_OUT TL594.15 (2IN-)
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_ANALOG, GPIO5);
// PA6 I 1 PuPd
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO6);
gpio_set(GPIOA, GPIO6);
// PA7 I 0 An ADC1_IN7 R30-U2.7:V_OUT-B (measures Vout)
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_ANALOG, GPIO7);
// PA8 O 0 PP (50 Mhz) TFT.7 (not used by TFT)
gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO8);
// PA9 O 0 AF-PP (50 Mhz)
gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, GPIO9);
// PA10 I 0 PuPd
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO10);
gpio_clear(GPIOA, GPIO10);
// PA11 O 0 AF-PP (50 Mhz)
gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, GPIO11);
// PA12 I 1 Flt
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO12);
// PA13 I 0 PuPd
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO13);
gpio_clear(GPIOA, GPIO13);
// PA14 I 1 PuPd SWDCLK
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO14);
gpio_set(GPIOA, GPIO14);
// PA15 O 1 OD (50 Mhz) R41-TL594.16 (2IN+)
gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_OPENDRAIN, GPIO15);
// PB0 I 0 An ADC1_IN8 R7/R2-R14-D4 (measures Vin)
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_ANALOG, GPIO0);
// PB1 I 0 An ADC1_IN9 R33-U2.1:V_OUT-A (measures Iout)
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_ANALOG, GPIO1);
// PB2 I 1 Flt
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO2);
// PB3 O 1 OD (50 Mhz) R11-R17-R25-U2.5 (V_inB+)
gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_OPENDRAIN, GPIO3);
// PB4 I 1 PuPd PWR button
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO4);
gpio_set(GPIOB, GPIO4);
// PB5 I 1 PuPd Rotary press
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO5);
gpio_set(GPIOB, GPIO5);
// PB6 I 1 Flt NC?
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO6);
// PB7 O 0 AF-PP (50 Mhz) TIM4_CH2
gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, GPIO7);
// PB8 I 1 PuPd Rotary enc
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO8);
gpio_set(GPIOB, GPIO8);
// PB9 I 1 PuPd Rotary enc
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO9);
gpio_set(GPIOB, GPIO9);
// PB10 I 1 Flt
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO10);
// PB11 O 0 PP (50 Mhz) nPwrEnable R29-TFT.2 (TFT_VCC)
gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO11);
// PB12 O 1 PP (50 Mhz) SPI2_NSS TFT_RESET
gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO12);
// PB13 O 1 AF-PP (50 Mhz) SPI2_SCK
gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, GPIO13);
// PB14 O 1 PP (50 Mhz) SPI2_MISO TFT_A0
gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO14);
// PB15 O 1 AF-PP (50 Mhz) SPI2_MOSI
gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, GPIO15);
// PC0 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO0);
// PC1 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO1);
// PC2 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO2);
// PC3 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO3);
// PC4 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO4);
// PC5 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO5);
// PC6 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO6);
// PC7 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO7);
// PC8 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO8);
// PC9 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO9);
// PC10 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO10);
// PC11 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO11);
// PC12 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO12);
// PC13 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO13);
// PC14 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO14);
// PC15 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO15);
// PD0 I 1 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO0);
// PD1 O 1 PP (50 Mhz) U7
gpio_set_mode(GPIOD, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO1);
// PD2 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO2);
// PD3 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO3);
// PD4 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO4);
// PD5 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO5);
// PD6 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO6);
// PD7 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO7);
// PD8 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO8);
// PD9 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO9);
// PD10 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO10);
// PD11 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO11);
// PD12 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO12);
// PD13 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO13);
// PD14 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO14);
// PD15 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO15);
>>>> gpiob
GPIOB settings
CRL : 0xb4887400 [0x40010c00]
CRH : 0xb3b33488 [0x40010c04]
IDR : 0x000077f4 [0x40010c08]
ODR : 0x0000f338 [0x40010c0c]
BSRR : 0x00000000 [0x40010c10]
BRR : 0x00000000 [0x40010c14]
LCKR : 0x00000000 [0x40010c18]
>>>> gpioc
GPIOC settings
CRL : 0x44444444 [0x40011000]
CRH : 0x44444444 [0x40011004]
IDR : 0x00000000 [0x40011008]
ODR : 0x00000000 [0x4001100c]
BSRR : 0x00000000 [0x40011010]
BRR : 0x00000000 [0x40011014]
LCKR : 0x00000000 [0x40011018]
>>>> gpioa
GPIOA settings
CRL : 0x08008887 [0x40010800]
CRH : 0x7884b8b3 [0x40010804]
IDR : 0x00005a4f [0x40010808]
ODR : 0x0000a04f [0x4001080c]
BSRR : 0x00000000 [0x40010810]
BRR : 0x00000000 [0x40010814]
LCKR : 0x00000000 [0x40010818]
>>>> gpiod
GPIOD settings
CRL : 0x44444434 [0x40011400]
CRH : 0x44444444 [0x40011404]
IDR : 0x00000003 [0x40011408]
ODR : 0x00000002 [0x4001140c]
BSRR : 0x00000000 [0x40011410]
BRR : 0x00000000 [0x40011414]
LCKR : 0x00000000 [0x40011418]
>>>> adc1
ADC1 settings
SR : 0x00000010 [0x40012400]
CR1 : 0x00000000 [0x40012404]
CR2 : 0x009e0001 [0x40012408]
SMPR1 : 0x00000000 [0x4001240c]
SMPR2 : 0x36c00000 [0x40012410]
JOFR1 : 0x00000000 [0x40012414]
JOFR2 : 0x00000000 [0x40012418]
JOFR3 : 0x00000000 [0x4001241c]
JOFR4 : 0x00000000 [0x40012420]
HTR : 0x00000fff [0x40012424]
LTR : 0x00000000 [0x40012428]
SQR1 : 0x00000000 [0x4001242c]
SQR2 : 0x00000000 [0x40012430]
SQR3 : 0x00000008 [0x40012434]
JSQR : 0x00000000 [0x40012438]
JDR1 : 0x00000000 [0x4001243c]
JDR2 : 0x00000000 [0x40012440]
JDR3 : 0x00000000 [0x40012444]
JDR4 : 0x00000000 [0x40012448]
DR : 0x00000313 [0x4001244c]
>>>> afio
AFIO settings
EVCR : 0x00000000 [0x40010000]
MAPR : 0x02008000 [0x40010004]
EXTICR1 : 0x00000000 [0x40010008]
EXTICR2 : 0x00000011 [0x4001000c]
EXTICR3 : 0x00000011 [0x40010010]
EXTICR4 : 0x00000000 [0x40010014]
MAPR2 : 0x00000000 [0x40010018]
>>>> exti
EXTI settings
IMR : 0x0000033e [0x40010400]
EMR : 0x00000000 [0x40010404]
RTSR : 0x00000300 [0x40010408]
FTSR : 0x0000033e [0x4001040c]
SWIER : 0x00000000 [0x40010410]
PR : 0x00000000 [0x40010414]
>>>> rcc
RCC settings
CR : 0x03003d83 [0x40021000]
CFGR : 0x0410000a [0x40021004]
CIR : 0x00000000 [0x40021008]
APB2RSTR : 0x00000000 [0x4002100c]
APB1RSTR : 0x00000000 [0x40021010]
AHBENR : 0x00000014 [0x40021014]
APB2ENR : 0x00004a2d [0x40021018]
APB1ENR : 0x20004006 [0x4002101c]
BDCR : 0x00000000 [0x40021020]
CSR : 0x0c000000 [0x40021024]
CFGR2 : 0x00000000 [0x4002102c]

View file

@ -0,0 +1,393 @@
>>>> spi2
SPI2 settings
CR2 : 0x00000347 [0x40003800]
CR1 : 0x00000000 [0x40003804]
SR : 0x00000003 [0x40003808]
DR : 0x000000ff [0x4000380c]
CRCPR : 0x00000007 [0x40003810]
RXCRCR : 0x00000000 [0x40003814]
TXCRCR : 0x00000000 [0x40003818]
>>>> dma
DMA settings
ISR : 0x00000000 [0x40020000]
IFCR : 0x00000000 [0x40020004]
CCR1 : 0x00000000 [0x40020008]
CNDTR : 0x00000000 [0x40020084]
CPAR1 : 0x00000000 [0x40020010]
CMAR1 : 0x00000000 [0x40020014]
CCR2 : 0x00000000 [0x4002001c]
CNDTR : 0x00000000 [0x40020084]
CPAR2 : 0x00000000 [0x40020024]
CMAR2 : 0x00000000 [0x40020028]
CCR3 : 0x00000000 [0x40020030]
CNDTR : 0x00000000 [0x40020084]
CPAR3 : 0x00000000 [0x40020038]
CMAR3 : 0x00000000 [0x4002003c]
CCR4 : 0x00000000 [0x40020044]
CNDTR : 0x00000000 [0x40020084]
CPAR4 : 0x00000000 [0x4002004c]
CMAR4 : 0x00000000 [0x40020050]
CCR5 : 0x00000000 [0x40020058]
CNDTR : 0x00000000 [0x40020084]
CPAR5 : 0x00000000 [0x40020060]
CMAR5 : 0x00000000 [0x40020064]
CCR6 : 0x00000000 [0x4002006c]
CNDTR : 0x00000000 [0x40020084]
CPAR6 : 0x00000000 [0x40020074]
CMAR6 : 0x00000000 [0x40020078]
CCR7 : 0x00000000 [0x40020080]
CNDTR : 0x00000000 [0x40020084]
CPAR7 : 0x00000000 [0x40020088]
>>>> spi1
SPI1 settings
CR2 : 0x00000000 [0x40013000]
CR1 : 0x00000000 [0x40013004]
SR : 0x00000000 [0x40013008]
DR : 0x00000000 [0x4001300c]
CRCPR : 0x00000000 [0x40013010]
RXCRCR : 0x00000000 [0x40013014]
TXCRCR : 0x00000000 [0x40013018]
>>>> tim4
TIM4 settings
CR1 : 0x00000081 [0x40000800]
CR2 : 0x00000000 [0x40000804]
SMC : 0x00000000 [0x40000808]
DIER : 0x00000000 [0x4000080c]
SR : 0x0000001f [0x40000810]
EGR : 0x00000000 [0x40000814]
CCMR1 : 0x00006800 [0x40000818]
CCMR2 : 0x00000000 [0x4000081c]
CCER : 0x00000010 [0x40000820]
CNT : 0x00004e5a [0x40000824]
PSC : 0x00000000 [0x40000828]
ARR : 0x00005dbf [0x4000082c]
RCR : 0x00000000 [0x40000830]
CCR1 : 0x00000000 [0x40000834]
CCR2 : 0x00004e20 [0x40000838]
CCR3 : 0x00000000 [0x4000083c]
CCR4 : 0x00000000 [0x40000840]
BDTR : 0x00000000 [0x40000844]
DCR : 0x00000000 [0x40000848]
DMAR : 0x00000081 [0x4000084c]
>>>> dac
DAC settings
CR : 0x00030003 [0x40007400]
SWTRIGR : 0x00000000 [0x40007404]
DHR12R1 : 0x00000000 [0x40007408]
DHR12L1 : 0x00000000 [0x4000740c]
DHR8R1 : 0x00000000 [0x40007410]
DHR12R2 : 0x00000000 [0x40007414]
DHR12L2 : 0x00000000 [0x40007418]
DHR8R2 : 0x00000000 [0x4000741c]
DHR12RD : 0x00000000 [0x40007420]
DHR12LD : 0x00000000 [0x40007424]
DHR8RD : 0x00000000 [0x40007428]
DOR1 : 0x00000000 [0x4000742c]
DOR2 : 0x00000000 [0x40007430]
SR : 0x00000000 [0x40007434]
>>>> gpio
// PA0 O 1 OD (50 Mhz) U7
gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_OPENDRAIN, GPIO0);
// PA1 I 1 PuPd M2 button
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO1);
gpio_set(GPIOA, GPIO1);
// PA2 I 1 PuPd SEL button
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO2);
gpio_set(GPIOA, GPIO2);
// PA3 I 1 PuPd M1 button
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO3);
gpio_set(GPIOA, GPIO3);
// PA4 I 0 An DAC1_OUT TL594.2 (1IN-)
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_ANALOG, GPIO4);
// PA5 I 0 An DAC2_OUT TL594.15 (2IN-)
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_ANALOG, GPIO5);
// PA6 I 1 PuPd
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO6);
gpio_set(GPIOA, GPIO6);
// PA7 I 0 An ADC1_IN7 R30-U2.7:V_OUT-B (measures Vout)
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_ANALOG, GPIO7);
// PA8 O 0 PP (50 Mhz) TFT.7 (not used by TFT)
gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO8);
// PA9 O 0 AF-PP (50 Mhz)
gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, GPIO9);
// PA10 I 0 PuPd
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO10);
gpio_clear(GPIOA, GPIO10);
// PA11 O 0 AF-PP (50 Mhz)
gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, GPIO11);
// PA12 I 1 Flt
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO12);
// PA13 I 0 PuPd
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO13);
gpio_clear(GPIOA, GPIO13);
// PA14 I 1 PuPd SWDCLK
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO14);
gpio_set(GPIOA, GPIO14);
// PA15 O 1 OD (50 Mhz) R41-TL594.16 (2IN+)
gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_OPENDRAIN, GPIO15);
// PB0 I 0 An ADC1_IN8 R7/R2-R14-D4 (measures Vin)
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_ANALOG, GPIO0);
// PB1 I 0 An ADC1_IN9 R33-U2.1:V_OUT-A (measures Iout)
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_ANALOG, GPIO1);
// PB2 I 1 Flt
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO2);
// PB3 O 1 OD (50 Mhz) R11-R17-R25-U2.5 (V_inB+)
gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_OPENDRAIN, GPIO3);
// PB4 I 1 PuPd PWR button
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO4);
gpio_set(GPIOB, GPIO4);
// PB5 I 1 PuPd Rotary press
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO5);
gpio_set(GPIOB, GPIO5);
// PB6 I 1 Flt NC?
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO6);
// PB7 O 0 AF-PP (50 Mhz) TIM4_CH2
gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, GPIO7);
// PB8 I 1 PuPd Rotary enc
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO8);
gpio_set(GPIOB, GPIO8);
// PB9 I 1 PuPd Rotary enc
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO9);
gpio_set(GPIOB, GPIO9);
// PB10 I 1 Flt
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO10);
// PB11 O 1 PP (50 Mhz) nPwrEnable R29-TFT.2 (TFT_VCC)
gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO11);
// PB12 O 1 PP (50 Mhz) SPI2_NSS TFT_RESET
gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO12);
// PB13 O 1 AF-PP (50 Mhz) SPI2_SCK
gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, GPIO13);
// PB14 O 1 PP (50 Mhz) SPI2_MISO TFT_A0
gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO14);
// PB15 O 1 AF-PP (50 Mhz) SPI2_MOSI
gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, GPIO15);
// PC0 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO0);
// PC1 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO1);
// PC2 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO2);
// PC3 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO3);
// PC4 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO4);
// PC5 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO5);
// PC6 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO6);
// PC7 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO7);
// PC8 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO8);
// PC9 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO9);
// PC10 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO10);
// PC11 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO11);
// PC12 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO12);
// PC13 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO13);
// PC14 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO14);
// PC15 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO15);
// PD0 I 1 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO0);
// PD1 O 1 PP (50 Mhz) U7
gpio_set_mode(GPIOD, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO1);
// PD2 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO2);
// PD3 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO3);
// PD4 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO4);
// PD5 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO5);
// PD6 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO6);
// PD7 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO7);
// PD8 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO8);
// PD9 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO9);
// PD10 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO10);
// PD11 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO11);
// PD12 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO12);
// PD13 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO13);
// PD14 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO14);
// PD15 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO15);
>>>> gpiob
GPIOB settings
CRL : 0xb4887400 [0x40010c00]
CRH : 0xb3b33488 [0x40010c04]
IDR : 0x00007ff4 [0x40010c08]
ODR : 0x0000fb38 [0x40010c0c]
BSRR : 0x00000000 [0x40010c10]
BRR : 0x00000000 [0x40010c14]
LCKR : 0x00000000 [0x40010c18]
>>>> gpioc
GPIOC settings
CRL : 0x44444444 [0x40011000]
CRH : 0x44444444 [0x40011004]
IDR : 0x00000000 [0x40011008]
ODR : 0x00000000 [0x4001100c]
BSRR : 0x00000000 [0x40011010]
BRR : 0x00000000 [0x40011014]
LCKR : 0x00000000 [0x40011018]
>>>> gpioa
GPIOA settings
CRL : 0x08008887 [0x40010800]
CRH : 0x7884b8b3 [0x40010804]
IDR : 0x0000524f [0x40010808]
ODR : 0x0000a04f [0x4001080c]
BSRR : 0x00000000 [0x40010810]
BRR : 0x00000000 [0x40010814]
LCKR : 0x00000000 [0x40010818]
>>>> gpiod
GPIOD settings
CRL : 0x44444434 [0x40011400]
CRH : 0x44444444 [0x40011404]
IDR : 0x00000003 [0x40011408]
ODR : 0x00000002 [0x4001140c]
BSRR : 0x00000000 [0x40011410]
BRR : 0x00000000 [0x40011414]
LCKR : 0x00000000 [0x40011418]
>>>> adc1
ADC1 settings
SR : 0x00000010 [0x40012400]
CR1 : 0x00000000 [0x40012404]
CR2 : 0x009e0001 [0x40012408]
SMPR1 : 0x00000000 [0x4001240c]
SMPR2 : 0x36c00000 [0x40012410]
JOFR1 : 0x00000000 [0x40012414]
JOFR2 : 0x00000000 [0x40012418]
JOFR3 : 0x00000000 [0x4001241c]
JOFR4 : 0x00000000 [0x40012420]
HTR : 0x00000fff [0x40012424]
LTR : 0x00000000 [0x40012428]
SQR1 : 0x00000000 [0x4001242c]
SQR2 : 0x00000000 [0x40012430]
SQR3 : 0x00000008 [0x40012434]
JSQR : 0x00000000 [0x40012438]
JDR1 : 0x00000000 [0x4001243c]
JDR2 : 0x00000000 [0x40012440]
JDR3 : 0x00000000 [0x40012444]
JDR4 : 0x00000000 [0x40012448]
DR : 0x00000313 [0x4001244c]
>>>> afio
AFIO settings
EVCR : 0x00000000 [0x40010000]
MAPR : 0x02008000 [0x40010004]
EXTICR1 : 0x00000000 [0x40010008]
EXTICR2 : 0x00000011 [0x4001000c]
EXTICR3 : 0x00000011 [0x40010010]
EXTICR4 : 0x00000000 [0x40010014]
MAPR2 : 0x00000000 [0x40010018]
>>>> exti
EXTI settings
IMR : 0x0000033e [0x40010400]
EMR : 0x00000000 [0x40010404]
RTSR : 0x00000300 [0x40010408]
FTSR : 0x0000033e [0x4001040c]
SWIER : 0x00000000 [0x40010410]
PR : 0x00000000 [0x40010414]
>>>> rcc
RCC settings
CR : 0x03003d83 [0x40021000]
CFGR : 0x0410000a [0x40021004]
CIR : 0x00000000 [0x40021008]
APB2RSTR : 0x00000000 [0x4002100c]
APB1RSTR : 0x00000000 [0x40021010]
AHBENR : 0x00000014 [0x40021014]
APB2ENR : 0x00004a2d [0x40021018]
APB1ENR : 0x20004006 [0x4002101c]
BDCR : 0x00000000 [0x40021020]
CSR : 0x0c000000 [0x40021024]
CFGR2 : 0x00000000 [0x4002102c]

View file

@ -0,0 +1,393 @@
>>>> spi2
SPI2 settings
CR2 : 0x00000347 [0x40003800]
CR1 : 0x00000000 [0x40003804]
SR : 0x00000003 [0x40003808]
DR : 0x000000ff [0x4000380c]
CRCPR : 0x00000007 [0x40003810]
RXCRCR : 0x00000000 [0x40003814]
TXCRCR : 0x00000000 [0x40003818]
>>>> dma
DMA settings
ISR : 0x00000000 [0x40020000]
IFCR : 0x00000000 [0x40020004]
CCR1 : 0x00000000 [0x40020008]
CNDTR : 0x00000000 [0x40020084]
CPAR1 : 0x00000000 [0x40020010]
CMAR1 : 0x00000000 [0x40020014]
CCR2 : 0x00000000 [0x4002001c]
CNDTR : 0x00000000 [0x40020084]
CPAR2 : 0x00000000 [0x40020024]
CMAR2 : 0x00000000 [0x40020028]
CCR3 : 0x00000000 [0x40020030]
CNDTR : 0x00000000 [0x40020084]
CPAR3 : 0x00000000 [0x40020038]
CMAR3 : 0x00000000 [0x4002003c]
CCR4 : 0x00000000 [0x40020044]
CNDTR : 0x00000000 [0x40020084]
CPAR4 : 0x00000000 [0x4002004c]
CMAR4 : 0x00000000 [0x40020050]
CCR5 : 0x00000000 [0x40020058]
CNDTR : 0x00000000 [0x40020084]
CPAR5 : 0x00000000 [0x40020060]
CMAR5 : 0x00000000 [0x40020064]
CCR6 : 0x00000000 [0x4002006c]
CNDTR : 0x00000000 [0x40020084]
CPAR6 : 0x00000000 [0x40020074]
CMAR6 : 0x00000000 [0x40020078]
CCR7 : 0x00000000 [0x40020080]
CNDTR : 0x00000000 [0x40020084]
CPAR7 : 0x00000000 [0x40020088]
>>>> spi1
SPI1 settings
CR2 : 0x00000000 [0x40013000]
CR1 : 0x00000000 [0x40013004]
SR : 0x00000000 [0x40013008]
DR : 0x00000000 [0x4001300c]
CRCPR : 0x00000000 [0x40013010]
RXCRCR : 0x00000000 [0x40013014]
TXCRCR : 0x00000000 [0x40013018]
>>>> tim4
TIM4 settings
CR1 : 0x00000081 [0x40000800]
CR2 : 0x00000000 [0x40000804]
SMC : 0x00000000 [0x40000808]
DIER : 0x00000000 [0x4000080c]
SR : 0x0000001f [0x40000810]
EGR : 0x00000000 [0x40000814]
CCMR1 : 0x00006800 [0x40000818]
CCMR2 : 0x00000000 [0x4000081c]
CCER : 0x00000010 [0x40000820]
CNT : 0x0000485c [0x40000824]
PSC : 0x00000000 [0x40000828]
ARR : 0x00005dbf [0x4000082c]
RCR : 0x00000000 [0x40000830]
CCR1 : 0x00000000 [0x40000834]
CCR2 : 0x00004e20 [0x40000838]
CCR3 : 0x00000000 [0x4000083c]
CCR4 : 0x00000000 [0x40000840]
BDTR : 0x00000000 [0x40000844]
DCR : 0x00000000 [0x40000848]
DMAR : 0x00000081 [0x4000084c]
>>>> dac
DAC settings
CR : 0x00030003 [0x40007400]
SWTRIGR : 0x00000000 [0x40007404]
DHR12R1 : 0x00000000 [0x40007408]
DHR12L1 : 0x00000000 [0x4000740c]
DHR8R1 : 0x00000000 [0x40007410]
DHR12R2 : 0x00000e1c [0x40007414]
DHR12L2 : 0x0000e1c0 [0x40007418]
DHR8R2 : 0x000000e1 [0x4000741c]
DHR12RD : 0x0e1c0000 [0x40007420]
DHR12LD : 0xe1c00000 [0x40007424]
DHR8RD : 0x0000e100 [0x40007428]
DOR1 : 0x00000000 [0x4000742c]
DOR2 : 0x00000e1c [0x40007430]
SR : 0x00000000 [0x40007434]
>>>> gpio
// PA0 O 1 OD (50 Mhz) U7
gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_OPENDRAIN, GPIO0);
// PA1 I 1 PuPd M2 button
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO1);
gpio_set(GPIOA, GPIO1);
// PA2 I 1 PuPd SEL button
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO2);
gpio_set(GPIOA, GPIO2);
// PA3 I 1 PuPd M1 button
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO3);
gpio_set(GPIOA, GPIO3);
// PA4 I 0 An DAC1_OUT TL594.2 (1IN-)
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_ANALOG, GPIO4);
// PA5 I 0 An DAC2_OUT TL594.15 (2IN-)
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_ANALOG, GPIO5);
// PA6 I 1 PuPd
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO6);
gpio_set(GPIOA, GPIO6);
// PA7 I 0 An ADC1_IN7 R30-U2.7:V_OUT-B (measures Vout)
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_ANALOG, GPIO7);
// PA8 O 0 PP (50 Mhz) TFT.7 (not used by TFT)
gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO8);
// PA9 O 0 AF-PP (50 Mhz)
gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, GPIO9);
// PA10 I 0 PuPd
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO10);
gpio_clear(GPIOA, GPIO10);
// PA11 O 0 AF-PP (50 Mhz)
gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, GPIO11);
// PA12 I 1 Flt
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO12);
// PA13 I 0 PuPd
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO13);
gpio_clear(GPIOA, GPIO13);
// PA14 I 1 PuPd SWDCLK
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO14);
gpio_set(GPIOA, GPIO14);
// PA15 O 1 OD (50 Mhz) R41-TL594.16 (2IN+)
gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_OPENDRAIN, GPIO15);
// PB0 I 0 An ADC1_IN8 R7/R2-R14-D4 (measures Vin)
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_ANALOG, GPIO0);
// PB1 I 0 An ADC1_IN9 R33-U2.1:V_OUT-A (measures Iout)
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_ANALOG, GPIO1);
// PB2 I 1 Flt
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO2);
// PB3 O 1 OD (50 Mhz) R11-R17-R25-U2.5 (V_inB+)
gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_OPENDRAIN, GPIO3);
// PB4 I 1 PuPd PWR button
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO4);
gpio_set(GPIOB, GPIO4);
// PB5 I 1 PuPd Rotary press
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO5);
gpio_set(GPIOB, GPIO5);
// PB6 I 1 Flt NC?
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO6);
// PB7 O 0 AF-PP (50 Mhz) TIM4_CH2
gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, GPIO7);
// PB8 I 1 PuPd Rotary enc
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO8);
gpio_set(GPIOB, GPIO8);
// PB9 I 1 PuPd Rotary enc
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO9);
gpio_set(GPIOB, GPIO9);
// PB10 I 1 Flt
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO10);
// PB11 O 0 PP (50 Mhz) nPwrEnable R29-TFT.2 (TFT_VCC)
gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO11);
// PB12 O 1 PP (50 Mhz) SPI2_NSS TFT_RESET
gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO12);
// PB13 O 1 AF-PP (50 Mhz) SPI2_SCK
gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, GPIO13);
// PB14 O 1 PP (50 Mhz) SPI2_MISO TFT_A0
gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO14);
// PB15 O 1 AF-PP (50 Mhz) SPI2_MOSI
gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, GPIO15);
// PC0 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO0);
// PC1 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO1);
// PC2 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO2);
// PC3 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO3);
// PC4 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO4);
// PC5 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO5);
// PC6 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO6);
// PC7 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO7);
// PC8 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO8);
// PC9 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO9);
// PC10 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO10);
// PC11 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO11);
// PC12 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO12);
// PC13 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO13);
// PC14 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO14);
// PC15 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO15);
// PD0 I 1 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO0);
// PD1 O 1 PP (50 Mhz) U7
gpio_set_mode(GPIOD, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO1);
// PD2 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO2);
// PD3 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO3);
// PD4 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO4);
// PD5 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO5);
// PD6 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO6);
// PD7 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO7);
// PD8 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO8);
// PD9 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO9);
// PD10 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO10);
// PD11 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO11);
// PD12 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO12);
// PD13 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO13);
// PD14 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO14);
// PD15 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO15);
>>>> gpiob
GPIOB settings
CRL : 0xb4887400 [0x40010c00]
CRH : 0xb3b33488 [0x40010c04]
IDR : 0x0000f774 [0x40010c08]
ODR : 0x0000f338 [0x40010c0c]
BSRR : 0x00000000 [0x40010c10]
BRR : 0x00000000 [0x40010c14]
LCKR : 0x00000000 [0x40010c18]
>>>> gpioc
GPIOC settings
CRL : 0x44444444 [0x40011000]
CRH : 0x44444444 [0x40011004]
IDR : 0x00000000 [0x40011008]
ODR : 0x00000000 [0x4001100c]
BSRR : 0x00000000 [0x40011010]
BRR : 0x00000000 [0x40011014]
LCKR : 0x00000000 [0x40011018]
>>>> gpioa
GPIOA settings
CRL : 0x08008887 [0x40010800]
CRH : 0x7884b8b3 [0x40010804]
IDR : 0x00005a4f [0x40010808]
ODR : 0x0000a04f [0x4001080c]
BSRR : 0x00000000 [0x40010810]
BRR : 0x00000000 [0x40010814]
LCKR : 0x00000000 [0x40010818]
>>>> gpiod
GPIOD settings
CRL : 0x44444434 [0x40011400]
CRH : 0x44444444 [0x40011404]
IDR : 0x00000003 [0x40011408]
ODR : 0x00000002 [0x4001140c]
BSRR : 0x00000000 [0x40011410]
BRR : 0x00000000 [0x40011414]
LCKR : 0x00000000 [0x40011418]
>>>> adc1
ADC1 settings
SR : 0x00000010 [0x40012400]
CR1 : 0x00000000 [0x40012404]
CR2 : 0x009e0001 [0x40012408]
SMPR1 : 0x00000000 [0x4001240c]
SMPR2 : 0x36c00000 [0x40012410]
JOFR1 : 0x00000000 [0x40012414]
JOFR2 : 0x00000000 [0x40012418]
JOFR3 : 0x00000000 [0x4001241c]
JOFR4 : 0x00000000 [0x40012420]
HTR : 0x00000fff [0x40012424]
LTR : 0x00000000 [0x40012428]
SQR1 : 0x00000000 [0x4001242c]
SQR2 : 0x00000000 [0x40012430]
SQR3 : 0x00000008 [0x40012434]
JSQR : 0x00000000 [0x40012438]
JDR1 : 0x00000000 [0x4001243c]
JDR2 : 0x00000000 [0x40012440]
JDR3 : 0x00000000 [0x40012444]
JDR4 : 0x00000000 [0x40012448]
DR : 0x00000312 [0x4001244c]
>>>> afio
AFIO settings
EVCR : 0x00000000 [0x40010000]
MAPR : 0x02008000 [0x40010004]
EXTICR1 : 0x00000000 [0x40010008]
EXTICR2 : 0x00000011 [0x4001000c]
EXTICR3 : 0x00000011 [0x40010010]
EXTICR4 : 0x00000000 [0x40010014]
MAPR2 : 0x00000000 [0x40010018]
>>>> exti
EXTI settings
IMR : 0x0000033e [0x40010400]
EMR : 0x00000000 [0x40010404]
RTSR : 0x00000300 [0x40010408]
FTSR : 0x0000033e [0x4001040c]
SWIER : 0x00000000 [0x40010410]
PR : 0x00000000 [0x40010414]
>>>> rcc
RCC settings
CR : 0x03003d83 [0x40021000]
CFGR : 0x0410000a [0x40021004]
CIR : 0x00000000 [0x40021008]
APB2RSTR : 0x00000000 [0x4002100c]
APB1RSTR : 0x00000000 [0x40021010]
AHBENR : 0x00000014 [0x40021014]
APB2ENR : 0x00004a2d [0x40021018]
APB1ENR : 0x20004006 [0x4002101c]
BDCR : 0x00000000 [0x40021020]
CSR : 0x0c000000 [0x40021024]
CFGR2 : 0x00000000 [0x4002102c]

View file

@ -0,0 +1,393 @@
>>>> spi2
SPI2 settings
CR2 : 0x00000347 [0x40003800]
CR1 : 0x00000000 [0x40003804]
SR : 0x00000002 [0x40003808]
DR : 0x000000ff [0x4000380c]
CRCPR : 0x00000007 [0x40003810]
RXCRCR : 0x00000000 [0x40003814]
TXCRCR : 0x00000000 [0x40003818]
>>>> dma
DMA settings
ISR : 0x00000000 [0x40020000]
IFCR : 0x00000000 [0x40020004]
CCR1 : 0x00000000 [0x40020008]
CNDTR : 0x00000000 [0x40020084]
CPAR1 : 0x00000000 [0x40020010]
CMAR1 : 0x00000000 [0x40020014]
CCR2 : 0x00000000 [0x4002001c]
CNDTR : 0x00000000 [0x40020084]
CPAR2 : 0x00000000 [0x40020024]
CMAR2 : 0x00000000 [0x40020028]
CCR3 : 0x00000000 [0x40020030]
CNDTR : 0x00000000 [0x40020084]
CPAR3 : 0x00000000 [0x40020038]
CMAR3 : 0x00000000 [0x4002003c]
CCR4 : 0x00000000 [0x40020044]
CNDTR : 0x00000000 [0x40020084]
CPAR4 : 0x00000000 [0x4002004c]
CMAR4 : 0x00000000 [0x40020050]
CCR5 : 0x00000000 [0x40020058]
CNDTR : 0x00000000 [0x40020084]
CPAR5 : 0x00000000 [0x40020060]
CMAR5 : 0x00000000 [0x40020064]
CCR6 : 0x00000000 [0x4002006c]
CNDTR : 0x00000000 [0x40020084]
CPAR6 : 0x00000000 [0x40020074]
CMAR6 : 0x00000000 [0x40020078]
CCR7 : 0x00000000 [0x40020080]
CNDTR : 0x00000000 [0x40020084]
CPAR7 : 0x00000000 [0x40020088]
>>>> spi1
SPI1 settings
CR2 : 0x00000000 [0x40013000]
CR1 : 0x00000000 [0x40013004]
SR : 0x00000000 [0x40013008]
DR : 0x00000000 [0x4001300c]
CRCPR : 0x00000000 [0x40013010]
RXCRCR : 0x00000000 [0x40013014]
TXCRCR : 0x00000000 [0x40013018]
>>>> tim4
TIM4 settings
CR1 : 0x00000081 [0x40000800]
CR2 : 0x00000000 [0x40000804]
SMC : 0x00000000 [0x40000808]
DIER : 0x00000000 [0x4000080c]
SR : 0x0000001f [0x40000810]
EGR : 0x00000000 [0x40000814]
CCMR1 : 0x00006800 [0x40000818]
CCMR2 : 0x00000000 [0x4000081c]
CCER : 0x00000010 [0x40000820]
CNT : 0x0000082a [0x40000824]
PSC : 0x00000000 [0x40000828]
ARR : 0x00005dbf [0x4000082c]
RCR : 0x00000000 [0x40000830]
CCR1 : 0x00000000 [0x40000834]
CCR2 : 0x00004e20 [0x40000838]
CCR3 : 0x00000000 [0x4000083c]
CCR4 : 0x00000000 [0x40000840]
BDTR : 0x00000000 [0x40000844]
DCR : 0x00000000 [0x40000848]
DMAR : 0x00000081 [0x4000084c]
>>>> dac
DAC settings
CR : 0x00030003 [0x40007400]
SWTRIGR : 0x00000000 [0x40007404]
DHR12R1 : 0x00000000 [0x40007408]
DHR12L1 : 0x00000000 [0x4000740c]
DHR8R1 : 0x00000000 [0x40007410]
DHR12R2 : 0x00000000 [0x40007414]
DHR12L2 : 0x00000000 [0x40007418]
DHR8R2 : 0x00000000 [0x4000741c]
DHR12RD : 0x00000000 [0x40007420]
DHR12LD : 0x00000000 [0x40007424]
DHR8RD : 0x00000000 [0x40007428]
DOR1 : 0x00000000 [0x4000742c]
DOR2 : 0x00000000 [0x40007430]
SR : 0x00000000 [0x40007434]
>>>> gpio
// PA0 O 1 OD (50 Mhz) U7
gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_OPENDRAIN, GPIO0);
// PA1 I 1 PuPd M2 button
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO1);
gpio_set(GPIOA, GPIO1);
// PA2 I 1 PuPd SEL button
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO2);
gpio_set(GPIOA, GPIO2);
// PA3 I 1 PuPd M1 button
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO3);
gpio_set(GPIOA, GPIO3);
// PA4 I 0 An DAC1_OUT TL594.2 (1IN-)
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_ANALOG, GPIO4);
// PA5 I 0 An DAC2_OUT TL594.15 (2IN-)
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_ANALOG, GPIO5);
// PA6 I 1 PuPd
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO6);
gpio_set(GPIOA, GPIO6);
// PA7 I 0 An ADC1_IN7 R30-U2.7:V_OUT-B (measures Vout)
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_ANALOG, GPIO7);
// PA8 O 0 PP (50 Mhz) TFT.7 (not used by TFT)
gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO8);
// PA9 O 0 AF-PP (50 Mhz)
gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, GPIO9);
// PA10 I 0 PuPd
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO10);
gpio_clear(GPIOA, GPIO10);
// PA11 O 0 AF-PP (50 Mhz)
gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, GPIO11);
// PA12 I 1 Flt
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO12);
// PA13 I 0 PuPd
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO13);
gpio_clear(GPIOA, GPIO13);
// PA14 I 1 PuPd SWDCLK
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO14);
gpio_set(GPIOA, GPIO14);
// PA15 O 1 OD (50 Mhz) R41-TL594.16 (2IN+)
gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_OPENDRAIN, GPIO15);
// PB0 I 0 An ADC1_IN8 R7/R2-R14-D4 (measures Vin)
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_ANALOG, GPIO0);
// PB1 I 0 An ADC1_IN9 R33-U2.1:V_OUT-A (measures Iout)
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_ANALOG, GPIO1);
// PB2 I 1 Flt
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO2);
// PB3 O 1 OD (50 Mhz) R11-R17-R25-U2.5 (V_inB+)
gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_OPENDRAIN, GPIO3);
// PB4 I 1 PuPd PWR button
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO4);
gpio_set(GPIOB, GPIO4);
// PB5 I 1 PuPd Rotary press
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO5);
gpio_set(GPIOB, GPIO5);
// PB6 I 1 Flt NC?
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO6);
// PB7 O 0 AF-PP (50 Mhz) TIM4_CH2
gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, GPIO7);
// PB8 I 0 PuPd Rotary enc
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO8);
gpio_clear(GPIOB, GPIO8);
// PB9 I 0 PuPd Rotary enc
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO9);
gpio_clear(GPIOB, GPIO9);
// PB10 I 1 Flt
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO10);
// PB11 O 1 PP (50 Mhz) nPwrEnable R29-TFT.2 (TFT_VCC)
gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO11);
// PB12 O 1 PP (50 Mhz) SPI2_NSS TFT_RESET
gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO12);
// PB13 O 1 AF-PP (50 Mhz) SPI2_SCK
gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, GPIO13);
// PB14 O 1 PP (50 Mhz) SPI2_MISO TFT_A0
gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO14);
// PB15 O 1 AF-PP (50 Mhz) SPI2_MOSI
gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, GPIO15);
// PC0 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO0);
// PC1 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO1);
// PC2 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO2);
// PC3 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO3);
// PC4 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO4);
// PC5 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO5);
// PC6 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO6);
// PC7 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO7);
// PC8 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO8);
// PC9 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO9);
// PC10 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO10);
// PC11 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO11);
// PC12 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO12);
// PC13 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO13);
// PC14 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO14);
// PC15 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO15);
// PD0 I 1 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO0);
// PD1 O 1 PP (50 Mhz) U7
gpio_set_mode(GPIOD, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO1);
// PD2 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO2);
// PD3 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO3);
// PD4 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO4);
// PD5 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO5);
// PD6 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO6);
// PD7 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO7);
// PD8 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO8);
// PD9 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO9);
// PD10 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO10);
// PD11 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO11);
// PD12 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO12);
// PD13 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO13);
// PD14 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO14);
// PD15 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO15);
>>>> gpiob
GPIOB settings
CRL : 0xb4887400 [0x40010c00]
CRH : 0xb3b33488 [0x40010c04]
IDR : 0x0000fcf4 [0x40010c08]
ODR : 0x0000fb38 [0x40010c0c]
BSRR : 0x00000000 [0x40010c10]
BRR : 0x00000000 [0x40010c14]
LCKR : 0x00000000 [0x40010c18]
>>>> gpioc
GPIOC settings
CRL : 0x44444444 [0x40011000]
CRH : 0x44444444 [0x40011004]
IDR : 0x00000000 [0x40011008]
ODR : 0x00000000 [0x4001100c]
BSRR : 0x00000000 [0x40011010]
BRR : 0x00000000 [0x40011014]
LCKR : 0x00000000 [0x40011018]
>>>> gpioa
GPIOA settings
CRL : 0x08008887 [0x40010800]
CRH : 0x7884b8b3 [0x40010804]
IDR : 0x0000524f [0x40010808]
ODR : 0x0000a04f [0x4001080c]
BSRR : 0x00000000 [0x40010810]
BRR : 0x00000000 [0x40010814]
LCKR : 0x00000000 [0x40010818]
>>>> gpiod
GPIOD settings
CRL : 0x44444434 [0x40011400]
CRH : 0x44444444 [0x40011404]
IDR : 0x00000003 [0x40011408]
ODR : 0x00000002 [0x4001140c]
BSRR : 0x00000000 [0x40011410]
BRR : 0x00000000 [0x40011414]
LCKR : 0x00000000 [0x40011418]
>>>> adc1
ADC1 settings
SR : 0x00000010 [0x40012400]
CR1 : 0x00000000 [0x40012404]
CR2 : 0x009e0001 [0x40012408]
SMPR1 : 0x00000000 [0x4001240c]
SMPR2 : 0x36c00000 [0x40012410]
JOFR1 : 0x00000000 [0x40012414]
JOFR2 : 0x00000000 [0x40012418]
JOFR3 : 0x00000000 [0x4001241c]
JOFR4 : 0x00000000 [0x40012420]
HTR : 0x00000fff [0x40012424]
LTR : 0x00000000 [0x40012428]
SQR1 : 0x00000000 [0x4001242c]
SQR2 : 0x00000000 [0x40012430]
SQR3 : 0x00000008 [0x40012434]
JSQR : 0x00000000 [0x40012438]
JDR1 : 0x00000000 [0x4001243c]
JDR2 : 0x00000000 [0x40012440]
JDR3 : 0x00000000 [0x40012444]
JDR4 : 0x00000000 [0x40012448]
DR : 0x00000314 [0x4001244c]
>>>> afio
AFIO settings
EVCR : 0x00000000 [0x40010000]
MAPR : 0x02008000 [0x40010004]
EXTICR1 : 0x00000000 [0x40010008]
EXTICR2 : 0x00000011 [0x4001000c]
EXTICR3 : 0x00000011 [0x40010010]
EXTICR4 : 0x00000000 [0x40010014]
MAPR2 : 0x00000000 [0x40010018]
>>>> exti
EXTI settings
IMR : 0x0000033e [0x40010400]
EMR : 0x00000000 [0x40010404]
RTSR : 0x00000300 [0x40010408]
FTSR : 0x0000033e [0x4001040c]
SWIER : 0x00000000 [0x40010410]
PR : 0x00000000 [0x40010414]
>>>> rcc
RCC settings
CR : 0x03003d83 [0x40021000]
CFGR : 0x0410000a [0x40021004]
CIR : 0x00000000 [0x40021008]
APB2RSTR : 0x00000000 [0x4002100c]
APB1RSTR : 0x00000000 [0x40021010]
AHBENR : 0x00000014 [0x40021014]
APB2ENR : 0x00004a2d [0x40021018]
APB1ENR : 0x20004006 [0x4002101c]
BDCR : 0x00000000 [0x40021020]
CSR : 0x0c000000 [0x40021024]
CFGR2 : 0x00000000 [0x4002102c]

View file

@ -0,0 +1,393 @@
>>>> spi2
SPI2 settings
CR2 : 0x00000347 [0x40003800]
CR1 : 0x00000000 [0x40003804]
SR : 0x00000002 [0x40003808]
DR : 0x000000ff [0x4000380c]
CRCPR : 0x00000007 [0x40003810]
RXCRCR : 0x00000000 [0x40003814]
TXCRCR : 0x00000000 [0x40003818]
>>>> dma
DMA settings
ISR : 0x00000000 [0x40020000]
IFCR : 0x00000000 [0x40020004]
CCR1 : 0x00000000 [0x40020008]
CNDTR : 0x00000000 [0x40020084]
CPAR1 : 0x00000000 [0x40020010]
CMAR1 : 0x00000000 [0x40020014]
CCR2 : 0x00000000 [0x4002001c]
CNDTR : 0x00000000 [0x40020084]
CPAR2 : 0x00000000 [0x40020024]
CMAR2 : 0x00000000 [0x40020028]
CCR3 : 0x00000000 [0x40020030]
CNDTR : 0x00000000 [0x40020084]
CPAR3 : 0x00000000 [0x40020038]
CMAR3 : 0x00000000 [0x4002003c]
CCR4 : 0x00000000 [0x40020044]
CNDTR : 0x00000000 [0x40020084]
CPAR4 : 0x00000000 [0x4002004c]
CMAR4 : 0x00000000 [0x40020050]
CCR5 : 0x00000000 [0x40020058]
CNDTR : 0x00000000 [0x40020084]
CPAR5 : 0x00000000 [0x40020060]
CMAR5 : 0x00000000 [0x40020064]
CCR6 : 0x00000000 [0x4002006c]
CNDTR : 0x00000000 [0x40020084]
CPAR6 : 0x00000000 [0x40020074]
CMAR6 : 0x00000000 [0x40020078]
CCR7 : 0x00000000 [0x40020080]
CNDTR : 0x00000000 [0x40020084]
CPAR7 : 0x00000000 [0x40020088]
>>>> spi1
SPI1 settings
CR2 : 0x00000000 [0x40013000]
CR1 : 0x00000000 [0x40013004]
SR : 0x00000000 [0x40013008]
DR : 0x00000000 [0x4001300c]
CRCPR : 0x00000000 [0x40013010]
RXCRCR : 0x00000000 [0x40013014]
TXCRCR : 0x00000000 [0x40013018]
>>>> tim4
TIM4 settings
CR1 : 0x00000081 [0x40000800]
CR2 : 0x00000000 [0x40000804]
SMC : 0x00000000 [0x40000808]
DIER : 0x00000000 [0x4000080c]
SR : 0x0000001f [0x40000810]
EGR : 0x00000000 [0x40000814]
CCMR1 : 0x00006800 [0x40000818]
CCMR2 : 0x00000000 [0x4000081c]
CCER : 0x00000010 [0x40000820]
CNT : 0x00003a34 [0x40000824]
PSC : 0x00000000 [0x40000828]
ARR : 0x00005dbf [0x4000082c]
RCR : 0x00000000 [0x40000830]
CCR1 : 0x00000000 [0x40000834]
CCR2 : 0x00004e20 [0x40000838]
CCR3 : 0x00000000 [0x4000083c]
CCR4 : 0x00000000 [0x40000840]
BDTR : 0x00000000 [0x40000844]
DCR : 0x00000000 [0x40000848]
DMAR : 0x00000081 [0x4000084c]
>>>> dac
DAC settings
CR : 0x00030003 [0x40007400]
SWTRIGR : 0x00000000 [0x40007404]
DHR12R1 : 0x00000000 [0x40007408]
DHR12L1 : 0x00000000 [0x4000740c]
DHR8R1 : 0x00000000 [0x40007410]
DHR12R2 : 0x00000e1c [0x40007414]
DHR12L2 : 0x0000e1c0 [0x40007418]
DHR8R2 : 0x000000e1 [0x4000741c]
DHR12RD : 0x0e1c0000 [0x40007420]
DHR12LD : 0xe1c00000 [0x40007424]
DHR8RD : 0x0000e100 [0x40007428]
DOR1 : 0x00000000 [0x4000742c]
DOR2 : 0x00000e1c [0x40007430]
SR : 0x00000000 [0x40007434]
>>>> gpio
// PA0 O 1 OD (50 Mhz) U7
gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_OPENDRAIN, GPIO0);
// PA1 I 1 PuPd M2 button
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO1);
gpio_set(GPIOA, GPIO1);
// PA2 I 1 PuPd SEL button
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO2);
gpio_set(GPIOA, GPIO2);
// PA3 I 1 PuPd M1 button
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO3);
gpio_set(GPIOA, GPIO3);
// PA4 I 0 An DAC1_OUT TL594.2 (1IN-)
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_ANALOG, GPIO4);
// PA5 I 0 An DAC2_OUT TL594.15 (2IN-)
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_ANALOG, GPIO5);
// PA6 I 1 PuPd
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO6);
gpio_set(GPIOA, GPIO6);
// PA7 I 0 An ADC1_IN7 R30-U2.7:V_OUT-B (measures Vout)
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_ANALOG, GPIO7);
// PA8 O 1 PP (50 Mhz) TFT.7 (not used by TFT)
gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO8);
// PA9 O 0 AF-PP (50 Mhz)
gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, GPIO9);
// PA10 I 0 PuPd
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO10);
gpio_clear(GPIOA, GPIO10);
// PA11 O 0 AF-PP (50 Mhz)
gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, GPIO11);
// PA12 I 1 Flt
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO12);
// PA13 I 0 PuPd
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO13);
gpio_clear(GPIOA, GPIO13);
// PA14 I 1 PuPd SWDCLK
gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO14);
gpio_set(GPIOA, GPIO14);
// PA15 O 1 OD (50 Mhz) R41-TL594.16 (2IN+)
gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_OPENDRAIN, GPIO15);
// PB0 I 0 An ADC1_IN8 R7/R2-R14-D4 (measures Vin)
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_ANALOG, GPIO0);
// PB1 I 0 An ADC1_IN9 R33-U2.1:V_OUT-A (measures Iout)
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_ANALOG, GPIO1);
// PB2 I 1 Flt
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO2);
// PB3 O 1 OD (50 Mhz) R11-R17-R25-U2.5 (V_inB+)
gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_OPENDRAIN, GPIO3);
// PB4 I 1 PuPd PWR button
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO4);
gpio_set(GPIOB, GPIO4);
// PB5 I 1 PuPd Rotary press
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO5);
gpio_set(GPIOB, GPIO5);
// PB6 I 1 Flt NC?
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO6);
// PB7 O 0 AF-PP (50 Mhz) TIM4_CH2
gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, GPIO7);
// PB8 I 0 PuPd Rotary enc
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO8);
gpio_clear(GPIOB, GPIO8);
// PB9 I 0 PuPd Rotary enc
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO9);
gpio_clear(GPIOB, GPIO9);
// PB10 I 1 Flt
gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO10);
// PB11 O 0 PP (50 Mhz) nPwrEnable R29-TFT.2 (TFT_VCC)
gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO11);
// PB12 O 1 PP (50 Mhz) SPI2_NSS TFT_RESET
gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO12);
// PB13 O 1 AF-PP (50 Mhz) SPI2_SCK
gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, GPIO13);
// PB14 O 1 PP (50 Mhz) SPI2_MISO TFT_A0
gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO14);
// PB15 O 1 AF-PP (50 Mhz) SPI2_MOSI
gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, GPIO15);
// PC0 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO0);
// PC1 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO1);
// PC2 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO2);
// PC3 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO3);
// PC4 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO4);
// PC5 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO5);
// PC6 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO6);
// PC7 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO7);
// PC8 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO8);
// PC9 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO9);
// PC10 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO10);
// PC11 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO11);
// PC12 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO12);
// PC13 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO13);
// PC14 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO14);
// PC15 I 0 Flt
gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO15);
// PD0 I 1 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO0);
// PD1 O 1 PP (50 Mhz) U7
gpio_set_mode(GPIOD, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO1);
// PD2 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO2);
// PD3 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO3);
// PD4 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO4);
// PD5 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO5);
// PD6 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO6);
// PD7 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO7);
// PD8 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO8);
// PD9 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO9);
// PD10 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO10);
// PD11 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO11);
// PD12 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO12);
// PD13 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO13);
// PD14 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO14);
// PD15 I 0 Flt
gpio_set_mode(GPIOD, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO15);
>>>> gpiob
GPIOB settings
CRL : 0xb4887400 [0x40010c00]
CRH : 0xb3b33488 [0x40010c04]
IDR : 0x000074f4 [0x40010c08]
ODR : 0x0000f338 [0x40010c0c]
BSRR : 0x00000000 [0x40010c10]
BRR : 0x00000000 [0x40010c14]
LCKR : 0x00000000 [0x40010c18]
>>>> gpioc
GPIOC settings
CRL : 0x44444444 [0x40011000]
CRH : 0x44444444 [0x40011004]
IDR : 0x00000000 [0x40011008]
ODR : 0x00000000 [0x4001100c]
BSRR : 0x00000000 [0x40011010]
BRR : 0x00000000 [0x40011014]
LCKR : 0x00000000 [0x40011018]
>>>> gpioa
GPIOA settings
CRL : 0x08008887 [0x40010800]
CRH : 0x7884b8b3 [0x40010804]
IDR : 0x0000534f [0x40010808]
ODR : 0x0000a14f [0x4001080c]
BSRR : 0x00000000 [0x40010810]
BRR : 0x00000000 [0x40010814]
LCKR : 0x00000000 [0x40010818]
>>>> gpiod
GPIOD settings
CRL : 0x44444434 [0x40011400]
CRH : 0x44444444 [0x40011404]
IDR : 0x00000003 [0x40011408]
ODR : 0x00000002 [0x4001140c]
BSRR : 0x00000000 [0x40011410]
BRR : 0x00000000 [0x40011414]
LCKR : 0x00000000 [0x40011418]
>>>> adc1
ADC1 settings
SR : 0x00000010 [0x40012400]
CR1 : 0x00000000 [0x40012404]
CR2 : 0x009e0001 [0x40012408]
SMPR1 : 0x00000000 [0x4001240c]
SMPR2 : 0x36c00000 [0x40012410]
JOFR1 : 0x00000000 [0x40012414]
JOFR2 : 0x00000000 [0x40012418]
JOFR3 : 0x00000000 [0x4001241c]
JOFR4 : 0x00000000 [0x40012420]
HTR : 0x00000fff [0x40012424]
LTR : 0x00000000 [0x40012428]
SQR1 : 0x00000000 [0x4001242c]
SQR2 : 0x00000000 [0x40012430]
SQR3 : 0x00000008 [0x40012434]
JSQR : 0x00000000 [0x40012438]
JDR1 : 0x00000000 [0x4001243c]
JDR2 : 0x00000000 [0x40012440]
JDR3 : 0x00000000 [0x40012444]
JDR4 : 0x00000000 [0x40012448]
DR : 0x00000313 [0x4001244c]
>>>> afio
AFIO settings
EVCR : 0x00000000 [0x40010000]
MAPR : 0x02008000 [0x40010004]
EXTICR1 : 0x00000000 [0x40010008]
EXTICR2 : 0x00000011 [0x4001000c]
EXTICR3 : 0x00000011 [0x40010010]
EXTICR4 : 0x00000000 [0x40010014]
MAPR2 : 0x00000000 [0x40010018]
>>>> exti
EXTI settings
IMR : 0x0000033e [0x40010400]
EMR : 0x00000000 [0x40010404]
RTSR : 0x00000300 [0x40010408]
FTSR : 0x0000033e [0x4001040c]
SWIER : 0x00000000 [0x40010410]
PR : 0x00000000 [0x40010414]
>>>> rcc
RCC settings
CR : 0x03003d83 [0x40021000]
CFGR : 0x0410000a [0x40021004]
CIR : 0x00000000 [0x40021008]
APB2RSTR : 0x00000000 [0x4002100c]
APB1RSTR : 0x00000000 [0x40021010]
AHBENR : 0x00000014 [0x40021014]
APB2ENR : 0x00004a2d [0x40021018]
APB1ENR : 0x20004006 [0x4002101c]
BDCR : 0x00000000 [0x40021020]
CSR : 0x0c000000 [0x40021024]
CFGR2 : 0x00000000 [0x4002102c]

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

View file

@ -0,0 +1,94 @@
Teardown and disassembly of the DPS8005
#######################################
:date: 2019-01-06 16:00
:tags: hardware, dps8005
I disassembled the DPS8005 step-down converter from aliexpress_ so you don't have to.
I did this after the installation of the alternative firmware OpenDPS_ somewhat
failed and i've opened an issue in github_.
This blog post contains the images of all parts of the DPS from lower level, where
the MOSFETS are attached, to the upper part with the logic circuit to the
display.
All images can be **clicked** to enhance to full size.
Lower Part
----------
I desoldered the heatsink on the mosfets to get to the pass-through pins.
The board is a bit dirty due to my amateurish desoldering skills.
bottom
``````
.. image:: /img/dps8005/lower-bottom.jpg
:width: 500px
:target: /img/dps8005/lower-bottom.jpg
top
```
.. image:: /img/dps8005/lower-top.jpg
:width: 500px
:target: /img/dps8005/lower-top.jpg
Middle Part
-----------
bottom
``````
.. image:: /img/dps8005/upper-bottom.jpg
:width: 500px
:target: /img/dps8005/upper-bottom.jpg
top
```
I added some text because i was unable to get a clean image where every ic on
the board can be read. I also added the pinout for UART and the SWD
interface.
.. image:: /img/dps8005/upper-top-text.jpg
:width: 500px
:target: /img/dps8005/upper-top-text.jpg
Display
-----------
bottom
``````
.. image:: /img/dps8005/display-bottom.jpg
:width: 500px
:target: /img/dps8005/display-bottom.jpg
top
``````
.. image:: /img/dps8005/display-top.jpg
:width: 500px
:target: /img/dps8005/display-top.jpg
I hope this helps reverse-engineering the difference between this device and
the DPS5005!
Auxiliary files
---------------
OpenDPS suggested taking register snapshots via the SWD-Interface_ with the
help of an ST-link and openOCD. For all files the input was 20.84V .
* 5 Volt: 5v-off_ 5v-on_
* 10 Volt: 10v-off_ 10v-on_
* 15 Volt: 15v-off_ 15v-on_
.. _aliexpress: https://web.archive.org/web/20190106165910/https://www.aliexpress.com/item/RD-DPS8005-programmable-constant-voltage-current-Step-down-power-supply-module-Voltmeter-Ammeter-buck-converter-80V/32849962454.html
.. _OpenDPS: https://github.com/kanflo/opendps
.. _github: https://github.com/kanflo/opendps/issues/68
.. _SWD-Interface: https://www.silabs.com/community/mcu/32-bit/knowledge-base.entry.html/2014/10/21/serial_wire_debugs-qKCT
.. _5v-off: /extra/dps8005/5v-off.txt
.. _5v-on: /extra/dps8005/v-on.txt
.. _10v-off: /extra/dps8005/10v-off.txt
.. _10v-on: /extra/dps8005/10v-on.txt
.. _15v-off: /extra/dps8005/15v-off.txt
.. _15v-on: /extra/dps8005/15v-on.txt