embeded/raspberry pi2016. 3. 21. 11:46

음.. 그런데 2b에서는 멀티코어인데 코어활성화 갯수 조절은 없으려나?



1. USB 허브 끄기(근데.. 유선랜도 꺼지려나?)

2. USB 안꼽기

3. HDMI 출력 끄기 (20mA~30mA ?)

4. 다운클럭하기 (/boot/config.txt)


[링크 : http://babaawesam.com/2014/01/24/power-saving-tips-for-raspberry-pi/]

Posted by 구차니
embeded/raspberry pi2016. 3. 20. 17:37


range는 0x20(32)가 기본이고 32bit까지 사용가능(int)

"PWM_RNG1의 값이 32보다 적다면, 처음 PWM_RNG의 첫번째 비트가 잘려진 비트가 전송되어진다. 만약 32를 넘는 경우 초과된 0 비트는 데이터의 끝에서 부터 붙여진다. 기본값은 32이다."

If the value in PWM_RNGi is less than 32, only the first PWM_RNGi bits are sent resulting in a truncation. If it is larger than 32 excess zero bits are padded at the end of data. Default value for this register is 32.


번역하려고 해도 무슨 의미인지 모르겠네 -_-

32 미만은 LSB가 0으로 보내진다는건가? (즉, 짝수로만 셋팅가능?)

그리고 32 이상은 초과된 0비트에 대해서 끝으로 부터 붙는다는건.. 32 이상에 대해서는 32의 배수로만 적용이 가능하거나 승수로만 가능하다는건가? (예를들어 36이라던가 이런식은 설정 불가)




그리고 클럭은... 기본이 100MHz 이지만 다양하게 들어올 수 있다 정도?


음.. range는 그냥 넣고.. 하드웨어적으로 자르고

클럭은.. int로 받지만 실제로는 12비트만 사용이 가능하고(즉,, 0~4095)

기본값 내용이 없는지라..

void pwmSetRange (unsigned int range)

{

  if ((wiringPiMode == WPI_MODE_PINS) || (wiringPiMode == WPI_MODE_PHYS) || (wiringPiMode == WPI_MODE_GPIO))

  {

    *(pwm + PWM0_RANGE) = range ; delayMicroseconds (10) ;

    *(pwm + PWM1_RANGE) = range ; delayMicroseconds (10) ;

  }

}


void pwmSetClock (int divisor)

{

  uint32_t pwm_control ;

  divisor &= 4095 ;


  if ((wiringPiMode == WPI_MODE_PINS) || (wiringPiMode == WPI_MODE_PHYS) || (wiringPiMode == WPI_MODE_GPIO))

  {

    if (wiringPiDebug)

      printf ("Setting to: %d. Current: 0x%08X\n", divisor, *(clk + PWMCLK_DIV)) ;


    pwm_control = *(pwm + PWM_CONTROL) ;                // preserve PWM_CONTROL


// We need to stop PWM prior to stopping PWM clock in MS mode otherwise BUSY

// stays high.


    *(pwm + PWM_CONTROL) = 0 ;                          // Stop PWM


// Stop PWM clock before changing divisor. The delay after this does need to

// this big (95uS occasionally fails, 100uS OK), it's almost as though the BUSY

// flag is not working properly in balanced mode. Without the delay when DIV is

// adjusted the clock sometimes switches to very slow, once slow further DIV

// adjustments do nothing and it's difficult to get out of this mode.


    *(clk + PWMCLK_CNTL) = BCM_PASSWORD | 0x01 ;        // Stop PWM Clock

      delayMicroseconds (110) ;                 // prevents clock going sloooow


    while ((*(clk + PWMCLK_CNTL) & 0x80) != 0)  // Wait for clock to be !BUSY

      delayMicroseconds (1) ;


    *(clk + PWMCLK_DIV)  = BCM_PASSWORD | (divisor << 12) ;


    *(clk + PWMCLK_CNTL) = BCM_PASSWORD | 0x11 ;        // Start PWM clock

    *(pwm + PWM_CONTROL) = pwm_control ;                // restore PWM_CONTROL


    if (wiringPiDebug)

      printf ("Set     to: %d. Now    : 0x%08X\n", divisor, *(clk + PWMCLK_DIV)) ;

  }


[링크 : http://www.farnell.com/datasheets/1521578.pdf]

2015/10/16 - [개소리 왈왈/라즈베리 파이(rpi)] - bcm2835 pwm 데이터시트

2015/10/16 - [개소리 왈왈/라즈베리 파이(rpi)] - wiringpi pwm 라이브러리 분석?

2015/10/14 - [개소리 왈왈/라즈베리 파이(rpi)] - 라즈베리 파이 GPIO 유틸 PWM


The Raspberry Pi PWM clock has a base frequency of 19.2 MHz. This frequency, divided by the argument to pwmSetClock(), is the frequency at which the PWM counter is incremented. When the counter reaches a value equal to the specified range, it resets to zero. While the counter is less than the specified duty cycle, the output is high, otherwise the output is low.


This means, if you want to set the PWM to have a specific frequency, you can use the following relationship:


pwmFrequency in Hz = 19.2e6 Hz / pwmClock / pwmRange.


pwmSetClock(1); -> 2.342kHz

pwmSetClock(2); -> 4.81MHz

pwmSetClock(3); -> 3.19MHz

pwmSetClock(4); -> 2.398MHz

pwmSetClock(5); -> 1.919MHz

pwmSetClock(6); -> 1.6MHz

pwmSetClock(7); -> 1.3MHz

pwmSetClock(8); -> 1.2MHz

pwmSetClock(9); -> 1.067MHz

pwmSetClock(10); -> 959kHz

pwmSetClock(11); -> 871kHz

pwmSetClock(20); -> 480kHz

pwmSetClock(200); -> 48kHz

pwmSetClock(500); -> 19kHz

pwmSetClock(1000); -> 9.59kHz

pwmSetClock(2000); -> 4.802kHz

pwmSetClock(4000); -> 2.401kHz

pwmSetClock(5000); -> 10.58kHz

[링크 : http://raspberrypi.stackexchange.com/questions/4906/control-hardware-pwm-frequency]



음.. pwmc에 100 넣으면 1/100 으로 DIV 되서 1Mhz 로 작동해야 하는데.. 위에 실험은 출력이 달라서 그럴려나?

   #define PWMCTL (*(volatile uint32_t *)0x2020c000)

   #define PWMSTA (*(volatile uint32_t *)0x2020c004)

   #define PWMDMAC (*(volatile uint32_t *)0x2020c008)

   #define PWMRNG1 (*(volatile uint32_t *)0x2020c010)

   #define PWMDAT1 (*(volatile uint32_t *)0x2020c014)

   #define PWMFIF1 (*(volatile uint32_t *)0x2020c018)

   #define PWMRNG2 (*(volatile uint32_t *)0x2020c020)

   #define PWMDAT2 (*(volatile uint32_t *)0x2020c024)


   #define CM_PWMCTL (*(volatile uint32_t *)0x201010a0)

   #define CM_PWMDIV (*(volatile uint32_t *)0x201010a4)


[링크 : https://www.raspberrypi.org/forums/viewtopic.php?t=37770]

Posted by 구차니
embeded/raspberry pi2016. 3. 19. 20:39

그냥 pc 스피커 굴러 다니는게 있길래

마침 4핀 짜리고 해서 꽂아서 pwm으로 해보니 소리가 난다 -ㅁ-!?


아무튼.. pwm-ms와 pwm-bal의 출력방식이 다르니 소리가 다르게 난다.


$ gpio mode 1 pwm

$ gpio pwm-ms

$ gpio pwm 1 7


$ gpio pwm-bal 

$ gpio pwm 1 7




+

2016.04.13

미친척 오실로 스코프로 찍어보니..

$ gpio mode 1 pwm

$ gpio pwm 1 512

$ gpio pwmc 10



7  2680 Hz

8  2343 Hz

9  2083 Hz

10 1875 Hz

11 1704 Hz

12 1562 Hz

13 1443 Hz

14 1339 Hz

15 1250 Hz

16 1172 Hz

17 1103 Hz

18 1042 Hz





클럭을 가지고 하기에는 좀 그렇고... 어떻게 해야 하려나?

[링크 : http://thomson.tistory.com/638]

Posted by 구차니
embeded/raspberry pi2016. 3. 15. 10:40

똥강아지와 똥개 감시용(?)으로 대충 만들어 본 녀석

천원짜리 다이소에서 종이박스 사고

굴러다니던 핸드폰 보조배터리 하나로 끝!




대역폭의 문제로 640x480 @ 15fps인데

좀 다르게 셋팅해봐야지..



보조 배터리 2500mA 짜리인데

3시간은 버텨주네(접속시 + 무선) 올

샤오미 10500 쓰면 그럼 15시간?! ㅋㅋ


Posted by 구차니
embeded/raspberry pi2016. 3. 14. 09:18

유리 나가서 어떻게 잘 살릴수있나 했더니

SYSTEM : 장비가 파괴되었습니다!


분해된 잔해

LCD/백라이트 유닛 / 터치 하판 / 터치 상판


음.. 아무튼 터치상판인데 가로려나 세로이려나...


하판.. 커넥터 방식이 아니라 과감하게 끊어내고!!



아무튼.. 라즈베리 jessie 버전에서

클럭을 65MHz로 설정해주니 노이즈 생겨서 fps=25 옵션만 주고 사용

그나저나.. 터치가 안되니 계륵이네... ㅠㅠ

Posted by 구차니
embeded/raspberry pi2016. 3. 13. 23:26

음.. mmal 어쩌구 로그에 뜨는데

cpu 사용량을 보면 100% 인걸 봐서는 제대로 적용 안되거나

그게 한계일지도?



재기동

sudo nano /etc/init.d/motion

sleep 30

[링크 : http://www.codeproject.com/Articles/665518/Raspberry-Pi-as-low-cost-HD-surveillance-camera]

<< 많이 달라졌고, 안해도 문제 없음 단, 모션 저장이나 상시 녹화 쪽 문제로 보임


모션디텍트 끄기

http://raspberry:8081/0/detection/pause

[링크 : https://www.raspberrypi.org/forums/viewtopic.php?f=48&t=70917]


led끄기

/boot/config.txt

disable_camera_led=1

[링크 : http://www.raspberrypi-spy.co.uk/2013/05/how-to-disable-the-red-led-on-the-pi-camera-module/]

>> 안되네.. 내꺼는 안되나... ㅠㅠ

Posted by 구차니
embeded/raspberry pi2016. 3. 12. 11:37

왜이렇게 cpu를 조금 먹나 했더니.. MMAL 쓴건가?


[링크 : https://github.com/raspberrypi/userland/tree/master/host_applications/linux/apps/raspicam]


아.. 헷갈리네..

MMAL은 원래 있던거고 rpi videocore용으로 포팅한건가?

[링크 : http://www.jvcref.com/files/PI/documentation/html/]


아무튼.. mmal 사용하면 cpu 확 줄어 들려나..

v4l 통해서 받는 비디오는 너무 느려..

Posted by 구차니
embeded/raspberry pi2016. 3. 11. 09:04

는 아니고..

자꾸 딸래미가 파괴신님 강림해서 어쩔수 없이 내구도 향상을 위해..


원래는 이렇게 대충 쓰고 있었는데..


전에 샀던 b+용 확장 포트 처럼 만들면 되지! 하고

이번주 초에 버렸던 걸 다시 쓰레기통에서 환생시켜서

허리를 분지르고(!!!)


대충대충 땜하고 선을 이어서!!!


어.. 조금 높네..

근데 내가 땜질 실력이 안되잖아? 더 짧으면 안될거야 ㅠㅠ


내구도가 +1 상승하였습니다.

딸래미의 공격력이 +3 상승하였습니다.

장비가 파괴되었습니다?!?!

'embeded > raspberry pi' 카테고리의 다른 글

라즈베리 파이(jessie) motion  (0) 2016.03.13
raspivid 소스  (0) 2016.03.12
raspbian jessie 의 raspi-config  (0) 2016.03.10
지름신 강림! - 라즈베리 2b(본체만)  (0) 2016.03.10
라즈베리 3B?  (0) 2016.03.06
Posted by 구차니
embeded/raspberry pi2016. 3. 10. 10:52

부팅시 네트워크 대기라던가..

시험적인 openGL 드라이버라던가.. 2016년 버전이라 그런지 먼가 좀 많이 추가되었네?


RASPBIAN JESSIE

Full desktop image based on Debian Jessie

Version:February 2016

Release date:2016-02-26

Kernel version:4.1

[링크 : https://www.raspberrypi.org/downloads/raspbian/]


┌────────────────────┤ Raspberry Pi Software Configuration Tool (raspi-config) ├──────────────────────┐

│                                                                                                     │

│1 Expand Filesystem            Ensures that all of the SD card storage is available to the OS        │

│2 Change User Password         Change password for the default user (pi)                             │

│3 Boot Options                 Choose whether to boot into a desktop environment or the command line │

│4 Wait for Network at Boot     Choose whether to wait for network connection during boot             │

│5 Internationalisation Options Set up language and regional settings to match your location          │

│6 Enable Camera                Enable this Pi to work with the Raspberry Pi Camera                   │

│7 Add to Rastrack              Add this Pi to the online Raspberry Pi Map (Rastrack)                 │

│8 Overclock                    Configure overclocking for your Pi                                    │

│9 Advanced Options             Configure advanced settings                                           │

│0 About raspi-config           Information about this configuration tool                             │

│                                                                                                     │

│                                                                                                     │

│                        <Select>                                   <Finish>                          │

│                                                                                                     │

└─────────────────────────────────────────────────────────────────────────────────────────────────────┘


┌────────────────────┤ Raspberry Pi Software Configuration Tool (raspi-config) ├──────────────────────┐

│                                                                                                     │

│  A1 Overscan     You may need to configure overscan if black bars are present on display         ↑  │

│  A2 Hostname     Set the visible name for this Pi on a network                                   ▮  │

│  A3 Memory Split Change the amount of memory made available to the GPU                           ▒  │

│  A4 SSH          Enable/Disable remote command line access to your Pi using SSH                  ▒  │

│  A5 Device Tree  Enable/Disable the use of Device Tree                                           ▒  │

│  A6 SPI          Enable/Disable automatic loading of SPI kernel module (needed for e.g. PiFace)  ▒  │

│  A7 I2C          Enable/Disable automatic loading of I2C kernel module                           ▒  │

│  A8 Serial       Enable/Disable shell and kernel messages on the serial connection               ▒  │

│  A9 Audio        Force audio out through HDMI or 3.5mm jack                                      ▒  │

│  AA GL Driver    Enable/Disable experimental desktop GL driver                                   ↓  │

│                                                                                                     │

│                                                                                                     │

│                        <Select>                                   <Back>                            │

│                                                                                                     │

└─────────────────────────────────────────────────────────────────────────────────────────────────────┘ 


'embeded > raspberry pi' 카테고리의 다른 글

raspivid 소스  (0) 2016.03.12
라즈베리 파이 IR 수신부 업그레이드!  (0) 2016.03.11
지름신 강림! - 라즈베리 2b(본체만)  (0) 2016.03.10
라즈베리 3B?  (0) 2016.03.06
레트로 파이(retropie)  (0) 2016.01.05
Posted by 구차니
embeded/raspberry pi2016. 3. 10. 10:42

마침 회사 근처에서 3만원(직거래)에 라즈베리 2b 파는 분이 있으셔서 후다닥 연락

근데

ㅋㅋ

ㅋㅋㅋ


아놔 집에 핸드폰 두고옴 ㅠㅠㅠㅠ




아무튼 우여 곡절 끝에 질렀으나..

SD 메모리 주신게 8GB 싼디스크.. 드럽게 느리네..


혹시나 해서 내 16GB 싼디스크로 했더니 속도 잘나와.. -_-


아무튼 케이스 없이 본체만 딸랑 ㅠㅠ

판매자 : 담배곽에 구멍 뚫어서 쓰시면되요 허허허

구차니 : 담배를 안피는데 담배곽 좀 굽신굽신



근데 라즈베리 3b가 나오는 시점에 웬 2b냐 하겠지만

난 돈이 없으니까!! ㅠㅠ

'embeded > raspberry pi' 카테고리의 다른 글

라즈베리 파이 IR 수신부 업그레이드!  (0) 2016.03.11
raspbian jessie 의 raspi-config  (0) 2016.03.10
라즈베리 3B?  (0) 2016.03.06
레트로 파이(retropie)  (0) 2016.01.05
openELEC 6.0.0 릴리즈  (0) 2016.01.03
Posted by 구차니