2015-08-01 06:43 AM
I have an idea about a CAN bus with 100-150 devices and a central processor. But we have very limited power available. All but one device should be awake at one time. There is no power to keep 100 CPUs active simultaneously.
So, is it possible to wake up the CPU only when its address is on the bus?2015-08-05 06:11 AM
Hi mich.lei,
If you have not yet chosen the devices serie, I recommend you to choose low power series (STM32L). To reduce comsumption you can put MPUs in one of low-power modes, and when a data is received on the bus an interruption is generated to wake up the MPU. -Shahrzad-2015-08-07 01:13 PM
Hi shahrzad
It takes too much power if all the devices are active everytime there is some traffic on the bus. How to configure the CPU so that it wakes up only when exactly that CPU is addressed? Can bus interface chips are power hungry too.2015-08-07 05:46 PM
It would depend a lot on your ''addressing'' scheme for the bus. You can use the message ID, or pattern match on the first 32-bits of the CAN packet header, as described in the reference manual, to filter into a CAN FIFO, the CAN peripheral could then interrupt pulling the device from it's sleep mode. If you bury something deeper in the data payload, then you're going to have to inspect everything.
Perhaps this isn't the right bus for the job? If the transceivers themselves pull too much power how's this going to work? If you can't be listening on the bus, you'd have to schedule times when the nodes come up and talk/listen to each other.2015-08-08 03:59 PM
I too have began to think that the CAN bus does not work here. There is an additional device which could have used the same bus, but as you said there are too many other problems.