embeded/Cortex-M7 STM2024. 7. 19. 11:12

480MHz의 Coretx-M7 / Cortex-M4가 달려있는 듀얼 코어 cpu이다.

Dual core
• 32-bit Arm® Cortex®-M7 core with doubleprecision FPU and L1 cache: 16 Kbytes of data and 16 Kbytes of instruction cache; frequency up to 480 MHz, MPU, 1027 DMIPS/ 2.14 DMIPS/MHz (Dhrystone 2.1), and DSP instructions
• 32-bit Arm® 32-bit Cortex®-M4 core with FPU, Adaptive real-time accelerator (ART Accelerator) for internal flash memory and external memories, frequency up to 240 MHz, MPU, 300 DMIPS/1.25 DMIPS /MHz (Dhrystone 2.1), and DSP instructions

 

ART 가속에 대해서는 머라머라 써있는데 이해를 못하겠고..

대충 온칩 메모리(SRAM)과 플래시에 대해서 대기없는 접근이 가능하다 정도로 이해..

그런데 Cortex-M4 에만 달려서 테시등을 확인하는걸 보면.. M4 쪽이 slave 구성인가 싶기도 하다

The acceleration is achieved by loading selected code into an embedded cache and making it instantly available to the Cortex-M4 core, thus avoiding latency due to memory wait states.

ART™ accelerator features:
• 32-bit AHB slave port to interface with the D2 domain
• 32-bit AHB master port for non-cacheable memory accesses
• 64-bit AXI master port to load the code from memory to cache
• 64 cache lines of 256 bits
• Fully-associative cache
• Programmable cacheable page
• Cache content consistency checker

[링크 : https://www.st.com/content/ccc/resource/training/technical/product_training/group0/7d/83/8c/1f/3a/1c/43/1e/STM32H7-System-Adaptive_Real-Time_Accelerator_ART/files/STM32H7-System-Adaptive_Real-Time_Accelerator_ART.pdf/_jcr_content/translations/en.STM32H7-System-Adaptive_Real-Time_Accelerator_ART.pdf]

 

 

stm32h747xi 와 stm32h757xi 로 eval 보드가 있는데

두 칩 간 주요 차이점은 757은 암호화 모듈이 내장되어 있다는 것  정도?

 

D1 domain 에는 cortex-M7이 있는 것 같고. M7 에만 TCM(tightly coupled memory)가 달려있다.

D2 domain 에는 Cortex-M4가 있고 플래시가 없다? D1 domain으로 접근해서 Flash에서 펌웨어를 불러오게 되는 구조 같다.

D3 domain 에는 DBMA / SDRAM 64k / Backup SRAM 4k 가 있는데 얘는 절전모드 용인가?

AHB는 1<->2<->3 그리고 1<->3 간에 존재하여 어느쪽이던 많이 돌지 않고 접근이 가능하다.

 

 

부팅은 BOOT0 핀과 BOOT_ADDx 옵션 바이트에 의해서 결정되는데

BOOT0 핀이 0이면

CM7은 플래시의 0x0800_000을 사용하고 

CM4는 플래시의 0x0810_000을 사용한다.

BCM4/7은 SYSCFG_UR1 레지스터에 존재하는 녀석인데 얜 어느 시점에 누가 설정하지?

3.2 Dual-core boot
At startup, the boot memory space is selected by the BOOT pin and BOOT_ADDx option bytes, allowing to
program any boot memory address from 0x0000 0000 to 0x3FFF FFFF which includes all Flash address space,
all RAM address space (ITCM, DTCM RAMs and SRAMs) and the System memory bootloader.
The boot address is provided by option byte and default programmed value to allow:
• CM7 Boots from Flash memory at 0x0800 0000 when Boot0=0
• CM4 Boots from Flash memory at 0x0810 0000 when Boot0=0
• Boot respectively from System memory or SRAM1 when Boot0=1
The values on the BOOT pin are latched on the 4th rising edge of SYSCLK after reset release. It is up to the user
to set the BOOT pin after reset as shown in the figure below.

If the programmed boot memory address is out of the memory mapped area or a reserved area, the default boot
fetch address is:
• BCM7_ADD0: FLASH at 0x0800 0000
• BCM4_ADD0: FLASH at 0x0810 0000
• BCM7_ADD1: System Memory at 0x1FF0 0000
• BCM4_ADD1: SRAM1 at 0x1000 0000
When Flash level 2 protection is enabled, only boot from Flash or system is available. If boot address is out
of the memory range or RAM address, then the default fetch is forced from Flash at address 0x0800 0000 for
Cortex®‑M7 and Flash at address 0x0810 0000 for Cortex®-M4. In the STM32H7 dual‑core, to maximize energy
efficiency, each core operates in its own power domain and can be turned off individually when not needed. The
two cores can boot alone or in the same time according to the option bytes as shown in Table 4.

[링크 : https://www.st.com/resource/en/application_note/an5557-stm32h745755-and-stm32h747757-lines-dualcore-architecture-stmicroelectronics.pdf]

 

아니 최소한 하나의 문서에 어디라고 표기는 해달라고 -_ㅠ

477p - BOOT_C1 / BOOT_C2

 

601p - BCM7 / BCM4 reset value가 x면 도대체 머라고 해석해야 하지?

[링크 : https://www.st.com/resource/en/reference_manual/rm0399-stm32h745755-and-stm32h747757-advanced-armbased-32bit-mcus-stmicroelectronics.pdf]

 

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

STM32H757 User configuration  (0) 2024.07.22
STM32CubeProgrammer  (0) 2024.07.22
FT5336 - 정전식 터치 i2c  (0) 2021.07.06
stm32f4 otg update bin file  (0) 2021.07.02
stm32cubeide generate bin  (0) 2021.07.02
Posted by 구차니
embeded/raspberry pi2024. 7. 16. 10:30

신호 발생기 통해서 넣어 보니 3.3V 에서 65535로 가득 찬다.

raw base  
60398 65535 3.04132753490501
62367 65535 3.14047608148318
64319 65535 3.23876859693294
65535 65535 3.3

ADC 입력 범위는 0~3.3V 인 듯(음수도 넣어 볼 걸 그랬나..

GND의 경우 0 으로 뜨니 음수는 안될 것 같기도 한데 과연?

 

ADC가 12bit 인데 16bit 값으로 해서 0.05V 정도 오차가 생기는게 아닐까 싶긴 하다

(혹은 내부 AREF 회로에서 RC 회로로 구현해 오차가 발생한걸지도)

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

pgadmin4 를 rpi에 설치하기 성공  (0) 2024.07.29
pgadmin3 안되잖아?!  (0) 2024.07.26
rpi pico / micropython  (0) 2024.07.15
rpi 콘솔 옮기기  (0) 2024.02.26
rpi libcamera?  (0) 2024.02.26
Posted by 구차니
embeded/raspberry pi2024. 7. 15. 22:59

circuit python 을 예전에 사용했었는데

circuit python 에서 import machine 하면 모듈이 없다고 해서 찾아보니

micropython 에서 제공하는 녀석이라고 한다.

 

machine is a built-in module in MicroPython which means it's part of MicroPython itself. CircuitPython and MicroPython similar but not exactly the same. One difference is that CircuitPython has no built-in module called machine.

[링크 : https://forums.raspberrypi.com/viewtopic.php?t=314090]

 

[링크 : https://micropython.org/download/RPI_PICO/]

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

pgadmin3 안되잖아?!  (0) 2024.07.26
rpi pico ADC 범위  (0) 2024.07.16
rpi 콘솔 옮기기  (0) 2024.02.26
rpi libcamera?  (0) 2024.02.26
3d 프린트 한 라즈베리 케이스  (0) 2024.02.21
Posted by 구차니
embeded/Cortex-M3 STM2024. 7. 12. 17:30

timer 설명에 설정값에 따라 GPIO 출력이 바뀌게 되는게 가능한건 알고 있었는데

그걸 어떻게 써먹나 어따 써먹다 이런게 안떠올라서 잊고 있던걸 구현된 코드를 처음으로 봄 -_-

 

IP로 구현된 통신이 아닌

GPIO를 통해 정확한 시간 간격에 오가야 한다면

타이머 값이 매치되면 값이 바뀌는게 가장 정확할 수 밖에 없겠구나 싶어진다.

 

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

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

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

Posted by 구차니
embeded/robot2024. 7. 11. 12:07

오랫만에 만져봤더니 그리퍼가 망가졌나.. 열리는데 닫히질 않는다.

 

일단 오늘 해본건

ATOM 이라는 부분인데 약자는 못 찾겠다.

E. Atom. Displaying 5X5 RGB LED (G27) and key function (G39).

[링크 : https://docs.elephantrobotics.com/docs/gitbook-en/2-serialproduct/2.1-280/2.1.5.2-RoboticArmElectricalInterface.html]

 

버튼식 LED의 색상은 아래의 함수를 쓰면 되고

from pymycobot.mycobot import MyCobot
from pymycobot import PI_PORT, PI_BAUD
import time

mc = MyCobot("COM3", 115200)
mc.set_color(0,0,255) #blue light on

[링크 : https://docs.elephantrobotics.com/docs/gitbook-en/7-ApplicationBasePython/7.7_example.html]

 

버튼이 눌렸는지는 get_digital_input을 이용하여 39번을 읽으면 된다. 1은 누르지 않은 상태, 0은 누른 상태이다(Normal Close?)

>>> mc.get_digital_input(39)
1
>>> mc.get_digital_input(39)
0

 

2.3 get_digital_input(self, pin_no):

Function: to obtain the working state of the end pin number.
Parameters: pin_no: represents the specific pin number at the end of the robot.
Return Value: pin_signal(int) When the returned value is 0, it means running in the working state; when it is 1, it means the stop state.

[링크 : https://docs.elephantrobotics.com/docs/gitbook-en/7-ApplicationBasePython/7.4_IO.html]

 

 

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

1 servo interface

[링크 : https://docs.elephantrobotics.com/docs/gitbook-en/2-serialproduct/2.1-280/2.1.5.2-RoboticArmElectricalInterface.html]

 

gripper control

[링크 : https://docs.elephantrobotics.com/docs/gitbook-en/7-ApplicationBasePython/7.5_gripper.html]

 

atom io

[링크 : https://docs.elephantrobotics.com/docs/gitbook-en/7-ApplicationBasePython/7.4_IO.html]

 

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

elephant robotics cobot python api  (0) 2023.12.21
산업로봇과 협동로봇의 차이  (0) 2023.12.21
오일러 각 / 짐벌락 / 쿼터니언  (0) 2023.12.21
6축 로봇 좌표계(TCP?)  (0) 2023.12.15
Posted by 구차니
embeded/전자회로2024. 5. 21. 19:36

노치필터 BRF(Band Rejection Filter), BSF(Band Stop)

THD+N 계산하기 위해 노치 필터를 적용한다고 어디서 본 거 같은데..

 

thd+n

[링크 : https://kr.mathworks.com/help/audio/ug/thd-n-measurement-with-tone-tracking.html]

 

band rejection filter / band stop filter

q값 = 중심주파수 / 대역폭

-3db 100Khz / 100hz = 100 (Q)

[링크 : https://m.blog.naver.com/dejc2000/221541137592]

 

Q값이 커질수록 selective한 필터

[링크 : https://blog.naver.com/85mighty/221153177677]

 

notch python

[링크 : https://hadaney.tistory.com/m/7]

 

 

'embeded > 전자회로' 카테고리의 다른 글

rheostat ?  (0) 2024.07.25
멀티미터 TR 테스트  (0) 2023.11.02
지름도착 - usb 인두기  (0) 2023.10.27
소소한 지름  (0) 2023.10.24
트리 회로  (0) 2023.10.21
Posted by 구차니
embeded/i.mx 8m plus2024. 5. 14. 15:45

fail!!

portaudio는 라이브러리 같은데

반대로.. 리눅스 시스템에서 지원하고 있는 오디오 시스템이 어떻게 되는지 확인하는 방법을 찾아 봐야 할 듯.

 

root@imx8mpevk:~# python3 tone.py 
Traceback (most recent call last):
  File "/home/root/tone.py", line 2, in <module>
    import sounddevice as sd
  File "/usr/lib/python3.11/site-packages/sounddevice.py", line 71, in <module>
    raise OSError('PortAudio library not found')
OSError: PortAudio library not found

 

라즈베리에서는 portaudio를 지원하나 본데 i.mx8 보드에서는 apt로도 설치가 안되는데

귀찮으니(?) 라이브러리 빌드해서 넣어봐야 하나?

sudo apt-get install libportaudio2
sudo apt-get install libasound2-dev

[링크 : https://park-duck.tistory.com/entry/portAudio-library-not-found-에러-해결]

'embeded > i.mx 8m plus' 카테고리의 다른 글

nxp g2d_blit  (0) 2025.04.01
NXP i.mx8mp LF_v6.1.55-2.2.0 테스트  (0) 2023.12.21
missed: not vectorized: relevant stmt not supported:  (0) 2023.08.31
nxp i.mx8mp win iot part 2  (0) 2023.05.26
nxp i.mx8mp win iot  (0) 2023.05.26
Posted by 구차니
embeded/raspberry pi2024. 2. 26. 17:46

라즈베리 설치할 때 cli로 설치하고

ultranav 꽃고 커서를 누르려다 이전/다음 페이지 눌렸는데 가상 터미널을 이동한다.

alt-shift-f1 ~ f10을 눌러서 사용했었는데, 원래 있던 기능인가?

 

[링크 : https://raspberrypi.stackexchange.com/questions/36099/open-tty1-with-another-shortcut]

 

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

rpi pico ADC 범위  (0) 2024.07.16
rpi pico / micropython  (0) 2024.07.15
rpi libcamera?  (0) 2024.02.26
3d 프린트 한 라즈베리 케이스  (0) 2024.02.21
mariadb 라즈베리 파이 설정값  (0) 2024.01.02
Posted by 구차니
embeded/raspberry pi2024. 2. 26. 17:38

raspi-still이 deprecated 였다면.. raspivid도 그렇게 되었을 텐데

Re: pi Camera not supported

Tue Dec 05, 2023 1:40 pm
raspi-still is a deprecated application and does not work with libcamera. Use the libcamera applications.

What OS, what Pi are you using? Have you re-seated all the camera connectors in case one has come loose?

[링크 : https://forums.raspberrypi.com/viewtopic.php?t=360897]

 

그나저나 libcamera는 또 머냐..

csi는 libcamera로 지원되지 않는건가?

pi@raspberrypi:~ $ vcgencmd get_camera
supported=1 detected=1, libcamera interfaces=0

pi@raspberrypi:~ $ libcamera-still --list-cameras
No cameras available!

 

 

그래서 raspi-config에서 아래 처럼 사라질수 있다 라고 기재한건가?

 

 

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

rpi pico / micropython  (0) 2024.07.15
rpi 콘솔 옮기기  (0) 2024.02.26
3d 프린트 한 라즈베리 케이스  (0) 2024.02.21
mariadb 라즈베리 파이 설정값  (0) 2024.01.02
MCP2515 on rpi  (0) 2023.10.31
Posted by 구차니
embeded/raspberry pi2024. 2. 21. 23:37

슬림해서 이쁜데

방열판 있으면 안되는 크기란 걸 간과했다...

그래서 라즈베리 2에만 장착하기로 결정!

 

흰색은 잘 녹는지 크게 눈에 거슬리지 않는데, 빨간색은 곳곳에 구멍이 빈다.

 

높이 방향으로는 의외로 깔끔하게 잘 뽑는다.

 

빨간색과 흰색으로 두개 뽑아서 바꿔주니 투 톤이라 좀 더 이뻐 보이는 효과가!

이제 남은건.. 저 망할(?) FFC와 카메라 케이스 ㅋㅋ

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

rpi 콘솔 옮기기  (0) 2024.02.26
rpi libcamera?  (0) 2024.02.26
mariadb 라즈베리 파이 설정값  (0) 2024.01.02
MCP2515 on rpi  (0) 2023.10.31
서보 pan/tilt 조립  (0) 2023.09.23
Posted by 구차니