I was using my BBB recently and noticed that it gets pretty hot when it runs for more than a few minutes (I’ve never really touched it while it’s on before). It doesn’t seem to be a problem, but I was wondering if the BBB had a built-in temperature sensor. I know some laptops have internal thermometers, so does the BBB have one? It’s meant as a minimal device, so I would imagine it doesn’t, but it would be nice to know if it does!
That is normal operation. When you hold your finger on it your skin heats up making it hot The longer you hold it, the hotter it feels.
The processor has on on-chip temperature sensor. You can read about it in the TRM found at http://www.ti.com/product/am3359
It doesn’t seem to be my finger heating it up; it hurts after half a second or so, and I don’t think that the human body temperature is enough to hurt the human body, generally speaking ;). Anyway, do you know how I can access it? I have a few packages that should be able to read built-in temperature sensors, but none of them are able to locate it automatically and I have no idea what to give it for ‘Sensor location’. I don’t see anything mounted in /dev/ that could be helpful and I don’t know enough about Linux to know where else it could be. What is the ‘location’ that I need to access it?
I do not know how to access it. You can read the TRM and see if there is a mechanism for accessing it and if so, what the address is.
Maybe I should have asked this originally… What does ‘TRM’ mean?
Technical Reference Manual. It can be found at the link I sent you.
"You can read about it in the TRM found at http://www.ti.com/product/am3359"
It describes how the processor works and all the functions of the processor. It has all the addresses for all the internal components. Just do a search for Temperature sensor.
Indeed there is a temp sensor. I looked in up in the TRM and then wrote this script to read it.
# Reads internal temperature of AM335x
# 0x44e1_0000 is the starting address of the Control Module (Table 2.2 p 171 of TRM)
# 0x0448 is the address of the bandgap_crtl register which has
# 8 bits (8-15) of temperature (Table 9-19 p 1137)
devmem2 0x44e10448 w
devmem2 0x44e10449 b
Memory mapped at address 0xb6ff5000.
Read at address 0x44E10448 (0xb6ff5448): 0x0000301E
Memory mapped at address 0xb6f71000.
Read at address 0x44E10449 (0xb6f71449): 0x30
I used devmem2 to read the register directly. The last command uses the Linux interface to read it. I’m guessing the units are C, but the manual doesn’t say.
48 degrees is not enough to hurt your finger
No. But if room temp is about 20C then that’s 28C above room temp .
I just tried to run your script on my BBB (running Debian) and it came up with a few errors:
· Devmem2 is not installed. I would assume that this is some sort of a utility to read from memory? How can I install it?
· The directory ‘44e10448.bandgap’ doesn’t exist. Is there something that I have to mount manually?
I just compiled devmem2 from source and your script is reading from memory correctly now. But the second read is returning 0x00 and it still can’t find that directory.
Hmmm… I’m running Angstrum with the 3.8 kernel. What are you running?
I tested it on Debian, but I also have an SD card for Ubuntu and Angstrom on-board. Should I test it in one of those?
It looks like /sys/devices/ocp.2/44e10448.bandgap/tmp1_input is on my 2013.09.04 Angstrum image, but not on the older 2013.06.20 image. Looks like I need up upgrade the BBB in my office.
hi this is an old thread
but i just tried with devmem2
apparently i simply gets a value 0x20
that apparently mean the temperature sensor is off (TRM table 9-19)
i tried writing a zero byte (to turn it on/reset it)
devmem2 0x44e10448 b 0
but it seemed i continue to get 0x20 in return
any 1 has similar response from BBB?
devmem2 may need to be downloaded and compiled on the BBB itself: