Aktuelle Zeit: 12.08.2020 20:27

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 16 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: Digitale PIO Karte ansprechen.
BeitragVerfasst: 31.03.2011 19:28 
Offline

Registriert: 06.12.2006 02:29
Wohnort: Bayern
Habe folgendes Problem
Versuche eine Digitale PIO Karte anzusprechen. (μPIO / GPIO18 von ABACOM)
Ich weis überhaupt nicht wie ich das Umsetzen kann.
Wer kann mir weiterhelfen. Ich weis überhaupt nicht was ich ihm senden soll (sieben Datenbytes ?)

Datenprotokoll des Hersteller
Das μPIO / GPIO18 arbeitet als PC-Interface mit 18 digitalen I/O-Kanälen deren Datenrichtung umschaltbar ist (18 GPIO).
Die I/O-Leitungen sind zu drei Ports zusammengefasst (Port B, Port C, Port D). Jeder Port
besitzt sechs I/O-Leitungen:
Die Kommunikation mit dem PC erfolgt per USB. Der USB-Treiber installiert einen virtuellen COM-Port. Der Datenaustausch erfolgt somit wie über eine ‚echte’ RS232-Schnittstelle.
Die Schnittstellenparameter sind: 57600, 8 N, 1
Baud 57600. 8 Datenbits, Keine Parität, 1 Stopbit
Die Kommunikation erfolgt nach dem Frage-Antwort-Prizip (Request/Response). Dabei bestehtein Request immer aus genau sieben Datenbytes. Nachdem Empfang dieser sieben Datenbytes sendet die Firmware 15 Bytes als Antwort an den PC zurück.
Request: 7 Bytes
Byte1: ADC-Referenzumschaltung (0=EXTERN; 1=INTERN VCC; 3=INTERN 1.1V)
Byte2: Richtung Port B
Byte3: Richtung Port C
Byte4: Richtung Port D
Byte5: Daten Port B
Byte6: Daten Port C
Byte7: Daten Port D
Die Bytes 2..4 geben die Datenrichtung an. Ein gesetztes Bit setzt die zugehörige Portleitung auf AUSGANG, ein gelöschtes Bit setzt die Portleitung auf EINGANG.
Die Bytes 5..7 setzen den Ausgangszustand der I/O-Leitungen deren Datenrichtung auf
AUSGANG gesetzt ist. Ein gesetztes Bit schalten den Ausgang HIGH (5V), ein gelöschtes Bit schaltet den Ausgang LOW (0V). Für I/O-Leitungen die nicht als Ausgang sondern als
EINGANG definiert wurden, wird mit den Datenbytes (Byte 5…Byte7) ein interner Pullup-
Widerstand aktiviert . Ein gesetztes Bit aktiviert den Pullup für eine I/O-Leitung. Ein gelöschtes Bit deaktiviert den Pullup für die zugehörige I/O-Leitung.
Die Bits-Nummern der Datenbytes sind den Leitungsnummern der Portleitungen zugeordnet.
Ein gesetztes Bit2 in Byte4 eines Requests setzt also z.B. die Datenrichtung der Portleitung D2 auf Ausgang.
Response: 15 Bytes

Hinweise zur Verwendung des Protokolls
Zum Datenaustausch wird zunächst ein Request-Datenblock (Byte.array) mit einer Länge von
genau sieben Bytes definiert, der mit ALLEN Informationen belegt sein muss, die zum Gerät
geschickt werden sollen. Dann überträgt man diesen Block über die Schnittstelle.
Anschliessend müssen die 15 Antwort-Bytes von der Schnittstelle eingelesen und nach Bedarf
ausgewertet werden. Ein neuer Reqest-Block sollte erst dann ausgegeben werden, wenn alle
15 Bytes als Antwort auf den vorhergehenden Request empfangen wurden.

Code:
OpenSerialPort(6, "COM6", 57600, #PB_SerialPort_NoParity, 8, 1, #PB_SerialPort_NoHandshake, 1024, 1024)

Dim Byte.s(6)
Byte(0)="000001"
Byte(1)="000001"
Byte(2)="000001"
Byte(3)="000001"
Byte(4)="111111"
Byte(5)="111111"
Byte(6)="111111"

WriteSerialPortData(6, @Byte(), 6)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Digitale PIO Karte ansprechen.
BeitragVerfasst: 01.04.2011 18:32 
Offline

Registriert: 15.10.2004 17:42
Du hast ja auch ein String - Array definiert.
Versuch mal sowas :

Code:
Dim myarray.b(6)
myarray(0) = %000001
usw.


Manchmal mögen solche externen Karten keine
Strings.

_________________
PB 5.60


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Digitale PIO Karte ansprechen.
BeitragVerfasst: 01.04.2011 18:41 
Offline

Registriert: 06.12.2006 02:29
Wohnort: Bayern
Dank @ H.Brill , geht aber leider auch nicht.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Digitale PIO Karte ansprechen.
BeitragVerfasst: 01.04.2011 19:38 
Offline

Registriert: 15.10.2004 17:42
1 Byte hat ja bekanntlich 8 Bit.
Fülle mal das Byte ganz auf :

Code:
Dim myarray.b(6)
myarray(0) = %00000100


Und mal nach dem Senden ein Delay(50)
reinmachen, da der prozessor ja auch ein paar
Takte braucht.

und daran denken, daß du von rechts zählen
mußt. Im obigen Beispiel ist dann Bit 2 (0-7)
gesetzt.

Wie ich sehe, ist das ganze mit einem AVR
Controller aufgebaut. Müßte mal am Wochenende
mein MyAVR - Board rausholen und mal was probieren.

PS: 49 € ist aber ganz schön teuer für so ein Board
mit USB + TTL Wandler, AVR, und ein paar Kleinigkeiten.

_________________
PB 5.60


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Digitale PIO Karte ansprechen.
BeitragVerfasst: 01.04.2011 20:37 
Offline

Registriert: 06.12.2006 02:29
Wohnort: Bayern
Dank @ H.Brill , geht aber leider auch wieder nicht.

währe dir sehr dankbar wenn du mir weiter helfen könntest.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Digitale PIO Karte ansprechen.
BeitragVerfasst: 02.04.2011 00:08 
Offline
Admin
Benutzeravatar

Registriert: 29.08.2004 11:27
Vielleicht braucht der AVR ja auch HEX-Werte.

Code:
OpenSerialPort(6, "COM6", 57600, #PB_SerialPort_NoParity, 8, 1, #PB_SerialPort_NoHandshake, 1024, 1024)

Dim A_Byte.s(7); Es sind doch sieben Bytes oder?
A_Byte(0)=Hex(%000001)
A_Byte(1)=Hex(%000001)
A_Byte(2)=Hex(%000001)
A_Byte(3)=Hex(%000001)
A_Byte(4)=Hex(%111111)
A_Byte(5)=Hex(%111111)
A_Byte(6)=Hex(%111111)

;Testausgabe in Hex
For i= 0 To 6
  Debug A_Byte(i)
Next

WriteSerialPortData(6, @Byte(), 7)


Leider kann ich das nicht testen, obwohl ich profilab habe, worin diese Hardware
angesteuert werden kann.


Gruß, Falko

_________________
Bild
Win10 Pro 64-Bit, PB_5.4,GFA-WinDOS, Powerbasic9.05-Windows, NSBasic/CE, NSBasic/Desktop, NSBasic4APP, EmergenceBasic


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Digitale PIO Karte ansprechen.
BeitragVerfasst: 02.04.2011 07:32 
Offline

Registriert: 15.10.2004 17:42
Ist vielleicht ein Quellcode für VB
dabei ? Da könnte man mal schauen.

Oder auch den Code (Bascom, ASM oder C)
für den Atmel. Dann könnte man auch sehen,
was wie dem Atmel übergeben wird.

Ist halt immer ewtas schwierig, wenn man die
Hardware nicht selber hat.

_________________
PB 5.60


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Digitale PIO Karte ansprechen.
BeitragVerfasst: 02.04.2011 11:16 
Offline

Registriert: 06.12.2006 02:29
Wohnort: Bayern
Ist leider kein Quellcode dabei.

Gruß tinux


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Digitale PIO Karte ansprechen.
BeitragVerfasst: 02.04.2011 11:37 
Offline

Registriert: 24.08.2005 19:52
Wohnort: Stadtallendorf
Und wie sieht dein Quellcode aus?

z.B. so:
es müssen sieben Bytes gesendet werden!

Code:

OpenSerialPort(6, "COM6", 57600, #PB_SerialPort_NoParity, 8, 1, #PB_SerialPort_NoHandshake, 1024, 1024)

Dim Byte.a(6)
Byte(0)=%00000001
Byte(1)=%00000001
Byte(2)=%00000001
Byte(3)=%00000001
Byte(4)=%00111111
Byte(5)=%00111111
Byte(6)=%00111111

WriteSerialPortData(6, @Byte(), 7)


_________________
PB v5.62 x86/x64
Windows 10 Pro 64bit


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Digitale PIO Karte ansprechen.
BeitragVerfasst: 02.04.2011 12:11 
Offline

Registriert: 06.12.2006 02:29
Wohnort: Bayern
Danke, geht auch nicht.

was ich mich frage, ist ob die 7 Bytes überhaupt so angenommen.

Code:
OpenSerialPort(6, "COM6", 57600, #PB_SerialPort_NoParity, 8, 1, #PB_SerialPort_NoHandshake, 1024, 1024)

Dim Byte.b(6)
Byte(0)=%00000001
Byte(1)=%00111111
Byte(2)=%00111111
Byte(3)=%00111111
Byte(4)=%00111111
Byte(5)=%00111111
Byte(6)=%00111111

;WriteSerialPortData(6, @Byte(), 7)

For i=0 To 6
  Debug @Byte(i)
Next


Gruß, tinux


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 16 Beiträge ]  Gehe zu Seite 1, 2  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye