PSoC4000S Sensing in OPEN state

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
NXTY_Takeuchi
Level 5
Level 5
Distributor - NEXTY (Japan)
25 likes received 10 likes received 10 solutions authored

Dear supporters,

I have a question about the PSoC4000S.

Is it okay to perform sensing in the OPEN state without connecting anything to the microcomputer terminal?

The purpose is to reserve the design.

Thanks,

Ayano Takeuchi

0 Likes
1 Solution
lock attach
Attachments are accessible only for community members.
MotooTanaka
Level 9
Level 9
Distributor - Marubun (Japan)
First comment on blog Beta tester First comment on KBA

Since I don't have a board with PSoC 4000S, I tried with TSoC (CY8C4146LQI-S433) board
with a wing from CY8CKIT-149 and a KitProg from CY8CKIT-059.
As far as I tested
When all 3 electrodes are connected, all was working OK.
When electrode A was disconnected, B and C worked OK.
When electrode B was disconnected, A and C worked OK.
When electrode C was disconnected, A and B worked OK.
So from the view point of a user, disconnecting an electrode
did not seem to affect other electrodes.

手元に PS4000S を搭載した基板がありませんでしたので、
トラ技の付録 TSoC 基板 (CY8C4146LQI-S433) を使用して実験を行ってみました。
電極には CY8CKIT-149 のウィングを使用し、
CY8CKIT-059 から外した KitProg でデバッグ・Tuner を動かしています。

IMG_5415.JPG

schematic

001-schematic.JPG

pins

002-pins.JPG

 

#include "project.h"

#define LED_ON  0u
#define LED_OFF 1u 

#define LED0_ON  1u
#define LED0_OFF 0u 

#define BUTTON1 0x01
#define BUTTON2 0x02
#define BUTTON3 0x04

uint8_t button = 0 ;

int main(void)
{
    CyGlobalIntEnable; /* Enable global interrupts. */
    
    EZI2C_Start() ;                      // <----
    EZI2C_EzI2CSetBuffer1(               // <----
        sizeof(CapSense_dsRam),          // <----
        sizeof(CapSense_dsRam),          // <----
        (uint8_t *)&(CapSense_dsRam)) ;  // <----

    CapSense_Start() ;
    CapSense_ScanAllWidgets() ;

    for(;;) {
        if (CapSense_NOT_BUSY == CapSense_IsBusy()) {
            button = 0 ;
            CapSense_ProcessAllWidgets() ;
            CapSense_RunTuner() ; // <------
            if (CapSense_IsSensorActive(CapSense_BUTTON0_WDGT_ID, CapSense_BUTTON0_SNS0_ID)) {
                button |= BUTTON1 ;
                LED1_Write(LED_ON) ;
            } else {
                LED1_Write(LED_OFF) ;
            }
            if (CapSense_IsSensorActive(CapSense_BUTTON0_WDGT_ID, CapSense_BUTTON0_SNS1_ID)) {
                LED2_Write(LED_ON) ;
                button |= BUTTON2 ;
            } else {
                LED2_Write(LED_OFF) ;
            }
            if (CapSense_IsSensorActive(CapSense_BUTTON0_WDGT_ID, CapSense_BUTTON0_SNS2_ID)) {
                button |= BUTTON3 ;
                LED3_Write(LED_ON) ;
            } else {
                LED3_Write(LED_OFF) ;
            }
            if (button) {
                LED0_Write(LED0_ON) ;
            } else {
                LED0_Write(LED0_OFF) ;
            }
            CapSense_ScanAllWidgets() ;
        }
    }
}

 

 

3つの電極を A, B, C とした場合。

3極接続:動作 OK

2極接続:
A 切断: B, C 動作 OK
B 切断: A, C 動作 OK
C 切断: A, B 動作 OK

ということで、動作としては、ある電極を外しても問題ないようです。
※ 実際は基板上の切断面とGNDが電極として動作しているのかも知れませんが
 その部分に直接触れない限り影響はないのではないかと思います。

moto

 

View solution in original post

4 Replies
MotooTanaka
Level 9
Level 9
Distributor - Marubun (Japan)
First comment on blog Beta tester First comment on KBA

Hi,

According to the Datasheet PSoC 4000 Family PSoC 4 Architecture Technical Reference Manual (TRM)
Document No. 001-89309 Rev.*D (may be mine is old))

Setting the pin to High-Impedance Analog seems to be recommended for unused/unconnected pin.

001-H_Z_Analog.JPG

moto

0 Likes
NXTY_Takeuchi
Level 5
Level 5
Distributor - NEXTY (Japan)
25 likes received 10 likes received 10 solutions authored

すみません、質問が悪かったです。

ピンの先にセンサーが接続されていない状態(ボードには接続されている)Capsenseのスキャンを行った場合懸念されることはありますでしょうか?

 

Sorry, my question was bad.

Is there anything to worry about when Capsense scans without a sensor attached to the pin?

 

NXTY_Takeuchi_1-1671789106632.png

 

0 Likes
lock attach
Attachments are accessible only for community members.
MotooTanaka
Level 9
Level 9
Distributor - Marubun (Japan)
First comment on blog Beta tester First comment on KBA

Since I don't have a board with PSoC 4000S, I tried with TSoC (CY8C4146LQI-S433) board
with a wing from CY8CKIT-149 and a KitProg from CY8CKIT-059.
As far as I tested
When all 3 electrodes are connected, all was working OK.
When electrode A was disconnected, B and C worked OK.
When electrode B was disconnected, A and C worked OK.
When electrode C was disconnected, A and B worked OK.
So from the view point of a user, disconnecting an electrode
did not seem to affect other electrodes.

手元に PS4000S を搭載した基板がありませんでしたので、
トラ技の付録 TSoC 基板 (CY8C4146LQI-S433) を使用して実験を行ってみました。
電極には CY8CKIT-149 のウィングを使用し、
CY8CKIT-059 から外した KitProg でデバッグ・Tuner を動かしています。

IMG_5415.JPG

schematic

001-schematic.JPG

pins

002-pins.JPG

 

#include "project.h"

#define LED_ON  0u
#define LED_OFF 1u 

#define LED0_ON  1u
#define LED0_OFF 0u 

#define BUTTON1 0x01
#define BUTTON2 0x02
#define BUTTON3 0x04

uint8_t button = 0 ;

int main(void)
{
    CyGlobalIntEnable; /* Enable global interrupts. */
    
    EZI2C_Start() ;                      // <----
    EZI2C_EzI2CSetBuffer1(               // <----
        sizeof(CapSense_dsRam),          // <----
        sizeof(CapSense_dsRam),          // <----
        (uint8_t *)&(CapSense_dsRam)) ;  // <----

    CapSense_Start() ;
    CapSense_ScanAllWidgets() ;

    for(;;) {
        if (CapSense_NOT_BUSY == CapSense_IsBusy()) {
            button = 0 ;
            CapSense_ProcessAllWidgets() ;
            CapSense_RunTuner() ; // <------
            if (CapSense_IsSensorActive(CapSense_BUTTON0_WDGT_ID, CapSense_BUTTON0_SNS0_ID)) {
                button |= BUTTON1 ;
                LED1_Write(LED_ON) ;
            } else {
                LED1_Write(LED_OFF) ;
            }
            if (CapSense_IsSensorActive(CapSense_BUTTON0_WDGT_ID, CapSense_BUTTON0_SNS1_ID)) {
                LED2_Write(LED_ON) ;
                button |= BUTTON2 ;
            } else {
                LED2_Write(LED_OFF) ;
            }
            if (CapSense_IsSensorActive(CapSense_BUTTON0_WDGT_ID, CapSense_BUTTON0_SNS2_ID)) {
                button |= BUTTON3 ;
                LED3_Write(LED_ON) ;
            } else {
                LED3_Write(LED_OFF) ;
            }
            if (button) {
                LED0_Write(LED0_ON) ;
            } else {
                LED0_Write(LED0_OFF) ;
            }
            CapSense_ScanAllWidgets() ;
        }
    }
}

 

 

3つの電極を A, B, C とした場合。

3極接続:動作 OK

2極接続:
A 切断: B, C 動作 OK
B 切断: A, C 動作 OK
C 切断: A, B 動作 OK

ということで、動作としては、ある電極を外しても問題ないようです。
※ 実際は基板上の切断面とGNDが電極として動作しているのかも知れませんが
 その部分に直接触れない限り影響はないのではないかと思います。

moto

 

NXTY_Takeuchi
Level 5
Level 5
Distributor - NEXTY (Japan)
25 likes received 10 likes received 10 solutions authored

Mr. Moto
Thank you for your reply.
I would like to confirm your answer myself.

 

ご回答いただきありがとうございます。
頂いたご回答を参考に私自身も実機にて確認してみたいと思います。

 

Thanks,
Ayano Takeuchi