parent
f7d5a2b216
commit
657d11b4a2
|
@ -1,3 +0,0 @@
|
|||
((c++-mode (flycheck-gcc-language-standard . "c++11")
|
||||
(flycheck-clang-language-standard . "c++11")
|
||||
))
|
|
@ -1,59 +0,0 @@
|
|||
#include <stdio.h>
|
||||
#include <fcntl.h>
|
||||
#include <sys/mman.h>
|
||||
|
||||
void hexdump(uint32_t *d, int l) {
|
||||
for (int i = 0; i < l; i++) {
|
||||
if (i%0x10 == 0 && i != 0) printf("\n");
|
||||
printf("%8x ", d[i]);
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
/* Power cluster primary PLL */
|
||||
#define C0_PLL_MODE 0x0
|
||||
#define C0_PLL_L_VAL 0x4
|
||||
#define C0_PLL_ALPHA 0x8
|
||||
#define C0_PLL_USER_CTL 0x10
|
||||
#define C0_PLL_CONFIG_CTL 0x18
|
||||
#define C0_PLL_CONFIG_CTL_HI 0x1C
|
||||
#define C0_PLL_STATUS 0x28
|
||||
#define C0_PLL_TEST_CTL_LO 0x20
|
||||
#define C0_PLL_TEST_CTL_HI 0x24
|
||||
|
||||
/* Power cluster alt PLL */
|
||||
#define C0_PLLA_MODE 0x100
|
||||
#define C0_PLLA_L_VAL 0x104
|
||||
#define C0_PLLA_ALPHA 0x108
|
||||
#define C0_PLLA_USER_CTL 0x110
|
||||
#define C0_PLLA_CONFIG_CTL 0x118
|
||||
#define C0_PLLA_STATUS 0x128
|
||||
#define C0_PLLA_TEST_CTL_LO 0x120
|
||||
|
||||
#define APC_DIAG_OFFSET 0x48
|
||||
#define CLK_CTL_OFFSET 0x44
|
||||
#define MUX_OFFSET 0x40
|
||||
#define MDD_DROOP_CODE 0x7c
|
||||
#define SSSCTL_OFFSET 0x160
|
||||
#define PSCTL_OFFSET 0x164
|
||||
|
||||
int main() {
|
||||
int fd = open("/dev/mem", O_RDWR);
|
||||
volatile uint32_t *mb = (uint32_t *)mmap(0, 0x1000, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0x06400000);
|
||||
volatile uint32_t *mc = (uint32_t *)mmap(0, 0x1000, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0x06480000);
|
||||
volatile uint32_t *md = (uint32_t *)mmap(0, 0x1000, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0x09A20000);
|
||||
while (1) {
|
||||
printf("PLL MODE:%x L_VAL:%x ALPHA:%x USER_CTL:%x CONFIG_CTL:%x CONFIG_CTL_HI:%x STATUS:%x TEST_CTL_LO:%x TEST_CTL_HI:%x\n",
|
||||
mb[C0_PLL_MODE/4], mb[C0_PLL_L_VAL/4], mb[C0_PLL_ALPHA/4],
|
||||
mb[C0_PLL_USER_CTL/4], mb[C0_PLL_CONFIG_CTL/4], mb[C0_PLL_CONFIG_CTL_HI/4],
|
||||
mb[C0_PLL_STATUS/4], mb[C0_PLL_TEST_CTL_LO/4], mb[C0_PLL_TEST_CTL_HI/4]);
|
||||
printf(" MUX_OFFSET:%x CLK_CTL_OFFSET:%x APC_DIAG_OFFSET:%x MDD_DROOP_CODE:%x\n",
|
||||
mb[MUX_OFFSET/4], mb[CLK_CTL_OFFSET/4], mb[APC_DIAG_OFFSET/4], mb[MDD_DROOP_CODE/4]);
|
||||
printf(" PLLA MODE:%x L_VAL:%x ALPHA:%x USER_CTL:%x CONFIG_CTL:%x STATUS:%x TEST_CTL_LO:%x SSSCTL_OFFSET:%x PSCTL_OFFSET:%x\n",
|
||||
mb[C0_PLLA_MODE/4], mb[C0_PLLA_L_VAL/4], mb[C0_PLLA_ALPHA/4], mb[C0_PLLA_USER_CTL/4],
|
||||
mb[C0_PLLA_CONFIG_CTL/4], mb[C0_PLLA_STATUS/4], mb[C0_PLLA_TEST_CTL_LO/4],
|
||||
mb[SSSCTL_OFFSET/4], mb[PSCTL_OFFSET/4]);
|
||||
usleep(1000*100);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,105 +0,0 @@
|
|||
#!/usr/bin/env python3
|
||||
import os
|
||||
import time
|
||||
import numpy as np
|
||||
from openpilot.system.hardware.tici.hardware import Tici
|
||||
from openpilot.system.hardware.tici.pins import GPIO
|
||||
from openpilot.common.gpio import gpio_init, gpio_set, gpio_export
|
||||
|
||||
def read_power():
|
||||
with open("/sys/bus/i2c/devices/0-0040/hwmon/hwmon1/in1_input") as f:
|
||||
voltage_total = int(f.read()) / 1000.
|
||||
|
||||
with open("/sys/bus/i2c/devices/0-0040/hwmon/hwmon1/curr1_input") as f:
|
||||
current_total = int(f.read())
|
||||
|
||||
with open("/sys/class/power_supply/bms/voltage_now") as f:
|
||||
voltage = int(f.read()) / 1e6 # volts
|
||||
|
||||
with open("/sys/class/power_supply/bms/current_now") as f:
|
||||
current = int(f.read()) / 1e3 # ma
|
||||
|
||||
power_som = voltage*current
|
||||
power_total = voltage_total*current_total
|
||||
|
||||
return power_total, power_som
|
||||
|
||||
def read_power_avg():
|
||||
pwrs = []
|
||||
for _ in range(100):
|
||||
pwrs.append(read_power())
|
||||
time.sleep(0.01)
|
||||
power_total, power_som = np.mean([x[0] for x in pwrs]), np.mean([x[1] for x in pwrs])
|
||||
return "total %7.2f mW SOM %7.2f mW" % (power_total, power_som)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
gpio_export(GPIO.CAM0_AVDD_EN)
|
||||
gpio_export(GPIO.CAM0_RSTN)
|
||||
gpio_export(GPIO.CAM1_RSTN)
|
||||
gpio_export(GPIO.CAM2_RSTN)
|
||||
print("hello")
|
||||
os.system('kill $(pgrep -f "manager.py")')
|
||||
os.system('kill $(pgrep -f "python -m selfdrive.athena.manage_athenad")')
|
||||
os.system('kill $(pgrep -f "selfdrive.athena.athenad")')
|
||||
# stopping weston turns off lcd3v3
|
||||
os.system("sudo service weston stop")
|
||||
os.system("sudo service ModemManager stop")
|
||||
print("services stopped")
|
||||
|
||||
t = Tici()
|
||||
t.initialize_hardware()
|
||||
t.set_power_save(True)
|
||||
t.set_screen_brightness(0)
|
||||
gpio_init(GPIO.STM_RST_N, True)
|
||||
gpio_init(GPIO.HUB_RST_N, True)
|
||||
gpio_init(GPIO.GNSS_PWR_EN, True)
|
||||
gpio_init(GPIO.LTE_RST_N, True)
|
||||
gpio_init(GPIO.LTE_PWRKEY, True)
|
||||
gpio_init(GPIO.CAM0_AVDD_EN, True)
|
||||
gpio_init(GPIO.CAM0_RSTN, True)
|
||||
gpio_init(GPIO.CAM1_RSTN, True)
|
||||
gpio_init(GPIO.CAM2_RSTN, True)
|
||||
|
||||
|
||||
os.system("sudo su -c 'echo 0 > /sys/kernel/debug/regulator/camera_rear_ldo/enable'") # cam 1v2 off
|
||||
gpio_set(GPIO.CAM0_AVDD_EN, False) # cam 2v8 off
|
||||
gpio_set(GPIO.LTE_RST_N, True) # quectel off
|
||||
gpio_set(GPIO.GNSS_PWR_EN, False) # gps off
|
||||
gpio_set(GPIO.STM_RST_N, True) # panda off
|
||||
gpio_set(GPIO.HUB_RST_N, False) # hub off
|
||||
# cameras in reset
|
||||
gpio_set(GPIO.CAM0_RSTN, False)
|
||||
gpio_set(GPIO.CAM1_RSTN, False)
|
||||
gpio_set(GPIO.CAM2_RSTN, False)
|
||||
time.sleep(8)
|
||||
|
||||
print("baseline: ", read_power_avg())
|
||||
gpio_set(GPIO.CAM0_AVDD_EN, True)
|
||||
time.sleep(2)
|
||||
print("cam avdd: ", read_power_avg())
|
||||
os.system("sudo su -c 'echo 1 > /sys/kernel/debug/regulator/camera_rear_ldo/enable'")
|
||||
time.sleep(2)
|
||||
print("cam dvdd: ", read_power_avg())
|
||||
gpio_set(GPIO.CAM0_RSTN, True)
|
||||
gpio_set(GPIO.CAM1_RSTN, True)
|
||||
gpio_set(GPIO.CAM2_RSTN, True)
|
||||
time.sleep(2)
|
||||
print("cams up: ", read_power_avg())
|
||||
gpio_set(GPIO.HUB_RST_N, True)
|
||||
time.sleep(2)
|
||||
print("usb hub: ", read_power_avg())
|
||||
gpio_set(GPIO.STM_RST_N, False)
|
||||
time.sleep(5)
|
||||
print("panda: ", read_power_avg())
|
||||
gpio_set(GPIO.GNSS_PWR_EN, True)
|
||||
time.sleep(5)
|
||||
print("gps: ", read_power_avg())
|
||||
gpio_set(GPIO.LTE_RST_N, False)
|
||||
time.sleep(1)
|
||||
gpio_set(GPIO.LTE_PWRKEY, True)
|
||||
time.sleep(1)
|
||||
gpio_set(GPIO.LTE_PWRKEY, False)
|
||||
time.sleep(5)
|
||||
print("quectel: ", read_power_avg())
|
||||
|
Loading…
Reference in New Issue