Hi,
In case anyone wants to reduce the power comsumption of the Carambola I discovered from the datasheet that the internal network switch uses a lot of power on a port by port basis, it has 5 network PHYs (or equivalent), each having its own set of control registers.
Using the "mmio" tool you can manipulate the power usage on each PHY individually and if your project only requires periodic network access and/or only one port like mine you can significantly reduce overall power usage. My project is a data logger and I accumulate a number of readings then connect the network send the readings and then shut the PHY off. Before I did this my board used 200ma+, in now uses 93ma (76ma for the Carambola itself) jumping to 115ma periodically when connected.
This turns them all off...
mmio 0x101100c0 0x08002000
mmio 0x101100c0 0x08002001
mmio 0x101100c0 0x08002002
mmio 0x101100c0 0x08002003
mmio 0x101100c0 0x08002004
I only use a single Ethernet port so I periodiocally turn on the one I want (eth0) in my program...
mmio 0x101100c0 0x00002000
I know this isn't a very friendly thing to do to the O/S but it's really just like removing the Ethernet cable as far as the Linux driver / networking stack knows and as you would imagine it handles that perfectly well. If anyone knows any IOCTLs that do this in a more Linux friendly way let me know. But for now it's definitely a hack, albeit one that can reduce the Carambola power usage to 76ma.
Beware: Obviously do this from inside your program or the serial console and not from a network SSH session. Lest you saw off the branch upon which you sit!!!!
If anyone else has power saving tips please post them
Have fun.
Liam.