{"id":70,"date":"2015-01-24T21:18:29","date_gmt":"2015-01-24T21:18:29","guid":{"rendered":"http:\/\/techblog.auchmonoabspielbar.de\/?p=70"},"modified":"2015-03-14T19:52:35","modified_gmt":"2015-03-14T19:52:35","slug":"frequenzzaehler-periodenmesser-mit-einem-pic32-teil-1","status":"publish","type":"post","link":"http:\/\/techblog.auchmonoabspielbar.de\/?p=70","title":{"rendered":"Frequenzz\u00e4hler\/ Periodenmesser mit einem PIC32 &#8211; Teil 1"},"content":{"rendered":"<p>Im Internet hatte ich vor ein paar Wochen ein Verfahren gefunden, wie man einen Frequenzz\u00e4hler mit guter Genauigkeit und Messaufl\u00f6sung aufbauen kann. Das Original wurde mit einem AVR Prozessor aufgebaut. Da ich ein PIC32 Projekt durchf\u00fchren wollte, habe ich diesen Prozessor gew\u00e4hlt, auch wenn ein einfacheres Modell gereicht h\u00e4tte.<\/p>\n<p><a title=\"Originalprojekt\" href=\"http:\/\/www.mikrocontroller.net\/articles\/Frequenzz%C3%A4hlermodul#Messverfahren\">Hier findet man das Originalprojekt, welches sehr gut beschrieben ist und mir wirklich gut gefallen hat.<\/a><\/p>\n<p><a href=\"http:\/\/techblog.auchmonoabspielbar.de\/wp-content\/uploads\/2015\/01\/Siebensegmentanzeige.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright wp-image-71 size-full\" src=\"http:\/\/techblog.auchmonoabspielbar.de\/wp-content\/uploads\/2015\/01\/Siebensegmentanzeige.png\" alt=\"Siebensegmentanzeige\" width=\"720\" height=\"477\" srcset=\"http:\/\/techblog.auchmonoabspielbar.de\/wp-content\/uploads\/2015\/01\/Siebensegmentanzeige.png 720w, http:\/\/techblog.auchmonoabspielbar.de\/wp-content\/uploads\/2015\/01\/Siebensegmentanzeige-300x199.png 300w, http:\/\/techblog.auchmonoabspielbar.de\/wp-content\/uploads\/2015\/01\/Siebensegmentanzeige-624x413.png 624w\" sizes=\"auto, (max-width: 720px) 100vw, 720px\" \/><\/a><\/p>\n<p>Bei ebay konnte ich f\u00fcr wenige Euro 9-stellige blaue Siebensegment Displays erwerben. Da mein PIC32 Modell nicht gerade \u00fcppig mit Pins best\u00fcckt ist, habe ich einen normalen Siebensegment Decoder 7447 verwendet. Das hat auch den angenehmen Vorteil, dass ich gleich eine Open Collector Ansteuerung f\u00fcr die LEDs habe. Den Dezimalpunkt kann ich im Augenblick noch nicht ansteuern, daf\u00fcr werde ich noch ein Port-Pin spendieren m\u00fcssen.<\/p>\n<p>Zum Multiplexen der einzelnen Stellen habe ich einen 1 aus 16 Decoder 74154 verwendet. Ich hatte auch \u00fcberlegt, einen 1 aus 8 Decoder (74138) zu verwenden und die neunte Stelle dann direkt anzusteuern. Das h\u00e4tte die Schaltung aber umfangreicher gemacht und bringt kaum eine Einsparung. Dann sind eben 7 Schaltzust\u00e4nde ungenutzt. Das kann ich sp\u00e4ter dazu verwenden um zus\u00e4tzliche LEDs zur Statusanzeige anzusteuern.<\/p>\n<p>Da ich die Segmente mit mindestens 30 mA ansteuern m\u00f6chte (laut Datenblatt sind 30 mA erlaubt, deshalb wird das Display es auch \u00fcberleben, wenn der Multiplexer mal stehen bleibt), kann ich die Stellenumschaltung nicht direkt vom IC aus ansteuern. Es m\u00fcssen bei der Anzeige der Ziffer 8 ca. 240 Milliampere geliefert werden. Also erfolgt die Ansteuerung \u00fcber einen PNP Darlington Transistor der mit dem Emitter an Plus liegt. Der Decoder zieht den ausgew\u00e4hlten Kanal freundlicherweise auf 0 &#8211; genau passend zur Ansteuerung des Transistors, nat\u00fcrlich mit einem Vorwiderstand. Vermutlich h\u00e4tte hier statt eines Darlingtons auch ein normaler PNP Transistor gereicht.<\/p>\n<p>Die TTL ICs betreibe ich mit den vorgeschriebenen 5 Volt, den PIC mit 3,3 Volt. Der High Level des PIC hat aber auch bei nur 3,3 Volt einen ausreichend hohen Pegel um von den TTL ICs als High erkannt zu werden.<\/p>\n<p>F\u00fcr den Prototypen auf dem Steckbrett habe ich nur 3 Stellen verkabelt. Der n\u00e4chste Schritt besteht darin, das Ganze dann vollst\u00e4ndig auf einer Platine aufzubauen. Sobald die Anzeige dann steht, geht es an den Z\u00e4hlerteil.<\/p>\n<p><a href=\"http:\/\/techblog.auchmonoabspielbar.de\/wp-content\/uploads\/2015\/01\/Z\u00e4hler-1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-72\" src=\"http:\/\/techblog.auchmonoabspielbar.de\/wp-content\/uploads\/2015\/01\/Z\u00e4hler-1.jpg\" alt=\"Z\u00e4hler 1\" width=\"1000\" height=\"617\" srcset=\"http:\/\/techblog.auchmonoabspielbar.de\/wp-content\/uploads\/2015\/01\/Z\u00e4hler-1.jpg 1000w, http:\/\/techblog.auchmonoabspielbar.de\/wp-content\/uploads\/2015\/01\/Z\u00e4hler-1-300x185.jpg 300w, http:\/\/techblog.auchmonoabspielbar.de\/wp-content\/uploads\/2015\/01\/Z\u00e4hler-1-624x385.jpg 624w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/a><\/p>\n<p>Etwas zum N\u00f6rgeln habe ich zum Schluss aber noch: die Port-Pin Verteilung bei den 28 Pin PIC32 ist \u00fcbel. Vom Port A stehen prinzipiell die ersten 5 Bit zur Verf\u00fcgung &#8211; die Einschr\u00e4nkung deshalb, weil ich nur PA0 und PA1 tats\u00e4chlich zu einer Ausgabe \u00fcberreden konnte. PA2 und PA3 geh\u00f6ren scheinbar dem Programmieradapter. Die Verwendbarkeit von PA4 habe ich nicht \u00fcberpr\u00fcft.<\/p>\n<p>Beim Port B ist es auch nicht toll. Er ist auf den ersten Blick vollst\u00e4ndig &#8211; aber nein: die Bits 6 und 12 fehlen ganz. Zwei weitere Bits sind durch den Oszillator belegt und ich habe noch nicht herausgefunden, wie man sie als Ausgang verwenden kann. Da ist es schon m\u00fchsam, vier zusammenh\u00e4ngende Bits als Bus zu finden. Das h\u00e4tte man vielleicht auch sinnvoller aufteilen k\u00f6nnen.<\/p>\n<p><strong><a href=\"http:\/\/techblog.auchmonoabspielbar.de\/?p=77\">Weiter zum Teil 2<\/a><\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Im Internet hatte ich vor ein paar Wochen ein Verfahren gefunden, wie man einen Frequenzz\u00e4hler mit guter Genauigkeit und Messaufl\u00f6sung aufbauen kann. Das Original wurde mit einem AVR Prozessor aufgebaut. Da ich ein PIC32 Projekt durchf\u00fchren wollte, habe ich diesen Prozessor gew\u00e4hlt, auch wenn ein einfacheres Modell gereicht h\u00e4tte. Hier findet man das Originalprojekt, welches [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,3],"tags":[],"class_list":["post-70","post","type-post","status-publish","format-standard","hentry","category-embedded","category-hardware"],"_links":{"self":[{"href":"http:\/\/techblog.auchmonoabspielbar.de\/index.php?rest_route=\/wp\/v2\/posts\/70","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/techblog.auchmonoabspielbar.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/techblog.auchmonoabspielbar.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/techblog.auchmonoabspielbar.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/techblog.auchmonoabspielbar.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=70"}],"version-history":[{"count":4,"href":"http:\/\/techblog.auchmonoabspielbar.de\/index.php?rest_route=\/wp\/v2\/posts\/70\/revisions"}],"predecessor-version":[{"id":121,"href":"http:\/\/techblog.auchmonoabspielbar.de\/index.php?rest_route=\/wp\/v2\/posts\/70\/revisions\/121"}],"wp:attachment":[{"href":"http:\/\/techblog.auchmonoabspielbar.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=70"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/techblog.auchmonoabspielbar.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=70"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/techblog.auchmonoabspielbar.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=70"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}