www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PSOC+Capsense+CSD -> Hilfe!


Autor: christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

kennt sich jemand mit dem PSOC Capsense Kapazitätsmessungen,speziell mit
dem CSD-Verfahren aus.Versuche vergeblich auf einem Testboard 
(CY8C21534)
CSD zu implementieren.Dazu plaziere ich im PSOC Designer CSD und TX8 
User
Module.Daten versuche ich über serielle Schnittstelle mittels einem 
Multichart Tool zu loggen.Aber es kommt nichts an.Den Source Code 
hierfür
ist unten aufgelistet.(Wenn nötig könnte ich auch Projekt posten)

Hoffe es gibt jemanden mit PSOC-Erfahrung in diesem Forum.Ist ja leider
nicht der meistgenuzte Controller hier.Wäre über jede Hilfe echt 
dankbar.

Mfg
Christian

hier Code:
###################
#include <m8c.h>        // part specific constants and macros
#include "PSoCAPI.h"    // PSoC API definitions for all User Modules
#include "TX8.h"

void main()
{
  M8C_EnableGInt;

  CSD_Start();
  CSD_SetDefaultFingerThresholds();
  CSD_InitializeBaselines();
  TX8_1_Start(TX8_1_PARITY_NONE);

    while (1)
{
    CSD_ScanAllSensors();
    CSD_UpdateAllBaselines();

    TX8_1_PutCRLF();
    TX8_1_Write((char *) (CSD_waSnsResult), CSD_TotalSensorCount*2);
    TX8_1_Write((char *) (CSD_waSnsBaseline), CSD_TotalSensorCount*2);
    TX8_1_Write((char *) (CSD_waSnsDiff), CSD_TotalSensorCount*2);

    TX8_1_PutChar(0);
    TX8_1_PutChar((CHAR)0xFF);
    TX8_1_PutChar((CHAR)0xFF);
  }
}

Autor: PSoC_Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, die Frage ist, wird hier ein UART User Module benutzt, sieht so aus.
Wie ist dann die UART Clock im PSoC Designer eingestellt ? Einfacher ist 
es eine Software UART zu benutzen, dazu gibt es ein AppNote AN2397 zum 
Download bei Cypress mit dem erforderlichen Code TX8.asm.

MfG Insider

Autor: christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das C Programm stammt doch aus der AN2397.Verbindung zum PC über 
externen RS232 level translator auf COM Port wie im AN2397 
vorgeschlagen.
Benutzes User Modul im PSOC Designer ist das TX8 Modul,wenn das gemeint 
ist.Für ein CSR Testboard konnte ich so Daten empfangen.Wollte jetzt 
einfach CSR auf CSD umwandeln.
Wozu die TX8.asm? Ich dachte die wird durch "Generate Application" 
selber
erstellt.
Hast du vielleicht Informationen bzgl.der settings (z.b.Pin,Clocks...)
meine seettings:
global:
VC1=SYSClk/N =1
VC2=VC1/N =1
VC3Source =SysClk/1
VC3Divider =2
TX8:
Clock =VC3
Clocksync=SynctoSysClk
...

Mfg
Christian

Autor: PSoC_Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, das CSD Modul benutzt doch die VC1,VC2, die kann man also nicht so 
einfach ändern. Damit auch kein Digital Block benutzt werden muss wird 
der Software UART benutzt. Dazu muss auch nicht im Designer ein UART UM 
plaziert werden, der vierte Block bleibt also leer ! Deswegen TX8.asm 
einbinden, das Pin togglen für die RS232 wird alles in Software gemacht, 
mit 115 kBaud, daher wird auch kein Clock benötigt. Das einzige: den 
Ausgangspin, TX8 auf Drive, Strong einstellen. TX8.asm sollte bei der 
AppNote dabei sein.

Gruß Insider

Autor: christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gruss,
habe mir aus der AN2397 die du meintest mal das Projekt in PSOC-Designer 
geladen.Das einzige UserModul das plaziert ist,ist das CSD UM,mit Port 
TX8
auf Drive:Strong.TX8 liegt hier auf P1[0].Bräuchte aber TX8 auf P1[2].
Das lässt sich so aber nicht ändern.Das heißt ich müsste den Ausgang des 
CSD UM auf einen anderen Pin des Ausgangsbus legen.Ohne noch ein UM(TX8)
zu plazieren bleibt aber der TX8 auf den falschen Port.Kann das geändert 
werden?

Mfg
Christian

Autor: PSoC_Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, dann schau mal in T8.inc:
TX8_Port:      equ   0x1

TX8_PortDR:    equ   PRT1DR

TX8_PinMask:   equ   0x1

dort ist der Port Pin P1.0 definiert.

Du brauchst also:

TX8_PinMask: equ 0x4  ; P1.2

siehe Technical Reference Manual. Und noch im PSoC Designer den P1.2 auf 
Strong und P1.0 zurück setzen. Dann sollte es funzen...

Gruß Insider

Autor: PSoC_Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
muss natürlich heissen: TX8.inc

Autor: christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für den Tip.Werde es mal probieren.Aber mal was anderes.
Habe mal Takt mit Oszi gemessen,direkt am RS232 Stecker.Komme auf 
ungefähr
125kHz-Signal.Ist das nicht ein bissl viel?Das multichartprogramm
über COM2 Schnittstelle läuft eigentlich mit 19200 Baud.Falls das
Signal falsch ist wie könnte ich die Frequenz ändern?

Mfg
Christian

Autor: PSoC_Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

geht doch: der Software UART macht 115200 Baud, unabhängig vom CPU 
Clock, das hast Du auch gemessen. Das Multichart Tool kann diese 
Baudrate, siehe Einstellung, Figure 4, Settings Dialog, aus der AppNote.

Gruß Insider

Autor: christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,danke an insider.Funktioniert mit der TX8.inc.Was mich wundert ist
das es trotzdem funktioniert.TX liegt ja auf dem richtigen Ausgang,aber
man sieht aber im Blockschaltplan(im Device Editor) keine Verbindung der
UM zum Ausgangsbus.Port1.2(TX)ist nur über den GlobalIn-Bus 
verbunden.Komisch.Aber hauptsache es funtzt.

Mfg
Christian

Autor: PSoC_Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, ja ist doch klar: dies ist kein Usermodul, sondern einfach Software, 
die direkt auf einen Port-Pin zugreift. Daher sieht man im Device Editor 
keine Verbindung von irgendeinem Block zu diesem Pin. Der vierte Block 
müsste ja bei Dir leer sein und Du kannst ihn für was anderes benutzen, 
z.B. 8-Bit Timer.

Aus Deiner ursprünglichen Software wird dies auch nicht gebraucht, also 
löschen:

  TX8_1_Start(TX8_1_PARITY_NONE);

Viel Spass bei CapSense !
Gruß Insider

Autor: christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
ja jetzt versteh ich es auch.Ist nur ein SW-modul die im TX8.asm als 
Funktionen hinterlegt ist.
Aber: Hab zwar ne Verbindung aufbauen können auf COM2 Port,aber wenn
ich im CSDWizard ne neue Pin Belegung vornehmen will
(also auf mein Board zugeschnitten)bekomm ich ne Meldung :
ERROR:tx8.asm undefined symbol Port_1_Data_Shade
Hab nachgeschaut,kommt in der TX8.inc vor:
...
  or   [Port_1_Data_SHADE], TX8_PinMask
  mov  A, [Port_1_Data_SHADE]
  mov  reg[TX8_PortDR], A
...
hängt also anscheinend mit der Änderung des Port Pin 1.2 (in TX8.inc)
zusammen (TX8_PinMask: equ 0x4  ; P1.2),was ich aber nicht verstehe,
da ich nur Pins mit P(0.X)und P(2.X)(im Wizard)verwendet habe und P1.2 
ist auch als Grün markiert also gilt als reserviert.

Hoffe das mir nochmal helfen kannst.(weiss das man als Newbie nervt )
;-)
Gruß
Christian

Autor: PSoC_Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

Port_1_Data_SHADE ist bei mir in PSocconfig.asm im SubDirectory [lib] 
definiert, ich kann auch das AppNote Beispiel linken. Benutzt Du den 
Menupunkt "Generate Application" nach jeder Änderung im Device Editor ??

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.