BLIT2008-Board-DCF77

Aus BraLUG-Wiki

(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Software: link...)
(Software: tiny_twi via usi...)
Zeile 14: Zeile 14:
 
** Der Tiny-Board-Teil ist in den ATtiny45-Mikrocontroller zu laden. Innerhalb eines Timer-Overflow-Interruptes werden fortlaufend das LED-Pin und das INT-Pin invertiert. Damit blinkt zum einen die LED im Takt des Interruptes und auf der INT-Leitung des TWI-Busses wird ein Impuls erzeugt.
 
** Der Tiny-Board-Teil ist in den ATtiny45-Mikrocontroller zu laden. Innerhalb eines Timer-Overflow-Interruptes werden fortlaufend das LED-Pin und das INT-Pin invertiert. Damit blinkt zum einen die LED im Takt des Interruptes und auf der INT-Leitung des TWI-Busses wird ein Impuls erzeugt.
 
** Im Programm für das BLIT-Board wird lediglich der INT1-Interrupt definiert. Innerhalb der zugehörigen ISR geht die LED auf dem BLIT-Board bei jedem eingehenden Impuls auf der INT-Leitung des TWI-Bus an bzw. aus. Dazu muss natürlich der Jumper auf dem Tiny-Board geschlossen sein. Die Blinkfrequenz der Basis-Board-LED ist halb so hoch wie auf dem Tiny-Board, ist ja auch logisch, wenn mann sich die Programme ansieht... :-).
 
** Im Programm für das BLIT-Board wird lediglich der INT1-Interrupt definiert. Innerhalb der zugehörigen ISR geht die LED auf dem BLIT-Board bei jedem eingehenden Impuls auf der INT-Leitung des TWI-Bus an bzw. aus. Dazu muss natürlich der Jumper auf dem Tiny-Board geschlossen sein. Die Blinkfrequenz der Basis-Board-LED ist halb so hoch wie auf dem Tiny-Board, ist ja auch logisch, wenn mann sich die Programme ansieht... :-).
 
+
* [http://bralug.de/wiki-common/images/0/04/Tiny_twi.tar.gz tiny_twi]: uff, nach ein paar frustrierenden Stunden habe ich es jetzt wohl halbwegs verstanden, wie das mit TWI über USI funktioniert. Wir erinnern uns (bzw. schauen ins Datenblatt...), ein ATtiny25/45/85 hat kein Hardware-TWI sondern nur USI, wo man aber TWI aufsetzen kann (lt. [http://atmel.com/dyn/resources/prod_documents/doc2560.pdf Application Node] und [http://atmel.com/dyn/resources/prod_documents/AVR312.zip Programmbeispiel] von Atmel). Vorliegendes Programm setzt dies entsprechend um:
 +
** Tiny-Board: in diesem Teil der Firmware befindet sich die USI-TWI-Slave-Umsetzung. Vordergründig läuft hier ein Timer-Overflow-Interrupt, der zyklisch eine Variable hochzählt und gleichzeitig ein Signal auf der Interruptleitung des TWI-Busses ausgibt.
 +
** BLIT-Board: dieser Teil der Firmware wird aktiv, wenn am Interrupteingang des TWI-Bus ein Signal anliegt. In diesem Fall liest das Board, als TWI-Master, die internen Werte des Tiny-Boards aus und zeigt diese auf dem angeschlossenen LCD an.
  
 
Weiteres kommen noch...!
 
Weiteres kommen noch...!

Version vom 5. Dezember 2008, 22:45 Uhr


Inhaltsverzeichnis

Hardware

Schaltplan

BLIT-Board; Schaltung DCF77-Board BLIT-Board; Prototyp des TWI-Tiny-Board (die LED blinkt schon mal...:-)...))

Beschreibung

Hier die erste Variante "vom Reissbrett" für ein DCF77-Zusatzboard. Kernstück ist ein ATtiny45 (oder ATtiny85), der autonom das DCF77-Signal eines handelsüblichen DCF77-Modules (z.B. von ELV) decodieren und bereitstellen soll. Natürlich besteht wieder der Anspruch, dass diese Baugruppe an den TWI-Bus des Basis-Boards angeschlossen werden soll, was allerdings dahingehend schwierig ist, dass es kein Hardware-TWI in dem ATtiny gibt. Aber man soll ja, laut Atmel USI dafür benutzen. Na mal sehen, ob das was wird....

Software

  • tiny_cs_blink: eigentlich ein sinnloses Programm, aber ganz nützlich, um die Hardware des Tiny-Boards zu testen (dazu muss es via TWI-Bus am BLIT-Board angeschlossen sein). Das Programm besteht aus 2 Teilen:
    • Der Tiny-Board-Teil ist in den ATtiny45-Mikrocontroller zu laden. Innerhalb eines Timer-Overflow-Interruptes werden fortlaufend das LED-Pin und das INT-Pin invertiert. Damit blinkt zum einen die LED im Takt des Interruptes und auf der INT-Leitung des TWI-Busses wird ein Impuls erzeugt.
    • Im Programm für das BLIT-Board wird lediglich der INT1-Interrupt definiert. Innerhalb der zugehörigen ISR geht die LED auf dem BLIT-Board bei jedem eingehenden Impuls auf der INT-Leitung des TWI-Bus an bzw. aus. Dazu muss natürlich der Jumper auf dem Tiny-Board geschlossen sein. Die Blinkfrequenz der Basis-Board-LED ist halb so hoch wie auf dem Tiny-Board, ist ja auch logisch, wenn mann sich die Programme ansieht... :-).
  • tiny_twi: uff, nach ein paar frustrierenden Stunden habe ich es jetzt wohl halbwegs verstanden, wie das mit TWI über USI funktioniert. Wir erinnern uns (bzw. schauen ins Datenblatt...), ein ATtiny25/45/85 hat kein Hardware-TWI sondern nur USI, wo man aber TWI aufsetzen kann (lt. Application Node und Programmbeispiel von Atmel). Vorliegendes Programm setzt dies entsprechend um:
    • Tiny-Board: in diesem Teil der Firmware befindet sich die USI-TWI-Slave-Umsetzung. Vordergründig läuft hier ein Timer-Overflow-Interrupt, der zyklisch eine Variable hochzählt und gleichzeitig ein Signal auf der Interruptleitung des TWI-Busses ausgibt.
    • BLIT-Board: dieser Teil der Firmware wird aktiv, wenn am Interrupteingang des TWI-Bus ein Signal anliegt. In diesem Fall liest das Board, als TWI-Master, die internen Werte des Tiny-Boards aus und zeigt diese auf dem angeschlossenen LCD an.

Weiteres kommen noch...!

Links

'Persönliche Werkzeuge