⇐ zurück zur Hauptseite
Hardware
Die Schaltung ist recht übersichtlich. Sie enthält
- einen quarzstabilisierten ATmega, der als TWI-Master fungiert,
- einen Spannungsregler, der die Stromversorgung übernehmen kann, wenn die Versorgung über USB
nicht ausreichend ist,
- einen USB-RS232-Konverter, der eine serielle Verbindung mit dem PC herstellt,
- Ausgangsstecker verschiedener Bauart, insbesondere einen, der zu meinem
I²C-Bus passt,
- vier LEDs zur Anzeige der verschiedenen Betriebszustände.
Schaltung
USB-RS232-Konverter
Pin-Belegung des ATmega 8
Anschlussbelegung
Mögliche Erweiterungen und Anpassungen
Schaltung
Für die Schaltung wurde eine 7x10 cm² große Platine entwickelt. Die einzelnen Funktionsblöcke
sind im Schaltplan entsprechend markiert.
Anmerkungen
- Externe Stromversorgung
- D1 dient zum Schutz des Spannungsreglers vor induktiven Spitzen.
- D2 sorgt dafür, dass kein Strom in die externe Spannungsquelle zurückfließen kann.
- USB-RS232-Konverter
- Für den Anschluss des Konverters wurde kein eigenes Eagle-Bauteil entwickelt. Es können
zwei einfache, dreipolige Buchsenleisten mit einen Abstand von 12 mm verwandt werden.
Wenn man die Platine ändert, muss man auf die Polung achten. Ein Verdrehen der Buchsenleiten
auf dem Board sieht man nicht, hat aber zerstörerische Auswirkungen.
- Die LED "POWER-IN" zeigt an, dass der TWI-Master an einen USB angeschlossen ist.
- TWI-Master
- Die Funktion des TWI-Master wird von einem ATmega 8 bereit gestellt.
- Der ATmega ist quarzgesteuert, um eine sichere RS232-Verbindung zu garantieren. Der Takt
der I²C-Verbindung ist unkritisch, da es sich um ein synchrones Protokoll handelt.
- Es gibt einen Reset-Taster, der einen manuellen Reset der Schaltung erlaubt. In der Software
ist zwar ein Watchdog vorgesehen, über den sowohl gezielt, als auch im Fehlerfall ein Reset
ausgelöst werden kann. Aber man weiß ja nie ...
- Zwei Sätze von Pull-Up-Widerständen (5kΩ, 50kΩ), die per Software angeschaltet
werden können, erlauben den Anschluss an verschiedene I²C-Interface-Typen.
- Die LED 'ACTION' blinkt kurz auf, wenn ein Kommando ausgelöst wird.
- Die LED 'SIGNAL' kann per Software angesteuert werden.
- Die Pins PC0..PC3 des ATmega bilden ein schaltbare Stromversorgung für das angeschlossene
Gerät. Hierüber können etwa 150 mA zur Verfügung gestellt werden.
- Über den Jumper 'POWER-OUT' kann eingestellt werden, welche Stromversorgung an den I²C-Bus-Stecker
angeschlossen ist. Möglich sind 'Externe Stromversorgung' oder 'Schaltbare Stromversorgung'.
Ist keine externe Stromversorgung angeschlossen und die Versorgung über die schaltbare Versorgung
ist nicht gewünscht, kann auch direkt der USB zur Stromversorgung herangezogen werden. Dazu
ist 'POWER-OUT' auf 'Externe Stromversorgung' zu jumpern und auf der Anschlussleiste sind die
Pins 2 (+5V Ext.) und 4 (+5V USB) zu verbinden.
- Zu den LED-Vorwiderständen: 390 Ω wird üblicherweise benutzt. In meinem Aufbau habe
ich ultrahelle LEDs eingebaut. Wenn dann nur 390 Ω Widerstände benutzt werden, wird man
beim Hineinschauen geblendet. Je nach Farbe (Schwellenspannung) sind iderstände zwischen 1,5
und 4,7 kΩ angemessen.
- 'RstOut' besitzt einen externen Pull-Up-Widertand, der sicherstellt, dass die Leitung sicher
auf High liegt. Auch dann, wenn sich der Pin nach z.B. einem Reset im Input-Modus (High-Impedance)
befindet.
- 'Trigger' besitzt aus gleichem Grund einen externen Pull-Down-Widerstand, der sicherstellt,
dass die Leitung nicht unbeabsichtigt auf High geht.
- Zur Vereinfachung der Schaltung wurde auf eine ISP-Möglichkeit verzichtet. Da die Kommunikation
mit dem PC über RS232 funktioniert, kann man zur Anpassung der Firmware einen Bootloader nutzen.
... und, wenn all Stricke reißen, wird der µC aus der Schaltung herausgenommen und extern programmiert.
- Anschlüsse.
Es stehen drei Anschlussstecker zur Verfügung:
- Ein fünf-poliger Molex-Stecker, der zu meinem I²C-Bus passt.
- Eine 17-polige, doppelreihige Buchsenleiste. Hiermit lässt gut ein Breadboard verbinden.
Um Verwechselungen zu vermindern sind die einzelnen Funktionsblöcke durch nicht belegte Anschlüsse
getrennt. In meinem Aufbau habe ich die entsprechenden Löcher zusätzlich blockiert
(Zur Anschlussbelegung).
- Ein 17-polige Stiftleiste mit gleicher Anschlussbelegung. Bei den nicht belegten Positionen
habe ich die Stifte gezogen.
Pin-Belegung des ATmega 8
ATmega8 hat 22 nutzbare I/O-Pins (RESET kann nicht genutzt werden, ohne die Möglichkeit des ISP
zu verlieren):
PIN |
Alternativ-Funktion |
Nutzung |
PORT B |
PB0 |
ICP1 (Timer/Counter1 Input Capture Pin) |
I²C-Bus Reset |
PB1 |
OC1A (Timer/Counter1 Output Compare Match A Output) |
Trigger |
PB2 |
SS (SPI Bus Master Slave select) OC1B (Timer/Counter1
Output Compare Match B Output) |
Pull Up 5kΩ |
PB3 |
MOSI (SPI Bus Master Output/Slave Input) OC2 (Timer/Counter2
Output Compare Match Output) |
Pull Up 5kΩ |
PB4 |
MISO (SPI Bus Master Input/Slave Output) |
Pull Up 50kΩ |
PB5 |
SCK (SPI Bus Master clock Input) |
Pull Up 50kΩ |
PB6 |
XTAL1 (Chip Clock Oscillator pin 1 or External clock input)
TOSC1 (Timer Oscillator pin 1) |
XTAL |
PB7 |
XTAL2 (Chip Clock Oscillator pin 2) TOSC2 (Timer Oscillator
pin 2) |
XTAL |
PORT C |
PC0 |
ADC0 (ADC Input Channel 0) |
IO0, ADC0 |
PC1 |
ADC1 (ADC Input Channel 1) |
IO1, ADC1 |
PC2 |
ADC2 (ADC Input Channel 2) |
IO2, ADC2 |
PC3 |
ADC3 (ADC Input Channel 3) |
IO3, ADC3 |
PC4 |
ADC4 (ADC Input Channel 4) SDA (Two-wire Serial Bus
Data Input/Output Line) |
SDA: I²C-Daten |
PC5 |
ADC5 (ADC Input Channel 5) SCL (Two-wire Serial Bus
Clock Line) |
SCL: I²C-Takt |
PC6 |
RESET (Reset pin) |
RESET |
PORT D |
PD0 |
RXD (USART Input Pin) |
RXD: Kommunikation mit dem PC |
PD1 |
TXD (USART Output Pin) |
TXD: Kommunikation mit dem PC |
PD2 |
INT0 (External Interrupt 0 Input) |
Power Out |
PD3 |
INT1 (External Interrupt 1 Input) |
Power Out |
PD4 |
XCK (USART External Clock Input/Output) T0 (Timer/Counter
0 External Counter Input) |
Power Out |
PD5 |
T1 (Timer/Counter 1 External Counter Input) |
Power Out |
PD6 |
AIN0 (Analog Comparator Positive Input) |
Betriebsanzeige |
PD7 |
AIN1 (Analog Comparator Negative Input) |
Signal |
USB-RS232-Konverter
Der Konverter ist ein fertig gekaufter USB-to-Serial-Adapter auf CP2102-Basis (Best.-Nr.:
197326 - 62 bei Conrad). Dies war endlich ein nutzbringende Einsatzmöglichkeit für das herumliegende
Modul.
Datenblatt des Konverters
Datenblatt des CP2102
Anschlussbelegung
Belegung der Ausgang-Steckverbinder:
Pin |
Funktion |
Intern |
1 |
GND |
GND |
2 |
+5V Ext. |
+5V Ext. |
3 |
NC |
- |
4 |
+5V USB |
+5V USB |
5 |
+5V schaltbar |
PD2, PD3, PD4, PD5 |
6 |
NC |
- |
7 |
IO0, ADC0 |
PC0 |
8 |
IO1, ADC1 |
PC1 |
9 |
IO2, ADC2 |
PC2 |
10 |
IO3, ADC3 |
PC3 |
11 |
NC |
- |
12 |
RstOut |
PB0 |
13 |
SCL |
PC5 |
14 |
SDA |
PC4 |
15 |
NC |
- |
16 |
Trigger |
PB1 |
17 |
GND |
GND |
Über den Jumper 'POWER-OUT' kann eingestellt werden, welche Stromversorgung an den I²C-Bus-Stecker
angeschlossen ist. Möglich sind 'Externe Stromversorgung' oder 'Schaltbare Stromversorgung'. Ist
keine externe Stromversorgung angeschlossen und die Versorgung über die schaltbare Versorgung ist
nicht gewünscht, kann auch direkt der USB zur Stromversorgung herangezogen werden. Dazu ist 'POWER-OUT'
auf 'Externe Stromversorgung' zu jumpern und auf der Anschlussleiste sind die Pins 2 (+5V Ext.)
und 4 (+5V USB) zu verbinden.
Mögliche Erweiterungen und Anpassungen
- SDA und SCL sollten mit einem hochohmigen Widerstand auf High gelegt werden. Dies bewirkt,
dass nach einem Reset, wenn die Pins auf Input geschaltet, also hochohmig sind, die Leitungen
auf High liegen. Die Widerstände müssen so groß sein, dass sie im Normalbetrieb nahezu keinen
Effekt haben. R > 200 kΩ sollte passen.
⇐ zurück zur Hauptseite