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); } }
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
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
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
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
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
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
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
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
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
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
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 ??
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.