guten Tag, ich habe mir einen Frequenzzähler zusammen gebaut. nach einer Fertigen Anleitung inkl. Software etc. der Start nach dem zusammenbau lediglich ein Blaues Display und einen oberen Streifen mit vierecken. sonnst tut sich nix... SMS Bauteile sind Sauber verlötet. woran könnte man da suchen? die CPU gibt kein CLock signal zum Controller des Dispays es scheint sich aufgehängt zu haben.
Hatte vor einigen Monaten ebenfalls Probleme mit PIC+Uhrenquarz. Sind die 2 St. 47pF am Quarz passend? (Datenblatt?) Ich habe für einen Uhrenquarz 2 x 15pF verwendet! Und um Übersteuern des Uhrenquarzes zu vermeiden hab ich einen 50k R am ansteuernden Pin eingefügt.
Beitrag #6769904 wurde von einem Moderator gelöscht.
habe mir die platinen Fertigen lassen und auch den Controller. da ich keinen Brenner dafür hatte. es ist als Wartet er auf was ..?
Hans Werner A. schrieb: > habe mir die platinen Fertigen lassen und auch den Controller. > da ich keinen Brenner dafür hatte. > es ist als Wartet er auf was ..? Ja, das Display wartet darauf initialisiert zu werden. Zeig doch mal die Platine. Und einen Brenner für die ollen PICs gibts für ganz kleines Geld.
Hans B. schrieb: > Sind die 2 St. 47pF am Quarz passend? (Datenblatt?) Ungewöhnlich viel, muss aber laufen, wenn richtig konfiguriert. > Ich habe für einen Uhrenquarz 2 x 15pF verwendet! Wäre üblicher. > Und um Übersteuern des Uhrenquarzes zu vermeiden hab ich einen 50k R am > ansteuernden Pin eingefügt. Hat der PIC eingebaut, abschaltbar.
Das bringt nur mit einem In-Circuit-Debugger Spaß. Solltest dir einen chinesischen Pickit Clone zulegen, in Einzelschritten durch des Programm steppen und mit dem Multimeter nachmessen, ob am Display die richtigen Signale ankommen.
47pF sind für einen Uhrenquarz am PIC schon ungewöhnlich hoch, meist sind das eher 27(-33)pF für einen Quarz mit 12,5pF Lastkapazität. Aber ich vermute eher, dass die Initialisierung des Displays nicht stimmt, die Wartezeiten für die einzelnen Schritte sind vermutlich zu kurz.
Uhrenquarz am Frequenzmesser habe ich noch nie gesehen. Da kriegt man ja nur geringe Auflösung und sonderlich stabil sind die auch nicht. Typisch nimmt man 10MHz Quarze.
Viele Anfänger setzen den Quarz unmittelbar auf die PCB, nutzen also keine Beilage, und das sorgt für einen Kurzschluß über beide Quarzpins.
Ja, mit dem Uhrenquarz sollte dieser Fehler nichts zu tun haben. Vielleicht ist der Pic mit den Default-Flags gebrannt und der interne RC-Oszillator wird nicht benutzt. Oder das Display wird wirklich erst initialisiert nachdem die Uhren IRC aufgerufen wurde. Oder die Leitungen zum Display sind spiegelbildlich vertauscht. Oder... oder... oder... Selbst bei so einer einfachen Schaltung gibt unzählige Fehler.
Hans Werner A. schrieb: > der Start nach dem zusammenbau lediglich ein Blaues Display und einen > oberen Streifen mit vierecken. Die Vierecke weisen darauf hin daß der Kontrast für das Display falsch eingestellt ist. Das wäre R8. Oder daß der µC das Display nicht initialisiert (hat). > die CPU gibt kein CLock signal zum Controller des Dispays > es scheint sich aufgehängt zu haben. Wenn nichts Neues anzuzeigen ist, muß sie das auch nicht. Mir erscheinen die 32kHz Taktfrequenz sehr niedrig. Und 47pF Bürde sehr viel. Aber um das Problem zu debuggen, haben wir viel zu wenig Informationen. Du schreibst ja noch nicht mal, wo das Original zu finden ist.
Axel S. schrieb: > Die Vierecke weisen darauf hin daß der Kontrast für das Display falsch > eingestellt ist. Nein. Genau so ist der Kontrast gut eingestellt, aber das Display ist nicht initialisiert! Gruss Chregu
> wo das Original zu finden ist. https://www.electronics-lab.com/project/100mhz-frequency-counter-with-pic16f628a-2/ Auch mit dem Original haben wir viel zu wenig Informationen.
Das scheint ein Nachbau aus http://diyfan.blogspot.com/2015/09/ zu sein, mit dem ich mich auch neulich beschäftigt hatte. Anders als bei AVR basierten Zählern läuft der µC selbst mit dem internen 4MHz Taktoszillator. während Timer1, der die Torzeit bestimmt per Uhrenquarz getaktet ist. Die Timer Prescaler werden hier im Mess-Signalpfad zur automatischen Umschaltung der Messbereiche genutzt. Beigefügte Fotos zeigen meine Platine, eine Messung von 125MHz ohne externen Prescaler(!) und die verwendeten Config-Bits. Zum Problem des TO vermute ich eine falsche Kontrasteinstellung des LC Displays.
https://www.electronics-lab.com/project/100mhz-frequency-counter-with-pic16f628a-2/ im prinzip hast du recht Thomas N ,aber das ganze drumrum fehlt bei dir.
Hm? ich glaube ich habe den Fehler gefunden.. Ich habe aus dem Schaltplan den einschalter als Schalter gelesen und einen einschalter verbaut. Ich habe mir mal die Funktions Beschreibung übersetzen lassen (hätte ich Früher tun sollen!) da steht was von einer Soft-ON/OFF-Schaltung ich denke mal ein einfacher Taster...schaltet das dingen ein und es bleibt dann an? wenn ich einen Meschanischen Schalter nehme geht der Controller in eine Warte Pos?.... ist das so Richtig? ich müsste also nur meinen Schalter gegen einen Taster Tauschen und das Platinchen Läuft?
einfach einen mit 2 anschlüssen? im Schaltplan ist beim Taster noch ein Anschluss zur Masse eingezeichnet... ich würde das ganze gerne mit einem Frequenz. Generator in ein Gehäuse bauen da wollte ich die Bedienung gerne nach drausen verlegen.
Hans Werner A. schrieb: > einfach einen mit 2 anschlüssen? Ja. > im Schaltplan ist beim Taster noch ein Anschluss zur Masse > eingezeichnet... Da ist wohl einer mit metallischem Gehäuse vorgesehen. Das spielt aber keine Rolle.
Falls es noch nicht erwaehnt wurde: #define _XTAL_FREQ 4000000 Es wird also ein externer 4MHz-Quarz verwendet.....
Und wer die D0-D3 Leitungen eines HD44780 Displays im 4-Bit Modus mit GND verbindet, ist doof.
Toxic schrieb: > Falls es noch nicht erwaehnt wurde: > #define _XTAL_FREQ 4000000 > > Es wird also ein externer 4MHz-Quarz verwendet..... Nein, es wird der interne Oszillator mit 4MHz verwendet! Der PIC16F628 hat noch einen weiteren Oszillator für T1, und an dem hängt der 32kHz Quarz. Aber die Config-Bits kommen mir merkwürdig vor...
Matthias S. schrieb: > Und wer die D0-D3 Leitungen eines HD44780 Displays im 4-Bit Modus mit > GND verbindet, ist doof. Nur warum? In einer Applikationsschrift von Fairchild aus den 70ern war (sinngemäß) zu lesen: "It's poor designer's praxis to leave unused inputs open." Es war nie ein Fehler, sich an diese Regel zu halten.
ein Doofer schrieb: > Matthias S. schrieb: >> Und wer die D0-D3 Leitungen eines HD44780 Displays im 4-Bit Modus mit >> GND verbindet, ist doof. > > Nur warum? "DB0-DB3 39-42 I/O Data bus 0-7 In 8-bit bus mode, used as low order bidirectional data bus. In 4-bit bus mode, open these pins." Aus dem Datenblatt des KS0066. Beim HD44780 steht nur drin, dass sie nicht verwendet werden.
Alle diese Chips haben interne Pullups an den Datenleitungen. Deswegen lässt man sie offen, das spart Strom und entspricht den Herstellervorgaben. ein Doofer schrieb: > "It's poor designer's praxis to leave unused inputs open." Oder auch "It's poor designer's practice to ignore the datasheet."
:
Bearbeitet durch User
Matthias S. schrieb: > Alle diese Chips haben interne Pullups an den Datenleitungen. > Deswegen > lässt man sie offen, das spart Strom und entspricht den > Herstellervorgaben. Stimmt, und sogar nicht wenig: typ. 125µA pro Pin.
H. H. schrieb: > Beim HD44780 steht nur drin, dass sie nicht verwendet werden. Dann kann man sie ja auch auf GND legen.
H. H. schrieb: > Stimmt, und sogar nicht wenig: typ. 125µA pro Pin. Wenn man sich dann noch klar macht, das der HD44780 max. 300µA zum Arbeiten benötigt (typisch 150µA), sieht man, das der Löwenanteil der Speisung in die 4 Datenleitungen geht, und zwar 500µA. Macht man also nicht, wenn man nicht doof ist.
:
Bearbeitet durch User
Wenn man nicht doof ist, schreibt man auch schon mal "dass". Aber gut, wer keine Hintergrundbeleuchtung mit 50 - 100mA braucht, dann auch noch die übrigen Datenleitungen in Pausen auf "1" setzt, kann schon enorm viel Energie sparen. Dass man im Dunkeln nichts sieht, ist dabei Teil des Plans.
ein Doofer schrieb: > Wenn man nicht doof ist, schreibt man auch schon mal "dass". > Aber gut, wer keine Hintergrundbeleuchtung mit 50 - 100mA braucht, dann > auch noch die übrigen Datenleitungen in Pausen auf "1" setzt, kann schon > enorm viel Energie sparen. > Dass man im Dunkeln nichts sieht, ist dabei Teil des Plans. Ist halt doof, wenn man keine reflektiven Displays kennt.
Hat trozdem nix gebracht, ist alles beim Alten. have mal vorsorglich Q1 herausgelötet vieleicht war ja ein Gatter defekt? war aber für die Katz....!! anbei mal 2 Platinen Fotos...
H. H. schrieb: > Ist halt doof, wenn man keine reflektiven Displays kennt. Gut. Ich dachte, ich bekomme hier handfeste Argumente, warum man doof sei, wenn man die Schaltung wie oben verlinkt nachbaut. Schnappatmung reicht mir nicht. Der PIC misst seine Megahertzchen sicherlich auch nicht mit wenigen Mikroampere Stromaufnahme. Hans Werner A. schrieb: > anbei mal 2 Platinen Fotos... Reinige die Platine mal mit Spiritus. So sieht man nicht, ob Lötspritzer einen Kurzschluss verursachen. Ist IC1 richtig herum bestückt? Wird das Eingangssignal richtig aufbereitet?
Schön gelötet ist anders... Aber ich denke es liegt an der falschen Programmierung des µC.
ein Doofer schrieb: > Ich dachte, ich bekomme hier handfeste Argumente, warum man doof > sei, Die muss man dir nicht mehr liefern...
H. H. schrieb: > ein Doofer schrieb: >> Ich dachte, ich bekomme hier handfeste Argumente, warum man doof >> sei, > > Die muss man dir nicht mehr liefern... Schon klar, Widerspruch verträgst du nicht.
H. H. schrieb: > Nein, es wird der interne Oszillator mit 4MHz verwendet! > > Der PIC16F628 hat noch einen weiteren Oszillator für T1, und an dem > hängt der 32kHz Quarz. Hatte ich uebersehen... Da das "configuartion word" im Code nicht veraendert wird laeuft der PIC tatsaechlich standardmaessig mit dem internen 4Mhz-Oszillator wie ich eben aus dem Datenblatt entnehmen konnte.
ein Doofer schrieb: > Gut. Ich dachte, ich bekomme hier handfeste Argumente, warum man doof > sei, wenn man die Schaltung wie oben verlinkt nachbaut. Wenn man so eine Schaltung aus einem 9V-Block speist, ist man halt doof, wenn man sich die verschwendeten 0,5mA gönnt. Immerhin sind 9V Blöcke so ziemlich die teuerste Energieversorgung, die es gibt. Und das alles nur, weil man das Datenblatt nicht liest, doof wie man ist.
:
Bearbeitet durch User
Toxic schrieb: > Da das "configuartion word" im Code nicht veraendert wird Es wird: __CONFIG(FOSC_INTOSCIO & MCLRE_ON & WDTE_OFF & CPD_OFF & CP_OFF & LVP_OFF & BOREN_ON & PWRTE_ON);
Hans Werner A. schrieb: > ich habe mir einen Frequenzzähler zusammen gebaut. > nach einer Fertigen Anleitung inkl. Software etc. Und der löst dann die gemessenen Frequenzen mit dem Takt eines Uhrenquarzes von 32kHz am Timer1/Counter1 auf? Und dazu gibt es eine E/A-Taste? Ein recht eigenwilliges Konzept. Ich hatte auch mal einen Frequenzzähler mit einem PIC gebaut, aber dazu einen TCXO mit 13 oder 26 MHz (ist schon eine Weile her...) an den Timer1 angelegt. War ein Reziprokzähler, hab den incl. Quellcode hier mal gepostet. Ich hatte dazu einen PI16F716 benutzt, weil der grad in der Bastelkiste vor sich hin sedimentierte. Erstaunlichermaßen ist die obere Grenzfrequenz von seiten des PIC so etwa 150 MHz, in der Praxis nur auf rund 100 MHz begrenzt duch den ADCMP600, den ich im Eingang verwendet hatte. Immerhin verträgt der Prescaler vor Timer1 (soweit ich mich erinnere) die 4 fache Frequenz des Systemtaktes. Man muß da nicht mit einem Uhrenquarz an Timer1 arbeiten. Und was wäre gegen einen echten Einschalter zu sagen? Nur, daß es ein fertiges Projekt ist, was man nachbaut ohne sich dazu eigene Gedanken zu machen? Bei deinem Zähler ist entweder der PIC nicht oder nicht richtig programmiert oder er hat keinen Systemtakt, was auf falsche Config-Bits schließen läßt oder der Referenztakt fehlt und der PIC wartet darauf (oder auf das Freiwerden des ominösen E/A-Tasters). Letzteres sehe ich allerdings als Programmierfehler an, denn irgend ein Lebenszeichen sollte so ein Ding in jedem Falle von sich geben. W.S.
Hans Werner A. schrieb: > anbei mal 2 Platinen Fotos... Uahhh, Sorry, aber das sieht mal so richtig scheisse aus! Wasch das wenigstens mal mit Pinsel und Alkohol ab. Würde mich schon wundern wenn da keine Unterbrechungen uns Kurzschlüsse drin sind. Ein Dachrinnenlötkolben ist nicht teurer als ein brauchbarer Lötkolben für SMD Zeugs.
W.S. schrieb: > Nochwas: > H. H. schrieb: >> MCLRE_ON > > Und dann ist RA5/MCLR/VPP unbeschaltet? Keine gute Idee!
Die 9-stellige Anzeige ist eh ein Witz. Davon sind die untersten 4-5 Digits nur Lottozahlen. Sowohl der Eingangszähler als auch der Uhrentakt werden erstmal mit dem internen Takt (4MHz/4) synchronisiert, d.h. ein Abtastfehler von bis zu 2µs entsteht. Die CPU kann nämlich nur taktsynchron arbeiten.
Auch ein Selbstbauproject mit dem PIC16F628 https://www.qsl.net/dl4yhf/freq_counter/freq_counter.html Das obige Projekt wurde von den Chinesen kopiert und kann z.B. hier gekauft werden: https://www.ebay.de/itm/233061553477?hash=item36438d1545:g:jQcAAOSwa3lcHdBS Soll jetzt allerdings nicht vom eigentlichen Topic ablenken...
Toxic schrieb: > Auch ein Selbstbauproject mit dem PIC16F628 > https://www.qsl.net/dl4yhf/freq_counter/freq_counter.html > > Das obige Projekt wurde von den Chinesen kopiert und kann z.B. hier > gekauft werden: > Ebay-Artikel Nr. 233061553477 War das nicht soger eine AppNote von Microchip? > Soll jetzt allerdings nicht vom eigentlichen Topic ablenken... Ebenso.
H. H. schrieb: > War das nicht soger eine AppNote von Microchip? Da musst du mich was leichteres fragen.....
Toxic schrieb: > H. H. schrieb: >> War das nicht soger eine AppNote von Microchip? > > Da musst du mich was leichteres fragen..... AN592 vom Januar 1997.
Es läuft alles darauf hinaus, das es sich sehr wahrscheinlich um eine Fehlerhafte Programmierung handelt. Habe alle SMD Bauteile um den Selbsthalter Q1 raus und wieder neu verlötet mit dem Selben ergebnis das es nicht Besser geworden ist. Mein Bekannter hatte sich auch eine platine gebaut und den Chip selber gebrannt bei ihm läuft das ganze fehlerfrei. Ich habe 2 'Platinen gefertigt, bei beiden tritt der selbe Fehler auf. in beiden sind die Fremd Programmierten Controller drinnen. werde mal sehen was die Post mir in 1-4 Tagen bringt.... melde mich dann wieder.
Bist du sicher, dass auf deinen IC überhaupt ein Programm drauf ist?
Hans Werner A. schrieb: > Ich habe 2 'Platinen gefertigt, bei beiden tritt der selbe Fehler auf. > in beiden sind die Fremd Programmierten Controller drinnen. > werde mal sehen was die Post mir in 1-4 Tagen bringt.... Und warum ziehst du nicht das Selberprogrammieren dieser Chips in Betracht? W.S.
Die AN592 beschreibt ein Assemblerprogramm für 16C5x http://aem-origin.microchip.com/en-us/application-notes/an592 soweit ich sehe, fehlt die Displayansteuerung völlig. In der Diskussion zum Zähler von DIYfan werden Änderungen der Wartezeit bis zu 2000 ms vorgeschlagen, anscheinend gibt es da schon Timingprobleme. Leider enthält das C-Programm nur Aufrufe einer LCD-Library, die nicht mitgeliefert ist. Aber hier steht "The program for the microcontroller is written in C and is compiled with MikroC for PIC" https://www.mikroe.com/mikroc-pic "1045 LIBRARY FUNCTIONS" da sollte auch Lcdinit drin sein.
:
Bearbeitet durch User
>...Eingangszähler werden mit dem internen Takt (4MHz/4) synchronisiert... Ich dachte, das machen nur die AVR, es gibt PIC-Frequenzzähler, die mit dem internen Zähler bis zu 50 MHz zählen, da kann nichts synchronisiert sein. Zu LCD-Daten auf GND - Wenn ich im 4-Bit-Modus bin und das Busyflag abfrage, werden dann die vier unbenutzten Datenbits auch auf Ausgang umgeschaltet? Und welchen Pegel nehmen die dann an? Er hat hier keine Busy-Abfrage benutzt, die Datenbits sind immer Eingänge, da sollte es nichts schaden.
Christoph db1uq K. schrieb: > Zu LCD-Daten auf GND - Wenn ich im 4-Bit-Modus bin und das Busyflag > abfrage, werden dann die vier unbenutzten Datenbits auch auf Ausgang > umgeschaltet? Und welchen Pegel nehmen die dann an? Nein, sie bleiben passive Eingänge mit Pullups. Es ist kein Problem, das Status-Byte abzufragen. Wer wirklich Strom sparen muß, ist unabhängig vom Platinenlayout sicherlich in der Lage, bei den unteren 4 Datenleitungen die Stiftleiste nicht zu bestücken.
Christoph db1uq K. schrieb: > Ich dachte, das machen nur die AVR, es gibt PIC-Frequenzzähler, die mit > dem internen Zähler bis zu 50 MHz zählen, da kann nichts synchronisiert > sein. Schau mal ins Datenblatt, FIGURE 6-1: Der Vorteiler kann schneller laufen, aber dessen Ausgang muß mit der CPU synchronisiert werden (SYNC 2 Cycles). Man kann den Vorteiler auch nicht auslesen, sondern nur die Überläufe zählen.
Peter D. schrieb: > Man kann den Vorteiler auch nicht auslesen, sondern nur die Überläufe > zählen. Um trotzdem an den Zählerstand des Vorteilers zu kommen, hat MicroChip bereits in den 90er Jahren eine Trick veröffentlicht. Der besteht einfach nur darin, an den Zähleingang vom Programm aus Impulse anzulegen, bis der dahinter befindliche eigentliche Zähler sich ändert. Genau diesen Trick hatte ich auch bei meinem Taschen-Frequenzzähler benutzt, um die kompletten 16 Bit aus der HW herauszuholen (8 Bit Vorteiler + 8 Bit Zähler). Das braucht nur einen einzigen Portpin, was bei einem nur 18 pinnigen IC oftmals wichig ist. W.S.
Hallo, > Mein Bekannter hatte sich auch eine platine gebaut und den Chip selber > gebrannt bei ihm läuft das ganze fehlerfrei. Warum lässt Du Dir von deinem Bekannten keine Chip brennen? Danach wäre klar ob Du ein Hardware Fehler hast oder deine Chips waren nicht richtig programmiert. Ciao
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.