Inhoudsopgave:

EZProbe, een op EZ430 gebaseerde logische sonde: 4 stappen
EZProbe, een op EZ430 gebaseerde logische sonde: 4 stappen

Video: EZProbe, een op EZ430 gebaseerde logische sonde: 4 stappen

Video: EZProbe, een op EZ430 gebaseerde logische sonde: 4 stappen
Video: TI EZ430 EZProbe 2024, November
Anonim
EZProbe, een op EZ430 gebaseerde logische sonde
EZProbe, een op EZ430 gebaseerde logische sonde

dit is een eenvoudig logisch sondeproject op basis van de TI EZ430-dongle. ik heb in september 2010 gebruik gemaakt van een gratis aanbieding op een paar ez430's van TI. ze zijn erg handig en leuk om kleine codefragmenten uit te proberen en de led te zien knipperen. ze lagen sindsdien op mijn bureau en ik moet iets voor ze verzinnen. en ik wil voorkomen dat mensen komen vragen om mijn "geheugenstick" te lenen. Nou, dit is geen geheugenstick, 16bit MCU met meerkanaals ADC's, voldoende 2K-programmeergeheugen en loopt tot 16Mhz. allemaal verpakt met het debugging-programmeerinterfacebord in een mooi USB-apparaatpakket. mijn belangrijkste ontwerpdoel is om mijn interventie te beperken tot de originele ez430. in die zin dat ik het fysiek niet te veel wil veranderen en ik wil zijn programmeer- / debuggingfunctie behouden voor andere doelbordprojecten. dit alles terwijl ze extra nuttige doeleinden dienen. dit is een linux-project, zoals gewoonlijk had ik er met mijn beste kennis aandacht aan besteed om voorzieningen te treffen zodat het onder vensters kan worden gebouwd. ik heb echter niet de tijd en middelen om alles onder windows uit te proberen. de meeste van mijn elektronicaprojecten worden gedaan op zeer kleine breadboards en ik werk meestal in krappe ruimtes (keukentafel, een half geleend bureau, enz.). er zijn veel gevallen waarin ik de logische niveaus van het circuit moet controleren en ik heb een multimeter (grootte van een steen) gebruikt om dingen te controleren. het irriteert me altijd omdat mijn projecten veel kleiner zijn dan mijn multimeter en ik merkte dat het me altijd in de weg stond. ik heb een alternatief nodig, een kleine logische sonde is voldoende. de ez430 is perfect voor deze taak. om te beginnen heeft het al de vorm van een sonde, ik moet alleen een spijker en wat leds toevoegen. zoals ik eerder al zei, ik wil dit project eenvoudig en niet-destructief maken. en ik heb gebruik gemaakt van wat er al is. in plaats van het project op een pcb / pref-board te bouwen, bouw ik dit op een doel-msp430f2012-bord, waarbij ik de 14-pins header-thru holes als mijn prototyping-gebied gebruik. dit is waar de kleine leds naartoe gaan. ik wil geen gaten boren in de plastic behuizing, ik wil niet te veel draad gebruiken of extra contactpunten toevoegen. alles wat ik nodig heb is een sonde io-contact en een knopinvoer voor functieselectie, plus gnd en vcc. de usb-aansluiting ziet er perfect uit voor deze taak. ik zal de sonde via de usb van stroom voorzien (het programmeercircuit regelt een potentiaal van ongeveer 3v voor mij) en gebruik de D+- en D-usb-aansluitingen voor mijn sonde en schakelaar. aangezien de ez430 een slave / client-apparaat is, zal het bij initialisatie niets anders doen dan een pull-up op D+ (om aan te geven dat het een "hi-speed" usb is). ik gebruik de zwevende D- als mijn probe io en D+ als mijn tactiele knopingang (daarvoor hoef ik niet eens een pull-up-weerstand in te stellen, die is er al) aanvullende informatie is ook hier te vinden.

Stap 1: Functies en toepassing

Functies en toepassing
Functies en toepassing

kenmerken * voeding van circuit via usb-connector * 3 bedrijfsmodi roterend tussen logica lezen, pulsuitvoer, pwm-uitvoer * lang indrukken van de knop (ongeveer 1,5 sec) draait door de 3 bedrijfsmodi * p1.0 originele groene led als modusindicator, uit - sonde, aan - uitgang, knipperen - pwmlogic sonde * logische sonde rood - hi, groen - laag, geen - zwevend * logische sonde rood / groen knippert op continue puls leest > 100hz * 4 gele leds tonen gedetecteerde frequenties in 8 stappen, geel knipperend geeft hi-range aan (dwz stap 5-8) * toont gedetecteerde pulsfrequenties voor 100hz+, 500hz+, 1khz+, 5khz+, 10khz+, 50khz+, 100khz+, 500khz+ * voor niet-continue enkelvoudige pulsuitbarstingen, de rode / groene leds blijven branden en vervolgens pulstellingen worden stapsgewijs weergegeven op de leds, tellen tot 8 pulsen continue pulsuitgang, frequentie-instelling * aangegeven door p1.0 originele groene led aan * 4 gele leds geven uitgangspulsfrequenties weer in 9 stappen, knipperende gele leds geven hi-range aan (dwz stap 5-8) * pulsfrequenties output voor 100hz, 500hz, 1khz, 5khz, 10khz, 50khz, 100khz, 500khz, 1mhz * korte druk op de knop roteert de 9 verschillende frequentie-instellingen. continue pulsuitgang, pwm-instelling * aangegeven door p1.0 originele groene led knippert * hetzelfde als vorige bedrijfsmodus, behalve dat pwm-waarden worden weergegeven (en worden ingesteld) in plaats van frequentie * 4 gele leds geven output pwm-percentages weer in 9 stappen, knipperende gele lampjes geven hi-range aan (dwz stap 5-8) * pwm percentages voor 0%, 12,5%, 25%, 37,5%, 50%, 62,5%, 75%, 87,5%, 100% * korte druk op de knop roteert de 9 verschillende pwm instellingen. schematisch het schema is bestaat uit twee delen, waarin ze zijn verbonden via een paar usb-connectoren. het linkerschema toont toevoegingen aan de EZ430-dongle met een F2012-doelbord. het schema aan de rechterkant is de logische sondekop en moet helemaal opnieuw worden opgebouwd.

Stap 2: Onderdelenlijst en constructie

Onderdelenlijst en constructie
Onderdelenlijst en constructie
Onderdelenlijst en constructie
Onderdelenlijst en constructie

onderdelenlijst * ti ez430-f2013 (gebruik programmeeronderdeel) * ti ez430 f2012 doelbord * leds 1,2 x 0,8 mm, 4 geel, 1 rood, 1 groen * één spijker, ongeveer 3/4 inch, platte kop * één voelbare knop * dop van 1 gram superlijm (superlijm zelf ook nodig) * usb type a connector (pc-kant) * draadconstructie ik gebruik het msp430f2012-doelbord in plaats van het f2013-doelbord dat wordt geleverd met de ez430-dongle alleen omdat ik een paar hiervan. als je het originele f2013-doelbord wilt gebruiken, moet je een heel klein deel van de code herschrijven die adc gebruikt om de zwevende toestand te detecteren. de f2013 heeft een meer geavanceerde 16 bit adc in plaats van de 10 bit die ik in mijn constructie gebruik. je moet een fijne soldeerpunt en een soldeerbout (of station) voor temperatuurregeling gebruiken, ik kan me niet voorstellen dat je de leds met een gewoon strijkijzer kunt solderen. de manier waarop ik het deed, is om eerst de headerpads te vertinnen en vervolgens een paar fijne tweeters te gebruiken om de smd-leds te plaatsen. na het uitlijnen van de rode en gele leds, vertin ik een poot van een 1/8 watt-weerstand en soldeer die op de pcb, het ene uiteinde gaat naar een gemeenschappelijke massa. de groene led gaat als laatste. het is erg strak en je zou net genoeg soldeer willen aanbrengen om dingen aan elkaar te plakken. ook flux is een must. gebruik een multimeter om uw gewrichten te testen. u moet dan de knopdraad en de sondedraad overbruggen. ik gebruik cat5e-afsnijdingen, maar alle draden met een hoge dikte zijn voldoende. zoals weergegeven in het schema en de afbeelding, lopen ze van het doelbord naar de usb-connector. het zou leuk zijn als ik een kleine connector kan vinden zodat ze naar believen kunnen worden losgekoppeld, maar dit is voorlopig voldoende.

Stap 3: Sondekopconstructie

Sondekop constructie
Sondekop constructie

onderaan zie je de stukjes die ik heb gebruikt om de sondekop te "construeren" (superlijm). mijn idee is om het op een usb-connector te bouwen, zodat het kan worden losgemaakt voor firmware-updates. ik heb superlijm gebruikt om alles in elkaar te zetten. de "nagel" is direct op een tactiele knop gelijmd voor zeer snelle modusomschakeling en frequentie / pwm-instelling. misschien wilt u het anders doen als het niet voor u werkt. er zal wat wiebelen zijn van het tactiele knopmechanisme, in één ontwerp gebruikte ik een paperclip om het wiebelen te beperken en een andere sondekop gebruikte ik de dop van de superlijm om de nagelpositie vast te zetten. misschien wilt u er ook een beschermingsweerstand / diode aan toevoegen. de usb-connector heeft deze aansluitingen, (1) 5v, (2) D-, (3) D+, en (4) Gnd, de D- moet worden aangesloten op de nagel, de D+ wordt aangesloten op de tactiele knop, de andere einde van de tactiele knop moet worden aangesloten op de grond. deze probe-on-connector-strategie geeft me veel flexibiliteit, met een stroomkabel op de sondekop, kun je het circuit uitbreiden en dit project in iets anders veranderen door gewoon de "kop" en firmware te veranderen, bijv. kan een voltmeter zijn, een tv-b-gone (met transistor en batterij op de sondekop), enz. Ik zou er vervolgens een witte led "koplamp" aan toevoegen.

Stap 4: Implementatie-opmerkingen en alternatieve toepassingen

Implementatie-opmerkingen en alternatieve toepassingen
Implementatie-opmerkingen en alternatieve toepassingen

implementatie opmerkingen

* wdt (watchdog-timer) wordt gebruikt om de knoptiming te bieden (de-bounce en press-n-hold), ook om verlichtingsleds te pulseren. dit is nodig omdat leds geen beperkende weerstanden hebben en niet constant kunnen worden ingeschakeld. * dco-klok ingesteld op 12 mhz voor 3v-doelcircuits. * adc wordt gebruikt om te beslissen of we naar een zwevende pin gaan, drempelwaarden kunnen via de broncode worden aangepast. * frequentiebepaling wordt gedaan door timer_a in te stellen om vast te leggen voor randdetectie en de puls binnen een periode te tellen. * uitgangsmodus gebruikt timer_a continue modus, uitvoermodus 7 (set/reset), zowel registratie- als vergelijkingsregisters (CCR0 en CCR1) om pulsbreedtemodulatie te bereiken.

broncode

dit zijn alleen instructies voor linux, mijn omgeving is ubuntu 10.04, andere distributies zouden moeten werken zolang je de msp403-toolchain en mspdebug correct hebt geïnstalleerd.

je kunt een map maken en de volgende bestanden erin plaatsenklik om ezprobe.c te downloaden

ik heb geen makefile om dit te compileren, ik gebruik een bash-script om de meeste van mijn projecten te compileren, het wordt vermeld op mijn launchpad-schildpagina, scrol omlaag naar de sectie "werkruimtemapindeling" en krijg de details.

of je kunt het volgende doen:

msp430-gcc -Os -mmcu=msp430x2012 -o ezprobe.elf ezprobe.c msp430-objdump -DS ezprobe.elf > ezprobe.lst msp430-objdump -h ezprobe.elf msp430-formaat ezprobe.elf

om de firmware te flashen, sluit u uw ez430-dongle aan en doet u

mspdebug -d /dev/ttyUSB0 uif "prog ezprobe.elf"

alternatieve toepassingsmogelijkheden

gebaseerd op de flexibele aard van dit ontwerp, kan de ezprobe gemakkelijk van rol veranderen en door een snelle flash-download wordt het een ander apparaat. Hier zijn enkele ideeën die ik in de toekomst wil implementeren.

* servotester, deze heb ik gedaan om ezprobe_servo.c te downloaden * batterijtester / voltmeter, tot 2.5v of hoger met weerstandsdeler op alternatieve sondekop * tv-b-gone, met ir led-sonde- head * pong-clock, w/2 weerstand tv-out probe-head

probleemoplossen

* je hebt echt een temperatuurregelijzer/station nodig en fijne soldeerpunten, de leds (allemaal bij elkaar) zijn kleiner dan een rijstkorrel. * gebruik flux. * wees voorbereid op het loskoppelen van de D- en D+ draden tijdens het debuggen, deze kunnen interfereren met de normale USB-werking. als u firmware op het gewijzigde apparaat schrijft, voer dan geen uitvoer uit op deze twee pinnen wanneer uw firmware start. en als je dat doet, kun je geen firmware meer downloaden (je kunt ze natuurlijk weer lossolderen als dit gebeurt). als je kleine connectoren kunt vinden die in de usb-behuizing passen, gebruik ze dan. * voeding voor het doelbord wordt via een regelaar van het programmeerbord gehaald, die op zijn beurt 5v van usb haalt. bij gebruik van de ezprobe in circuit, heb ik meestal mijn doelprojectlevering 3v van dubbele 1.5v AAA's, dit is voldoende, maar het project moet op of onder 12mhz blijven. 16 mhz dco vereist volledige 5v-bronvoeding. * ik heb geen beperkende weerstand of zenerdiode gebruikt om de sonde te beschermen. misschien wilt u dat doen.

Aanbevolen: