mirror of
https://github.com/Proxmark/proxmark3.git
synced 2025-02-24 07:34:40 +08:00
shorten em4x05 capture samples
add cap option for 4469 add sample size option for DoAcquisition so i can limit how many samples i want to collect. use with DoPartialAcquisition
This commit is contained in:
parent
893534d3b5
commit
a37228c8c2
4 changed files with 17 additions and 9 deletions
|
@ -1628,7 +1628,7 @@ void EM4xReadWord(uint8_t Address, uint32_t Pwd, uint8_t PwdMode) {
|
||||||
SendForward(fwd_bit_count);
|
SendForward(fwd_bit_count);
|
||||||
|
|
||||||
// Now do the acquisition
|
// Now do the acquisition
|
||||||
doT55x7Acquisition(6000);
|
DoPartialAcquisition(20, true, 5500);
|
||||||
|
|
||||||
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF); // field off
|
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF); // field off
|
||||||
LED_A_OFF();
|
LED_A_OFF();
|
||||||
|
@ -1656,10 +1656,10 @@ void EM4xWriteWord(uint32_t flag, uint32_t Data, uint32_t Pwd) {
|
||||||
SendForward(fwd_bit_count);
|
SendForward(fwd_bit_count);
|
||||||
|
|
||||||
//Wait for write to complete
|
//Wait for write to complete
|
||||||
SpinDelay(10);
|
//SpinDelay(10);
|
||||||
|
|
||||||
//Capture response if one exists
|
//Capture response if one exists
|
||||||
DoAcquisition_default(20, TRUE);
|
DoPartialAcquisition(20, true, 5500);
|
||||||
|
|
||||||
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF); // field off
|
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF); // field off
|
||||||
LED_A_OFF();
|
LED_A_OFF();
|
||||||
|
|
|
@ -119,11 +119,11 @@ void LFSetupFPGAForADC(int divisor, bool lf_field)
|
||||||
* @param silent - is true, now outputs are made. If false, dbprints the status
|
* @param silent - is true, now outputs are made. If false, dbprints the status
|
||||||
* @return the number of bits occupied by the samples.
|
* @return the number of bits occupied by the samples.
|
||||||
*/
|
*/
|
||||||
uint32_t DoAcquisition(uint8_t decimation, uint32_t bits_per_sample, bool averaging, int trigger_threshold, bool silent)
|
uint32_t DoAcquisition(uint8_t decimation, uint32_t bits_per_sample, bool averaging, int trigger_threshold, bool silent, int bufsize)
|
||||||
{
|
{
|
||||||
//.
|
//.
|
||||||
uint8_t *dest = BigBuf_get_addr();
|
uint8_t *dest = BigBuf_get_addr();
|
||||||
int bufsize = BigBuf_max_traceLen();
|
bufsize = (bufsize > 0 && bufsize < BigBuf_max_traceLen()) ? bufsize : BigBuf_max_traceLen();
|
||||||
|
|
||||||
//memset(dest, 0, bufsize); //creates issues with cmdread (marshmellow)
|
//memset(dest, 0, bufsize); //creates issues with cmdread (marshmellow)
|
||||||
|
|
||||||
|
@ -213,7 +213,7 @@ uint32_t DoAcquisition(uint8_t decimation, uint32_t bits_per_sample, bool averag
|
||||||
*/
|
*/
|
||||||
uint32_t DoAcquisition_default(int trigger_threshold, bool silent)
|
uint32_t DoAcquisition_default(int trigger_threshold, bool silent)
|
||||||
{
|
{
|
||||||
return DoAcquisition(1,8,0,trigger_threshold,silent);
|
return DoAcquisition(1,8,0,trigger_threshold,silent,0);
|
||||||
}
|
}
|
||||||
uint32_t DoAcquisition_config( bool silent)
|
uint32_t DoAcquisition_config( bool silent)
|
||||||
{
|
{
|
||||||
|
@ -221,7 +221,12 @@ uint32_t DoAcquisition_config( bool silent)
|
||||||
,config.bits_per_sample
|
,config.bits_per_sample
|
||||||
,config.averaging
|
,config.averaging
|
||||||
,config.trigger_threshold
|
,config.trigger_threshold
|
||||||
,silent);
|
,silent
|
||||||
|
,0);
|
||||||
|
}
|
||||||
|
|
||||||
|
uint32_t DoPartialAcquisition(int trigger_threshold, bool silent, int sample_size) {
|
||||||
|
return DoAcquisition(1,8,0,trigger_threshold,silent,sample_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t ReadLF(bool activeField, bool silent)
|
uint32_t ReadLF(bool activeField, bool silent)
|
||||||
|
|
|
@ -24,9 +24,11 @@ uint32_t SampleLF(bool silent);
|
||||||
* Initializes the FPGA for snoop-mode (field off), and acquires the samples.
|
* Initializes the FPGA for snoop-mode (field off), and acquires the samples.
|
||||||
* @return number of bits sampled
|
* @return number of bits sampled
|
||||||
**/
|
**/
|
||||||
|
|
||||||
uint32_t SnoopLF();
|
uint32_t SnoopLF();
|
||||||
|
|
||||||
|
// adds sample size to default options
|
||||||
|
uint32_t DoPartialAcquisition(int trigger_threshold, bool silent, int sample_size);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Does sample acquisition, ignoring the config values set in the sample_config.
|
* @brief Does sample acquisition, ignoring the config values set in the sample_config.
|
||||||
* This method is typically used by tag-specific readers who just wants to read the samples
|
* This method is typically used by tag-specific readers who just wants to read the samples
|
||||||
|
|
|
@ -823,8 +823,9 @@ void printEM4x05info(uint8_t chipType, uint8_t cap, uint16_t custCode, uint32_t
|
||||||
|
|
||||||
switch (cap) {
|
switch (cap) {
|
||||||
case 3: PrintAndLog(" Cap Type: %u | 330pF",cap); break;
|
case 3: PrintAndLog(" Cap Type: %u | 330pF",cap); break;
|
||||||
case 2: PrintAndLog(" Cap Type: %u | 210pF",cap); break;
|
case 2: PrintAndLog(" Cap Type: %u | %spF",cap, (chipType==2)? "75":"210"); break;
|
||||||
case 1: PrintAndLog(" Cap Type: %u | 250pF",cap); break;
|
case 1: PrintAndLog(" Cap Type: %u | 250pF",cap); break;
|
||||||
|
case 0: PrintAndLog(" Cap Type: %u | no resonant capacitor",cap); break;
|
||||||
default: PrintAndLog(" Cap Type: %u | unknown",cap); break;
|
default: PrintAndLog(" Cap Type: %u | unknown",cap); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue