Tips hur man kan debugga ADC genom två I/O:s
- Magnus_K
- EF Sponsor
- Inlägg: 5854
- Blev medlem: 4 januari 2010, 17:53:25
- Ort: Skogen mellan Uppsala-Gävle
Tips hur man kan debugga ADC genom två I/O:s
Hej hej,
Jag har dragit in en potentiometer till en PIC16F690 och skulle vilja läsa ut mitt 8-bitars ADC-värde genom de enda två I/O jag har kvar. Tyvärr är det inga I/O:s som har varken DAC eller någon seriell kommunikation.
Har ni någon smart idé hur jag kan få ur mitt värde ur dessa två portar?
Visning genom multimeter eller oscilloskop spelar ingen roll. Dock kan inte mitt skop debugga protokoll, så visningen kanske blir lite svårt visningsmässigt.
Jag har dragit in en potentiometer till en PIC16F690 och skulle vilja läsa ut mitt 8-bitars ADC-värde genom de enda två I/O jag har kvar. Tyvärr är det inga I/O:s som har varken DAC eller någon seriell kommunikation.
Har ni någon smart idé hur jag kan få ur mitt värde ur dessa två portar?
Visning genom multimeter eller oscilloskop spelar ingen roll. Dock kan inte mitt skop debugga protokoll, så visningen kanske blir lite svårt visningsmässigt.
Re: Tips hur man kan debugga ADC genom två I/O:s
Det enda tänkbara är väll en PWM signal som filtreras.
D.v.s för att "visa" värdet på en multimeter. Till ett oscilloskop
kan du ju skicka ett pulståg och räkna nollor och ettor direkt
på skärmen. Inte kul, men det går...
D.v.s för att "visa" värdet på en multimeter. Till ett oscilloskop
kan du ju skicka ett pulståg och räkna nollor och ettor direkt
på skärmen. Inte kul, men det går...
- lillahuset
- Gått bort
- Inlägg: 13969
- Blev medlem: 3 juli 2008, 08:13:14
- Ort: Norrköping
Re: Tips hur man kan debugga ADC genom två I/O:s
sodjan: Det är bara 8 bittar så det är ju en baggis. Speciellt om man har en klocka på den andra pinnen. Annars kan man ju bitbanga en UART om man har någorlunda kontroll över timingen.
- Magnus_K
- EF Sponsor
- Inlägg: 5854
- Blev medlem: 4 januari 2010, 17:53:25
- Ort: Skogen mellan Uppsala-Gävle
Re: Tips hur man kan debugga ADC genom två I/O:s
Hmm... skulle man kunna ändra frekvensen på något sätt? Så tex 0-255 blir 100-25500Hz?
Skulle vilja få värdet enkelt presenterat. Skopet räknar frekvensen på signalen och visar på displayen.
Nej, det blir nog för komplicerad kod...
Får ta och "klocka" ut registret på en pinne och se vad det blir av det. Är dock ganska säker att det tar för lång tid att dekoda.
Skulle vilja få värdet enkelt presenterat. Skopet räknar frekvensen på signalen och visar på displayen.
Nej, det blir nog för komplicerad kod...
Får ta och "klocka" ut registret på en pinne och se vad det blir av det. Är dock ganska säker att det tar för lång tid att dekoda.
- lillahuset
- Gått bort
- Inlägg: 13969
- Blev medlem: 3 juli 2008, 08:13:14
- Ort: Norrköping
Re: Tips hur man kan debugga ADC genom två I/O:s
Jag vet ju inte vad du har för begränsningar i övrigt men att omvandla värdet till ASCII och dumpa ut det i seriell form är trivialt om du inte har något annat som måste snurra och stör timingen.
- Magnus_K
- EF Sponsor
- Inlägg: 5854
- Blev medlem: 4 januari 2010, 17:53:25
- Ort: Skogen mellan Uppsala-Gävle
Re: Tips hur man kan debugga ADC genom två I/O:s
Det här är enbart för att testa och "kalibrera" systemet enligt pot:en, så kan om nödvändigt skjuta ner det mesta för att kika på det här.
Att dumpa ut det i ASCII i seriell form är säkert trivialt, för dig... Vad ska ta emot den seriella datan?
Att dumpa ut det i ASCII i seriell form är säkert trivialt, för dig... Vad ska ta emot den seriella datan?
Re: Tips hur man kan debugga ADC genom två I/O:s
Kanske det rent av finns nåt färdigt soft serial bibliotek, om man litar på andras kod?lillahuset skrev:Annars kan man ju bitbanga en UART om man har någorlunda kontroll över timingen.
Skicka datan i "läsbar" form till en terminal. Eller ja varför inte, glöm det andra för en stund och visa det på din display?
- Magnus_K
- EF Sponsor
- Inlägg: 5854
- Blev medlem: 4 januari 2010, 17:53:25
- Ort: Skogen mellan Uppsala-Gävle
Re: Tips hur man kan debugga ADC genom två I/O:s
Tänkte på det också men frågade här för att det kanske var något annat sätt (med hjälp av dom två utgångarna).
Få igång visning av dessa siffror på min display tar för lång tid att få till. Då mäter jag med multimeter mot IC-benet och räknar om vad det bör bli.
Tack för tipsen!
Få igång visning av dessa siffror på min display tar för lång tid att få till. Då mäter jag med multimeter mot IC-benet och räknar om vad det bör bli.
Tack för tipsen!
- lillahuset
- Gått bort
- Inlägg: 13969
- Blev medlem: 3 juli 2008, 08:13:14
- Ort: Norrköping
Re: Tips hur man kan debugga ADC genom två I/O:s
Ta emot på valfri serieport, gärna på PC.
Vad har du för klockfrekvens?
Kan du göra ett avbrott typ en gång per sekund när det inte behöver hända något annat?
Skriver du programmet i C eller assembler.
Vi ska nog lösa det här så har du ett verktyg till i din verktygslåda i framtiden.
"Learning by doing".
Edit: Det här kan du använda till allt möjligt. Det första jag brukar försöka få till i nya projekt är en UART, hård eller mjuk, som jag kan använda för olika debugmeddelanden.
Vad har du för klockfrekvens?
Kan du göra ett avbrott typ en gång per sekund när det inte behöver hända något annat?
Skriver du programmet i C eller assembler.
Vi ska nog lösa det här så har du ett verktyg till i din verktygslåda i framtiden.

"Learning by doing".
Edit: Det här kan du använda till allt möjligt. Det första jag brukar försöka få till i nya projekt är en UART, hård eller mjuk, som jag kan använda för olika debugmeddelanden.
- Magnus_K
- EF Sponsor
- Inlägg: 5854
- Blev medlem: 4 januari 2010, 17:53:25
- Ort: Skogen mellan Uppsala-Gävle
Re: Tips hur man kan debugga ADC genom två I/O:s
Jag har tyvärr ingen serieport på datorn och inget direkt "smidigt" heller som jag kan komma på. Däremot multimeter och skopet som jag nästan delar säng med.lillahuset skrev:Ta emot på valfri serieport, gärna på PC.
Kanske skulle handla en serie<->USB adapter?
Klockfrekvens, 8MHz
Avbrott 1 gång per sek, helt ok
Programmeringsspråk, C
Re: Tips hur man kan debugga ADC genom två I/O:s
...eller två?Kanske skulle handla en serie<->USB adapter?

- lillahuset
- Gått bort
- Inlägg: 13969
- Blev medlem: 3 juli 2008, 08:13:14
- Ort: Norrköping
Re: Tips hur man kan debugga ADC genom två I/O:s
Två är ett bra tips.
Jag tror jag har köpt minst tjugo stycken genom åren. Gissningsvis kan jag skrapa ihop sju stycken, resten har försvunnit till kunder osv. Men det är ju ok när de försvinner till betalande kunder.
Edit: Var noga med 3,3V vs 5V.

Jag tror jag har köpt minst tjugo stycken genom åren. Gissningsvis kan jag skrapa ihop sju stycken, resten har försvunnit till kunder osv. Men det är ju ok när de försvinner till betalande kunder.

Edit: Var noga med 3,3V vs 5V.
- Magnus_K
- EF Sponsor
- Inlägg: 5854
- Blev medlem: 4 januari 2010, 17:53:25
- Ort: Skogen mellan Uppsala-Gävle
Re: Tips hur man kan debugga ADC genom två I/O:s
Hehe ja. Har ni någon från eBay, Swech, Electrokit eller annat som ni kan rekommendera så får ni gärna länka.
Vad köra man med för program i datorn då? Obs. Kan säkert googla svaret men nu har jag er ändå på tråden.
Ska ut i verkstaden och åtgärda en liten tabbe innan jag återgår till det här. Blev lite tok vid montering av pot:en så det går fel ben till MCU:n.
Inte konstigt det blir 5V på ingången hela tiden...
Vad köra man med för program i datorn då? Obs. Kan säkert googla svaret men nu har jag er ändå på tråden.
Ska ut i verkstaden och åtgärda en liten tabbe innan jag återgår till det här. Blev lite tok vid montering av pot:en så det går fel ben till MCU:n.
Inte konstigt det blir 5V på ingången hela tiden...
- lillahuset
- Gått bort
- Inlägg: 13969
- Blev medlem: 3 juli 2008, 08:13:14
- Ort: Norrköping
Re: Tips hur man kan debugga ADC genom två I/O:s
Jag rekommenderar TeraTerm eftersom du förmodligen kör Windows. Hyperterminal har jag säkert lagt ett halvår på felsökning med så det kan jag omöjligt rekommendera.
Här har du några (otestade) funktioner för att bit-banga en UART. uartCalibrate kan du använda för att med oscilloskop kolla vad du får för baudrate. Justera UARTTXBITDELAY för att få en "normal" baudrate, 9600, 19200, 38400, 57600, 115200 med mindre än 2% fel. Jo 5% är nog tillräckligt bra. Observera att om du ändrar optimeringen kommer troligen timingen skita sig.
uartTxBit() sätter eller nollställer pinnen.
Lycka till!
Här har du några (otestade) funktioner för att bit-banga en UART. uartCalibrate kan du använda för att med oscilloskop kolla vad du får för baudrate. Justera UARTTXBITDELAY för att få en "normal" baudrate, 9600, 19200, 38400, 57600, 115200 med mindre än 2% fel. Jo 5% är nog tillräckligt bra. Observera att om du ändrar optimeringen kommer troligen timingen skita sig.
uartTxBit() sätter eller nollställer pinnen.
Lycka till!
Kod: Markera allt
void uartCalibrate(void)
{
uartTx('U');
} /* uartCalibrate */
void uartTx(char c)
{
int i;
/* send start bit */
uartTxBit(0);
uartTxBitDelay();
/* send character */
for (i = 0; i < 8; i++) {
if (0x01 & c) {
uartTxBit(1);
} else {
uartTxBit(0);
}
c >>= 1;
uartTxBitDelay();
}
/* send stop bit */
uartTxBit(1);
uartTxBitDelay();
} /* uartTx */
void uartTxBitDelay(void)
{
volatile int delay;
for (delay = 0; delay < UARTTXBITDELAY; delay++) {
}
} /* uartTxBitDelay */
- Magnus_K
- EF Sponsor
- Inlägg: 5854
- Blev medlem: 4 januari 2010, 17:53:25
- Ort: Skogen mellan Uppsala-Gävle
Re: Tips hur man kan debugga ADC genom två I/O:s
Vad roligt. Tack!
Ska bara inhandla en sån adapter, sen återkommer jag.
Ska bara inhandla en sån adapter, sen återkommer jag.