Мазмұны:

Мәтінді сөйлеуге арналған ARMbasic Powered UChip және басқа ARMbasic қосылған SBC -лерді нұқыңыз: 3 қадам
Мәтінді сөйлеуге арналған ARMbasic Powered UChip және басқа ARMbasic қосылған SBC -лерді нұқыңыз: 3 қадам

Бейне: Мәтінді сөйлеуге арналған ARMbasic Powered UChip және басқа ARMbasic қосылған SBC -лерді нұқыңыз: 3 қадам

Бейне: Мәтінді сөйлеуге арналған ARMbasic Powered UChip және басқа ARMbasic қосылған SBC -лерді нұқыңыз: 3 қадам
Бейне: Сөйлеу мәдениеті.Сөйлеу әдебі 2024, Шілде
Anonim
Мәтінді сөйлеуге арналған ARMbasic Powered UChip және басқа ARMbasic Powered SBCs түймесін басыңыз
Мәтінді сөйлеуге арналған ARMbasic Powered UChip және басқа ARMbasic Powered SBCs түймесін басыңыз
Мәтінді сөйлеуге арналған ARMbasic Powered UChip және басқа ARMbasic Powered SBCs түймесін басыңыз
Мәтінді сөйлеуге арналған ARMbasic Powered UChip және басқа ARMbasic Powered SBCs түймесін басыңыз
Мәтінді сөйлеуге арналған ARMbasic Powered UChip және басқа ARMbasic Powered SBCs түймесін басыңыз
Мәтінді сөйлеуге арналған ARMbasic Powered UChip және басқа ARMbasic Powered SBCs түймесін басыңыз

Кіріспе: Қайырлы күн. Менің атым Тод. Мен аэроғарыштық және қорғаныс саласындағы кәсіби маманмын, ол сонымен қатар жүрекке жақын.

Шабыт: BBS, 8-разрядты микроконтроллерлер, Kaypro/Commodore/Tandy/TI-994A дербес компьютерлерінің дәуірінен бастап, Radio Shack дүкендері көп болған кезде (жақсы күндер), менің хоббиіме енгізілген алғашқы жобалардың бірі. Мен MSU EE зертханаларында кооператив ретінде жұмыс істеген кезде сатып алған MEK6800D2 Motorola микропроцессорлық оқу жиынтығымен жұмыс істедім (Оңтүстік төменгі МИ-де High School Electronics VoTech тренингін аяқтағаннан кейін). Бұл жобаға MEK6800D2-ге Radio Shack SP0256 NARRATOR ™ СӨЙЛЕУ ПРОЦЕССОРЫН прототиптеу, оны қосу және 6800-ді жалған сөйлеуді шығару үшін бағдарламалау қажет болды (SP0256 негізіндегі HW-мен жұмыс істегендер менің нені меңзеп отырғанымды біледі)). Бұл керемет жұмыс істеді, мен ендірілген микроконтроллерлер мен Ассамблеяда тістерімді кесу жолымен өттім. Орта мектепті бітіргеннен кейін өмірге кедергі болды: әскери, соғыс, жұбайлар, балалар, азаматтық секторға кіру, мансап бастау және т. мұнда АҚШ -та).

20 жылға алға жылжытыңыз, балалар ересек уақытта келін екеуміз алаңдайтын уақытқа жетіп, ипотека/автокөлік/колледж шоттары ақырындап төленеді, табыстың өсуі жақсарады, менде жеткілікті бос орын бар Мен өзімшілдік әрекеттерге қайта назар аудара алатын уақыт келді, мен әуесқойлық электроника концертіне қайта қосылдым. Қалай болғанда да, менің шығу тегім мен тарихымды ескере отырып, мен тез байланыста болатын ортаны іздедім және таптым - ARMbasic - BASIC - бұл менің алғашқы махаббатым, және бұл менің бағдарламалауға қайта бейімделуіме ғана емес, сонымен қатар аппараттық құралдармен жұмыс жасауға да мүмкіндік береді. Мен ондаған жылдар бұрын бастағаннан гөрі күшті, сондықтан саяхат басталды.

Бұл шамамен 2006-2009 жылдар болды. Содан кейін, бізге байланысты емес себептерге байланысты, өмір өзгерді (сол жылдардағы көптеген адамдар сияқты). Хобби аяқталмады - қаржылық қиындықтардан кейін жаңа мансапқа шоғырлану (жылжымайтын мүлікке көп көңіл бөлінді, біз оны шортпен қабылдадық, ал жас жігіттер колледжді қаржыландыру қажет болатын деңгейге жетті). Негізінде, Өмір мен Бірінші дүние мәселелері (біз әлемнің басқа бөліктеріндегі адамдар күнделікті күресетін қиындықтар мен қиыншылықтарды ескере отырып, шынымен де қуаныштымыз) өздерін танытты және… хобби жойылды. Мен бұл туралы 2011-2012 жылдары қысқаша білдім, содан кейін мансаптағы басқа өзгеріспен кездестім-хобби қайтадан жойылды.

Тағы онжылдыққа алға жылжыңыз және мен қайтып келдім, Құдайдың қалауымен, мен ұзақ уақыт бойы үміттенемін (мен мақал -мәтелді алып, төменнен ромашканы көтере бастағанша). Сонымен, біз осындамыз. Уау - Ардуино (бұл не деген оғаш сөз?) Базарды басып кетті. Жасаушылар ?? Олар не сұмдық ?! …:) Менің Coridium Corp компаниясындағы достарым (ARMbasic және ARM негізіндегі микроконтроллерлер тақталарының иелері) берік және шынайы болды. Енді контроллерлердің LPC2xxx сериясының орнына ARM, Cortex M0/M3/M4, Arduino және… WOW! Мәдениет біршама өзгерді, және көптеген жағынан. Peeps қашықтан және шын мәнінде жаһандық деңгейде ынтымақтасады. Жабдық таңғажайып тез және қуатты болып келеді, және ARMbasic, кремнийдің әр түрлі отбасыларында жұмысқа орналасу арқылы жетілген және берік шыңдалған, мен үшін және басқалар үшін керемет нәрсе.

Қысқа әңгіме жасау үшін мен жақында MikroElectronika -ның TTS басуын кездестірдім және ностальгияның ағып кеткенін сездім. Біреу бірнеше минут ішінде тапсырыс берсе, келесі күндері қондырғы қолына тигенше мазасызданады. Әңгіме содан басталады …

Жабдықтар

  • 1 ea MikroElectronika мәтінді сөйлеуге басу, құрамында Epson S1V30120 бар - TTS ASIC модулі.
  • 1 ea ARMbasic Target, TTS Host рөлін орындайды
  • 1 ea Uno Breakout Shield (немесе нан тақтасының прототипі немесе …)
  • 1 дана динамик немесе динамиктер жиынтығы 1/8 дюймдік TRS штепсельді компьютермен жұмыс істейтін компьютерге арналған динамиктерді ұсынады
  • 1 лот прототиптік бұйымдар сымы, дәнекер, флюс, фит, дәнекерлеуіш, тақырыптар, IC розеткалары және т.
  • 1 лот енгізілген Dev Tools DMM, Logic Probe, Logic Analyzer, Scope және т.б. - жаңа TTS Host MCU үшін

1 -қадам: аппараттық құралдардың өзара байланысы

Аппараттық құралдардың өзара байланысы
Аппараттық құралдардың өзара байланысы
Аппараттық құралдардың өзара байланысы
Аппараттық құралдардың өзара байланысы
Аппараттық құралдардың өзара байланысы
Аппараттық құралдардың өзара байланысы

Мұны Uno форма факторындағы ARMbasic нысанын немесе Itaca uChip көмегімен қайталау үшін, жоғарыдағы суреттерде жасағанымдай, прототиптеу қалқанын қолдану жақсы қызмет көрсетуі мүмкін (қарапайым амазонка сілтемесі)

Кейбіреулер бұралған сымды көреді және оның себебін біледі-қарапайым режимдегі шуды қабылдамау-қарапайым жауап. Ия, біз мұнда теңдестірілген сигналдармен айналыспаймыз, бірақ мен бұл зиян келтіре алмайтынын түсіндім (?), Сондықтан мен тақтаны құрастыру кезінде осылай жасадым.

Бұл өте жақсы дизайн. Басып шығарулар мұнда графикалық түрде бекітілген (AutoCAD 2D - мен бұрыннан үйреніп жүргенмін - он күн бойы менің жұмысымда онымен жұмыс істегенмін) мен әлі күнге дейін KiCAD тістерімді кесіп жатырмын және бұл өте қарапайым әрекет болды. KiCAD бағдарламасындағы бірінші жоба ретінде оқу қисығын негіздеңіз). Қалай болғанда да, мен uChip ұяшығын хост ретінде пайдалану кезінде оқшауланған жағдайды қосу үшін uChip ұяшығын тікелей қалқанға орнатуды таңдадым. Егер мен қаласам, оны аккумулятор арқылы қуаттандыру үшін JST қостым, және егер менде қосымша мүмкіндіктер болса, мен қажет болған жағдайда Segger J-Link EDU Debug Probe бағдарламасын пайдалануға мүмкіндік беру үшін Adafruit SWD Breakout кастелляциясын жасадым. Олай болмады, бірақ мен болашақ жобаларда пайдалану үшін SWD i -бетін сақтаймын.

Кастеллендірілген - бұл контейнерде ПХД жиектерін тесу арқылы жартылай цилиндрге дейін қысқарту үшін, бұл тасымалдаушы ПХД -ге дәнекерлеуге мүмкіндік береді - бұл жағдайда қалқаның үзілу тақтасы. Мен мұны таңдадым, өйткені қалқаның жалпақ желдеткіш бөліктері SWD BOB-тегі екі жолдың арасындағы жолдардың интервалына сәйкес келмеді. Тегіс файлды бұзып, 5 минуттық тапсырма мен мәселе шешілді.

2 -қадам: Бағдарламалау және тестілеу

Бағдарламалау және тестілеу
Бағдарламалау және тестілеу
Бағдарламалау және тестілеу
Бағдарламалау және тестілеу
Бағдарламалау және тестілеу
Бағдарламалау және тестілеу

Жабдық орнатылғаннан кейін, сымның жақсы екенін тексеру үшін толық қоңырау шалу қажет болады. Содан кейін мен әрқашан қуат пен жерді тексеремін. Бұл Power және Ground -дің қажет жерде болуын қамтамасыз етіп қана қоймайды, сонымен қатар басқа жерге күші/жері болмауы керек. Мұндай кішігірім жобада бұл қиын жұмыс емес, бірақ жүйенің үлкен жүйелерінде бұл өте қиын қадам бола отырып, ішкі жинақтардың немесе жалғанған жүйелердің ақымақ қателікпен жойылмауын қамтамасыз ету үшін өте қажет. ұстауға болар еді және керек еді. Мен әдетте тауарлардың ең аз мөлшерін аламын, осылайша тақтада қуат пайда болады, содан кейін қосалқы тораптарды, чиптерді және т.с.с. қосылмас бұрын әр түйреуішті/жерді тексеріп, қуаттың тиісті деңгейде екеніне көз жеткізіңіз. (5В төзімді емес құрылғыларды/IO, 1v8 және 3v3 талаптарын және т.б. ескере отырып) және бұл жер қажет жерде және тек қажет жерде. Мен алдын ала тексеруді дұрыс жүргізе алмаған адамдардың ұшақтағы сәтсіздіктер каскадына куә болдым. Бір жағдайда, 100 мың доллардан асатын LRU қажет болды - бұл жобаны басқаруға және оны бір сәтте жағына қарай жылжытуға уақыт емес, себебі біреу процесті қысқа тұйықтады. Мен кінәлі тағы бір нәрсе - жақын маңдағы тексерулерді жасау - контактілер/үзілістер көрші контактілерге/үзілістерге қысқартылмағанына көз жеткізу. Егер коаксиалды қондырғылармен, көп өткізгіштермен/экрандармен және басқалармен айналысатын болсақ, бұл өте маңызды болады.

Қауіпсіздік қамтамасыз етілгеннен кейін, заттарды қосыңыз, қосыңыз, содан кейін TTS хостын (ARMbasic Target MCU) көптеген ендірілген MCU мақсаттары сияқты бағдарламалауға көшіңіз. Мен TTS Click бағдарламалау мен қарапайым қолдануды бейнелейтін бейне жаздым. Сіз оны мына жерден көре аласыз.

ARMbasic бастапқы кодын осы жерден жүктеуге болады - форумда қосымша мәліметтер бар. Коридиум осы әрекеттер туралы блог жазбасын жасады, оған мына жерді басу арқылы қол жеткізуге болады.

3 -қадам: Басқа ARMbasic мақсаттары мен әр түрлі ойлар үшін дереккөзді өзгерту

Басқа ARMbasic нысандары мен әр түрлі ойлар үшін дереккөзді өзгерту
Басқа ARMbasic нысандары мен әр түрлі ойлар үшін дереккөзді өзгерту
Басқа ARMbasic мақсаттары мен әр түрлі ойлар үшін дереккөзді өзгерту
Басқа ARMbasic мақсаттары мен әр түрлі ойлар үшін дереккөзді өзгерту
Басқа ARMbasic нысандары мен әр түрлі ойлар үшін дереккөзді өзгерту
Басқа ARMbasic нысандары мен әр түрлі ойлар үшін дереккөзді өзгерту
Басқа ARMbasic нысандары мен әр түрлі ойлар үшін дереккөзді өзгерту
Басқа ARMbasic нысандары мен әр түрлі ойлар үшін дереккөзді өзгерту

Мен бастапқы кодты басқа ARMbasic нысандарымен жұмыс істеу үшін өзгертуге қажетті қадамдар туралы айтпаймын, тек осында бастапқы код туралы түсініктемелердің көптігі туралы айттым. Tts.bas файлын ашуға уақыт бөліңіз және кодты басқа ARMbasic басқаратын контроллерге тасымалдауды таңдасаңыз, қандай өзгерістер қажет екенін оқыңыз.

Мұнда жұмысқа кірісудің девальдық циклі кезінде түсірілген кейбір суреттер қоса берілген.

Сабақтар:

  1. Егер сізде логикалық анализатор пайдаланылмайтын кірістері бар болса және қосымша мақсатты интерфейстер қолыңызда жұмыс үшін қолданылмаса, онда бұл интерфейстерді отладтау құралы ретінде пайдаланудан қорықпаңыз - кодтың әр түрлі нүктелерінде интеллектуалды интерфейсті шашырату мүмкін. күткендегідей жұмыс істемейтінін және жұмыс істемейтінін қадағалауға, уақыттың дұрыс еместігін анықтауға (яғни, сериялық байланысқа әсер ететін үзілістер) және сіздің күш-жігеріңізді тұтастай түсінуге үлкен көмек.
  2. Барлық ARM контроллері бірдей емес. Бұл анық. Дегенмен, мен LPC1765 Coridium SuperPRO -дағы бастапқы әзірлемені орындау арқылы біраз нәрсеге қол жеткіздім. Қарап отырсақ, бұл нашар таңдауды тудырды, бұл ARM ядросының іске асырылуы жадқа сөзбен сәйкес келмеуге мүмкіндік берді. C кодын ARMbasic -ке жібергенде, мен оны SAMD21 нысанымен қолдануға тырысқанға дейін бәрі өте жақсы өтті - барлық тозақ бұзылды және заттар буферлерді толтыру, жалаушаларды басқару, ARMbasic нұсқасымен жұмыс істеу кезінде теңдестірілген қол жетімділіктің арқасында сенімсіз болды. Мен ойлап тапқан құрылымдар/одақтар және т. Бұл жерде алып тастау: Егер біреу портативті кодқа ие болғысы келсе, үміткердің ең шектеулі мақсатына жетуді қалайды, тек жобаның соңғы кезеңінде драмамен бетпе -бет келмеуін қамтамасыз ету үшін, егер оның жемісін пайдаланғысы келсе, олардың күш -жігері..:)
  3. C кодын ARMbasic -ке тасымалдау мүмкін емес. Бұл күш -жігер жаттығулардың үлкен эволюциясы болды. Егер бастапқы C көздерін мен жасаған ARMbasic кодымен салыстыруға уақыт қажет болса, ARMbasic -тің негізгі дизайнына кірмейтін нәрселерді (мысалы, құрылымдар) қалай іске асыру керектігі туралы кейбір ойлармен келуге болады.
  4. Мұндай нәрселерді басқарылатын бөліктермен шешіңіз. Әдепкі бойынша, мен үнемі қанағаттануды көргенді ұнатамын. Мұндай тасымалдау мен әзірлеу әрекеттері бір түнде орындалатын нәрсе емес. Нақты мақсаттар қойыңыз және «үлкен суретке» бой алдырмауға тырысыңыз.
  5. Бұл жұмыста логикалық анализатор маңызды болды. Иә, менде DS-Logic+ орташа деңгейлі қондырғысы бар, бірақ мен айта аламын, Амазониядан 12.50 $ 24MHz өткізу қабілетті арзан LA жеткілікті болады. Sigrok's PulseView (ақысыз) (протоколды декодтау) бар жұп, және менде бұл жобамен айналысуға тырысқан сияқты көптеген сценарийлерде жұмыс істейтін өте сенімді жүйе болады. Сынақ клиптері бар қондырғыны алуды немесе тестілік клиптерге бөлек тапсырыс беруді ұмытпаңыз, себебі олар өте пайдалы (Трампфелдиан).
  6. Қарапайым логикалық зонд - өте пайдалы құрал. Жұмыс кеңістігінің шолу суретінде сіз суреттің төменгі оң жақ бұрышында көне Archer (Radio Shack) логикалық зондын байқайсыз. Күнделікті, тіпті жақсы жабдықталған зертхана болса да, мұндай пайдалы нәрсенің бар екеніне шынымен таң қалдым.

Мен бұған ертеректе сілтеме жасаған шығармын, бірақ мен есімде жоқ және қарауға жалқаумын. Бұл блогта TTS модулінің әрекеті бейнеленген блогы бар (Itaca uChip сол кезде оны орналастырады) және ARMbasic форумының портативті ARMbasic бастапқы кодын жүктеуге болатын посты.

Сақ болыңыз және хакерлік ойыннан рахат алыңыз!

-МГц

Ұсынылған: