embeded/Cortex-M3 STM2025. 3. 10. 12:31

클럭을 12MHz정도로 낮췄더니

sleep mode로는 전력차이가 안나고

stop mode로 가야지 좀 차이가 난다.

uA 단위로는 standby mode로 가야 할 듯?

 

HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_SLEEPENTRY_WFI);
HAL_ResumeTick();

[링크 : https://blog.naver.com/wararat/221024526207]

[링크 : https://blog.naver.com/eziya76/221543393453]

 

 

멀 잘못했나.. sleep() 에서는 소비전력 차이가 없고 uart 인터럽트가 작동한다.

죽은거 맞아? 그렇다고 main loop가 살아나는건 또 아닌디..

[링크 : https://controllerstech.com/low-power-modes-in-stm32/]

Posted by 구차니
embeded/Cortex-M3 STM2025. 3. 7. 15:21

하나는 값이 나오고

다른 하나는 -nan 으로 나오는데 정체가 멀까?

 

아래는 갑싱 별로 차이나지 않는데 다양하게 이상한 출력을 보여주는 중

STM32의 float point enumation 문제가 있나?

Temperature: 2999(2999) -> 2.0°C
Temperature: 2999(2999) -> 26.7°C
Temperature: 2996 -> 26.4°C
Temperature: 2996 -> -nan°C
Temperature: 2998(2998) -> -0.0°C
Temperature: 2997(2997) -> 0.0°C
Temperature: 2996(2996) -> 2681562227601498728190175138316381969682918615886529120475031854806500724778654407474920833961662

 

인터럽트내에서 출력하면 그런건가 싶기도 하고.. 원인을 모르겠다.

'embeded > Cortex-M3 STM' 카테고리의 다른 글

stm32 sleep mode  (0) 2025.03.10
STM32 timer 사용하기  (0) 2024.12.13
STM32 PWM 으로 LED 점진적으로 깜박이기  (0) 2024.12.13
stm32 gpio ext interrupt 모드  (0) 2024.11.04
stm32f103 adc + dma  (0) 2024.11.04
Posted by 구차니
embeded/eps82662025. 1. 6. 23:51

 

[링크 : https://ko.aliexpress.com/item/1005007898297522.html] 2,180원

[링크 : https://www.devicemart.co.kr/goods/view?no=1378117] 2,500원

 

WeMos D1 mini 계열이라고 부르면 되려나?

[링크 : https://m.blog.naver.com/simjk98/222439536594]

'embeded > eps8266' 카테고리의 다른 글

esp8266 sdio wifi  (0) 2024.09.12
esp8266 wifi at 명령어  (0) 2023.12.12
esp8266 nodemcu v3 기본 펌웨어  (0) 2023.12.11
esp8266 esptool.py  (0) 2023.12.11
esp8266 microUSB 연결 2  (0) 2023.12.11
Posted by 구차니
embeded/esp322025. 1. 6. 23:47

esp32-wrover 라고 레이저 각인되어 있는데

[링크 : https://www.espressif.com/sites/default/files/documentation/esp32-wrover-e_esp32-wrover-ie_datasheet_en.pdf]

 

보드 실크만 따라가서 찾으면 esp32-wroom-32 라는 정보가 나온다. 다른 모델인가?

[링크 : https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32/esp32-devkitc/user_guide.html]

 

가격은 천차만별..!

[링크 : https://ko.aliexpress.com/item/1005006212080137.html] 4,540원

[링크 : https://vctec.co.kr/product/esp32-devkitc-v4-보드-esp32-devkitc-32d-esp32-devkitc-v4-pcb-antenna/16616/] 11,320원

'embeded > esp32' 카테고리의 다른 글

esp32cam sdio wifi  (0) 2024.09.11
esp32 wifi/bt on linux  (0) 2024.08.13
esp32 at 소스 빌드(윈도우)  (0) 2023.12.19
esp32 at source 빌드(리눅스)  (0) 2023.12.19
esp-idf on linux  (0) 2023.12.19
Posted by 구차니
embeded2025. 1. 6. 23:29

아래의 물품들을 지름.

mqtt와 zigbee를 해볼수 있는 절호의 기회!

esp32 esp8266 등도 있어서 일단 금액도 얼마 안하니 질러질러!


3. CC2531 (2개) - 개당 O천원 : https://psychoria.tistory.com/m/692 에 나오는대로 Zigbee2MQTT 플래싱해 둔 상태입니다. 플래싱만하고 사용하지는 않았습니다.

4. ESP-WROVER (2개) - 개당 O천원 : ESP32, 마이크로5핀이며 1개는 squeezelite-esp32로 사용, 1개는 보관만 했습니다. 초기화해서 쓰시면 됩니다.

7. HTU2X 온습도센서 (2개) - 개당 O천원 : 핀은 직접 납땜한 것입니다.

8. USB 내부 헤더 - O천원 : 메인보드 usb 2.0 핀에 직접 꽂아서 usb 메모리 같은거 연결할 수 있는 헤더입니다.

9. ESP8266 보드 (2개) - 개당 O천원 : CH340, 마이크로5핀이며 D1 mini라고 알리에서 구입했는데 기판에 그런 표기는 없네요. 3개 구매후 남은 미사용품 2개입니다.

 

습도센서는 상대습도 0~100 / -40~125도 라는데

실세 20~80% 만 잴수 있는거 아닌가 의심이..

[링크 : https://www.ttieurope.com/content/dam/tti-europe/manufacturers/te-connectivity/resources/c1de7b32-1394-42ed-9516-4647502d9aed.pdf]

'embeded' 카테고리의 다른 글

arm-none-eabi는 -pthread 미지원  (0) 2021.01.11
i.mx6quad용 gcc 옵션  (0) 2021.01.08
orange pi r1+  (0) 2021.01.08
i.mx6 solo 비디오 성능 문제?  (0) 2020.10.19
간만에 부품 지름  (2) 2020.03.04
Posted by 구차니
embeded/jetson2025. 1. 3. 09:16

치사하게(?) GFLOPS에서 갑자기 TOPS로 바꾸면서

동등한 비교가 힘들어졌는데

Nano TX1 TX2 TX2i TX2 NX Xavier NX AGX Xavier Orin nano Orin NX AGX Orin
0.5
TFLOPS
1
TFLOPS
1.33
TFLOPS
1.33
TFLOPS
1.33
TFLOPS
21 TOPS 32 TOPS 40 TOPS 100 TOPS 274TOPS

[링크 : https://www.bvm.co.uk/edge-ai-computing/nvidia-jetson-comparison-and-faq/]

 

그럼에도 불구하고 pascal 에서는 * 4를 하면 된다고 한다.

It basically depends on the GPU architecture. In pascal architecture 1TFLOP = 4TOPS.
OK, so by that comparison NVIDIA Jetson Nano is doing about 2 TOPS

[링크 : https://forum.khadas.com/t/how-many-flops-is-one-tops/8227/6]

 

TX2는 FP16일 경우 1.33TFLOPS 이고

동일 연산으로 AGX Xavier는 2.8TFLOPS 2배 약간 더 되게 향상인데 TOPS로는 엄청나게 뻥튀기 되네?

TX2 AGX Xavier

[링크 : https://www.techpowerup.com/gpu-specs/jetson-tx2.c3231]

[링크 : https://www.techpowerup.com/gpu-specs/jetson-agx-xavier-16-gb.c3232]

'embeded > jetson' 카테고리의 다른 글

nvidia jetson tx2 recovery  (0) 2025.01.02
jetracer 보드 i2c 확인  (0) 2023.02.17
jetracer 바퀴 찾기  (0) 2023.02.14
젯슨 레이서 조립 2  (0) 2023.01.21
젯슨 레이서 조립 1  (0) 2023.01.20
Posted by 구차니
embeded/jetson2025. 1. 2. 15:47

microUSB를 통해서 PC와 연결한 상태로

REC 라고도 표현되는 녀석을 누르고 켜니, 아래와 같이 recovery mode로 붙는다. 

$ lsusb -t -v
        |__ Port 2: Dev 18, If 0, Class=Vendor Specific Class, Driver=, 480M
            ID 0955:7c18 NVIDIA Corp. T186 [TX2 Tegra Parker] recovery mode

 

커널 메시지 상으로는 아래와 같이 뜨고 끝

[14325.761506] usb 1-2.2: new high-speed USB device number 18 using xhci_hcd
[14325.852514] usb 1-2.2: New USB device found, idVendor=0955, idProduct=7c18, bcdDevice= 0.00
[14325.852531] usb 1-2.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[14325.852538] usb 1-2.2: Product: APX
[14325.852543] usb 1-2.2: Manufacturer: NVIDIA Corp.

 

복구모드에서 기본(?) 이미지 어떻게 굽나...

'embeded > jetson' 카테고리의 다른 글

jetson TOPS와 GFLOPS  (0) 2025.01.03
jetracer 보드 i2c 확인  (0) 2023.02.17
jetracer 바퀴 찾기  (0) 2023.02.14
젯슨 레이서 조립 2  (0) 2023.01.21
젯슨 레이서 조립 1  (0) 2023.01.20
Posted by 구차니
embeded/raspberry pi2024. 12. 31. 00:22

 

[링크 : https://www.electronicwings.com/raspberry-pi/raspberry-pi-pwm-generation-using-python-and-c]

[링크 : https://blog.naver.com/emperonics/221821487830]

 

#include <wiringPi.h>

#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>

int main (void)
{
  int bright ;

  printf ("Raspberry Pi wiringPi PWM test program\n") ;

  if (wiringPiSetup () == -1)
    exit (1) ;

  pinMode (1, PWM_OUTPUT) ;

  for (;;)
  {
    for (bright = 0 ; bright < 1024 ; ++bright)
    {
      pwmWrite (1, bright) ;
      delay (1) ;
    }

    for (bright = 1023 ; bright >= 0 ; --bright)
    {
      pwmWrite (1, bright) ;
      delay (1) ;
    }
  }

  return 0 ;
}

[링크 : https://github.com/WiringPi/WiringPi/blob/master/examples/pwm.c]

Posted by 구차니
embeded/Cortex-M3 STM2024. 12. 13. 14:13

PWM 이랑 거의 비슷하다

TIM2를 사용할 거고, clock source - internal clock

prescaler는 6MHz로 작동해서 6000 으로 하여 1msec 주기의 tick을 사용한다.

Counter Period는 1000 으로 해서 1000 번의 tick이 모이면 (= 1초) timer interrupt가 발생하게 한다.

 

NVIC Settings에서 TIM2 global interrupt를 발생시키게 하고 프로젝트 갱신하고

 

아래의 함수들을 추가하면 끝

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
    static int pwm_val = 0;
    static int dir = 1;

    if(dir)
    {
        if(pwm_val < 10)
        {
            pwm_val++;
        }
        else
        {
            dir = 0;
            pwm_val--;
        }
    }
    else
    {
        if(pwm_val > 0)
        {
            pwm_val--;
        }
        else
        {
            dir = 1;
            pwm_val++;
        }
    }
    // printf("pwm_val[%d] dir[%d]\n", pwm_val, dir);
    htim3.Instance->CCR1 = pwm_val;
    htim3.Instance->CCR2 = pwm_val;
}

int main(void)
{
    /* USER CODE BEGIN 2 */
    HAL_TIM_Base_Start_IT(&htim2);
    /* USER CODE END 2 */
    /* Infinite loop */
    /* USER CODE BEGIN WHILE */
    while (1)
    {
        /* USER CODE END WHILE */
        /* USER CODE BEGIN 3 */
        HAL_Delay(10);
    }
    /* USER CODE END 3 */
}

[링크 : https://eteo.tistory.com/73]

'embeded > Cortex-M3 STM' 카테고리의 다른 글

stm32 sleep mode  (0) 2025.03.10
STM32 float point support 활성화시 %f 출력 NaN  (0) 2025.03.07
STM32 PWM 으로 LED 점진적으로 깜박이기  (0) 2024.12.13
stm32 gpio ext interrupt 모드  (0) 2024.11.04
stm32f103 adc + dma  (0) 2024.11.04
Posted by 구차니
embeded/Cortex-M3 STM2024. 12. 13. 12:39

STM32F103RETx 에서 구현 함.

 

CubeIDE 에서 클럭은 12MHz XTAL로 들어오고 있고

TIM3를 사용해야 하니까 APB1 의 클럭을 보면 된다.

TIM1/TIM8은 APB2에 있네

 

APB1 Timer clocks는 6MHz

 

핀에서 TIM3_CH1 / TIM3_CH2 로 할당하고

Timers - TIM3 에 가서

clock source를 internal clock 으로 바꾸고

channel 1과 channel 2를 PWM Generation CH1/2로 지정해 준다.

그리고 prescaler를 5999 (6000-1) 으로 해주면 6MHz / 6000 이니 1msec 를 1tick으로 쓰고

counter Period를 0~9 까지 10을 묶어서 10msec 마다 1번의 pwm을 발생하게 한다

※ 다르게 표현하면 100Hz PWM clock 으로 지정된다.

그리고 PWM Generation Channel 1/2 에서 Pulse (16 bits value) 에는

counter Period 값을 분모로 하는 값을 지정하면 되고 "Pulse / Counter Period"로 Duty Rate이 지정된다.

 

그러면 50% duty로 100Hz의 PWM 파형이 생성된다.

 

약간의 꽁수로(?) 아래와 같이 해주면

50ms 마다 1씩 변화되어 20번의 증감을 통해 1초 주기로 점멸하는 LED가 생성된다.

50ms 마다 바꾸는 것도 다른 타이머를 이용하면 메인 쓰레드에서 안해도 되니 정확한 타이밍이 될 듯.

    static int pwm_val = 0;
    static int dir = 1;

    if(dir)
    {
      if(pwm_val < 10) pwm_val++;
      else
      {
        dir = 0;
        pwm_val--;
      }
    }
    else
    {
      if(pwm_val > 0) pwm_val--;
      else
      {
        dir = 1;
        pwm_val++;
      }
    }
    // printf("pwm_val[%d] dir[%d]\n", pwm_val, dir);
    htim3.Instance->CCR1 = pwm_val;
    htim3.Instance->CCR2 = pwm_val;
    HAL_Delay(50);

 

[링크 : https://pilimage.tistory.com/23]

'embeded > Cortex-M3 STM' 카테고리의 다른 글

STM32 float point support 활성화시 %f 출력 NaN  (0) 2025.03.07
STM32 timer 사용하기  (0) 2024.12.13
stm32 gpio ext interrupt 모드  (0) 2024.11.04
stm32f103 adc + dma  (0) 2024.11.04
stm32 adc 읽기(1개로 여러 개 채널)  (0) 2024.10.30
Posted by 구차니