Code changings for custom board

This forum is about you. Feel free to discuss anything is related to embedded and electronics, your awesome projects, your ideas, your announcements, not necessarily related to ChibiOS but to embedded in general. This forum is NOT for support.
Post Reply
A319
Posts: 48
Joined: Thu Feb 05, 2015 9:52 am
Has thanked: 2 times
Been thanked: 3 times

Code changings for custom board

Post by A319 »

Hi,

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
User avatar
Giovanni
Site Admin
Posts: 14892
Joined: Wed May 27, 2009 8:48 am
Has thanked: 1202 times
Been thanked: 996 times

Re: Code changings for custom board

Post by Giovanni »

You should assess where it hangs, assuming it at least starts.

Giovanni
A319
Posts: 48
Joined: Thu Feb 05, 2015 9:52 am
Has thanked: 2 times
Been thanked: 3 times

Re: Code changings for custom board

Post by A319 »

Hi Giovanni,

It was my fault. I chose a TCXO which hasn't been suitable for my STM32F429. It only generates 0.7Vpp but the high voltage level of clockin must be above 0.7*Vcc. :roll:

Regards
Sven
Koen
Posts: 35
Joined: Mon Dec 21, 2015 12:15 am
Been thanked: 5 times

Re: Code changings for custom board

Post by Koen »

Hello,

your 0.7Vpp TCXO should clock it fine provided the STM32 oscillator input buffer is enabled, like it would for a normal crystal oscillator (so HSE_BYPASS disabled). It will bias the TCXO output to useable level. Don't forget a 1000pF capacitor between TCXO output and OSC input, leave OSC output floating.
User avatar
Giovanni
Site Admin
Posts: 14892
Joined: Wed May 27, 2009 8:48 am
Has thanked: 1202 times
Been thanked: 996 times

Re: Code changings for custom board

Post by Giovanni »

Good to know, never did that.
Post Reply