Hinweis für die Textformat-Version; um diese Version im PDF Format zu lesen, laden Sie bitte http://www.dk1ri.de/dhw/sensorkit.pdf MYC Interface für Joy_it (TM) Sensorkit Autor DK1RI, Version V01.0, 20220825 This paper is published in https://github.com/dk1ri as well Einleitung Dies ist die Beschreibung eines MYC Interfaces zur Ansteuerung der Sensoren des Joy_it(TM) Sensorkit X40 Es können maximal 2 Module gleichzeitig verwendet werden, wobei der eine Modul nur 3 Anschlüsse haben darf. Das Interface arbeitet als Slave am I2C Bus oder kann über RS232 / (USB) gesteuert werden. Defaultmäßig sind alle Schnittstellen aktiv. Mit dem Initialisierungsbefehl können diese aber deaktiviert werden. Der Initialisierungsbefehl funktioniert aber immer. Beschreibung Es gibt 40 verschiedene Module mit 3 – 6 Anschlüssen. Die Stromversorgung liegt an unterschiedlichen Anschlüssen und muss daher mit Jumpern entsprechend der Herstellerbeschreibung festgelegt werden. Mit dem Befehle &HECxx wird festgelegt, welcher Modultyp für Port1 verwendet wird; &HEExx bestimmt den Typ für Port (xx: 0 – 53) Für die Daten müssen auch Jumper gesetzt werden entsprechend der Tabelle weiter unten. Bei einigen Moduln gab es Probleme: Modul 1 und 15: Der Bascom 1wire Befehl funktioniert nicht. Modul22: der Getrc5 Befehl geht nicht. Modul53: fehlt noch. In der englischen Beschreibung fehlt Modul27. Die Beschreibung als Modul16 ist falsch. Bei einigen Moduln sind die gemessenen Werte nicht geeicht. Dann fehlt die Zuordnung in den announcements. Modul51 ist ein Pegelwandler ohne steuerbare Funktion. Modul52 mit BM320 wurde bereits bei einem anderen MYC device verwendet. Der AD Wandler (Modul 53) funktioniert erst ab Platinenversion V02.0, da der I2C Anschluss benötigt wird. Bei Modul 50 und 53 ist unbedingt die Pinbelegung auf dem Modul zu beachten! Grundsätzliche Bedienung: Der Modul darf nicht mit angeschlossener Spannung gewechselt werden und die Jumper gesetzt werden. Anfangs ist keine Modultyp aktiv (&HED = 0 bzw &HEF = 0). Der gewählte Typ wird permanent gespeichert. Die Moduln werden immer mit pin1 des Moduls an pin1 des Verbinders angeschlossen, soferm auf dem Modul keine anderen Angaben sind. Jumper für Modultyp: An Port1 Befehl an Port2 Befehl Modultyp JP9 JP7 JP10 JP12 JP11 JP13 GND 5V Dat GND 5V Dat 1 3 2 1 1 3 2 1 2 2 3 2 1 3 3 2 1 4 3 3 2 1 5 3 2 1 6 4 1 2 3 7 1 1 3 8 5 1 - 3 9 10 1 - 3 11 12 6 1 2 3 13 1 2 3 14 9 1 - 2,3,4 15 16 10 3 2 1 17 3 2 1 18 11 3 - 1, 2 19 20 3 - 1, 2 21 22 12 1 2 3 23 24 1 1 3 25 26 13 2 1 3 27 15 1 2 3 28 1 2 3 29 16 1 - 2,3,4 30 31 17 3 2 1 32 3 2 1 33 18 1 2 3 34 19 1 2 3 35 36 1 2 3 37 38 20 1 2 3 39 1 2 3 40 21 1 2 3 41 1 2 3 42 22 1 2 3 43 1 2 3 44 23 5 4 1,2,3 45 24 3 2 1,4 46 25 3 2 1,4 47 26 3 2 1,4 48 27 4 3 1,2 49 28 3 2 1,4 50 29 3 1,2 51 52 3 1,2 53 54 31 1 2 3 55 1 2 3 56 32 4 3 1,2 57 33 3 2 1 58 3 2 1 59 34 1 3 60 61 1 3 72 73 35 3 2 1 62 36 3 2 1,4 63 37 3 2 1,4 64 38 3 2 1,4 65 39 3 2 1 66 68 3 2 1 67 74 40 5 4 1,2,3 69 70 50 1 4 2,3 71 53 2 1 3 – addr; 4 – alert 5 SCL 6 SDA Bei Verwendung von Modul53 kann die I2C Schnittstelle nicht verwendet werden. Einbindung in das MYC System Details zum MYC System stehen in [3]. Die announcements (Befehlsliste) sind im bascom Programm zu finden (announcements.bas). Fehlermeldungen Der Befehl &HFC liefert den letzten Fehler im Format: aktuelle Befehlsnummer - Fehler - Befehlsnummer beim Auftritt des Fehlers Dazu werden die empfangenen Befehle von 0 bis 255 umlaufend gezählt. Nach 254 korrekten Befehlen wird der Fehlereintrag gelöscht. Reset Ist der Reset Jumper JP5 beim Anlegen der Versorgungsspannung überbrückt, werden wieder die Defaultwerte eingelesen. Dies ist hilfreich, wenn die aktuelle I2C Adresse verloren gegangen ist. Watchdog Es gibt einen kompletten Hardware-reset, wenn die Hauptschleife länger als 2 Sekunde dauert. Zusätzlich gibt es drei weitere Watchdogs, die in der vorliegenden Firmware für Tests nach ca 10 Sekunden ansprechen. Für „MYC Betrieb“ sollte der Wert auf 1 Sekunde gesetzt werden. Die Befehlseingabe und Ausführung muss in dieser Zeit beendet sein. Danach werden die bereits empfangenen Daten gelöscht. Dies soll falsche Eingaben vermeiden. Mit dem &HFC "letzten Fehler" Befehl kann man Eingabefehler sehen. Bei einem I2C Lesebefehl müssen die Daten innerhalb dieser Zeit vom I2C Master abgeholt werden. Danach werden die Daten gelöscht. Neue Befehle können erst eingegeben werden, wenn alle Daten abgeholt wurden oder die Watchdog Zeit abgelaufen ist. Wird die RS232 / USB Schnittstelle verwendet, werden die Daten sofort ausgegeben. Bei einem I2C BusLock (SDA pin auf 0) erfolgt auch ein I2C reset. Software Die Steuerung übernimmt ein AVR Mikrocontroller Atmega328 oder größer. Das aktuelle Bascom Programm verwendet einen Atmega328P. Die Software wurde in BASCOM geschrieben [2] Um das Programm zu kompilieren, muss das Verzeichnis common_1.11 [6] in das Verzeichnis mit dem Programm kopiert werden Programmierung des Prozessors Zur Programmierung des Prozessors ist ein 6poliger ISP Stecker JP6 vorgesehen. Die Fuses müssen möglicherweise programmiert werden (siehe Bascom Programm) !! Prozessortyp und Frequenz müssen gegebenenfalls angepasst werden. Der Jumper J1 sollte während der Programmierung entfernt werden. Serielle (RS232 / USB) Schnittstelle Schnittstellenparameter: 19k2 8N1. Alternativ zur RS232 Schnittstelle kann die USB Platine UM2102 von ELV verwendet werden. Die USB Platine wird plan auf der Oberseite der Interfaces verlötet: der USB Stecker zeigt zum Rand. USB Platine und Leiterplatte müssen voneinander isoliert werden. I2C Die Default Adresse ist 38 (&H26). Mit dem Befehl &HFE03 kann die Adresse in n (1 … 127) geändert werden. Pullup Widerstände R3 / R4 müssen immer bestückt werden (1k – 10k). Mit JP2 kann festgelegt werden, ob der externe I2C Bus mit 3V oder 5V betrieben wird. Wenn auf den 3V Betrieb völlig verzichtet werden soll, kann IC3 (PCA9517), R1, R2, R5, R6, JP2 entfallen und alternativ wird JP3 und JP4 bestückt. Ganz ohne I2C kann auch SL1, SL2, JP2, JP3, JP4, R1, R2, R5, R6 entfallen. Der Gesamtwiderstand am I2C Bus sollte bei 1 bis 10 kOhm je nach Leitungslänge liegen Mit IC3 muss R1 / R2 (<=10k) bestückt werden. SL1 und SL2 sind parallel geschaltet. Ein Anschluss kann zur Weitergabe des I2C Signals an das nächste Gerät verwendet werden. Um Buslocks zu vermeiden, wird circa alle 200ms geprüft, ob das SDA Signal auf „0“ liegt. Ist das 50 mal hintereinander der Fall, wird die I2C Schnittstelle neu gestartet. SMD Die Leiterplatte ist teilweise mit SMD bestückt. Stromversorgung Die Stromversorgung ist 12V +-10%, Stromaufnahme <. 100mA Bestückung der Leiterplatte Verwendung von ISP: JP6 Mit I2C: Siehe I2C oben. Mit serieller Schnittstelle: Bei Verwendung der RS232 Schnittstelle wird IC4, C6 – C9 und SL3 bestückt. Alternativ dazu kann der USB Modul UM2102 verwendet werden. Der USB Modul wird isoliert auf der Bestückungsseite angebracht,. Die mittleren 4 Anschlüsse werden mit JP8 verlötet. Wenn das Relais und die Endstufensteuerung und die LED nicht benötigt wird, wird kann K2 T1 – T3, D5, R14, R17, R50, SL5, SL6, SL7, SL9, SL10 entfallen. Der Transistor T3 kann bis zu 4A schalten (IRLML2244). Das reicht für eine 10W Endstufe. Die Diode D1 muss auch eine entsprechende Strombelastbarkeit haben und kann auch überbrückt werden. Dabei entfällt aber der Verpolungsschutz. Das DDS Sinusausgangssignal liegt an SL4, das Rechtecksignal an SL6. Anschlüsse 12V Power / (SL12) Tip 12V Ring GND 1,2 GND 3 12V I2C (SL1, SL2) 1 GND 2 SCL 3 SDA RS232 (SL3) 1 GND 2 Eingang 3 Ausgang Weitere Jumper JP1 Power JP2 I2C: 3V/5V Umschaltung JP3 SDA Überbrückung (ohne IC3) JP4 SCL Überbrückung (ohne IC3) JP5 Reset JP6 ISP JP8 Anschluss für USB Modul Versionen Diese Beschreibung gilt für die Leiterplattenversion V01.0 Bascom Version V01.0 Copyright Die Ideen in diesem Dokument unterliegen der GPL (Gnu Public Licence V2) soweit keine früheren, anderen Rechte betroffen sind. Die Verwendung der Unterlagen erfolgt auf eigene Gefahr; es wird keinerlei Garantie / Gewährleistung / Produkthaftung übernommen. The ideas of this document can be used under GPL (Gnu Public License V2) as long as no earlier other rights are affected. The usage of this document is on own risk, there is no warranty. https://kn-electronic.de/Bausaetze/FET-PA10.html Referenzen [1] https://www.dk1ri.de/dhw/sensorkit_eagle.zip [2] https://www.dk1ri.de/dhw/sensorkit_bascom.zip [3] https://www.dk1ri.de/myc/MYC.pdf [4] https://dk1ri.de/myc/Description.txt oder https://dk1ri.de/myc/Description.pdf (englisch) [5] https://dk1ri.de/myc/Definitions.txt oder https://dk1ri.de/myc/Definitions.pdf (englisch) [6] https://dk1ri.de/dhw/common_1.11.zip