It's always very enlightening to see how we are so different in this DIY hack-your-own-device philosophy.

 

AFAICR RPi was based on the ideology of making cool HW easily accessible to the general public, including kids. So just as a kid with a hammer, knife or fire will learn early on how easily it is to destroy something, or get burnt, that should not prevent us from allowing kids to use those most basic tools of life. Or making it harder for them to use and learn about them. So IMO and in this particular case, I simply don't see how the cmdline option obtained from proper documentation (with all above and beyond warnings) would possibly make this worse, than for people trying to force feed extra voltage to their RPis, using for example the far more dangerous, USB back-powering method, or double feeding from different sources. Not to mention how easy it is to abuse the GPIO's. Thus I find the above arguments for "making it more difficult"to implement, as exceptionally lame.

 

As a side note, for whoever happen to come across this thread.

I just added the boot config.txtoption: avoid_warnings=2and my god, finally all that kernel/dmesg garbage is gone! In addition it seem that the device is running smoother. Yes, it is throttled to 600 MHz, which I guess is by the firmware, but already running better. I still have to do some proper performance tests, but I really do think there is a performance hit, when those messages are enabled. The IO reaction just seem more jumpy and laggy while the kernel logs are spammed. (NB. I am still on 4.4.14.30 and not yet on the 4.14.34, where there were some sysfs and log fixes.) What is mysterious though, is why vcgencmd get_throttleis returning 0x0, when clearly the device is throttled.-- [EDIT] Thatoption turn off the throttling too, so the normal ondemandkernel (?) CPU governor is working as it should.

 

And then of course we have the highly entertaining car analogy. Today allcars are using the CAN BUS and most (even very old ones) have ODB2 access that can be used for all sorts of diagnostics, including to disable various warning lights. You can use your own $12 ODB2 BT dongle and disable any warning with your own phone. And anyone who has had an Audi, VW or BMW also know that some of those engine warning lights come on for absolutely no other reason than annoyance, in order to ask the owner to take the car to their own service centers for checkup after some X miles and force you to pump in extra $$$ for the vendors. (A strategy very similar to having to buy the RPi foundation's magic 5.4V/2.5A power supply.)

'Embedded' 카테고리의 다른 글

Raspberry PI WIFI Drop  (0) 2019.07.23
Visual Studio 6.0에서 ARMCC(ADS1.2) 사용하기  (0) 2010.04.20
AND

Raspberry PI WIFI Drop

Embedded 2019. 7. 23. 17:00

Optional Step: Turn off Power Management 

If you have any issues with your Wi-Fi adapter dropping connections or becoming unresponsive, it may be the driver's power management setting causing you problems.

You can turn off power management by simply creating a new file with a line of text inside it.

 

Enter the following command to create this new file:

sudo nano /etc/modprobe.d/8192cu.conf

 

Then enter the following line of text:

options 8192cu rtw_power_mgnt=0 rtw_enusbss=0 rtw_ips_mode=1

Once again exit the file using Ctrl+X and save under the same name.

 

Reboot Your Raspberry Pi 

That's everything you need to do to set up a Wi-Fi adapter, so now we need to reboot the Pi to put all of these changes into effect.

Type the following command in the terminal to reboot, then hit Enter:

sudo reboot

Your Pi should restart and connect to your network within a minute or so.

 

There's four parms listed in the document you cite.

Code: Select all

rtw_power_mgnt=0|1|2

  • 0 == disable power saving
  • 1 == power saving on, minPS
  • 2 == power saving on, maxPS

Code: Select all

rtw_enusbss=0|1

  • 0 == disable auto suspend
  • 1 == enable auto suspend

Code: Select all

rtw_hwpwrp_detect=0|1

  • 0 == disable HW power pin detection
  • 1 == enable HW power pin detection

Code: Select all

rtw_ips_mode=0|1

  • 0 == low power, IPS_NORMAL
  • 1 == higher power, IPS_LEVEL2

 

The conventional wisdom, because we're running our RPis as server systems not clients, is to set rtw_power_mgnt=0 and rtw_enusbss=0 to prevent the dongle going into power saving and to ignore the other two parms because they don't make any difference. If the server goes into power saving we'd need a process to wake it up. That's different from a client system where interaction from a keyboard user will trigger a request to wake up and associate the dongle.

AND

Difference Amplifier

Circuit 2014. 7. 2. 13:46

 

 

AND


압축파일을 풀어 두개의 프로그램을 아래 directroy에 복사한다.
C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin(or C:\Program Files\Microsoft Visual Studio\VC98\Bin)

1. project생성
2. Win32 console application
3. An empty project
4. Source files추가 또는 생성

armcc(arm compilier) call 방법(Workspace의 source files폴더 setting)
General tap:
always use custom build

Custom build tap
Description:
ARM compiling $(InputPath)

Commands:
swizzle1 "$(ARMROOT)\ADSv1_2\bin\armcc" -c -g -o0 $(InputPath) -o $(IntDir)\$(InputName).o

Oupputs:
$(IntDir)\$(InputName).o

armasm(arm assembler) call 방법(Workspace의 asm(asm source가 있는)폴더 setting)
General tap:
always use custom build

Custom build tap
Description:
ARM assembling $(InputPath)
Commands:

swizzle1 "$(ARMROOT)\ADSv1_2\bin\armasm" -g $(InputPath) -o $(IntDir)\$(InputName).o
uniqadd $(IntDir)\$(InputName).o $(IntDir)\Link.via

Oupputs:
$(IntDir)\$(InputName).o

armlink(arm linker) call 방법(Worksapce의 root폴더 setting)
Post-build tap
Post-build description:
 ARM linker and making

Post-build commands:
swizzle1 "$(ARMROOT)\ADSv1_2\bin\armlink" -info totals -via $(IntDir)\link.via -o $(TargetName).axf

fromelf(arm maker) call 방법(Workspace의 root폴더 setting)
Post-build tap

Post-build commands:
swizzle1 "$(ARMROOT)\ADSv1_2\bin\fromelf" –m32 –output $(TargetName).m32 $(TargetName).axf

armar(library생성) call 방법(Workspace의 root폴더 setting)
Post-build tap

Post-build commands:
swizzle1 "$(ARMROOT)\RVCT\Programs\version#\release#\win_32-pentium\armar" -create $(TargetName).a -via $(IntDir)\link.via

위와 같이 해도 되지않을 경우가 있습니다. 바로 retarget.c파일 때문입니다. ADS내부의 함수를 사용하지 않는다면 바로 되겠지만 printf와같은 함수를 사용하게되면 retarget.o를 함께 링크시켜 주어야 합니다.

swizzle1 "C:\Program Files\ARM\ADSv1_2\Bin\armlink" -info totals -entry entry -ro-base 0x000000 -rw-base 0x200000 -first Cstartup.o(reset) retarget.o -via $(IntDir)\link.via -o $(TargetName).axf

'Embedded' 카테고리의 다른 글

Raspberry PI Under-voltage detect & 번개표시 제거방법  (0) 2019.07.23
Raspberry PI WIFI Drop  (0) 2019.07.23
AND

모든 핀을 사용하려면 4층이상이 필요하다. 특히 2440같은경우 환벽학 GRID를 형성하고 있어 핀을 뽑아내기가 어렵다 아래의 그림과같이 비아를 좌우로 나누어 길을 만들면 라우팅할 수 있다.

AND

회로도를 디자인할때 단축키를 사용하면 보다빠르게 디자인할수 있습니다.

 A  Attribute
 B  Bus, Connection작업중 진행방향변경
 C  Color/Font
 D  Redraw
 F  화면의 전체 Zoom all
 G  부품복사 및 추가
 I  화면상의 일정범위 확대
 L  Library창
 M  Move상태에서 선택된 항목 반전
 O  화면상의 일정범위 축소
 R  Move상태에서 선택된 항목 회전
 W  Line Type두께 변경
 4  45도 회전
 9  90도 회전
 F1  도움말
 F5  Refresh
 BACK SPACE  선택된 대상에 대한 명령 취소
 Ctr + H  Sub Circuit
 Ctr + J  Junction
 Ctr + L  Label
 Ctr + M  Module Port
 Ctr + N  Connector
 Ctr + O  File Open
 Ctr + P  Power
 Ctr + S  Save
 Ctr + W  Single Wire
 Ctr + Enter  Attribute Text List
 Ctr + F4  실행된 창닫기
 Ctr + F5  Design Check
 Shift + Ctr + Enter  Command Line Window
 Shift + Enter  Selection Filter
 Alt + X  전체 작업 창닫기
 Ctr + Z  UnDo
 Shift + Ctr + Z  ReDo
 F1  도움말
 ESC  선택된 대상에 대한 명령취소



AND

회로 디자인을 하기전에 사용할 IC들을 먼저 디자인 해야 한다. 부품디자인은 크게 3가지로 나누어지는데 심볼, 속성, 패드로 나누어 디자인 하도록 되어있다. 먼저 심볼부터 디자인 해보자.




바디 그리기를 클릭하고 적당한 위치에 IC의 핀수를 감안하여 바디를 그려준다. MCU와같이 핀수가 많다면 2개의 심볼에 나누어 그려도 무방하다.


바디가 그려졌다면 핀그리기를 선택하여 핀이름과 번호를 설정한다. 핀모양은 이름과 그림이 미리보기화면으로 볼수있기 때문에 적당한 모양을 선택한다. 일반적인 신호선일 경우 LINE으로 선택한다.


핀을 배치할때에는 핀이 SHORT되는 부분(빨간부분)이 바디의 바깥으로 향하게 배치한다. 방향전환은 키보드의 'M'키를 누르거나 마우스 오른쪽버튼의 방향전환을 사용하여 알맞게 변경하여 준다. 핀을 아래쪽이나 위쪽에 배치할경우 키보드 'R'키를 눌러 핀을 회전시켜 배치한다.


만약 MCU와같이 핀이 많다면 핀목록편집을 이용하여 손쉽게 이름과 번호를 편집할수 있다.


위의 그림과같이 핀목록리스트에서 마우스 오른쪽버튼을 클릭하고 파일읽기를 선택한다음 파일로 읽어와 핀이름과 번호를 지정할 수 있다. 파일은 일반적인 TXT파일을 이용하며 한줄에 하나씩입력하면 아래와같이 D0 .. D8과같은 형태로 입력받을수 있다.




핀이름과 번호를 모두 입력하였다면 적당한 위치에 저장하면된다. 주의할 사항은 핀이름은 중복이 가능하지만 핀번호는 중복될수 없다.


심볼을 그렸다면 속성을 지정해주어야 하는데 이는 회로도부품디자이너 에서 할수 있다. 회로도 부품디자이너를 클릭하여 저장해 두었던 심볼을 불러온다. 이때 심볼을 2개이상으로 나누어 디자인 하였다면 해당 심볼을 모두 불러와 속성을 지정하여 준다.



불레퍼런스는 푸품의 종류와 회로도상의 번호를 표시하기 위함이다. IC는 U, 저항은 R, 캐패시터는 C를 주로 사용한다. 뒤에붙은 ? <-- 는 번호를 의미한다. 속성을 지정하였다면 적당한 위치에 저장한다.


마지막으로 패키지 라이브러리 디자이너를 실행하여 패드를 그려준다. 패드를 그리는 방법은 여러가지가 있지만 패키지마법사를 이용하면 간편하게 그릴수 있다.



패키지 마법사를 이용하여 패드를 그릴경우 주의해야 할점은 IC의 데이터시트에 나와있는 패드의 길이보다 납땜할수 있는공간을 길게 잡아야 한다는 점이다. 핀의 길이와 패드의 길이가 같다면 납땜하기가 어려워 지므로 적당히 길이를 길게 잡아주어야 한다.
AND

OrCAD, PADS등의 ArtWork을 하지 않는 사람이라도 한번쯤은 들어봤을법한 프로그램이 많지만 국산 ArtWork프로그램인 CSIEDA를 이용하여 PCB아트웍을 해보았다. ( 사실은 회사직원 모두 본 프로그램을 쓰기때문에... ^^) 아래의 그림은 CSIEDA 5.4를 처음 실행시킨 화면이다.


가장먼저 보이는 메뉴인 회로도 EPD디자이너를 실행시켜 본다. EPD디자이너는 회로도용지의 규격과 오른쪽 하단에 나타는 회로도의 기본정보들을 설정하기위한 설정등을 하기위한 프로그램이다.





크기와 외각선등을 설정하고 완료버튼을 눌러 생성하면 아무것도 없는 흰바탕용지가 나타난다. 사실 처음부터 이미 만들어져있는 EPD를 불러와서 사용하는것이 편리하다.


회로도 디자이너를 실행시켜 이미 만들어진 EPD파일을 불러와보도록 하겠다. 먼저 프로젝트 탭으로 이동하여 새로운 프로젝트를 생성한다. 프로젝트 명과 프로젝트가 저장될 주소를 지정하고 생성버튼을 눌러 프로젝트를 생성한다. 이후 회로도를 아래화면과 같이 추가한다.


회로도가 생성되고 나면 [ 파일 ] 메뉴의 [ 용지설정 ] 메뉴를 클릭하여 이미 생성되어있는 용지를 불러와서 회로작성을 시작한다.

설치경로를 기본으로 설정하였다면 C:\CSiEDA5\Env\EPD 에서 이미 생성된 EPD파일을 볼 수 있다. http://www.csitek.co.kr/
AND