ADC + IOC = ???
ADC + IOC = ???
IOC - interupt on change
ADC - analog to digital conversion
IOC jämför senaste värdet med innevarande värde och slår på GPIF om ändring skett.
Är detta begränsat till hög/låg, eller reagerar IOC på alla, någorlunda ordentliga, ändringar?
Det vill säga - kan man dra igång en ADC på detta vis?
Alltså genom att ändra spänningen över in analog ingång.
Ändra tillräckligt för att det, vid eventuellt utförd ADC, blir ett nytt värde ut.
ADIE/ADIF talar endast om att någon ADC är färdig - den måste fortfarande ha startats av "manuellt" påslagen ADON, korrekt?
ADC - analog to digital conversion
IOC jämför senaste värdet med innevarande värde och slår på GPIF om ändring skett.
Är detta begränsat till hög/låg, eller reagerar IOC på alla, någorlunda ordentliga, ändringar?
Det vill säga - kan man dra igång en ADC på detta vis?
Alltså genom att ändra spänningen över in analog ingång.
Ändra tillräckligt för att det, vid eventuellt utförd ADC, blir ett nytt värde ut.
ADIE/ADIF talar endast om att någon ADC är färdig - den måste fortfarande ha startats av "manuellt" påslagen ADON, korrekt?
Re: ADC + IOC = ???
IOC är för digitala signaler.
Du vill alltså enbart köra en ADC omvandling *om* en
omvandling skulle ge ett annat värde än förra gången?
Hur skulle man kunna veta det utan en ny omvandling?
Dessutom är det så att det är helt normalt att två omvandlingar
efter varandra, även med samma inspänning, ger olika värde
på den digitala sidan. Det är nästan helt omöjligt att inte få
ändringar i lägsta biten eller bitarna.
Får att få det du önskar skulle man behöva en DAC som matar
tillbaka senaste värdet till en "window-comparator" som skulle
kunna trigga en ny omvandling. Det har jag inte sett att någon
"normal" processor har.
Lösningen är nog att köra ADCn med ett lämpligt intervall och
sedan titta på värdet och ta ett beslut i koden utifrån den.
Du vill alltså enbart köra en ADC omvandling *om* en
omvandling skulle ge ett annat värde än förra gången?
Hur skulle man kunna veta det utan en ny omvandling?
Dessutom är det så att det är helt normalt att två omvandlingar
efter varandra, även med samma inspänning, ger olika värde
på den digitala sidan. Det är nästan helt omöjligt att inte få
ändringar i lägsta biten eller bitarna.
Får att få det du önskar skulle man behöva en DAC som matar
tillbaka senaste värdet till en "window-comparator" som skulle
kunna trigga en ny omvandling. Det har jag inte sett att någon
"normal" processor har.
Lösningen är nog att köra ADCn med ett lämpligt intervall och
sedan titta på värdet och ta ett beslut i koden utifrån den.
Re: ADC + IOC = ???
Japp, det är så jag oxå ser det, att IOC endast reagerar på hög/låg.
Och som du ungefär säger - två DAC mot en komparator.
Eller en separat GPIO som slås till manuellt när det är lämpligt kolla vad olika justeringar står på härnäst. Vilket inte är en ultimat lösning.
Hursomhelst var det värt dubbelkolla med andra.
Tack för hjälpen.
Och som du ungefär säger - två DAC mot en komparator.
Eller en separat GPIO som slås till manuellt när det är lämpligt kolla vad olika justeringar står på härnäst. Vilket inte är en ultimat lösning.
Hursomhelst var det värt dubbelkolla med andra.
Tack för hjälpen.
- lillahuset
- Gått bort
- Inlägg: 13969
- Blev medlem: 3 juli 2008, 08:13:14
- Ort: Norrköping
Re: ADC + IOC = ???
Finns att läsa i RM0008 11.3.7, referencemanual för STM32F10x. Om man nu kan tänka sig att använda en sådan.The AWD analog watchdog status bit is set if the analog voltage converted by the ADC is
below a low threshold or above a high threshold. These thresholds are programmed in the
12 least significant bits of the ADC_HTR and ADC_LTR 16-bit registers. An interrupt can be
enabled by using the AWDIE bit in the ADC_CR1 register.

Re: ADC + IOC = ???
Ja, jo, men det är ju en lite annan sak än vad som efterfrågades.
Det är ju samma sak som att köra ADCn repetitivt och kolla värdet
mot föregående värde i en ADC-ISR. Och man måste, så vitt jag
förstår, uppdatera värderna i ADC_HTR och ADC_LTR efter de
omvandlingarna då värdet har legat "utanför ramerna", om det
inte är fasta gränser som man jämför med hela tiden.
Jag antar att ADCn är i något slag "free-running mode" i detta fall.
Det är ju samma sak som att köra ADCn repetitivt och kolla värdet
mot föregående värde i en ADC-ISR. Och man måste, så vitt jag
förstår, uppdatera värderna i ADC_HTR och ADC_LTR efter de
omvandlingarna då värdet har legat "utanför ramerna", om det
inte är fasta gränser som man jämför med hela tiden.
Jag antar att ADCn är i något slag "free-running mode" i detta fall.
- lillahuset
- Gått bort
- Inlägg: 13969
- Blev medlem: 3 juli 2008, 08:13:14
- Ort: Norrköping
Re: ADC + IOC = ???
Ja du behöver ju inte läsa av ADCn för varje sample. Jag tycker det låter hyfsat som det som efterfrågades om inte baktanken var att spara ström genom att slå av matningen till ADCn. Men jag kan ha missuppfattat. 

- lillahuset
- Gått bort
- Inlägg: 13969
- Blev medlem: 3 juli 2008, 08:13:14
- Ort: Norrköping