Announcements

Equip yourself to optimize PSoc4 MCUs for Evs at the EV Webinar. Click here to register.

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

PSoC™ 4 Forum Discussions

NXTY_Takeuchi
Level 3
Level 3
First like received 5 solutions authored 5 replies posted

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
MotooTanaka
Level 9
Level 9
First comment on KBA 1000 replies posted 750 replies posted

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
First comment on KBA 1000 replies posted 750 replies posted

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 3
Level 3
First like received 5 solutions authored 5 replies posted

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

ピンの先にセンサーが接続されていない状態(ボードには接続されている)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
MotooTanaka
Level 9
Level 9
First comment on KBA 1000 replies posted 750 replies posted

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 3
Level 3
First like received 5 solutions authored 5 replies posted

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

 

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

 

Thanks,
Ayano Takeuchi