EQADC driver starts responding.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@5382 35acf78f-673a-0410-8e92-d51de3d6d3f4
This commit is contained in:
parent
9528cd80ca
commit
91e1037e97
|
@ -619,10 +619,6 @@ void adc_lld_start(ADCDriver *adcp) {
|
|||
chDbgAssert((adcp->cfifo_channel != EDMA_ERROR) &&
|
||||
(adcp->rfifo_channel != EDMA_ERROR),
|
||||
"adc_lld_start(), #2", "channel cannot be allocated");
|
||||
|
||||
/* HW triggers setup.*/
|
||||
SIU.ETISR.R = adcp->config->etisr;
|
||||
SIU.ISEL3.R = adcp->config->isel3;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -660,6 +656,7 @@ void adc_lld_stop(ADCDriver *adcp) {
|
|||
* @notapi
|
||||
*/
|
||||
void adc_lld_start_conversion(ADCDriver *adcp) {
|
||||
uint32_t bitoff;
|
||||
|
||||
chDbgAssert(adcp->grpp->num_iterations >= adcp->depth,
|
||||
"adc_lld_start_conversion(), #1", "too many elements");
|
||||
|
@ -699,6 +696,15 @@ void adc_lld_start_conversion(ADCDriver *adcp) {
|
|||
EDMA_TCD_MODE_DREQ | EDMA_TCD_MODE_INT_END |
|
||||
((adcp->depth > 1) ? EDMA_TCD_MODE_INT_HALF: 0));/* mode.*/
|
||||
|
||||
|
||||
/* HW triggers setup.*/
|
||||
bitoff = 20 + ((uint32_t)adcp->fifo * 2);
|
||||
SIU.ETISR.R = (SIU.ETISR.R & ~(3U << bitoff)) |
|
||||
(adcp->grpp->tsel << bitoff);
|
||||
bitoff = (uint32_t)adcp->fifo * 5;
|
||||
SIU.ISEL3.R = (SIU.ISEL3.R & ~(31U << bitoff)) |
|
||||
(adcp->grpp->etsel << bitoff);
|
||||
|
||||
/* Starting DMA channels.*/
|
||||
edmaChannelStart(adcp->rfifo_channel);
|
||||
edmaChannelStart(adcp->cfifo_channel);
|
||||
|
|
|
@ -553,6 +553,14 @@ typedef struct {
|
|||
* @brief Initialization value for CFCR register.
|
||||
*/
|
||||
uint16_t cfcr;
|
||||
/**
|
||||
* @brief SIU ETISR.TSEL value for this queue;
|
||||
*/
|
||||
uint8_t tsel;
|
||||
/**
|
||||
* @brief SIU ISEL3.ETSEL value for this queue;
|
||||
*/
|
||||
uint8_t etsel;
|
||||
/**
|
||||
* @brief Number of command iterations stored in @p commands.
|
||||
* @note The total number of array elements must be @p num_channels *
|
||||
|
@ -574,14 +582,7 @@ typedef struct {
|
|||
* @note It could be empty on some architectures.
|
||||
*/
|
||||
typedef struct {
|
||||
/**
|
||||
* @brief ETISR register value for the session.
|
||||
*/
|
||||
uint32_t etisr;
|
||||
/**
|
||||
* @brief ISEL3 register value for the session.
|
||||
*/
|
||||
uint32_t isel3;
|
||||
uint32_t dummy;
|
||||
} ADCConfig;
|
||||
|
||||
/**
|
||||
|
|
|
@ -47,6 +47,10 @@
|
|||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/>
|
||||
</scannerConfigBuildInfo>
|
||||
</storageModule>
|
||||
<storageModule moduleId="refreshScope"/>
|
||||
<storageModule moduleId="refreshScope" versionNumber="2">
|
||||
<configuration configurationName="Default">
|
||||
<resource resourceType="PROJECT" workspacePath="/SPC563Mxx-ADC"/>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
|
||||
</cproject>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
# Compiler options here.
|
||||
ifeq ($(USE_OPT),)
|
||||
USE_OPT = -O1 -ggdb -fomit-frame-pointer -falign-functions=16
|
||||
USE_OPT = -O2 -ggdb -fomit-frame-pointer -falign-functions=16
|
||||
endif
|
||||
|
||||
# C specific options here (added to USE_OPT).
|
||||
|
|
|
@ -27,8 +27,6 @@
|
|||
//#define ADC_GRP2_NUM_CHANNELS 8
|
||||
//#define ADC_GRP2_BUF_DEPTH 16
|
||||
|
||||
static ADCConfig adccfg1 = {0, 0};
|
||||
|
||||
static adcsample_t samples1[ADC_GRP1_NUM_CHANNELS * ADC_GRP1_BUF_DEPTH];
|
||||
//static adcsample_t samples2[ADC_GRP2_NUM_CHANNELS * ADC_GRP2_BUF_DEPTH];
|
||||
|
||||
|
@ -236,8 +234,8 @@ static const ADCConversionGroup adcgrpcfg1 = {
|
|||
ADC_GRP1_NUM_CHANNELS,
|
||||
NULL,
|
||||
adcerrorcallback,
|
||||
// EQADC_CFCR_SSE | EQADC_CFCR_MODE_SWSS,
|
||||
EQADC_CFCR_MODE_SWCS,
|
||||
0, 0, /* ISEL, EISEL.*/
|
||||
ADC_GRP1_BUF_DEPTH,
|
||||
adcgrpcfg1_commands
|
||||
};
|
||||
|
@ -298,9 +296,9 @@ int main(void) {
|
|||
chThdCreateStatic(waThread1, sizeof(waThread1), NORMALPRIO, Thread1, NULL);
|
||||
|
||||
/*
|
||||
* Activates the ADC1 driver and the temperature sensor.
|
||||
* Activates the ADC1 driver (unit zero queue zero).
|
||||
*/
|
||||
adcStart(&ADCD1, &adccfg1);
|
||||
adcStart(&ADCD1, NULL);
|
||||
|
||||
/*
|
||||
* Linear conversion.
|
||||
|
|
Loading…
Reference in New Issue