Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
低予算電子工作 ARMマイコンを使えるようにする
Search
Fadis
May 09, 2015
Technology
0
530
低予算電子工作 ARMマイコンを使えるようにする
LPC1114FN28を使ってmbedで書いたコードを実行できるようにするところまでを解説します
Fadis
May 09, 2015
Tweet
Share
More Decks by Fadis
See All by Fadis
コンピュータグラフィクスの空
fadis
7
1.7k
NNEFを読めるようになろう
fadis
0
760
低レイヤーから始める GUI
fadis
18
11k
いまどきのVulkan
fadis
14
7.1k
L2 WireGuard
fadis
2
3.9k
Wasserstein逆FM音源
fadis
3
3.4k
HSEとは何か
fadis
15
3.1k
逆FM音源
fadis
24
16k
WebUSBとは何か、何を引き起こしたか、今どうなっているか
fadis
12
7k
Other Decks in Technology
See All in Technology
一生覚えておきたい「システム開発=コミュニケーション」〜初めての実務案件振り返りLT〜
maimyyym
0
100
プラットフォームってつくることより計測することが重要なんじゃないかという話 / Platform Engineering Meetup #8
taishin
1
340
アクセス制御にまつわる改善 / Improving access control
itkq
0
510
サーバー間 GraphQL と webmock-graphql の話 / server-to-server graphql and webmock-graphql
qsona
2
180
Google Cloud Next '24でブログを10本書いた方法と勉強会を沸かせた方法
yasumuusan
0
290
推しは推せるときに推せ! プロダクトにフィードバックしていこう
nakasho
0
280
4年前、あるじゃん老害エンジニアLT合戦に登壇、米国西海岸コンピュータ歴史博物館体験記の続編
toshi_atsumi
0
220
On Your Data を超えていく!
hirotomotaguchi
2
650
MySQL の SQL クエリチューニングの要所を掴む勉強会
andpad
2
6k
最近たまに見かけるTiDBってなんだ? - Findy
pingcap0315
2
760
複雑な構成要素を持つUIとの向き合い方 〜新・支出グラフでの実例〜 / B43 TECH TALK
nakamuuu
0
140
ゼロから始めるVue.jsコミュニティ貢献 / first-vuejs-community-contribution-link-and-motivation
lmi
1
110
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
357
22k
Documentation Writing (for coders)
carmenintech
60
3.9k
Learning to Love Humans: Emotional Interface Design
aarron
267
39k
Designing with Data
zakiwarfel
96
4.8k
Creatively Recalculating Your Daily Design Routine
revolveconf
210
11k
Teambox: Starting and Learning
jrom
128
8.4k
GitHub's CSS Performance
jonrohan
1025
450k
Building an army of robots
kneath
300
41k
Code Reviewing Like a Champion
maltzj
514
39k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
21
1.6k
Six Lessons from altMBA
skipperchong
21
3k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
7
990
Transcript
༧ࢉిࢠ࡞ "3.ϚΠίϯΛ͑ΔΑ͏ʹ͢Δ Naomasa Matsubayashi
mbed ϒϥβ্Ͱಈ͘ARMϚΠίϯͷ౷߹։ൃڥ https://developer.mbed.org/
mbed mbedͰॻ͍ͨίʔυΛ ग़དྷΔ͚ͩ༧ࢉͰ࣮ߦ͢ΔࣄΛࢦ͢
mbedͱ͍͑͜͏͍͏ϋʔυΣΞ͕༗໊͚ͩͲߴ͍ NCFE-1$ ௨শ੨͍NCFE NCFE-1$6 ௨শԫ৭͍NCFE ԁ͔Β ԁ͘Β͍ ԁ͔Β ԁ͘Β͍
mbed LPC1114FN28ͳΒͪΐͬͱ͍҆ mbed LPC1114FN28 ԁ͔Β ԁ͘Β͍
্ͭ͡ʹࡌͬͯΔϚΠίϯ͚ͩͩͱ200ԁఔ ͜͜ʹࡌͬͯΔ DIPͷϚΠίϯ LPC1114FN28 ͚ͩ ϚϧπͰ220ԁ ڞཱͰ200ԁ ळ݄Ͱ140ԁ
ॻ͖ࠐΈ͑͞Կͱ͔͢ΕϚΠίϯ200ԁఔͰࡁΉ Լʹ͍͍ͭͯΔͷ 64#͔Β؆୯ʹ ॻ͖ࠐΉͨΊͷϋʔυΣΞ
LPC1114FN28 ARM Cortex-M0ϚΠίϯ ࠷େ48MHz(ΫϩοΫଂ) ଂϑϥογϡ32KB (࣮ߦՄೳόΠφϦͷαΠζ32KB·Ͱ) ଂRAM4KB (࣮ߦதʹ͑ΔϝϞϦ4KB·Ͱ) 3.3VͰಈ͘ ϒϨουϘʔυʹͤ͞Δ
UART͔Βॻ͖ࠐΊΔ
LPC1114FN28 ੨͍mbedͷΑ͏ͳ USBϗετEthernetແ͍͕ I2C SPI PWM ADC UART ϚΠίϯͰΑ͘ΘΕΔI/O༗Δ
༻ҙ͢Δͷ
༻ҙ͢Δͷ 7ిݯ͖ϒϨουϘʔυ -1$'/ ԁ ॳճԁ ԁ ηοτ͋ͨΓԁ අ༻ͷΊ͢ ෦ ॳճʹඞཁͳඅ༻ԁ
ॳճԁ δϟϯύϫΠϠຊ ԁ 7༻64#γϦΞϧίϯόʔλ λΫτεΠον ԁ
ಈ࡞֬ೝʹඞཁͳͷ
ಈ࡞֬ೝʹඞཁͳͷ ఆ֨N"ͷ-&% ߅Њ ݸͰԁ ݸͰԁ ߹ܭ ηοτลΓԁ අ༻ͷΊ͢ ෦ ॳճʹඞཁͳඅ༻ԁ
δϟϯύϫΠϠຊ ԁ
C͔ΒHʹ-1$'/Λଓ ύοέʔδʹԜΈ͕͋Δํ͕ߦʹདྷΔΑ͏ʹ͢Δ
ϦηοτϘλϯ༻ͷλΫτεΠονΛ͚Δ ಈ࡞֬ೝ࣌ʹ͚Δ-&%ͱͿ͔ͭΒͳ͍ߦҎ͕߱Φεεϝ
λΫτεΠονͷࢠͷҰํΛIʹଓ ͏ҰํΛͷిݯϨʔϯʹଓ
J͔ΒͷిݯϨʔϯʹδϟϯύϫΠϠΛଓ ଂϑϥογϡॻ͖ࠐΈϞʔυʹೖΔҝͷઃఆ
K͔ΒͷిݯϨʔϯʹଓ ϚΠίϯͷ(/%
I͔Β ͷిݯϨʔϯʹଓ ϚΠίϯͷిݯ
64#γϦΞϧίϯόʔλͷ(/%ͱ5Y%ͱ3Y%ʹ δϟϯύϫΠϠΛଓ
64#γϦΞϧίϯόʔλͷ(/%ΛͷిݯϨʔϯʹଓ γϦΞϧίϯόʔλͱϒϨουϘʔυͷج४ిҐΛҰகͤ͞Δ
Jʹ64#γϦΞϧίϯόʔλͷ5Y%Λଓ
Kʹ64#γϦΞϧίϯόʔλͷ3Y%Λଓ
LPC1114FN28ʹॻ͖ࠐΉํ๏ σόοΨͰॻ͖ࠐΉ γϦΞϧͰॻ͖ࠐΉ σόοΨ͕ཁΔ 64#γϦΞϧίϯόʔλ͕ཁΔ ࠓճͬͪ͜ γϦΞϧ͔Βॻ͖ࠐΉҝͷΈ σʔλγʔτͰ*O4ZTUFN1SPHSBNNJOH *41 ͱݺΕΔ
lpc21isp FlashMagic 8JOEPXT༻ͷ(6*ΞϓϦέʔγϣϯ /*9͚ͷίϚϯυϥΠϯπʔϧ ॻ͖ࠐΈʹ͏ιϑτΣΞ ࠓճͬͪ͜ 8JOEPXTϢʔβͰ'MBTI.BHJDͰॻ͖͍ͨ߹͜ͷΜࢀর IUUQXXXOYQMQDDPNEFWFMPQNFOUIUNM
lpc21isp *41ͷϓϩτίϧΛΔίϚϯυϥΠϯπʔϧ ͜ΕΛͬͯॻ͖ࠐΉ IUUQTHJUIVCDPNDBQJNBOMQDJTQ
# LANG=C emerge -av lpc21isp! --- Invalid atom in /etc/portage/package.use/kde:
kde-base/pykde4-4.10.5! ! * IMPORTANT: 28 news items need reading for repository 'gentoo'.! * Use eselect news to read news items.! ! * Last emerge --sync was 52d 2h 23m 42s ago.! ! These are the packages that would be merged, in order:! ! Calculating dependencies... done!! [ebuild N ~] dev-embedded/lpc21isp-1.85 54 KiB! ! Total: 1 package (1 new), Size of downloads: 54 KiB! ! Would you like to merge these packages? [Yes/No] Yes! ! >>> Verifying ebuild manifests! ! >>> Emerging (1 of 1) dev-embedded/lpc21isp-1.85::gentoo! >>> Downloading 'http://ftp.iij.ad.jp/pub/linux/gentoo/distfiles/lpc21isp_185.tar.gz'! --2015-05-02 22:29:39-- http://ftp.iij.ad.jp/pub/linux/gentoo/distfiles/lpc21isp_185.tar.gz! Resolving ftp.iij.ad.jp... 2001:240:bb8f:200::1:170, 202.232.140.170! Connecting to ftp.iij.ad.jp|2001:240:bb8f:200::1:170|:80... connected.! HTTP request sent, awaiting response... 200 OK! Length: 54735 (53K) [application/x-gzip]! Saving to: '/usr/portage/distfiles/lpc21isp_185.tar.gz'! ! /usr/portage/distfi 100%[=====================>] 53.45K --.-KB/s in 0.1s ! ! 2015-05-02 22:29:39 (385 KB/s) - '/usr/portage/distfiles/lpc21isp_185.tar.gz' saved [54735/54735]! ͍͚ͯΔ-JOVYσΟετϦϏϡʔγϣϯͩͱ ύοέʔδ͕༻ҙ͞Ε͍ͯΔࣄ͋Δ
ઌఔΈཱͯͨϘʔυʹిΛೖΕͯ ϦηοτϘλϯΛԡ͢ MQDJTQͰσόΠεΛ୳͢ # lpc21isp -detectonly /dev/ttyUSB0 115200 48000! lpc21isp
version 1.85! Synchronizing (ESC to abort). OK! Read bootcode version: 1! 7! Read part ID: LPC1114.../102, 32 kiB ROM / 4 kiB SRAM (0x1A40902B) ϦηοτϘλϯ ͜͜ͷσόΠε໊ ڥʹΑͬͯҟͳΔ Մೳੑ͕͋Δ
# lpc21isp -detectonly /dev/ttyUSB0 115200 48000! lpc21isp version 1.85! Synchronizing
(ESC to abort). OK! Read bootcode version: 1! 7! Read part ID: LPC1114.../102, 32 kiB ROM / 4 kiB SRAM (0x1A40902B) νοϓͷछྨ -1$ ུ ϑϥογϡϝϞϦ ,J# 3". ,J# ͜Μͳ෩ʹνοϓͷใ͕දࣔ͞ΕͨΒޭ ग़ͳ͍߹Έཱͯํ͕߹͍ͬͯΔ͔͏Ұ֬ೝ͠Α͏
ಈ࡞֬ೝ
mbedͷLED໓αϯϓϧΛಈ͔ͯ֬͠ೝ͢Δ https://developer.mbed.org/users/ytsuboi/notebook/getting-started-with-mbed-lpc1114/ ϓϩάϥϜ͕LED1ͷ༻Λཁٻͨ࣌͠ mbedLPC1114FN28ͷ͜ͷϐϯʹ LED͕͍͍ͭͯΔ͜ͱΛظ͢Δ
൪ϐϯ ϒϨουϘʔυͷB ʹЊͷ߅Λଓ -&%ͷిྲ੍ྀݶ༻
߅ʹ-&%ͷΞϊʔυଆ ͕͍ํ Λଓ ͜ͷճ࿏ఆ֨N"ͷ-&%Λఆ͍ͯ͠Δ
-&%ͷΧιʔυଆΛͷిݯϨʔϯʹଓ
mbedʹϢʔβొ https://developer.mbed.org/account/signup/?next=%2F
mbedʹϩάΠϯͨ͠ΒCompilerΛબ https://developer.mbed.org/ ͜Ε
mbed LPC1114FN28ʹͳ͍ͬͯΔ͜ͱΛ֬ೝ ͜Ε ͠ผͷϚΠίϯʹͳ͍ͬͯͨΒ ΫϦοΫͯ͠LPC1114FN28ʹมߋ
NewΛԡͯ͠৽͍͠ϓϩάϥϜΛ࡞ ͜Ε
Platform͕mbed LPC1114FN28ʹͳ͍ͬͯΔ͜ͱΛ֬ೝ ͜Ε NCFE-1$'/͕Ϧετʹແ͍߹μΠΞϩάΛ Ұดͯ͡ӈ্ͷϓϥοτϑΥʔϜબ͔ΒՃ͠Α͏ ϓϥοτϑΥʔϜબ
Template͕Blinky LED Hello Worldʹͳ͍ͬͯΔࣄΛ֬ೝ ͜Ε ͍ΘΏΔLνΧΛ͢ΔͨΊͷίʔυ͕࠷ॳ͔Β༻ҙ͞Ε͍ͯΔ
CompileΛΫϦοΫ͢Δ Ϗϧυ͕ྃ͢Δͱग़དྷ্͕ͬͨόΠφϦ͕μϯϩʔυ͞ΕΔ ͜Ε
# lpc21isp -bin mbed_blinky_LPC1114.bin /dev/ttyUSB0 115200 48000! lpc21isp version 1.85!
File mbed_blinky_LPC1114.bin:! ! loaded...! ! image size : 10540! Image size : 10540! Synchronizing (ESC to abort). OK! Read bootcode version: 1! 7! Read part ID: LPC1114.../102, 32 kiB ROM / 4 kiB SRAM (0x1A40902B)! Will start programming at Sector 1 if possible, and conclude with Sector 0 to ensure that checksum is written last.! Erasing sector 0 first, to invalidate checksum. OK ! Sector 1: ...........................|.........................|.........................|............... ..........! Sector 2: ...........................|.........................|.........! Sector 0: ..........................|.........................|.........................|................ .........! Download Finished... taking 2 seconds! Now launching the brand new code μϯϩʔυͨ͠όΠφϦ ॻ͖ࠐΈ *41͕ಉظͰ͖ΔͷϦηοτޙճ͚ͩͳͷͰ ্ख͍͔͘ͳ͍ͱ͖ ϦηοτϘλϯΛԡ͔ͯ͠Β͏Ұࢼͯ͠ΈΑ͏
J͔ΒͷిݯϨʔϯʹܨ͕͍ͬͯΔδϟϯύϫΠϠΛ֎͢ ଂϑϥογϡॻ͖ࠐΈϞʔυʹೖΒͳ͍Α͏ʹ͢Δ
ϦηοτϘλϯΛԡͯ͠-&%͕໓࢝͠ΊͨΒޭ
·ͱΊ 200ԁͷϚΠίϯͱγϦΞϧॻ͖ࠐΈͰ mbedͰ࡞ͬͨόΠφϦΛ࣮ߦͰ͖Δ