Last night, I worked on my camera project for which I use a STM32F429IIH. So far I was using the STM429 discovery board for development and everything worked fine.
Since I can't look under the BGA package, I don't know exactly if there's a way to check, if all solder joints are correct. But I assume they are because I've already soldered BGA manually and I can flash the memory. So basically it seems to work.
For persons who are interested in:
- Photos of production: https://drive.google.com/folderview?id= ... sp=sharing
- Eagle Project files: https://github.com/DL7AD/pecanpico7/ (At the moment it contains some errors)
Since the code didn't startup, I changed the main to a very simple hello world example:
Code: Select all
#include "ch.h"
#include "hal.h"
int main(void) {
// Startup RTOS
halInit();
chSysInit();
palSetPadMode(GPIOC, 13, PAL_MODE_OUTPUT_PUSHPULL); // LED 1
palSetPadMode(GPIOC, 15, PAL_MODE_OUTPUT_PUSHPULL); // LED 2
palSetPadMode(GPIOE, 3, PAL_MODE_OUTPUT_PUSHPULL); // LED 3
while(1) {
palClearPad(GPIOC, 13);
palClearPad(GPIOC, 15);
palClearPad(GPIOE, 3);
chThdSleepMilliseconds(500);
palSetPad(GPIOC, 13);
palSetPad(GPIOC, 15);
palSetPad(GPIOE, 3);
chThdSleepMilliseconds(500);
}
}
Since I use a different oscillator (26MHz), I've taken this into account in the board.h. I've taken the board configuration NONSTANDARD_STM32F4_BARTHESS1 and patched the frequency. I can flash the code to the uC memory but the code doesn't start up (No Blinking). Finally I changed the clock to it's internal, but this didn't change it.
Code: Select all
#define STM32_NO_INIT FALSE
#define STM32_HSI_ENABLED TRUE
#define STM32_LSI_ENABLED TRUE
#define STM32_HSE_ENABLED FALSE
#define STM32_LSE_ENABLED FALSE
#define STM32_CLOCK48_REQUIRED TRUE
#define STM32_SW STM32_SW_HSI
#define STM32_PLLSRC STM32_PLLSRC_HSE
#define STM32_PLLM_VALUE 26
#define STM32_PLLN_VALUE 336
#define STM32_PLLP_VALUE 2
#define STM32_PLLQ_VALUE 7
#define STM32_HPRE STM32_HPRE_DIV1
#define STM32_PPRE1 STM32_PPRE1_DIV4
#define STM32_PPRE2 STM32_PPRE2_DIV2
#define STM32_RTCSEL STM32_RTCSEL_LSI
#define STM32_RTCPRE_VALUE 8
#define STM32_MCO1SEL STM32_MCO1SEL_HSI
#define STM32_MCO1PRE STM32_MCO1PRE_DIV1
#define STM32_MCO2SEL STM32_MCO2SEL_SYSCLK
#define STM32_MCO2PRE STM32_MCO2PRE_DIV5
#define STM32_I2SSRC STM32_I2SSRC_CKIN
#define STM32_PLLI2SN_VALUE 192
#define STM32_PLLI2SR_VALUE 5
#define STM32_PVD_ENABLE FALSE
#define STM32_PLS STM32_PLS_LEV0
#define STM32_BKPRAM_ENABLE FALSE
Is there something else what I can test on RTOS level?
Regards
Sven