Innehållsförteckning:

EZProbe, en EZ430 -baserad logikprobe: 4 steg
EZProbe, en EZ430 -baserad logikprobe: 4 steg

Video: EZProbe, en EZ430 -baserad logikprobe: 4 steg

Video: EZProbe, en EZ430 -baserad logikprobe: 4 steg
Video: Logic Probe with High sensitivity 2024, Juli
Anonim
EZProbe, en EZ430 -baserad logikprobe
EZProbe, en EZ430 -baserad logikprobe

detta är ett enkelt logiskt sondprojekt baserat på TI EZ430 -dongeln. Jag utnyttjade ett kostnadsfritt erbjudande på ett par ez430 från TI i september 2010. de är väldigt praktiska och roliga när de testar små kodavsnitt och ser LED blinka. de hade sedan legat runt mitt skrivbord och jag måste hitta på något åt dem. och jag vill stoppa folk som kommer fram och be om att få låna mitt "minneskort". Tja, det här är inget minneskort, 16bit MCU med flerkanaliga ADC: er, tillräckligt med 2K programmeringsminne och kör upp till 16Mhz. allt packat upp med felsökningsgränssnittskortet i ett trevligt usb -enhetspaket. mitt huvudsakliga designmål är att begränsa mitt ingripande till den ursprungliga ez430. eftersom jag inte vill ändra det för mycket fysiskt och jag vill behålla programmerings- / felsökningsfunktionen för andra målkortsprojekt. allt detta medan de tjänar ytterligare användbara ändamål. Detta är ett Linux -projekt, som vanligt, jag hade uppmärksammat med min bästa kunskap att göra bestämmelser så att det kan byggas under fönster. men jag har inte tid och resurser att testa allt under windows. de flesta av mina elektronikprojekt görs på mycket små brödbrädor och jag arbetar vanligtvis på trånga utrymmen (köksbord, ett halvt lånat skrivbord, etc). det finns många fall som jag måste kontrollera kretslogiknivåer och jag har använt en multimeter (storlek på en tegel) för att kolla upp saker. det irriterar mig alltid eftersom mina projekt är mycket mindre än min multimeter och jag upptäckte att det alltid kommer i vägen. Jag behöver ett alternativ, en liten logisk sond kommer att göra. ez430 är perfekt för denna uppgift. Till att börja med är den redan formad som en sond, jag behöver bara lägga till en spik och några lysdioder. Som jag nämnde tidigare vill jag göra det här projektet enkelt och oförstörande. och jag använde det som redan finns. i stället för att bygga projektet på en PCB / pref-board, bygger jag detta på ett mål-msp430f2012-kort, med 14-stifts rubrik genom hål som mitt prototypområde. det är här de små lysdioderna går. Jag vill inte borra hål på plasthöljet, jag vill inte köra för många trådar eller lägga till ytterligare kontaktpunkter. allt jag behöver är en sond io -kontakt och en knappingång för funktionsval, plus gnd och vcc. usb -anslutningen ser perfekt ut för den här uppgiften. Jag kommer att driva sonden via usb (programmerarkretsen reglerar en potential på cirka 3 V för mig) och använda D+ och D-usb-anslutningarna för min sond och switch. eftersom ez430 är en slav- / klientenhet, kommer den vid initialisering inte att göra någonting förutom en pull-up på D+ (för att indikera att det är en "hi-speed" usb). Jag använder den flytande D- som min sond io och D+ som min taktila knappingång (jag behöver inte ens ställa in ett pull-up-motstånd för det, det är redan där) ytterligare information kan också hittas här.

Steg 1: Funktioner och applikation

Funktioner och applikation
Funktioner och applikation

funktioner * matning från krets via usb -kontakt * 3 driftlägen roterar mellan logisk läsning, pulsutgång, pwm -utgång * lång knapptryckning (ca 1,5 sek) roterar genom de tre driftlägena * p1.0 original grön lysdiod som lägesindikator, av - sond, på - utgång, blink - pwmlogisk sond * logisk sond röd - hej, grön - låg, ingen - flytande * logisk sond röd / grön blinkar på kontinuerlig puls läser> 100hz * 4 gula lysdioder visar detekterade frekvenser i 8 steg, blinkande gula ange hi-range (dvs. steg 5-8) * visar detekterade pulsfrekvenser för 100hz+, 500hz+, 1khz+, 5khz+, 10khz+, 50khz+, 100khz+, 500khz+ * för icke-kontinuerliga enkelpulsutbrott, de röda / gröna lysdioderna stannar och efterföljande pulsräkningar visas stegvis på lysdioderna, kommer att räkna upp till 8 pulser kontinuerlig pulsutgång, frekvensinställning * indikerad med p1.0 original grön lysdiod * 4 gula lysdioder visar utgående pulsfrekvenser i 9 steg, blinkande gula indikerar hi-range (dvs. steg 5-8) * pulsfrekvenser utgång för 100hz, 500hz, 1khz, 5khz, 10khz, 50khz, 100khz, 500khz, 1mhz * kort knapptryckning roterar de 9 olika frekvensinställningarna. kontinuerlig pulsutgång, pwm -inställning * indikerad med p1.0 original grön LED blinkar * samma som föregående driftläge, förutom att pwm-värden visas (och är inställda) istället för frekvens * 4 gula lysdioder visar pwm-procenttal i 9 steg, blinkande gula indikerar hi-range (dvs. steg 5-8) * pwm-procentsatser för 0%, 12,5%, 25%, 37,5%, 50%, 62,5%, 75%, 87,5%, 100% * kort knapptryckning roterar de 9 olika pwm-inställningarna. schematisk schemat är består av två delar, i vilka de är anslutna via ett par usb -kontakter. den vänstra schemat visar tillägg till EZ430 -dongeln med ett F2012 -målkort. den högra sidan schematisk är det logiska sondhuvudet och ska konstrueras från grunden.

Steg 2: Dellista och konstruktion

Dellista och konstruktion
Dellista och konstruktion
Dellista och konstruktion
Dellista och konstruktion

reservdelslista * ti ez430-f2013 (använd programmeringsdel) * ti ez430 f2012 måltavla * lysdioder 1,2 x 0,8 mm, 4 gula, 1 röda, 1 gröna * en spik, cirka 3/4 tum, platt huvud * en taktil knapp * lock från 1 gram superlim (superlim själv behövs också) * usb typ en kontakt (pc-sida) * trådkonstruktion jag använder msp430f2012 målkortet istället för f2013 målkort som kommer med ez430 dongeln bara för att jag har några av dessa. om du vill använda det ursprungliga målkortet f2013 måste du skriva om en mycket liten del av koden som använder adc för att identifiera flytande tillstånd. f2013 har en mer avancerad 16 -bitars adc istället för den 10 -bitars som jag använder i min konstruktion. du kommer att behöva använda en fin lödspets och en temperaturkontroll lödkolv (eller station), jag kan inte tänka mig att man kan löda lysdioderna med ett vanligt strykjärn. sättet jag gjorde det på är att tina huvudhuvudena först och sedan använda ett par fina diskanthögtalare för att placera SMD -lysdioderna. efter att ha justerat de röda och gula lysdioderna, tänder jag ett ben på ett 1/8 watt motstånd och lödmer det på kretskortet, ena änden går till en gemensam gnd. den gröna lysdioden går sist. det är väldigt tätt och du vill bara applicera tillräckligt med löd för att hålla ihop sakerna. fluss är också ett måste. använd en multimätare för att testa dina leder. du måste då överbrygga knapptråden och sondtråden. Jag använder cat5e cut -offs men alla högmåttstrådar klarar sig. som visas i schemat och bilden går de från målkortet till usb -kontakten. det skulle vara trevligt om jag kan hitta en liten kontakt så att de kan kopplas ur när som helst, men det kommer att göra för nu.

Steg 3: Sondhuvudkonstruktion

Sondhuvudkonstruktion
Sondhuvudkonstruktion

längst ner ser du bitarna som jag använde för att "konstruera" (superlimma) sondhuvudenheten. min idé är att bygga den på en usb -kontakt så att den kan lossas för firmware -uppdateringar. Jag använde superlim för att sätta ihop allt. "spiken" limmas direkt ovanpå en taktil knapp för mycket snabb lägesväxling och frekvens / pwm -inställning. du kanske vill göra annat om det inte fungerar för dig. det kommer att bli lite vingling från den taktila knappmekanismen, i en design använde jag gem med för att begränsa vinglingen och ett annat sondhuvud använde jag locket från superlimet för att säkra spikpositionen. du kanske också vill lägga till skyddsmotstånd / diod till den. usb-kontakten har dessa anslutningar, (1) 5v, (2) D-, (3) D+ och (4) Gnd, D- ska anslutas till spiken, D+ ansluter till den taktila knappen, den andra änden av den taktila knappen måste anslutas till marken. denna sond-på-kontakt-strategi ger mig mycket flexibilitet, med kraftledning på sondhuvudet kan du utöka kretsen och förvandla detta projekt till något annat genom att bara byta "huvud" och firmware, ex. kan vara en voltmätare, en tv-b-gone (m/ transistor och batteri på sondhuvudet), etc. Jag skulle sedan lägga till en vit led "strålkastare" till den.

Steg 4: Implementeringsanmärkningar och alternativa applikationer

Implementeringsanmärkningar och alternativa applikationer
Implementeringsanmärkningar och alternativa applikationer

genomförandeanmärkningar

* wdt (vakthundstimern) används för att tillhandahålla knapptiming (avstängning och tryck-n-håll), även för att pulsera belysningsledningar. detta behövs eftersom lysdioder inte har begränsningsmotstånd och inte kan slås på konstant. * DCO -klocka inställd på 12 MHz för att rymma 3V målkretsar. * adc används för att bestämma om vi söker efter en flytande nål, tröskelvärden kan justeras via källkod. * frekvensbestämning görs genom att ställa in timer_a för att fånga för kantdetektering och räkna pulsen inom en period. * utgångsläge använder timer_a kontinuerligt läge, utgångsläge 7 (inställning/återställning), både fånga och jämföra register (CCR0 och CCR1) för att uppnå pulsbreddsmodulering.

källkod

det här är bara instruktioner för linux, min miljö är ubuntu 10.04, andra distros ska fungera så länge du hade installerat msp403 verktygskedjan och mspdebug korrekt.

du kan skapa en katalog och placera följande filer i dem, klicka för att ladda ner ezprobe.c

Jag har ingen makefile för att detta ska kunna kompileras, jag använder ett bash -skript för att kompilera de flesta av mina projekt, det nämns på min startskärmssida, bläddra ner till avsnittet "arbetsytans kataloglayout" och få detaljer.

eller så kan du göra följande

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

För att flasha firmware, koppla din ez430 -dongel och gör

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

alternativa applikationsmöjligheter

baserat på den flexibla karaktären hos denna design, kan ezprobe enkelt ändra sin roll och genom en snabb blixtnedladdning blir en annan enhet, här är några idéer som jag tänker implementera i framtiden.

* servotester, den här klickade jag på för att ladda ner ezprobe_servo.c * batteritestare/ voltmätare, upp till 2,5v eller högre m/ motståndsdelare på alternativt sondhuvud * tv-b-gone, w/ ir led probe- huvud * pong-klocka, med 2 motstånd tv-ut sondhuvud

felsökning

* du behöver verkligen ett temperaturkontrolljärn / station och fina lödspetsar, lysdioderna (alla tillsammans) är mindre än ett ris. * använd fluss. * var beredd att koppla bort D- och D+ -kablarna under felsökning, de kan störa normal USB-drift. om du skriver firmware på den modifierade enheten, gör inte utmatning på dessa två stift när din firmware startar. och om du gör det kommer du inte längre att kunna ladda ner firmware (naturligtvis kan du avlödda dem om detta hände). Om du kan hitta små kontakter som passar in i usb -höljet, använd dem. * strömförsörjningen för målkortet dras från programmeringskortet via en regulator, som i sin tur tar 5v från usb. när jag använder ezprobe i krets har jag vanligtvis min målprojektförsörjning 3v från dubbla 1,5v AAA, detta är tillräckligt men projektet måste stanna på eller under 12mhz. 16mhz dco kräver full 5V källkraft. * Jag använde inte begränsningsmotstånd eller zenerdiod för att skydda sonden. du kanske vill göra det.

Rekommenderad: