- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
Solved! Go to Solution.
- Tags:
- psoc 4000s
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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 を動かしています。
schematic
pins
#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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
moto
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
すみません、質問が悪かったです。
ピンの先にセンサーが接続されていない状態(ボードには接続されている)でCapsenseのスキャンを行った場合懸念されることはありますでしょうか?
Sorry, my question was bad.
Is there anything to worry about when Capsense scans without a sensor attached to the pin?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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 を動かしています。
schematic
pins
#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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Mr. Moto
Thank you for your reply.
I would like to confirm your answer myself.
ご回答いただきありがとうございます。
頂いたご回答を参考に私自身も実機にて確認してみたいと思います。
Thanks,
Ayano Takeuchi