embeded/arduino(genuino)2016. 3. 27. 20:32

기본이 주기 1000 ms로 예제를 주니

100ms로 바꾸려면

const long interval = 1000;

을 

const long interval = 100;

으로 바꾸어 주면되는데...


나노의 겨우 13번 포트가 LED 연결되어 있으니 예제로 쓰긴 좋은데

USB을 뺐다가 꽂으면 왜 불규칙하게 깜박이게 될까?...


+

아두이노 IDE를 끄니 정상작동..

이녀석이 먼가 계속 핸들링 하면서 인터럽트 걸어서 그런가?

+



Posted by 구차니
embeded/arduino(genuino)2016. 3. 27. 20:19

기본 셋팅은 나의 경우에는 아래와 같이

Arduino nano 선택시 cpu는 ATmega328로 자동 선택되었고

포트는 수동으로

프로그래머도 수동으로 선택해주어야 한다.


프로그래머는 avrdude 나 stk500 등을 내장해서 굽는데

USB를 통해서 구울때는 Arduino as ISP로 설정해야 구워지네...

+

2016.04.06

어? 프로그래머 멀로 하던 알아서 굽는 느낌?

avrdude: Version 6.0.1, compiled on Apr 15 2015 at 19:59:58

         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/

         Copyright (c) 2007-2009 Joerg Wunsch


         System wide configuration file is "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"


         Using Port                    : COM6

         Using Programmer              : arduino

         Overriding Baud Rate          : 57600

         AVR Part                      : ATmega328P

         Chip Erase delay              : 9000 us

         PAGEL                         : PD7

         BS2                           : PC2

         RESET disposition             : dedicated

         RETRY pulse                   : SCK

         serial program mode           : yes

         parallel program mode         : yes

         Timeout                       : 200

         StabDelay                     : 100

         CmdexeDelay                   : 25

         SyncLoops                     : 32

         ByteDelay                     : 0

         PollIndex                     : 3

         PollValue                     : 0x53

         Memory Detail                 :


                                  Block Poll               Page                       Polled

           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack

           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------

           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff

           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff

           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00

           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00

           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00

           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00

           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00

           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00


         Programmer Type : Arduino

         Description     : Arduino

         Hardware Version: 2

         Firmware Version: 1.16

         Vtarget         : 0.0 V

         Varef           : 0.0 V

         Oscillator      : Off

         SCK period      : 0.1 us


avrdude: AVR device initialized and ready to accept instructions


Reading | ################################################## | 100% 0.01s


avrdude: Device signature = 0x1e950f

avrdude: reading input file "C:\Users\shin\AppData\Local\Temp\build56906a4f22bf0a8b9bdb55c318239f30.tmp/sketch_mar27a.ino.hex"

avrdude: writing flash (1796 bytes):


Writing | ################################################## | 100% 1.18s


avrdude: 1796 bytes of flash written

avrdude: verifying flash memory against C:\Users\shin\AppData\Local\Temp\build56906a4f22bf0a8b9bdb55c318239f30.tmp/sketch_mar27a.ino.hex:

avrdude: load data flash data from input file C:\Users\shin\AppData\Local\Temp\build56906a4f22bf0a8b9bdb55c318239f30.tmp/sketch_mar27a.ino.hex:

avrdude: input file C:\Users\shin\AppData\Local\Temp\build56906a4f22bf0a8b9bdb55c318239f30.tmp/sketch_mar27a.ino.hex contains 1796 bytes

avrdude: reading on-chip flash data:


Reading | ################################################## | 100% 1.05s


avrdude: verifying ...

avrdude: 1796 bytes of flash verified


avrdude done.  Thank you. 




상단메뉴 tooltip 캡쳐

시리얼 모니터는 포트로 설정된 쪽에서 열리고, 업로드 시에는 자동으로(?) 꺼지게 된다.



시리얼 포트가 USB를 통해 항상 열리는게 아니기에

시리얼 모니터를 열어야 LED가 깜박이게 된다.


HTML로 복사해서 붙여 넣으니 이쁘네 ㅋㅋ

시리얼에서 무한으로 115k로 열어 Hello World 뿌려주는 예제

\r\n 넣을걸 그랬나?

void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
}

void loop() {
  // put your main code here, to run repeatedly:
  while(1)
  {
    Serial.print("Hello world.");
  }
}



[링크 : http://www.hardcopyworld.com/ngine/aduino/index.php/archives/963]


+

2020.03.27


old bootloader로 하면 잘 된다.

[링크 : https://www.diymaker.net/121]

Posted by 구차니
embeded/arduino(genuino)2016. 3. 27. 19:50


나노 3.0 부터는 Atmega328 이라네..

ATmega328 (Arduino Nano 3.x) or ATmega168 (Arduino Nano 2.x)

[링크 : https://www.arduino.cc/en/Main/ArduinoBoardNano]


심심하니.. 아두이노 IDE나 설치


드라이버 설치 한다고 하니.. 두개가 뜨네



장치 관리자 상으로는

범용 직렬 버스 컨트롤러 - USB Serial Converter

포트(COM & LPT) - USB Serial Port(COMx)

두개만 추가 된다.


FTDI 칩을 쓰니.. 저가형 ISP로 나온 시리얼 포트를 통한 업데이트를 쓰는걸려나?


[링크 : http://www.atmel.com/images/doc0943.pdf]


아두이노 스케치(?) 실행!



좌 나노 3.0

우 나노 3.1


거상인 보드(GS-08A) 와의 비교

전면은 USB 커넥터 하나고

후면은 FTDI 칩(USB) / 레귤레이터 차이 일려나?



Posted by 구차니
embeded/arduino(genuino)2016. 3. 26. 22:45

헐.. 뜯지도 않은거네 ㄷㄷ

2016/03/24 - [개소리 왈왈/직딩의 비애] - po지름wer!!!


아무튼.. 아두이노도 한번 해봐야지

usb만 꽂으면 되는거라고 하니.. 좀더 편할테니..


HS-311 표준 서보


아두이노 nano



'embeded > arduino(genuino)' 카테고리의 다른 글

아두이노 나노 - 시리얼 테스트  (3) 2016.03.27
아두이노 나노 v3.0 / v3.1  (0) 2016.03.27
아두이노 버전별 차이점  (0) 2015.10.05
아두이노 부품들...  (0) 2015.06.29
아두이노 (arduino)  (0) 2011.12.29
Posted by 구차니
embeded/raspberry pi2016. 3. 25. 09:35

onvif 지원되는 녀석들도 있으려나...

예전 글에 적어 둔거 같은데.. UI도 괜찮은 녀석 이름이 머였지?


[링크 : https://github.com/BreeeZe/rpos]

[링크 : https://github.com/SonsOfTone/RaspberrIP-Camera]

    [링크 : http://www.sonsoftone.com/?page_id=287]

[링크 : ]

Posted by 구차니
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/AVR (ATmega,ATtiny)2016. 3. 16. 16:11


[링크 : http://blog.naver.com/rk756/100133481427] BASCOM으로 AVR 소리내기

[링크 : http://www.mcselec.com/] BASCOM - BASic COMpiler for AVR


[링크 : http://www.maicom.co.kr/xe/3000]


[링크 : http://www.ermicro.com/blog/?p=580] c버전/ 반짝반짝 작은별


http://extremeelectronics.co.in/avr-tutorials/sound-generation-by-avr-micro-tutorial-i/ 

http://tahmidmc.blogspot.kr/2013/02/sine-wave-generation-with-fast-pwm-mode_2525.html

'embeded > AVR (ATmega,ATtiny)' 카테고리의 다른 글

avr pwm timer 계산기  (0) 2016.04.14
atmega sram external  (0) 2016.04.12
클론 avrisp avr studio 6 호환성(?)  (0) 2016.03.07
AVR ISP 부활의 조짐?!  (0) 2016.03.05
보유중인 avr 보드목록  (0) 2016.03.05
Posted by 구차니
embeded2016. 3. 16. 15:15

데이터 시트

[링크 : http://gongnoob.blog.me/123329737]


AVR 소스(심플)

[링크 : http://pilgoo.tistory.com/50]


+

웬지.. z80이 아니라 intel 808x 시리즈의 80 system?


2014/02/07 - [embeded/AVR (ATmega/ATtiny)] - COM26T2844VTX 컨트롤러 HD66781

2013/07/23 - [embeded/AVR (ATmega/ATtiny)] - COM26T2844VTX LCD 데이터 시트

2014/01/27 - [embeded] - Z80 M6800


- M68 system interface with 8-/ 9-/16-/18-bit bus width

- i80 system interface with 8-/ 9-/16-/18-bit bus width


[링크 : http://www.ampdisplay.com/technology.php?c=tech_lcd_interface]



[링크 : https://www.adafruit.com/datasheets/ILI9325.pdf]

'embeded' 카테고리의 다른 글

프로세서별 연산량 벤치마크(float)  (0) 2017.04.19
PCB 마킹 의미  (0) 2016.07.28
링커 스크립트 문법(ld syntax)  (0) 2015.12.17
시리얼 저항 / 직렬 저항 / 댐핑 저항  (0) 2015.12.17
microchip PIC  (0) 2015.09.08
Posted by 구차니