Forum: Mikrocontroller und Digitale Elektronik PCB-Projekt: RTC, 7Seg, Temp.sensor


von Frank M. (aktenasche)


Angehängte Dateien:

Lesenswert?

Abend zusammen,

im Rahmen einer kleinen Projektarbeit soll ich eine Schaltung sowie ein 
PCB entwickeln, das folgende Funktionalität haben soll:

-7-Segment Anzeigen
-Temperaturmessung
-RTC mit data retention

Ich habe einen ersten Entwurf mit dem Prof durchgesprochen und für die 
Doku das Blockdiagramm erstellt.

Meine Fragen:

- Denkt ihr eine externe RTC ist nötig? Ich will mich nicht zu sehr mit 
der Programmierung verhuddeln und weiss auch nicht wie ich das 
"umschalten" von externer auf Batterieversorgung lösen soll.

- Falls ich eine externe RTC verwende, könnte es Probleme mit dem I²C 
geben da die MCU extern versorgt wird, die RTC aber mit der Batterie?

- Denkt ihr der 7805 ist nötig? Reichen vielleicht auch die 2 Standard 
Caps?

- Kann man mit dem PICkit2 debuggen? (afaik ja)

- Welchen PIC könnt ihr mir für diese Anwendung empfehlen? (Natürlich 
keine BGA devices)

von Leo H. (Gast)


Lesenswert?

>- Denkt ihr eine externe RTC ist nötig?

Kommt auf deine Anforderung an.
Wenn das Modul nur zusammen mit dem PC arbeitet, kannst du auch in 
deiner C#-Software die Zeitstempel erzeugen.

Ohne PC-Verbindung würde ich eine RTC bevorzugen, natürlich automatisch 
synchronisiert bei bestehender RS232-Verbindung.

>"umschalten" von externer auf Batterieversorgung

Bist du auf den Chip festgelegt? Ansonsten schau dir z.B. mal den DS1307 
an, der hat einen Pin für eine 3V Knopfzelle und schaltet automatisch 
um.

Außerdem: Im Datenblatt vom PCF8563 ist ziemlich weit hinten eine 
Beispiel-Schaltung mit einem Goldcap drin.

>Probleme mit dem I²C

Sollte eigentlich nicht passieren, sofern du nicht auch die 
Pullup-Widerstände aus der Batterie versorgst.
Zur Sicherheit könntest du die Datenleitungen mit 2 FETs entkoppeln, 
dazu findest du unter "I²C Levelshifter" einen Schaltplan.

>Denkt ihr der 7805 ist nötig?

Wenn das Gerät ohne PC läuft: Brückengleichrichter + 7805 einbauen, so 
kannst du alles anklemmen was irgendwie Spannung ausspuckt.
Gerät läuft nur am PC: Evtl. "saubere" 5V vom USB abzweigen?
Dazu noch einen FT232 auf die Platine und gleich die Daten über USB 
schieben?

>Kann man mit dem PICkit2 debuggen
>Welchen PIC könnt ihr mir für diese Anwendung empfehlen?

Keine Ahnung, ich bastele lieber mit Atmels.

Schau dich mal um, vielleicht gibt es sogar einen PIC mit eingebauter 
RTC.
Für alles andere sollte jeder "normale" PIC mit 1 USART und vielleicht 
1-2 Timern reichen.

Allgemein zu deinem Schema:
- Es fehlt noch ein Quarz, ohne genauen Takt wirst du mit RS232 Probleme 
bekommen.

- Die Taster lassen sich auch in Software entprellen.

- Statt dem MAX7221 kannst du auch den MAX7219 nehmen, vielleicht ist 
der günstiger. Einen "echten" SPI-Bus verwendest du hier nicht, für das 
eine IC kann man die Daten locker per Timer-Interrupt rausschieben.

von Peter D. (peda)


Lesenswert?

Frank Meier schrieb:
> Denkt ihr eine externe RTC ist nötig?

Nö, bzw. ich verwende nie eine, ist mir zu umständlich.
Viele MCs haben einen internen Stromsparbetrieb, wo sie nur etwa 1µA 
verbrauchen. Dabei steht dann die CPU und der Prozessortakt, nur ein 
Timer läuft asynchron weiter. Man muß nur noch einen 32kHz Quarz 
anschließen.
Die Spannung vom Netzteil und von der 3V-Batterie führt man über 2 
Dioden auf VCC des MCs.
Zur Erkennung, wann er in den Sparbetrieb gehen soll, kann der MC seine 
eigene VCC messen. Das kann z.B. der ATmega48 von Atmel über seine 
interne Referenz (1,1V).


Frank Meier schrieb:
> Denkt ihr der 7805 ist nötig?

Wozu?
Es gibt doch fertige Netzteile mit 5V Ausgang.


Frank Meier schrieb:
> Welchen PIC könnt ihr mir für diese Anwendung empfehlen?

Damit kenne ich mich nicht aus.
Ich würde dafür einen ATmega48 von Atmel nehmen.


Peter

von Frank M. (aktenasche)


Lesenswert?

Leo-andres H. schrieb:
> Wenn das Modul nur zusammen mit dem PC arbeitet

Die PC Verbindung ist nur Gimmick zum einstellen der RTC und anzeigen 
von Daten auf dem Display.

Leo-andres H. schrieb:
> natürlich automatisch
> synchronisiert bei bestehender RS232-Verbindung

Das wollte ich ebenfalls in die software integrieren :)

Leo-andres H. schrieb:
> Bist du auf den Chip festgelegt? Ansonsten schau dir z.B. mal den DS1307
> an, der hat einen Pin für eine 3V Knopfzelle und schaltet automatisch
> um.
>
> Außerdem: Im Datenblatt vom PCF8563 ist ziemlich weit hinten eine
> Beispiel-Schaltung mit einem Goldcap drin.

Danke für den Hinweis, ich schaue mir das mal an! Ansonsten: Ich habe 
komplett freie Wahl was die Bauteile angeht.
Ebenso danke für die restlichen Hinweise, ich versuche alle zu 
berücksichtigen. Ich werde nach der Bauteilwahl einen Schaltplan posten.

Peter Dannegger schrieb:
> Viele MCs haben einen internen Stromsparbetrieb, wo sie nur etwa 1µA
> verbrauchen.

Ja ich hatte bereits einen MSP430 in Betracht gezogen aber habe wie 
schon geschrieben Angst vor der Programmierung da das Neuland für mich 
ist. Aber gegen eine kleine Herausforderung habe ich nichts :)

Peter Dannegger schrieb:
> Wozu?

Im Nachhinein frage ich mich das auch...

Peter Dannegger schrieb:
> Ich würde dafür einen ATmega48 von Atmel nehmen.

Ich habe einen PICkit sowie einen GALEP4 zu Verfügung und will die Kasse 
der Uni ungern mit nem teuren programmer/debugger belasten.

von MaWin (Gast)


Lesenswert?

> -7-Segment Anzeigen
> -Temperaturmessung
> -RTC mit data retention

Macht eigentlich jedes chinesische Digitalthermometer.

Aber ohne den ganzen Aufwand.

Wenn man einen Uhrenquartz direkt für den uC verwendet,
ist der schon mal uhrgenau, EEPROM hat er auch.

Wenn man keine LCD-Gläser herstellen kann und ihre
Multiplex Ansteuerung nicht beherrscht und deswegen LED
7 Segment Anzeigen nehmen muß, braucht man ein Netzteil,
aber wenn das ein SchaltREGLER ist, wozu verbaut man
noch einen 7805 ? (der zudem noch immense 5mA selbst
verbraucht).

Wenn man einen uC mit genügend vielen Anschlüssen nimmt,
kann man sich den extra LED-Treiber sparen. Mit etwas
Glück kann man sogar die Segmente direkt aus ihm
versorgen, in dem man mehrere Ausgänge parallel schaltet.

Bleibt noch die Temperaturmessung: Sogar ohne A/D-Wandler
kann ein uC direkt einen analogen Sensor auswerten, ob
NTC oder KTY oder sonstwas. Wenn man mit Analogtechnik
auf Kriegsfß steht, braucht man natürlich teure digitale
Sensoren. Allerdings haben heute alle uC Analogeingänge
und es gibt damit keinerlei Grund mehr für Digitalsensoren.

Deswegen ist China billiger und inzwischen besser.

Klar, als "PCB Projekt" bleibt so quasi nichts übrig.

von Tom_ti (Gast)


Lesenswert?

Also, falls du das ganze mit USB machen möchtest, guck dir mal 
beispielsweise den

PIC18F14k50

an.
Oder guck einfach mal hier, welcher der Chips ausreichend für dich ist:
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2654

Die haben USB onboard und Microchip bietet hierfür ein Framework mit 
vielen Beispielprojekten an!!

Um den mit dem Pickit2 debuggen zu können braucht man allerdings einen 
sogenannten "Debug header".
Wie's mit den anderen Programmer/Debugger aussieht weiß ich grad nicht.
Mit nem ICD"x" wirste son Header wohl nicht brauchen.

von Frank M. (aktenasche)


Lesenswert?

Tom_ti schrieb:
> Die haben USB onboard und Microchip bietet hierfür ein Framework mit
> vielen Beispielprojekten an!!

Hast du schon mal mit USB gearbeitet? Ein paar Praktikantenkollegen 
haben damit recht viele Probleme gehabt aber das würde mich auch reizen.
Insbesondere wenn die Möglichkeit besteht mit einem Bootloader zu 
arbeiten.
Was heisst "debug header"? Wenn das einfach nur ein header ist den man 
einbinden muss, ist das ja kein Problem!


@MaWin: Obwohl dein etwas aggressiver Beitrag eigentlich keinen 
Kommentar verdient:

Ja ich weiss was Multiplexen ist. Ich bin einfach nur zu faul es zu 
realisieren. Wenn du "unbegrenzte" Mittel hättest würdest du das auch 
machen. Insbesondere wenn du noch nie gelayoutet hast und vermutest dass 
das die meiste Zeit kostet.

Ja ich weiss das dass jedes chinesische wasweissich kann. Ich hab die 
specs nun mal so bekommen und es ist ein LERN projekt. Das hat die Uni 
so an sich dass man da lernt.

Ja ich weiss dass ich auch mit nem Pt100 oder Pt1000 Temperaturen messen 
kann und wenn du das "Analogtechnik" nennst tust du mir leid.

von Tom_ti (Gast)


Lesenswert?

Ja, ich verwende den PIC18F14k50 selber seit kurzem mit dem Framework 
von Microchip als "Serial Emulator".
Das heißt PC-seitig kannst du ganz normal wie über die Serielle 
Schnittstelle darauf zugreifen.

C#-Beispiel-Programmer sind in dem Framework übrigens auch enthalten.

Was für Probleme hatten deine Kollegen denn damit?

Der "Debug-Header" ist folgendes:
http://www.microchipdirect.com/productsearch.aspx?Keywords=AC244023

Da der schon 50 Euro kostet, würde ich vielleicht eher zu einem PIC mit 
"on-board debugging capability" greifen. 50 Euro gespart...

Beim PIC18F14K50 stehts schon auf der Seite von MCH, dass dieser einen 
debug header benötigt:
1
PIC18F/LF1XK50 20-Pin USB Flash Microcontrollers with nanoWatt XLP Technology (11/02/2010)
2
The PIC18F14K50 brings advanced features and exceptional value to the embedded USB market. This low cost PIC® Microcontroller features a full speed USB 2.0 compliant interface that can automatically change clock sources and power levels upon connection to a host, making it an exceptional device for battery-powered applications. The addition of mTouch(TM) touch sensing compatibility, a 10-bit ADC, motor control PWMs, and a host of serial interfaces make the PIC18F14K50 the perfect device to "Just add USB" to any application.
3
USB Application Design Center Debug Support
4
• A debug header is required for this device
5
• Part Numbers:, AC244023 (F) / AC244024 (LF)
6
• Debug and programming support is available via PICkit™ 3, and MPLAB® ICD 3
7
• For Debug Header information, please refer to DS51292

Bei dem nächsten Modell (PIC18F2450) in der Liste finde ich diesen 
Hinweis nicht, von daher könnts sein, dass der des auch ohne debug 
header kann.
Müsstest du aber natürlich nochmal genauer recherchieren.

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
Noch kein Account? Hier anmelden.