Taula de continguts:

Feu clic de text a veu sobre un UChip amb tecnologia ARMbasic i altres SBC amb tecnologia ARMbasic: 3 passos
Feu clic de text a veu sobre un UChip amb tecnologia ARMbasic i altres SBC amb tecnologia ARMbasic: 3 passos

Vídeo: Feu clic de text a veu sobre un UChip amb tecnologia ARMbasic i altres SBC amb tecnologia ARMbasic: 3 passos

Vídeo: Feu clic de text a veu sobre un UChip amb tecnologia ARMbasic i altres SBC amb tecnologia ARMbasic: 3 passos
Vídeo: 8 инструментов в Excel, которыми каждый должен уметь пользоваться 2024, De novembre
Anonim
Feu clic a text a veu sobre un UChip amb tecnologia ARMbasic i altres SBC amb tecnologia ARMbasic
Feu clic a text a veu sobre un UChip amb tecnologia ARMbasic i altres SBC amb tecnologia ARMbasic
Feu clic a text a veu sobre un UChip amb tecnologia ARMbasic i altres SBC amb tecnologia ARMbasic
Feu clic a text a veu sobre un UChip amb tecnologia ARMbasic i altres SBC amb tecnologia ARMbasic
Feu clic a text a veu sobre un UChip amb tecnologia ARMbasic i altres SBC amb tecnologia ARMbasic
Feu clic a text a veu sobre un UChip amb tecnologia ARMbasic i altres SBC amb tecnologia ARMbasic

Introducció: Bon dia. Em dic Tod. Sóc un professional aeroespacial i de defensa, que també té una mica de friki.

Inspiració: procedent de l’era de BBS de marcatge directe, microcontroladors de 8 bits, ordinadors personals Kaypro / Commodore / Tandy / TI-994A, quan les botigues de Radio Shack eren abundants (els bons dies), un dels meus primers projectes encastats d’afició era: treballant amb un kit de formació de microprocessadors Motorola MEK6800D2, que havia comprat mentre treballava com a cooperativa als laboratoris de MSU EE (després de completar la meva formació de VoTech a High School Electronics al sud de MI). Aquell projecte va implicar el meu prototipatge de Radio Shack SP0256 NARRATOR ™ SPEECH PROCESSOR al MEK6800D2, connectant-lo i programant el 6800 perquè emetés pseudo-parla (els que han treballat amb el SP0256 basat en HW saben exactament a què estic al·ludint)). Va funcionar de meravella i vaig avançar pel camí de tallar-me les dents en microcontroladors i assemblatges incrustats. Després de l'escola secundària, la vida es va obstaculitzar, els militars, la guerra, els cònjuges, els fills, entrar al sector civil, començar una carrera, etc. aquí als EUA).

Saltar endavant durant 20 anys, arribant al moment inevitable en què els nens maduren fins al punt que la núvia i jo som distraccions, les factures de la hipoteca / vehicles / universitats s’estan pagant lentament, els guanys milloren amb els avenços i tinc prou recanvis arribat el moment en què podia començar a tornar a centrar-me en alguns esforços egoistes, vaig recuperar el concert de l'electrònica de passatemps. De totes maneres, tenint en compte el meu llinatge i la meva història, vaig buscar i trobar un entorn de desenvolupament amb el qual vaig relacionar ràpidament - ARMbasic - BASIC va ser el meu primer amor i això s’adaptava a la factura de no tornar a adaptar-me a la programació, sinó de treballar amb maquinari potent del que havia començat dècades abans, i així va començar el viatge.

Va ser cap al 2006-2009. Aleshores, per raons molt alienes al nostre control, la vida va canviar (com va passar per molts durant aquells anys). Aficions perdudes: centrar-se en una nova carrera professional, recuperant-se de les lluites financeres (estava fortament investit en el domini immobiliari i el vam agafar en pantalons curts i els joves acabaven d’arribar al punt que el finançament de la universitat era un imperatiu). Bàsicament, els problemes de la vida i del primer món (estem benaventurats, tenint en compte els desafiaments i les dificultats amb què lluiten diàriament la gent d’altres parts del món) es van manifestar i … l’afició va quedar arxivada. Vaig tornar a recollir-lo breument el 2011-2012, i després es va trobar amb un altre canvi de carrera: l’afició es va deixar de banda una vegada més.

Avança una dècada més i … hi torno i, Good Lord Willing, espero que duri tota la vida (fins que prengui aquella proverbial migdiada de terra i comenci a empènyer les margarides des de baix). Per tant, aquí som. Vaja: Arduino (quina és aquesta paraula estranya?) Havia assaltat el mercat. Creadors ?? Què diables són ?! …:) Els meus amics de Coridium Corp (propietaris de plaques de desenvolupament de microcontroladors basats en ARMbasic i ARM) s'havien mantingut ferms i veritables. Ara, en lloc de la sèrie de controladors LPC2xxx, hi ha aquesta nova (per a mi) entitat ARM, i Cortex M0 / M3 / M4, i Arduino, i … WOW! La cultura s’ha transformat bastant, i de moltes maneres. Els peeps col·laboren de forma remota i, de fet, a nivell mundial. El maquinari es torna increïblement ràpid i potent, i ARMbasic, que ha madurat i s’ha endurit amb força amb l’ocupació en moltes famílies diferents de silici, és una cosa molt bonica per a mi i per a moltes altres.

Per tant, fent una història molt llarga, recentment vaig ensopegar amb el clic TTS de MikroElectronika i vaig sentir que em brollava una nostàlgia. N’havia demanat una en uns minuts i estava ansiós durant els dies següents fins que la unitat va arribar a la mà. D’aquí comença la història …

Subministraments

  • 1 clic de text a veu MikroElectronika, conté l'Epson S1V30120, el TTS ASIC del mòdul
  • 1 i ARMbasic Target, que compleix el paper d'amfitrió de TTS
  • 1 un Uno Breakout Shield (o prototipar taulers de pa, o …)
  • Un altaveu o un conjunt d’altaveus suggereixen altaveus amb ordinador de sobretaula amb un connector TRS de 1/8"
  • 1 lot Prototipatge de mercaderies de filferro, soldadura, flux, metxa, soldador, capçaleres, endolls IC i similars.
  • 1 lot Eines de desenvolupament incrustades DMM, sonda lògica, analitzador de lògica, abast, etc. - per a noves MCU d'amfitrió TTS

Pas 1: interconnexions de maquinari

Interconnexions de maquinari
Interconnexions de maquinari
Interconnexions de maquinari
Interconnexions de maquinari
Interconnexions de maquinari
Interconnexions de maquinari

Per replicar-ho utilitzant un objectiu ARMbasic en un factor de forma Uno o amb un Itaca uChip, probablement seria millor fer servir un escut de prototipatge, tal com he fet a les imatges anteriors (enllaç senzill amazon)

Alguns veuran el cable enrotllat i es preguntaran per què: el rebuig de soroll en mode comú és la resposta senzilla. Sí, aquí no es tracta de senyals equilibrats, però vaig pensar que no podia fer mal (?), Així que ho vaig fer quan feia la compilació del tauler.

És un disseny força benigne. Les impressions s’adjunten a continuació, en forma de gràfic (l’AutoCAD 2D és el que estic més acostumat - després d’haver treballat durant dècades durant el meu treball diari) - Encara estic tallant-me les dents KiCAD i això era un esforç massa senzill justifiqueu la corba d’aprenentatge com a primer projecte a KiCAD). De totes maneres, he optat per muntar el sòcol uChip directament a l'escut per habilitar un cas d'ús autònom quan s'utilitza uChip com a amfitrió. He afegit un JST per alimentar-lo mitjançant la bateria, si ho desitjo i, com que tinc uns quants extres, he encastellat un Adafruit SWD Breakout perquè em permeti utilitzar el meu Segger J-Link EDU Debug Probe, si sorgeix la necessitat. No ho va fer, però hi mantinc el SWD i'face per utilitzar-lo en futurs projectes.

Castellat significa, en aquest context, arxivar les vores del PCB de manera que els forats travessats es redueixin a mitges cilindres, cosa que permet soldar amb un PCB portador, en aquest cas el tauler de ruptura del blindatge. Vaig escollir fer-ho, ja que les porcions de ventilació de paquet pla de l’escut no s’acabaven d’alinear amb l’espai entre files entre les dues files de capçalera del SWD BOB. S'ha tret un fitxer pla i s'ha resolt el problema durant 5 minuts.

Pas 2: programació i proves

Programació i proves
Programació i proves
Programació i proves
Programació i proves
Programació i proves
Programació i proves

Un cop s'hagi acumulat el maquinari, haurà d'haver-hi una trucada completa per validar que el cablejat és bo. Després, sempre faig una comprovació de poder i motius. Això no només garanteix que l’alimentació i el sòl estiguin on se suposa que hi ha, sinó que qualsevol de les altres terminacions que no hi haurien d’haver-hi. No és una tasca tediosa en un petit projecte com aquest, però amb sistemes de sistemes més grans, és absolutament necessari, tot i que és un pas tediós, per assegurar-se que cap subconjunt o sistemes connectats s’extreguin per un error ximple que podria i hauria d'haver estat capturat. Normalment tinc el mínim mínim de mercaderies connectades perquè es generi energia a la placa i després comprovo si hi ha alimentació i connexió a terra de tots els pins / terminacions abans de connectar subconjunts, xips, etc., assegurant-me que la potència sigui del nivell adequat. (tenint en compte els dispositius no tolerants a 5V / requisits d'E / S, 1v8 i 3v3, etc.) i aquest terreny és on ha d'estar i només on ha d'estar. He estat testimoni d'una cascada de fallades en un avió de persones que no han pogut fer les comprovacions prèvies de connexió adequades. En un cas, va suposar més de 100.000 dòlars de LRU: no era un moment divertit per encarregar-se d’un projecte i fer-lo anar de costat en un instant perquè algú va fer un curtcircuit del procés. Una altra cosa de la qual sóc culpable és fer tedioses "comprovacions de proximitat": assegurar-me que els contactes / terminacions no siguin curts a contactes / terminacions adjacents. Això esdevé fonamental si es tracta de conjunts coaxials, arnesos multiconductor / blindats, etc.

Un cop assegurada la seguretat, connecteu les coses, engegueu-la i, a continuació, passeu a programar l’amfitrió TTS (ARMbasic Target MCU) tal com ho faríeu amb molts objectius MCU incrustats. Vaig gravar un vídeo que mostra la programació i l’ús senzill del TTS Click. Podeu veure-la aquí.

El codi font ARMbasic es pot descarregar des d’aquí, una publicació del fòrum que conté detalls addicionals. Coridium va publicar una publicació al blog sobre aquests esforços, a la qual podeu accedir fent clic aquí.

Pas 3: modificació de la font per a altres objectius ARMbasic i diverses reflexions

Modificació de la font per a altres objectius ARMbasic i diverses reflexions
Modificació de la font per a altres objectius ARMbasic i diverses reflexions
Modificació de la font per a altres objectius ARMbasic i diverses reflexions
Modificació de la font per a altres objectius ARMbasic i diverses reflexions
Modificació de la font per a altres objectius ARMbasic i diverses reflexions
Modificació de la font per a altres objectius ARMbasic i diverses reflexions
Modificació de la font per a altres objectius ARMbasic i diverses reflexions
Modificació de la font per a altres objectius ARMbasic i diverses reflexions

No us col·laboraré amb els passos necessaris per modificar el codi font per treballar amb altres objectius ARMbasic, a part d’indicar que he continuat fent-ho en una gran quantitat de comentaris del codi font. Preneu-vos el temps per obrir el fitxer tts.bas i llegiu quins canvis calen si decidiu portar el codi a un altre controlador alimentat per ARMbasic.

A continuació s’adjunten algunes imatges que vaig fer durant el cicle de desenvolupament per aconseguir que això funcionés.

Lliçons apreses:

  1. Si teniu un analitzador de lògica amb entrades no utilitzades i teniu E / S objectiu addicionals que no s’utilitzen per al treball actual, no tingueu por d’utilitzar aquestes E / S com a eines de depuració; una gran ajuda per rastrejar allò que funciona i no funciona com s'esperava, per identificar problemes de sincronització (per exemple, les interrupcions que afecten les comunicacions serials de bit-banged) i per comprendre millor els vostres esforços en general.
  2. No tots els controladors ARM són iguals. Això és obvi. Tanmateix, vaig obtenir una mica fent el desenvolupament inicial en un LPC1765 Coridium SuperPRO. En retrospectiva, el que va fer que aquesta fos una mala elecció és que la implementació d’aquest nucli ARM permetia l’accés a la memòria sense alinear paraules. Quan es portava el codi C a ARMbasic, les coses van anar força bé fins que vaig intentar fer-lo servir amb un objectiu SAMD21: tot l'infern es va desencadenar i les coses es van deixar fora de creença a causa de l'accés sense alinear en omplir memòries intermèdies, manipular banderes, treballar amb la versió ARMbasic d’estructures / sindicats que se m’acudiren, etc. Va ser una lliçó dolorosa. El que es pot treure aquí: si es vol tenir un codi portàtil, cal obtenir l'objectiu candidat més restrictiu, només per assegurar-se que no es trobi davant d'un drama al final del projecte, quan és probable que estigui més emocionat d'emprar els fruits de els seus esforços..:)
  3. Portar el codi C a ARMbasic NO és impossible. Aquest esforç va ser en gran mesura una gegantina evolució de la formació. Si es pren el temps per comparar les fonts C originals amb el codi ARMbasic que he elaborat, hauria de ser capaç de sortir amb algunes idees sobre com implementar coses que poden no formar part del disseny bàsic d’ARMbasic (és a dir, Estructures).
  4. Abordar coses com aquesta en trossos manejables. Per defecte, sóc dels que m’agrada veure gratificacions periòdicament. Un esforç com aquest esforç de portabilitat i desenvolupament no és probable que pugui ser realitzat en una sola nit. Fixeu-vos objectius realistes i treballeu cap als mateixos, intentant no deixar-vos aclaparar pel "panorama general".
  5. Un analitzador de lògica va ser crucial en aquest esforç. Sí, tinc una unitat DS-Logic + de rang mitjà inferior, però puc afirmar amb rotunditat que un AM barat de 12,50 dòlars a 24 MHz d’amazònia n’hauria bastat prou. Acompanyeu-ho amb PulseView de Sigrok (gratuït) (fa la descodificació de protocols) i un tindrà un sistema molt robust que hauria de funcionar en una gran multitud d’escenaris com el que vaig intentar emprendre amb aquest projecte. Assegureu-vos d’obtenir una unitat que tingui clips de prova o demaneu clips de prova per separat, ja que són enormement beneficiosos (com són Trumpfeldians).
  6. Una simple sonda lògica també és una eina molt útil. A la imatge general de l’espai de treball, s’observarà una antiga sonda lògica Archer (Radio Shack) a l’extrem inferior dret de la imatge. Em va sorprendre realment el fet d’utilitzar una cosa així diàriament, fins i tot amb un laboratori ben equipat.

És possible que m’hi hagi relacionat anteriorment, però no me’n recordo i sóc massa mandrós per semblar-ho. Aquí teniu una publicació del bloc que conté un vídeo del mòdul TTS en acció (Itaca uChip que l’allotja en aquell moment) i la publicació del Fòrum ARMbasic on es pot descarregar el codi font ARMbasic portat.

Tingueu cura i divertiu-vos fent pirateries.

-MHz

Recomanat: