출처 : http://www.ze.em-net.ne.jp/~kenken/machikania/typez.html#hanpu

 

BASIC 탑재 컬러 TV 게임 시스템 「MachiKania」(마치카니아)의 완성으로부터 정확히 반년이 지나, 상위 기종인 「MachiKania type Z」가 완성되었습니다.


기존에 비해 메모리 용량이 2배인 마이크로컴퓨터 칩을 사용하여, BASIC에서 컬러 그래픽이나 부동 소수점 연산을 취급할 수 있게 되었습니다. 이제 BASIC으로 만들 수 있는 프로그램의 응용 범위가 크게 넓어집니다. BASIC의 구문 자체도 재검토해, 구조화 프로그래밍 대응으로 더욱 편리하게 프로그램을 작성할 수 있게 되었습니다.


부디 새로운 MachiKania를 체험해 보세요.


PIC32MX판 최상위 모델 「MachiKania type M」은 이쪽
Raspberry Pi Pico 탑재 모델 「MachiKania type P」는 이쪽

 

관련 정보
· MachiKania type Z를 만들자 : 프린트 기판, 부품 키트 구입자용, MachiKania 간단 스타트 가이드
· 입문 MachiKania : 보다 자세한 프로그램 작성 방법을 해설

 

★ MachiKania type Z에서 할 수 있는 일

 

초대 MachiKania에 비해 다음과 같은 부분들이 강화되었습니다.

・256×224도트, 16색 동시 표시 가능한 컬러 그래픽에 대응한 BASIC 시스템을 탑재
・32비트 단정밀도의 부동 소수점 연산을 지원, 각종 수학 함수를 실장.
・서브루틴 내의 로컬변수나, 여러 줄에 걸친 IF~THEN 구조, WHILE~LOOP 구조의 서포트, 인수나 반환값 첨부 서브 루틴 등, 구조화 프로그래밍에 빠뜨릴 수 없는 명령을 다수 추가. 이것에 의해, GOTO문을 거의 사용하지 않는 프로그램 작성을 실현・다차원 배열에 대응・대용량 메모리 탑재로 보다 대규모의 BASIC 프로그램을 작성 가능
・SD 카드의 서브 디렉토리 작성과 서브 디렉토리에의 보존, 읽기에 대응(Ver 1.02 이후)
・가로 40문자 표시모드의 추가 (Ver 1.02 이후)   ·   
・BASIC 프로그램에서 SD 카드의 파일에 액세스 가능 (Ver 1.04 이후)
・영문/숫자로 최대 6문자까지의 변수명을 사용 가능 (Ver 1.2 이후)  
・오브젝트 지향 프로그래밍에 의해 라이브러리를 이용할 수 있습니다. (Ver 1.2 이후)

 

탑재하고 있는 BASIC KM-1200은 종래 버전과 호환성이 있어, 종래 프로그램은 그대로 실행시킬 수 있습니다.


또, 초대 MachiKania에서 가능한 이하의 내용도 그대로 계승하고 있습니다.

・TV에 연결해 전원을 넣으면 곧바로 게임이 시작됩니다.
・키보드를 연결하면 BASIC 언어로 오리지널 게임을 만들 수 있습니다.
・컬러 표시 대응이므로, 화려한 게임을 만들 수 있습니다.
・자신의 오리지널 캐릭터를 사용한 게임을 만들 수 있습니다.
・BASIC의 실행은 매우 고속이므로, 본격적인 게임을 만들 수 있습니다.
・만든 게임은 SD 카드에 저장할 수 있습니다.
・SD 카드를 사용하여 컴퓨터에서 프로그램을 복사할 수 있습니다.
・하드웨어도 소프트웨어도 공개되어 있으므로, 모두 스스로 제작할 수 있습니다.

 

 

 

MachiKania type Z를 만드는 방법

 

MachiKania type Z의 제작 방법과 기본적인 조작 방법은, 초대 MachiKania와 완전히 같습니다. 그러므로, 자세한 것은 이쪽 페이지의 「MachiKania 만드는 방법」부터 우선 읽어 주세요.

 

대략적인 제작 순서는 다음과 같습니다.

1. 하드웨어 제작
2. 마이크로 컴퓨터에 부트 로더 프로그램 쓰기
3. SD 카드에 필요한 파일 복사

 

이미 초대 MachiKania를 만든 경우, 1단계에서는 마이크로 컴퓨터 칩의 교체만 합니다(IC 소켓을 사용하고 있는 편이 좋다). 또한 초대 MachiKania를 PIC32MX170F256B로 움직이는 경우 3단계 작업만 해주면 MachiKania type Z를 도입할 수 있습니다.

Raspberry Pi를 이용해 PIC의 플래시 메모리에 펌웨어를 기록하는 방법

Raspberry Pi가 있으면 PICkit3 등이 없어도 Pickle이라는 프리 소프트웨어를 사용하여 PIC에 쓸 수 있습니다. 위 회로도에서 PICkit3에서 연결되는 3개의 핀에 저항 3개를 끼우고 Raspberry Pi로 바꿉니다. 또한 전원도 Raspberry Pi에서 가져올 수 있습니다. 이하에 간단한 설명을 기재했습니다.

라즈파이에서 PIC32MX에 쓰기

 

프린트 기판을 사용한 제작 사례

 

부품표

PIC 마이크로컨트롤러 PIC32MX170F256B또는 PIC32MX270F256B (28핀 DIP타입) x1
전원 레귤레이터 3.3v 3P 레귤레이터 TA48M033F x1
트랜지스터 2SC1815 x2
크리스탈 오실레이터 3.579545Mhz x1
저항 10K x6, 330 x2, 2.4K x1, 1.2K x1, 620K x1, 300 x1, 120 x1, 100 x2, 75 x1
콘덴서 전해콘덴서 47uF x1, 적층세라믹콘덴서 0.1uF x4, 18pF x2, 10uF x1
가변저항 10K x1
택트스위치 게임버튼 조작용 x6, 리셋용 x1
RCA 잭 x2 (비디오 / 오디오 신호용)
Mini DIN 6p 커넥터 x1 (PS/2 키보드용)
SD카드슬롯 x1 (마이크로SD카드 슬롯도 가능)
DC 전원 잭 x1 (AC어댑터에 맞는 것)

 

 

부품표 외에 필요한 것

전원 어댑터 5V AC어댑터를 추천. 레귤레이터를 이용하여 3.3v로 강압시킴
PICkit3 부트로더 기록에 필요. PIC32에 기록할 수 있다면 다른 것도 OK.
부트로더가 이미 기록된 마이크로컨트롤러를 구입하는 경우 필요 없음(입수 방법)
SD카드, 마이크로 SD카드 1GB 정도면 충분
PC PICkit3 이용시, 또는 SD카드의 초기화에 필요
SD카드 리더/라이터 PC에 연결할 때 필요
TV 비디오입력단자가 있는 것. PC의 비디오 캡처 유닛 등도 이용 가능
PS/2 키보드 BASIC 프로그램을 짤 때 필요
비디오 케이블, 사운드 케이블 TV에 접속할 때 필요

 

 

다운로드

 

MachiKania type Z에 관한 파일들을 다운로드할 수 있습니다.

Download
(2020. 3. 29)
동작에 필요한 파일들과 샘플 파일 세트 (bootloader.hex 이외에는 SD카드에 넣을것)
bootloader.hex 부트로더 본체. PICkit3 등을 이용하여 PIC 마이콘에 기록할것
MACHIKAZ.HEX MachiKania type Z BASIC 시스템. SD카드에 넣어 부트로더로부터 읽어들여서 기동시킴
MACHIKAZ.INI MachiKania type Z BASIC 시스템의 설정 파일
그 외의 파일들 ".BAS" 파일 : BASIC 샘플 프로그램
".HEX" 파일 : 부트로더로 기동 가능한 실행 파일(C언어로 작성한 샘플 게임)
Download
(2019. 3. 31)
BASIC으로 이용 가능한 각종 클래스 파일 모음 압축을 풀면 나오는 LIB 디렉토리를 SD카드 루트에 복사하여 사용. 각 클래스의 사용 방법은 각각의 디렉토리에 들어있는 help.txt 파일을 참고
Download
(2020.3.29)
소스파일 및 라이브러리 파일 세트
ps2keyboard.X.a PS/2 키보드용 드라이버
lib_videoout_machikania.X.a 컬러 텍스트 & 그래픽 출력 라이브러리 (2020. 1. 26)
libsdfsio.a SD카드 파일 액세스용 라이브러리
App_32MX170F256B.ld 부트로더 대응 프로그램을 작성하기 위한 링커 스크립트
그 외의 파일들 MachiKania type Z BASIC 시스템 소스 파일. LGPL(v2.1)의 라이센스에 의거하여 소스를 공개합니다.

 

(2019. 11. 3) CLASS의 PUBLIC FIELD 참조시에 발생하는 버그를 수정했습니다.

(2020. 1. 26) 다중 분할시에 발생하는 버그, 40문자 모드시의 폰트 등을 수정했습니다.

(2020. 3. 29) 일부 명령의 실행시 분할이 발생하면서 생기는 버그를 수정했습니다.

 

[시스템 버전업 데이터의 적용 방법]

 

1. 위에서 압축을 푼 MACHIKAZ.HEX를 SD카드의 루트에 덮어씁니다. 

2. SD카드를 MachiKani에 꽂고, 본체의 버튼을 아무거나 누르면서 전원을 켭니다.

3. 부트로더가 기동되면 MACHIKAZ를 선택하고 FIRE 버튼을 누릅니다.

 

--- 추가 : VGA 출력 시도 ---------------------------------------------------------------------------------------------------------------------------

 

https://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/f2017/mch258_mtr73/mch258_mtr73/mch258_mtr73/index.html

'Consoles > ETC' 카테고리의 다른 글

라즈베리 파이 시리즈 외부 연결  (0) 2024.01.03
GPIO - VGA DAC (R-2R DAC)  (0) 2023.12.26
PICO-8 라즈베리파이 머신 만들기  (0) 2023.12.10
HDMI - Mini HDMI 케이블 제작시 배선  (0) 2023.12.09

'Consoles > ETC' 카테고리의 다른 글

라즈베리 파이 시리즈 외부 연결  (0) 2024.01.03
GPIO - VGA DAC (R-2R DAC)  (0) 2023.12.26
PICO-8 라즈베리파이 머신 만들기  (0) 2023.12.10
MachiKania type Z  (0) 2023.12.09

출처 : http://www.ze.em-net.ne.jp/~kenken/bbs/817.html

 

라즈베리파이를 이용하여 PIC32MX에 플래싱하는 방법

투고자 : 켄켄

투고일 : 2020년 3월 29일 (일) 22시 18분 59초

NE0356lan33.rev.em-net.ne.jp

 

라즈베리 파이를 직결하여 PIC32MX의 플래시메모리에 기록하는 것이 가능한 "Pickle"이라고 하는 소프트웨어를 소개합니다. 이전에도 올렸습니다만, 링크가 깨져있거나 제대로 기록이 되지 않는다는 지적이 있기도 했으므로 다시 조사하여 재차 투고합니다.

 

이것을 사용하면, PICkit3 같은 장비가 없어도 라즈베리 파이와 몇 가지 부품만으로 PIC32를 포함한 여러가지 PIC 마이크로 컨트롤러에 기록이 가능합니다.

 

* Pickle Microchip PIC ICSP

https://wiki.kewl.org/dokuwiki/projects:pickle 

 

projects:pickle - wiki.kewl.org

Pickle is an PICMicro in-circuit serial programmer for FreeBSD, NetBSD, Linux, Cygwin (Windows) and MACOS/X or any UNIX/POSIX based system, which includes the Raspberry Pi and embedded devices running OpenWRT. All operating systems support high voltage pro

wiki.kewl.org

 

* Pickle로 PIC32 시리즈에 기록하는 순서

 

1) 라즈베리 파이에 아래 프로그램을 다운로드한다

http://wiki.kewl.org/downloads/pickle-4.20.tgz 

2) 적당한 폴더에 압축을 푼다

3) 압축을 푼 디렉토리로 이동하여 아래 명령을 실행한다

make
sudo make install

 

4) ~/.pickle이라는 디렉토리를 만든다

5) 압축을 푼 src/dotconf/의 RPI를 config라는 파일명으로 바꾸고 위의 디렉토리에 복사한 뒤, 아래와 같이 내용을 변경한다.   

DEVICE=RPI2
SLEEP=1
BITRULES=0x4F00
VPP=9
PGM=-1
PGC=10
PGD=11

 

6) 아래 3개의 파일을 다운로드하여 ~/.pickle 디렉토리에 압축을 풀어준다.

http://ww1.microchip.com/downloads/en/DeviceDoc/RIPE_06_000201.zip
http://ww1.microchip.com/downloads/en/DeviceDoc/RIPE_11_000301.zip
http://ww1.microchip.com/downloads/en/DeviceDoc/RIPE_15_000502.zip

 

PIC32의 경우에는 Proframming Executive라고 하는 기능에 대응하고 있어, 이것을 사용하면 기록이 대폭 빨라집니다.

 

7) 다음 핀 사이에 470옴 정도의 저항을 이어준다. (필자는 330옴을 사용)

라즈베리파이측       PIC측
GPIO9 (21번) -저항- MCLR
GPIO10(19번) -저항- PGECx(x는 1이나 2,3등)
GPIO11(23번) -저항- PGEDx(x는 1이나 2,3등)

 

PGECx와 PGEDx의 x는 같은 조합으로 해줘야 합니다.

 

8) 라즈베리파이의 3.3v와 GND는 PIC의 각 전원핀에 접속한다. PIC의 아날로그 전원핀도 잊지 말고 연결한다.

    (역자주 : PIC의 MCLR과 라즈베리파이의 3V3 사이에도 저항이 필요한데 원본에는 설명이 누락되어 있음. 저항 용량은 10K옴)

라즈베리파이측       PIC측
+3V3 (1번)  -저항(10kOhm)- VDD
GND  (39번) --- GND

 

9) PIC의 기판 상에 ICSP로써 6핀의 단자가 있는 경우에는 아래와 같은 접속 형태가 된다.

ICSP
1 MCLR
2 VDD
3 GND
4 PGEDx
5 PGECx
6 -

 

10) PIC32의 VCAP핀에 붙이는 10uF 콘덴서는 필수.

MachiKania의 기판 등에 콘덴서가 납땜되어 있는 경우는 그대로 써도 문제 없습니다.

 

11) 연결이 다 되었다면 라즈베리파이에서 아래 명령을 실행한다(HEX파일명이 xxx.hex인 경우)

p32 program xxx.hex
p32 verify xxx.hex

기록되는 동안은 아무것도 표시되지 않으므로 끝날 때까지 기다립니다.

 

---

 

이하는 왜 제대로 기록되지 않는 경우가 있었는지에 대한 고찰이므로 꼭 읽어야 하는 내용은 아닙니다.

 

* Verify에서 문제없이 기록되었는데도 제대로 작동하지 않는 경우

 

PICkit3 등의 장비로 기록하면 문제없이 동작하는 HEX파일이, 왜인지 Pickle로 기록하면 Verify해도 정상적으로 기록되지 않는 경우가 있는 것이 판명되었습니다.

 

PIC32의 CONFIGURATION 비트의 DEVCFG0의 제 1:0비트(DEBUG비트)가, 보통 "3"(11b)이 아니라면 동작하지 않지만, 소스 프로그램의 기록 방법에 따라서 "2"(10b)가 되어 버리는 경우가 있는 것 같습니다. 문제는 PICkit3등 Microchip사의 기록 툴에서는 이것을 자동적으로 "3"으로 바꿔서 기록하기 때문에 유저는 눈치채지 못합니다.

대책으로써는 소스 프로그램의 CONFIG설정을 아래와 같이 변경하여 빌드하는 방법이 있습니다.

#pragma config DEBUG = OFF
↓
#pragma config DEBUG = 3

데이터 시트 상에는 "3"이든 "2"이든 문제없다고 기재되어 있으므로, 아마 이것은 Microship 사의 심술일지도 모릅니다.

 

데이터 시트의 DEVCFG0의 기재

DEBUG<1:0>
1x = Debugger is disabled
0x = Debugger is enabled

MachiKania typeM의 부트 로더가 딱 이 케이스였기 때문에, 수정을 해야만 했습니다.

 

+ Recent posts