INHOUDSOPGAWE:

Teks na spraak Klik op 'n ARMbasic Powered UChip en ander ARMbasic Powered SBC's: 3 stappe
Teks na spraak Klik op 'n ARMbasic Powered UChip en ander ARMbasic Powered SBC's: 3 stappe

Video: Teks na spraak Klik op 'n ARMbasic Powered UChip en ander ARMbasic Powered SBC's: 3 stappe

Video: Teks na spraak Klik op 'n ARMbasic Powered UChip en ander ARMbasic Powered SBC's: 3 stappe
Video: Полный курс Redux Toolkit + RTK Query для начинающих | Редакс за 2 часа! 2024, November
Anonim
Teks na spraak Klik op 'n ARMbasic Powered UChip en ander ARMbasic Powered SBC's
Teks na spraak Klik op 'n ARMbasic Powered UChip en ander ARMbasic Powered SBC's
Teks na spraak Klik op 'n ARMbasic Powered UChip en ander ARMbasic Powered SBC's
Teks na spraak Klik op 'n ARMbasic Powered UChip en ander ARMbasic Powered SBC's
Teks na spraak Klik op 'n ARMbasic Powered UChip en ander ARMbasic Powered SBC's
Teks na spraak Klik op 'n ARMbasic Powered UChip en ander ARMbasic Powered SBC's

Inleiding: Goeie dag. My naam is Tod. Ek is 'n lugvaart- en verdedigingsprofessionalis, wat ook 'n bietjie gees van hart is.

Inspirasie: afkomstig uit die era van inbel-BBS, 8-bis mikro-beheerders, persoonlike persoonlike rekenaars van Kaypro/Commodore/Tandy/TI-994A, toe Radio Shack-winkels volop was (die goeie ou dae), was een van my eerste stokperdjie-ingeboude projekte, werk met 'n MEK6800D2 Motorola Microprocessor Training Kit, wat ek gekoop het terwyl ek as koöperasie by die MSU EE-laboratoriums gewerk het (na voltooiing van my High School Electronics VoTech-opleiding in Southern Lower MI). Dit was die prototipering van die Radio Shack SP0256 NARRATOR ™ SPREEKVERWERKER op die MEK6800D2, dit bedraad en die 6800 geprogrammeer om dit te laat uitstraal (diegene wat met die SP0256-gebaseerde HW gewerk het, weet presies waarop ek verwys.). Dit het wonderlik gewerk en ek het op my pad gevorder om my tande te sny in ingeboude mikrobeheerders en byeenkomste. Na die hoërskool het die lewe my in die pad gesteek: Militêr, Oorlog, Eggenote, Kinders, om die burgerlike sektor te betree, 'n loopbaan te begin, ens. hier in die VSA).

Spring 20 jaar vorentoe, kom na die onvermydelike tyd waarin die kinders volwasse word tot die punt dat ek en die bruid afleidings word, die verband-/voertuie-/universiteitsrekeninge word stadig afbetaal, die wins word beter met die vordering en ek het genoeg spaargeld tyd tot op die punt waar ek kon begin herfokus op 'n paar selfsugtige pogings, het ek teruggekeer na die stokperdjie -elektronika -optrede. In elk geval, gegewe my afstamming en geskiedenis, het ek gesoek na 'n ontwikkelingsomgewing waarmee ek vinnig gebind was - ARMbasic - BASIC was my eerste liefde, en dit pas by die rekening om myself nie net weer te programmeer nie, maar om te werk met hardeware wat baie meer was kragtiger as waarmee ek dekades vroeër begin het, en so het die reis begin.

Dit was ongeveer 2006-2009. Dan, om redes wat buite ons beheer is, het die lewe verander (soos dit gedurende baie jare vir baie was). Stokperdjies uit die weg geruim - fokus op 'n nuwe loopbaan, herstel van finansiële stryd (was sterk gevestig in die eiendomsdomein en ons het dit in die kortbroek aangeneem, en die jongmense was net op die punt waar kollege -befondsing noodsaaklik was). Eintlik manifesteer lewens- en eerste-wêreldprobleme (ons is regtig geseënd, in ag genome die uitdagings en swoeg waarmee mense daagliks in ander dele van die wêreld worstel) en … die stokperdjie is uit die weg geruim. Ek het in 2011-2012 kortliks daaroor teruggekom, en ek het weer 'n loopbaanverandering gekry-stokperdjie is weer opgehou.

Spoel nog 'n dekade vorentoe en … ek is terug en, Here Here gewillig, hopelik vir die duur (totdat ek die spreekwoordelike vuilslapie vat en madeliefies van onder af begin opstoot). So, hier is ons. Wow - Arduino (wat is die vreemde woord?) Het die mark bestorm. Makers ?? Wat de hel is hulle ?! …:) My vriende by Coridium Corp (eienaars van ARMbasic en ARM-gebaseerde mikrobeheerder-ontwikkelingsborde) het standvastig en waar gebly. Nou, in plaas van die LPC2xxx -reeks beheerders, is daar hierdie nuwe (vir my) entiteit van ARM, en Cortex M0/M3/M4, en Arduino, en … WOW! Die kultuur het nogal verander en op baie goeie maniere. Peeps werk op afstand en inderdaad wêreldwyd saam. Die hardeware word ongelooflik vinnig en kragtig, en ARMbasic, wat in baie verskillende silikonfamilies volwasse en standvastig geword het met werk, is vir my en vir baie ander baie mooi.

Dus, toe ek 'n kortverhaal baie lank gemaak het, het ek onlangs op die TTS -kliek van MikroElectronika afgekom en voel hoe 'n nostalgie -spoel oor my vloei. Het een in 'n paar minute bestel, en was die volgende dae angstig totdat die eenheid met die hand opgedaag het. Daarom begin die verhaal …

Voorrade

  • 1 e MikroElectronika Text to Speech Click bevat die Epson S1V30120 - die module se TTS ASIC
  • 1 ea ARMbasic Target, wat die rol van TTS Host vervul
  • 1 ea Uno Breakout Shield (of prototipe broodbord, of …)
  • 1 luidspreker, of 'n stel luidsprekers, stel voor luidsprekers met 'n rekenaar, met 'n 1/8 "TRS -aansluiting daarop
  • 1 lot Prototipe ware, draad, soldeer, vloed, lont, soldeerbout, koppe, IC -voetstukke en dies meer.
  • 1 lot Embedded Dev Tools DMM, Logic Probe, Logic Analyzer, Scope, ens. - vir nuwe TTS Host MCU's

Stap 1: Hardeware -verbindings

Hardeware -verbindings
Hardeware -verbindings
Hardeware -verbindings
Hardeware -verbindings
Hardeware -verbindings
Hardeware -verbindings

Om dit te herhaal met 'n ARMbasic -doelwit in 'n Uno -vormfaktor, of met 'n Itaca uChip, is dit waarskynlik die beste om 'n prototipiese skild te gebruik, soos ek in die foto's hierbo gedoen het (gewone Amazon -skakel)

Sommiges sal die saamgedraaide draaddraad sien en wonder hoekom-gewone ruisverwerping in die gewone modus is die eenvoudige antwoord. Ja, ons het nie hier te doen met gebalanseerde seine nie, maar ek het gedink dit kan nie seermaak nie (?), So ek het dit gedoen toe ek die bord opbou.

Dit is 'n redelik goedaardige ontwerp. Die afdrukke is hierby aangeheg, in die vorm van 'n grafiese (AutoCAD 2D is waaraan ek die meeste gewoond is - nadat ek dekades lank daaraan gewerk het - ek sny nog steeds my KiCAD -tande en dit was 'n te eenvoudige poging om regverdig die leerkurwe as 'n eerste projek in KiCAD). Ek het in elk geval gekies om die uChip-aansluiting direk op die skild te monteer om 'n selfstandige gebruikskas moontlik te maak wanneer u uChip as gasheer gebruik word. Ek het 'n JST bygevoeg om dit via 'n battery aan te dryf, as ek sou wou, en omdat ek 'n paar ekstra's het, het ek 'n Adafruit SWD Breakout gekastel om my in staat te stel om my Segger J-Link EDU Debug Probe te gebruik, indien nodig. Dit was nie so nie, maar ek hou die SWD -iface hierop vir gebruik met toekomstige projekte.

Castellated beteken in hierdie konteks om die rande van die PCB af te lê, sodat die deurlopende gate tot halfsilinders verminder word, wat dit moontlik maak om op 'n draende PCB te soldeer - in hierdie geval die skildbreukbord. Ek het gekies om dit te doen, aangesien die gedeeltes van die plakkers van die skild nie heeltemal ooreenstem met die ryafstand tussen die twee koprye op die SWD BOB nie. Het 'n plat lêer uitgebreek en 5 minute se indiening en die probleem is opgelos.

Stap 2: Programmering en toetsing

Programmeer en toets
Programmeer en toets
Programmeer en toets
Programmeer en toets
Programmeer en toets
Programmeer en toets

Sodra die hardeware opgebou is, moet u 'n volledige herroeping doen om te bevestig dat die bedrading goed is. Dan doen ek altyd 'n Power and Grounds -kontrole. Dit verseker nie net dat krag en grond is waar hulle veronderstel is om te wees nie, maar dat enige van die ander beëindigings wat daar nie krag/grond behoort te hê nie. Dit is nie 'n vervelige taak vir 'n klein projek soos hierdie nie, maar met groter stelsels van stelsels is dit, hoewel dit inderdaad 'n vervelige stap is, absoluut noodsaaklik om te verseker dat geen sub-samestellings of gekoppelde stelsels deur 'n dwase fout verwyder word nie. kon en moes gevang gewees het. Ek kry gewoonlik die minimum goedere aan, sodat daar krag op die bord gegenereer word, en kyk dan elke pen/aansluiting na krag en grond voordat ek sub-samestellings, skyfies, ens. (met inagneming van nie-5V-verdraagsame toestelle/IO, 1v8 en 3v3 vereistes, ens.) en die grond is waar dit moet wees en slegs waar dit moet wees. Ek het 'n kaskade van mislukkings op 'n vliegtuig gesien van mense wat nie die nodige voorafaansluitingsondersoeke gedoen het nie. In een geval het dit meer as $ 100K aan LRU's gekos - dit was nie 'n lekker tyd om in beheer van 'n projek te wees nie en dit in 'n oogwink te laat gaan omdat iemand die proses kortgekom het. 'N Ander ding waaraan ek my skuldig maak, is om vervelige' omgewingskontroles 'te doen - om seker te maak dat kontakte/beëindigings nie aan aangrensende kontakte/beëindigings ontbreek nie. Dit word van kritieke belang as u te doen het met koaksiale samestellings, meervoudige geleidings/harnas, ens. Ok, ek is uit die seepkas …

Sodra veiligheid verseker is, koppel dinge aan, skakel dit aan en begin dan met die programmering van die TTS -gasheer (ARMbasic Target MCU), net soos met baie ingebedde MCU -teikens. Ek het 'n video opgeneem wat die programmering en eenvoudige gebruik van die TTS Click uitbeeld. U kan dit hier sien.

Die ARMbasiese bronkode kan hier afgelaai word - 'n forumpos met bykomende besonderhede. Coridium het 'n blogpos geplaas oor hierdie pogings, wat u kan bereik deur hier te klik.

Stap 3: Die wysiging van die bron vir ander ARMbasiese doelwitte en verskillende bespiegelinge

Die wysiging van die bron vir ander ARM -basiese doelwitte en verskillende bespiegelinge
Die wysiging van die bron vir ander ARM -basiese doelwitte en verskillende bespiegelinge
Die wysiging van die bron vir ander ARM -basiese doelwitte en verskillende bespiegelinge
Die wysiging van die bron vir ander ARM -basiese doelwitte en verskillende bespiegelinge
Die wysiging van die bron vir ander ARM -basiese doelwitte en verskillende bespiegelinge
Die wysiging van die bron vir ander ARM -basiese doelwitte en verskillende bespiegelinge
Die wysiging van die bron vir ander ARM -basiese doelwitte en verskillende bespiegelinge
Die wysiging van die bron vir ander ARM -basiese doelwitte en verskillende bespiegelinge

Ek sal u nie die nodige stappe gee om die bronkode te verander om met ander ARMbasic -doelwitte te werk nie, behalwe om aan te dui dat ek daaroor gedroom het in 'n oorvloed bronkode -opmerkings daarin. Neem die tyd om die tts.bas-lêer oop te maak en lees watter veranderinge nodig is as u kies om die kode na 'n ander ARMbasic-aangedrewe kontroleerder te stuur.

Hierby is 'n paar beelde wat ek geneem het tydens die ontwikkelingsiklus om dit aan die gang te kry.

Lesse geleer:

  1. As u 'n Logic Analyzer het met ongebruikte insette en ekstra doel -IO's het wat nie vir u werk gebruik word nie, moenie bang wees om die IO's as ontfoutingsinstrumente te gebruik nie - dit kan 'n draai van 'n IO op verskillende punte in die kode besprinkel 'n groot hulp om op te spoor wat wel en nie werk soos verwag nie, om onnodige tydsberekeningskwessies te identifiseer (dws onderbrekings wat reekskommunikasies met 'n bietjie knou beïnvloed) en om 'n beter begrip te kry van u pogings as 'n geheel.
  2. Nie alle ARM -beheerders is dieselfde nie. Dit is duidelik. Ek het egter 'n bietjie ondervind deur die aanvanklike ontwikkeling op 'n LPC1765 Coridium SuperPRO te doen. Agterna gesien, wat dit 'n slegte keuse gemaak het, is dat die implementering van hierdie ARM-kern nie-woordgebonde toegang tot geheue moontlik gemaak het. Toe ek die C -kode na ARMbasic oorgedra het, het dinge redelik vlot verloop totdat ek dit met 'n SAMD21 -teiken probeer gebruik het - die hel het losgebars en dinge het onwaarskynlik gebars as gevolg van onbelynde toegang by buffers vul, vlae manipuleer, werk met die ARMbasic -weergawe van strukture/vakbonde waarmee ek vorendag gekom het, ens. Dit was 'n pynlike les. Die wegneem hier: as u 'n draagbare kode wil hê, moet u die mees beperkende kandidaat -teiken hê, net om te verseker dat u nie aan die begin van die projek te kampe het nie, as u waarskynlik die meeste van die vrugte daarvan gebruik hul pogings..:)
  3. Dit is NIE onmoontlik om C -kode na ARMbasic oor te dra nie. Hierdie poging was grotendeels 'n reuse -evolusie van portopleiding. As u die tyd neem om die oorspronklike C -bronne te vergelyk met die ARMbasic -kode wat ek opgestel het, moet u 'n paar idees kan kry om dinge te implementeer wat moontlik nie deel uitmaak van ARMbasic se kernontwerp nie (dws Strukture).
  4. Pak sulke dinge in hanteerbare stukke aan. By verstek hou ek daarvan om gereeld tevredenheid te sien. 'N Poging soos hierdie port- en dev -pogings is waarskynlik nie iets wat u in 'n enkele nag kan bereik nie. Stel realistiese doelwitte en werk daarna, en probeer om nie oorweldig te word deur 'die groot prentjie' nie.
  5. 'N Logiese ontleder was van kardinale belang in hierdie poging. Ja, ek het 'n laer middelklas DS-Logic+ -eenheid, maar ek kan nadruklik verklaar dat 'n goedkoop $ 12,50 24MHz bandwydte LA van Amazonia meer as voldoende sou wees. Koppel dit met Sigrok se PulseView (gratis) (doen protokol -dekodering) en u sal 'n baie robuuste stelsel hê wat in 'n groot aantal scenario's moet werk, soos wat ek met hierdie projek probeer onderneem het. Maak seker dat u 'n eenheid met toetsknipsels kry, of afsonderlik toetsknipsels bestel, aangesien dit baie voordelig is (hoe Trumpfeldian).
  6. 'N Eenvoudige logiese ondersoek is ook 'n baie nuttige hulpmiddel. Op die oorsigfoto van die werkruimte sien u 'n ou logiese sonde van Archer (Radio Shack) in die regter onderste hoek van die prent. Ek was regtig verbaas toe ek daagliks ontdek hoe nuttig dit is, selfs met 'n goed toegeruste laboratorium.

Ek het moontlik vroeër hierin gekoppel, maar ek kan nie onthou nie en is te lui om te kyk. Hier is 'n blogpos met 'n video van die TTS -module in aksie (Itaca uChip bied dit op daardie tydstip aan) en die ARMbasic Forum -pos waar u die geporteerde ARMbasic -bronkode kan aflaai.

Pasop en geniet dit om weg te kap!

-MHz

Aanbeveel: