Talaan ng mga Nilalaman:

Teksto sa Pagsasalita Mag-click sa isang ARMbasic Powered UChip, at Ibang Mga ARMbasic Powered SBC: 3 Mga Hakbang
Teksto sa Pagsasalita Mag-click sa isang ARMbasic Powered UChip, at Ibang Mga ARMbasic Powered SBC: 3 Mga Hakbang

Video: Teksto sa Pagsasalita Mag-click sa isang ARMbasic Powered UChip, at Ibang Mga ARMbasic Powered SBC: 3 Mga Hakbang

Video: Teksto sa Pagsasalita Mag-click sa isang ARMbasic Powered UChip, at Ibang Mga ARMbasic Powered SBC: 3 Mga Hakbang
Video: Top 25 Word 2016 Tips and Tricks 2024, Hulyo
Anonim
Teksto sa Pagsasalita Mag-click sa isang ARMbasic Powered UChip, at Ibang Mga ARMbasic Powered SBC
Teksto sa Pagsasalita Mag-click sa isang ARMbasic Powered UChip, at Ibang Mga ARMbasic Powered SBC
Teksto sa Pagsasalita Mag-click sa isang ARMbasic Powered UChip, at Ibang Mga ARMbasic Powered SBC
Teksto sa Pagsasalita Mag-click sa isang ARMbasic Powered UChip, at Ibang Mga ARMbasic Powered SBC
Teksto sa Pagsasalita Mag-click sa isang ARMbasic Powered UChip, at Ibang Mga ARMbasic Powered SBC
Teksto sa Pagsasalita Mag-click sa isang ARMbasic Powered UChip, at Ibang Mga ARMbasic Powered SBC

Intro: Magandang araw. Ang pangalan ko ay Tod. Ako ay isang propesyonal sa aerospace at pagtatanggol na medyo isang geek din sa puso.

Inspirasyon: Pagbati mula sa panahon ng dial-up BBS, 8-bit Microcontrollers, Kaypro / Commodore / Tandy / TI-994A isang personal na computer, kapag ang mga tindahan ng Radio Shack ay maraming (ang magagandang araw na ole), ang isa sa aking mga unang naka-embed na proyekto ng libangan ay nagtatrabaho kasama ang isang MEK6800D2 Motorola Microprocessor Training Kit, na binili ko habang nagtatrabaho bilang co-op sa mga lab ng MSU EE (pagkatapos makumpleto ang aking pagsasanay sa High School Electronics VoTech sa Southern Lower MI). Ang proyektong iyon ay kasangkot sa aking pag-prototipo ng Radio Shack SP0256 NARRATOR ™ SPEECH PROCESSOR papunta sa MEK6800D2, pag-wire up at pagprograma ng 6800 upang makuha ito sa paglabas ng pseudo-speech (ang mga nagtrabaho sa SP0256 based HW na alam kung ano talaga ang tinutukoy ko). Nagtataka itong gumana at umunlad ako sa landas ng paggupit ng aking ngipin sa mga naka-embed na microcontroller at Assembly. Pagkatapos ng High School, naging hadlang ang buhay, Militar, Digmaan, Mag-asawa, Mga Bata, pagpasok sa sektor ng sibil, nagsisimula ng isang karera, atbp. Lahat ay naidagdag sa aking pagtatago ng aking libangan sa pabor na itaguyod ang mga pagsusumikap ng buhay sa isang kultura sa Kanluran (dito sa US).

Laktawan ang pasulong 20 taon, pagdating sa hindi maiiwasang oras kung saan ang mga bata ay nagkakaroon ng matanda sa punto na ang Bride at ako ay nakakagambala, ang mga singil sa mortgage / sasakyan / kolehiyo ay dahan-dahang binabayaran, nagiging mas mahusay ang mga kita sa mga pagsulong, at ang aking pagkakaroon ng sapat na ekstrang oras sa punto kung saan maaari akong magsimulang mag-focus muli sa ilang mga makasariling pagsisikap, kinuha ko muli ang hobby electronics gig. Sa anumang paraan, na ibinigay sa aking angkan at kasaysayan, hinanap ko at natagpuan ang isang kapaligiran na dev na mabilis kong nakipag-ugnay sa - ARMbasic - BASIC ang aking unang pag-ibig at akma ito sa panukalang batas na hindi lamang binago ang aking sarili sa programa, ngunit ang pagtatrabaho sa hardware na mas ligaw makapangyarihan kaysa sa sinimulan ko sa mga nakaraang taon, at sa gayon nagsimula ang paglalakbay.

Ito ay noong 2006-2009. Pagkatapos, para sa mga kadahilanang lampas sa aming kontrol, nagbago ang buhay (tulad ng ginawa nito sa maraming mga taon). Ang mga libangan ay nakubkob - nakatuon sa isang bagong karera, nakakakuha mula sa mga pakikibakang pampinansyal (ay labis na naibigay sa domain ng real-estate at kinuha namin ito sa mga shorts at ang mga bata ay nakakakuha lamang sa puntong kung saan ang pondo ng College ay isang sapilitan). Talaga, ang mga problema sa Buhay at Unang-Mundo (talagang napapala tayo, isinasaalang-alang ang mga hamon at paghihirap na pinaglalaban ng mga tao sa iba pang mga bahagi ng mundo sa pang-araw-araw) na ipinamalas ang kanilang sarili at… ang libangan ay nakubkob. Dinampot ko ito nang saglit dito noong 2011-2012-ish pagkatapos ay nasalubong sa isa pang pagbabago ng karera - ang libangan ay nakubkob muli.

Mabilis na isa pang dekada at … Bumalik ako at, Magandang Panginoong Handa, sana sa tagal (hanggang sa kunin ko ang salawikain na dumi at simulang itulak ang mga daisy mula sa ibaba). Kaya, narito tayo. Wow - Si Arduino (ano ang kakaibang salitang iyon?) Ay sumugod sa merkado. Mga gumagawa ?? Ano ba sila ?! …:) Ang aking mga kaibigan sa Coridium Corp (mga nagmamay-ari ng ARMbasic at ARM-based microcontroller dev boards) ay nanatiling matatag at totoo. Ngayon, sa halip na ang serye ng mga Controller ng LPC2xxx, mayroong itong bagong (sa akin) entity ng ARM, at Cortex M0 / M3 / M4, at Arduino, at… WOW! Ang kultura ay medyo nag-morphed, at sa maraming mahusay na paraan. Ang mga peep ay nakikipagtulungan sa malayuan at, sa katunayan, sa buong mundo. Ang hardware ay nakakakuha ng kamangha-manghang mabilis at malakas, at ang ARMbasic, na may pagkahinog at matatag na tumigas sa trabaho sa maraming iba't ibang mga pamilya ng silikon, ay isang bagay na kagandahan para sa akin at sa iba pa.

Kaya't, napakahaba ng isang maikling kwento, kamakailan lamang ay nadapa ako sa pag-click sa TTS ng MikroElectronika at naramdaman ang isang paghuhugas ng nostalgia na dumaloy sa akin. Ay may isang nag-order sa isang paraan ng minuto, at sabik sa mga susunod na araw hanggang sa dumating ang yunit sa kamay. Samakatuwid nagsisimula ang kwento …

Mga gamit

  • 1 ea MikroElectronika Text To Speech Click, naglalaman ng Epson S1V30120 - ang module ng TTS ASIC
  • 1 ea ARMbasic Target, tinutupad ang papel na ginagampanan ng TTS Host
  • 1 ea Uno Breakout Shield (o prototyping board ng tinapay, o…)
  • 1 ea speaker, o isang hanay ng mga nagsasalita ay nagmumungkahi ng PC desktop powered speaker na may 1/8 "TRS plug roon
  • 1 lot Prototyping wares wire, solder, flux, wick, soldering iron, header, IC sockets at iba pa..
  • 1 lot na naka-embed na Dev Tools DMM, Logic Probe, Logic Analyzer, Saklaw, atbp. - para sa mga bagong TTS Host MCU

Hakbang 1: Mga Koneksyon sa Hardware

Mga Koneksyon sa Hardware
Mga Koneksyon sa Hardware
Mga Koneksyon sa Hardware
Mga Koneksyon sa Hardware
Mga Koneksyon sa Hardware
Mga Koneksyon sa Hardware

Upang makopya ito gamit ang isang ARMbasic target sa isang Uno form factor, o sa isang Itaca uChip, ang isa ay malamang na pinakamahusay na maihatid sa pamamagitan ng paggamit ng isang prototyping na kalasag, tulad ng nagawa ko sa mga larawan sa itaas (simpleng link ng amazon)

Makikita ng ilan ang baluktot na magkasama wire-wrap wire at nagtataka kung bakit - ang pagtanggi sa ingay ng karaniwang mode ay ang simpleng sagot. Yeah, hindi kami nakikipag-usap sa mga balanseng signal dito, ngunit naisip kong hindi ito makakasama (?) Kaya't ginawa ko iyon kapag ginagawa ko ang buildup ng board.

Ito ay isang medyo kaaya-aya na disenyo. Ang mga kopya ay nakakabit dito, sa anyo ng isang graphic (Ang AutoCAD 2D ang pinakasanayan ko - na nagtrabaho kasama nito ng mga dekada sa aking araw na trabaho - pinuputol ko pa rin ang aking mga ngipin sa KiCAD at ito ay masyadong simpleng isang pagsisikap na bigyang-katwiran ang curve ng pag-aaral bilang isang unang proyekto sa KiCAD). Anyways, pinili kong i-mount ang socket ng uChip nang direkta sa kalasag upang paganahin ang isang stand-alone na use-case kapag ginagamit ang uChip bilang isang host. Nagdagdag ako ng isang JST para sa pagpapatakbo ng ito sa pamamagitan ng baterya, kung nais kong gawin ito at, dahil mayroon akong ilang mga extra, nagpalabas ako ng isang Adafruit SWD Breakout upang paganahin akong magamit ang aking Segger J-Link EDU Debug Probe, kung kailangan ng pangangailangang lumitaw. Hindi ito, ngunit pinapanatili ko ang SWD sa itaas upang magamit sa mga susunod na proyekto.

Ang Castellated ay nangangahulugang, sa kontekstong ito, upang mai-file ang mga gilid ng PCB upang ang nakubkub sa pamamagitan ng mga butas ay nabawasan sa mga kalahating silindro, na nagpapagana sa paghihinang sa isang bitbit na PCB - sa kasong ito ang board ng breakout ng kalasag. Pinili kong gawin ito dahil ang mga flat-pack fanout na bahagi ng kalasag ay hindi lubos na nakahanay sa hanay ng hilera sa pagitan ng dalawang mga hilera ng header sa SWD BOB. Nabasag ang isang flat file at 5 minuto ng pag-file at nalutas ang problema.

Hakbang 2: Programming at Pagsubok

Programming at Pagsubok
Programming at Pagsubok
Programming at Pagsubok
Programming at Pagsubok
Programming at Pagsubok
Programming at Pagsubok

Kapag na-built up ang hardware, kakailanganin na maging isang buong ring-out upang mapatunayan na ang mga kable ay mabuti. Pagkatapos, palagi akong gumagawa ng tseke sa Power at Grounds. Hindi lamang nito tinitiyak na ang Power at Ground ay naroroon kung saan sila naroroon, ngunit ang alinman sa iba pang mga pagwawakas na hindi dapat magkaroon ng kapangyarihan / ground doon ay hindi. Ito ay hindi isang nakakapagod na gawain sa isang maliit na proyekto tulad nito, ngunit may mas malaking mga system-of-system na ito, habang talagang isang nakakapagod na hakbang, ay ganap na kinakailangan upang matiyak na walang mga sub-assembliya o konektadong mga system na nakuha ng isang nakakalokong pagkakamali na maaari at dapat ay nahuli. Karaniwan kong nakukuha ang hubad na minimum na mga kalakal na nakakabit upang ang lakas ay nabuo sa board at pagkatapos ay suriin ang bawat pin / pagwawakas para sa lakas at lupa bago ang pag-plug sa mga sub-assemble, chips, atbp., Tinitiyak na ang lakas ay nasa wastong antas (isinasaalang-alang ang mga di-5V-mapagtiis na aparato / IO, 1v8 at 3v3 na kinakailangan, atbp.) at ang lupa na iyon ay kung saan kinakailangan itong maging at kung saan lamang ito kinakailangan. Nasaksihan ko ang isang kaskad ng mga pagkabigo sa isang sasakyang panghimpapawid mula sa mga taong nabigo na gumawa ng wastong mga tseke na pre-connect. Sa isang kaso, kumuha ito ng higit sa $ 100K ng mga LRU - hindi isang masayang oras upang maging namumuno sa isang proyekto at magpatuloy itong patagilid sa isang iglap sapagkat may isang maikling nagpalipat-lipat sa proseso. Ang isa pang bagay na nagkakasala ako ay ang paggawa ng nakakapagod na 'mga pagsusuri sa paligid' - tinitiyak na ang mga contact / pagwawakas ay hindi naikliin sa mga katabing contact / termination. Nagiging kritikal ito kung ang isa ay nakikipag-usap sa mga coaxial assemblies, multi-conductor / Shielde na harnesses, atbp. Ok, wala ako sa kahon ng sabon…

Kapag natitiyak na ang kaligtasan, ikonekta ang mga bagay, i-power ito at pagkatapos ay bumaba sa pag-program ng TTS Host (ARMbasic Target MCU) tulad din ng maraming gagawin na naka-target na target ng MCU. Nag-record ako ng isang video na naglalarawan ng programa at simpleng paggamit ng TTS Click. Maaari mo itong tingnan dito.

Ang ARMbasic source code ay maaaring ma-download mula dito - isang post sa forum na may mga karagdagang detalye. Ang Coridium ay gumawa ng isang post sa blog sa mga pagsisikap na ito, na maaari kang makarating sa pamamagitan ng pag-click dito.

Hakbang 3: Pagbabago ng Pinagmulan para sa Ibang Mga Target na ARMbasic, at Iba't ibang Mga Musika

Pagbabago ng Pinagmulan para sa Ibang Mga Target na ARMbasic, at Iba't ibang Musings
Pagbabago ng Pinagmulan para sa Ibang Mga Target na ARMbasic, at Iba't ibang Musings
Pagbabago ng Pinagmulan para sa Ibang Mga Target na ARMbasic, at Iba't ibang Musings
Pagbabago ng Pinagmulan para sa Ibang Mga Target na ARMbasic, at Iba't ibang Musings
Pagbabago ng Pinagmulan para sa Ibang Mga Target na ARMbasic, at Iba't ibang Musings
Pagbabago ng Pinagmulan para sa Ibang Mga Target na ARMbasic, at Iba't ibang Musings
Pagbabago ng Pinagmulan para sa Ibang Mga Target na ARMbasic, at Iba't ibang Musings
Pagbabago ng Pinagmulan para sa Ibang Mga Target na ARMbasic, at Iba't ibang Musings

Hindi kita sasabihin sa iyo sa mga hakbang na kinakailangan upang mabago ang source code upang gumana sa iba pang mga target ng ARMbasic, maliban sa ipahiwatig na nag-drone ako tungkol sa paggawa nito sa isang sagana ng mga puna ng source code doon. Mangyaring maglaan ng oras upang mai-crack ang tts.bas file at basahin ang tungkol sa kung anong mga pagbabago ang kinakailangan kung pipiliin mong i-port ang code sa isa pang controller na pinapatakbo ng ARMbasic.

Nakalakip dito ang ilang mga imahe na kinuha ko sa panahon ng dev cycle ng pagkuha nito upang gumana.

Mga aral na natutunan:

  1. Kung mayroon kang isang Logic Analyzer na may mga hindi nagamit na input at may labis na target na mga IO na hindi ginagamit para sa gawaing nasa kamay, huwag matakot na gamitin ang mga IO na iyon bilang mga tool sa pag-debug - ang pagwiwisik ng isang wiggling ng isang IO sa iba't ibang mga punto sa code ay maaaring isang malaking tulong sa pagsubaybay kung ano ang at hindi gumagana tulad ng inaasahan, upang makilala ang mga isyu sa maloko na tiyempo (ibig sabihin, nakakagambala na nakakaapekto sa mga bit-biglang serial comms), at sa pangkalahatang makakuha ng isang mas mahusay na pag-unawa sa iyong mga pagsisikap bilang isang buo.
  2. Hindi lahat ng mga Controller ng ARM ay pareho. Halata naman ito Gayunpaman, nakuha ko ang bit sa pamamagitan ng paggawa ng paunang dev sa isang LPC1765 Coridium SuperPRO. Sa pag-iisip, kung ano ang ginawang masamang pagpipilian ay ang pagpapatupad ng ARM core na ito na pinapayagan ang pag-access na hindi nakaayos ang salita sa memorya. Kapag ang paglalagay ng C code sa ARMbasic, ang mga bagay ay naging maayos hanggang sa sinubukan kong gamitin ito sa isang target na SAMD21 - lahat ng impiyerno ay lumuwag at ang mga bagay ay borked lampas sa paniniwala dahil sa hindi nakaayos na pag-access kapag pinupunan ang mga buffer, pagmamanipula ng mga watawat, gumagana sa bersyon ng ARMbasic ng mga istraktura / unyon na naisip ko, atbp. Ito ay isang masakit na aralin. Ang pag-aalis dito: Kung nais ng isang magkaroon ng portable code, abutin ang pinakahigpit na target ng kandidato, upang matiyak na ang isang tao ay hindi nahaharap sa drama sa pagtatapos ng proyekto, kung saan ang isa ay malamang na nasasabik na gamitin ang mga bunga ng ang kanilang pagsisikap..:)
  3. Ang pag-port ng C code sa ARMbasic ay HINDI imposible. Ang pagsisikap na ito ay higit sa lahat isang napakalaking porting ng ebolusyon ng pagsasanay. Kung maglalaan ang isang tao ng oras upang ihambing ang orihinal na mga mapagkukunan ng C sa ARMbasic code na aking nilikha, dapat magkaroon ang isang tao ng ilang mga ideya kung paano ipatupad ang mga bagay na maaaring hindi bahagi ng pangunahing disenyo ng ARMbasic (ie Mga Istraktura).
  4. Pakitunguhan ang mga bagay na tulad nito sa mga napapamahalaang mga tipak. Bilang default, isa ako sa nais na makita ang kasiyahan sa isang regular na batayan. Ang isang pagsisikap tulad ng mga pagsusumikap sa pag-port at dev na ito ay malamang na hindi isang bagay na maaaring magawa sa isang solong gabi. Magtakda ng mga makatotohanang layunin at gumana patungo sa pareho, sinusubukan na huwag magapi ng 'malaking larawan'.
  5. Ang isang Logic Analyzer ay mahalaga sa pagsisikap na ito. Oo, mayroon akong isang mas mababang mid-range na yunit ng DS-Logic +, ngunit masasabi kong mariin na ang isang murang $ 12.50 24MHz Bandwidth LA mula sa Amazonia ay may higit pa sa sapat. Ang pares na kasama ng Sigrok's PulseView (libre) (ang pag-decode ng protocol) at ang isa ay magkakaroon ng isang napaka-matatag na system na dapat gumana sa isang malawak na karamihan ng mga sitwasyon tulad ng kung ano ang pinagsikapan kong gawin sa proyektong ito. Siguraduhing makakuha ng isang yunit na may mga test clip, o mag-order ng magkahiwalay na mga clip ng pagsubok, dahil malaki ang pakinabang (kung paano kapaki-pakinabang ang Trumpfeldian).
  6. Ang isang simpleng pagsisiyasat sa lohika ay isang kapaki-pakinabang na tool din. Sa pangkalahatang-ideya ng larawan ng workspace mapapansin mo ang isang sinaunang Archer (Radio Shack) na pagsisiyasat sa lohika sa ibabang kanang sulok ng imahe. Ako ay tunay na nagulat upang makita kung gaano kapaki-pakinabang ang isang bagay tulad nito sa araw-araw, kahit na may isang mahusay na kagamitan na lab.

Maaaring naka-link ako sa mga ito nang mas maaga sa ito ngunit hindi ko matandaan at tinatamad akong tumingin. Narito ang isang post sa blog na mayroong isang video ng module ng TTS na aksyon (Itaca uChip na nagho-host nito sa oras na iyon), at ang post ng ARMbasic Forum kung saan maaaring i-download ng isang naka-port na ARMbasic source code.

Mag-ingat at magsaya sa pag-hack palayo!

-MHz

Inirerekumendang: