2016-02-05 2:24 GMT+01:00 Niklas Hauser <niklas.hau...@rwth-aachen.de>: > Ok. > Radical idea: Forget SystemClock and configure the clock yourself. > We did this for the STM32F072, which has the same problem of not having > SystemClock support. > > We created a MockUp for SystemClock: > https://github.com/roboterclubaachen/xpcc/blob/develop/examples/stm32f072_discovery/stm32f072_discovery.hpp#L32-L38 > > This is used to allow the peripherals to initialize correctly, since they > require the input frequency. > Essentially it’s a manual representation of all the <output> tags and > prescalers in the clock tree. > > Then configure and initialize the clock tree yourself: > https://github.com/roboterclubaachen/xpcc/blob/develop/examples/stm32f072_discovery/stm32f072_discovery.hpp#L65-L103 > > The F103 doesn’t have the HSI48, so obviously you need to adapt this. > You don’t have to start from scratch, you may have a look at the > xpcc::stm32::ClockControl: > https://github.com/salkinium/xpcc/blob/feature/stm32f103_support_experimental/src/xpcc/architecture/platform/driver/clock/stm32/clock.cpp.in#L24-L42 > > Generated file for F103 (might still be wrong!, Better verify this code with > the Reference Manual!) > https://gist.github.com/salkinium/7113bb72c1f33ee6677d > > You then are free of the SystemClock dependency and should be able to just > use the normal develop branch.
I will try this then. I still need to copy over the device description file, right? > At 32MHz it shouldn’t compile, there are no CAN settings to choose from. > Hm? Actually, I was thinking the same. But I'm quite positive I'm running at 32Mhz, the clock is configured like this: using systemClock = SystemClock<Pll<InternalClock, MHz32>, AhbPrescaler::Div1, Apb1Prescaler::Div1>; and writing out xpcc::clock::fcpu at runtimes confirms this. > The F1 CAN hardwrae is identical to the F4. > You need to initialize your filter as well. > > See this loop-back example here: > https://github.com/salkinium/xpcc/blob/feature/stm32f103_support_experimental/examples/stm32f4_discovery/can/main.cpp#L55-L79 What is 'CanFilter::setStartFilterBankForCan2(14);'? If I'm only using Can1, should I still call this with something? _______________________________________________ xpcc-dev mailing list firstname.lastname@example.org http://mailman.rwth-aachen.de/mailman/listinfo/xpcc-dev