Hallo! Ich betreibe auf meinem Mikrocontrollerboard eine Real-Time-Clock. Die RTC möchte ich aber nachstellen können, wenn sie ungenau wird. Also sagen wir 1x pro Jahr. Hierzu möchte ich aber keinen Programmer anhängen und die Register der RTC neu beschreiben sondern einen PC, der über USB-Schnittstelle mit dem Mikrocontroller (AT90PWM316) verbunden ist. Die RTC soll dann vom PC aus mit einem kleinen Programm nachgestellt werden können. Als USB / UART Bridge möchte ich den CP2102 verwenden. Meine Frage: Wie verbinde ich die Anschlüsse des CP2102 (TxD und RxD) mit der ISP-Schnittstelle (MISO, MOSI, SCK) des UC?
Den CP2102 musst du mit dem USART des Controllers verbinden, nicht mit dem SPI-Bus.
Ich würde sagen: Gar nicht. Es sei denn du implementierst eine Software UART, die auf diesen Pins fusst. Nur ergibt das keinen Sinn, wenn du eine in Hardware implementierte UART zur Verfügung hast und die Pins frei sind.
H. G. schrieb: > Meine Frage: > Wie verbinde ich die Anschlüsse des CP2102 (TxD und RxD) mit der > ISP-Schnittstelle (MISO, MOSI, SCK) des UC? Der CP2102 ist ein USB => UART, kein USB => SPI. Von daher solltest du den TxD und RxD des CP2102 lieber mit dem RxD und TxD des AVRs verbinden und via UART die Uhr stellen. Dann denkst du dir einfach ein kleines Protokoll aus. z.B. Sendest du dann "setTime 23:45:22" und/oder "setDate 21.02.2012" an den µC und dieser Wertet es dann aus und setzt entsprechend die RTC Register
"Meine Frage: Wie verbinde ich die Anschlüsse des CP2102 (TxD und RxD) mit der ISP-Schnittstelle (MISO, MOSI, SCK) des UC?" garnicht, verbinde sie mit RXD & TXD am AT90PWM316 und ändere deine Firmware. Wenn RXD & TXD nicht mehr frei sind nimm eine SoftwareUart. Gruß P.S. zu langsam ;-)
In meinem aktuellen Projekt habe ich sowas gemacht, u.a. auch eine Option zur Synchronisation der lokalen Zeit mit der RTC eingebaut. Ich kann Dir aber sagen dass es nicht gerade ein Zuckerschlecken sein wird, wenn Du sowas zum ersten mal machst. Code, Schaltplan usw. kannst Dir hier anschauen: http://viewvc.coremelt.net/viewvc/avr/ultimate_relay_card/ im Prinzip wird folgendes gemacht: - lokale Zeit (oder eben Benutzereingabe) auslesen und in die entsprechenden Felder aufsplitten (struct tm) - in einem (von Dir festgelegten) Protokoll sendest Du die Daten an den Controller - dort decodieren und in entsprechende Befehle fuer die Echtzeituhr umwandeln Greets, Michael
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.