it is not that simple, because not all of the current goes into the chip is burned in the chip... because it would not be able to do 160mA... (some have a limit of 120mA) and it is not 5V but based on 3.3V. If all would be burned up in the chip, the pins would not drive anything anymore either. The average of 40mA is the running chip... no real loads applied to pins. It is less with lower clocking, and higher w/ higher clocking. Voltage drop - voltage across the pin and supply - when sourcing - or ground - when sinking - and the current make up for the heat to dissipate. The limit is not only because of the package but also how fat the bonding wires are... For that reason it is specified that at all times all supply and ground pins have to be connected. Power and ground is provided to the chip on different areas.
I was checking the the GRS sensor schema, and it does use 4.7k+4.7K voltage divider to define the '0-line' considering 3.3V and Ground rails as + and - feed of the op amp - which puts a constant draw of 0.35mA. The op amps (4) themselves consume about 0.7mA according to data sheet -http://www.ti.com/lit/ds/symlink/lm324-n.pdf - and is practically independent of the supply voltage. Even if I'm off by factor 10 with these numbers, it is safe to drive the GRS sensor with Espruino PICO pins. For the NRF52832 - Puck.js, Pixl.js, BLE MDBT42Q Bluetooth Module and breakout board the numbers look a bit different: https://infocenter.nordicsemi.com/pdf/nRF52832_PS_v1.1.pdf und 20 GPIO — General purpose input/output (p.155) - I see the numbers are lower for source and sink - but should still be sufficient to drive the GRS breakout board.
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
@Robin,
it is not that simple, because not all of the current goes into the chip is burned in the chip... because it would not be able to do 160mA... (some have a limit of 120mA) and it is not 5V but based on 3.3V. If all would be burned up in the chip, the pins would not drive anything anymore either. The average of 40mA is the running chip... no real loads applied to pins. It is less with lower clocking, and higher w/ higher clocking. Voltage drop - voltage across the pin and supply - when sourcing - or ground - when sinking - and the current make up for the heat to dissipate. The limit is not only because of the package but also how fat the bonding wires are... For that reason it is specified that at all times all supply and ground pins have to be connected. Power and ground is provided to the chip on different areas.
I was checking the the GRS sensor schema, and it does use 4.7k+4.7K voltage divider to define the '0-line' considering 3.3V and Ground rails as + and - feed of the op amp - which puts a constant draw of 0.35mA. The op amps (4) themselves consume about 0.7mA according to data sheet -http://www.ti.com/lit/ds/symlink/lm324-n.pdf - and is practically independent of the supply voltage. Even if I'm off by factor 10 with these numbers, it is safe to drive the GRS sensor with Espruino PICO pins. For the NRF52832 - Puck.js, Pixl.js, BLE MDBT42Q Bluetooth Module and breakout board the numbers look a bit different: https://infocenter.nordicsemi.com/pdf/nRF52832_PS_v1.1.pdf und 20 GPIO — General purpose input/output (p.155) - I see the numbers are lower for source and sink - but should still be sufficient to drive the GRS breakout board.