µC som extern ADC/IO-expander

Övriga diskussioner relaterade till komponenter. Exempelvis radiorör, A/D, kontaktdon eller sensorer.
Användarvisningsbild
Klas-Kenny
Inlägg: 11292
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

µC som extern ADC/IO-expander

Inlägg av Klas-Kenny »

Kollar lite på en konstruktion som kommer att bli ganska så kostnadskänslig.

Behöver här ett 60-tal analogingångar, minst 12bit. Samtliga ingångar behöver samplas >100ggr/sekund. Mer vore trevligt, men inget krav (medelvärdesbildning är ju inte fel).

Historiskt så har vi löst liknande konstruktioner med en hög externa ADC'er typ MCP3208. Enkelt, men ganska dyrt att stoppa in typ 8st kretsar för >20:- stycket.
Nu finns det ju massor med billiga µC'er med gott om analogingångar.
Kollade lite snabbt på tex. NXP MKE02Z16VLC2R, alltså en liten ARM-processor med 16st 12b Analogingångar för under $1 i volym. Alltså typ en femtedel av vad motsvarande antal ingångar kostar med MCP3208.
Dessutom skulle dessa processorer då på egen hand kunna sampla så snabbt de hinner och medelvärdesbilda detta, utan att behöva störa huvudprocessorn. Sen hämtas bara mätningarna ut i de 100Hz som applikationen kräver.

Så långt är allt bra.
Men sen kommer ju problemet med att alla dessa processorer måste programmeras. :humm:
Måste alltså, även i fält, kunna programuppdatera dessa då typ fyra processorer. Bör lämpligen göras ifrån huvudprocessorn som gör allting annat, som även har kommunikation med omvärlden.

Skulle ju kunna ha en bootladdare i varje 'ADC-µC' som möjliggör uppdatering via tex. SPI (eller vad man nu väljer för kommunikation), sen kan samtliga processorer köra samma mjukvara så man måste ju inte hantera fyra separata.
Men känns ändå en smula krångligt. Deras FW måste ju då även bakas in i programvaran för huvudprocessorn.
Blir även lite egendomligt i produktion, att lägga på bootladdare på alla processorer. Behöva dra ut alla dessa till programmeringskontakter etc.


Vet inte riktigt vart jag är på väg med trådstarten längre, men tänkte väl mest höra om någon här har gjort någonting liknande och har någon input att komma med? :D
Användarvisningsbild
mrfrenzy
Co Admin
Inlägg: 14819
Blev medlem: 16 april 2006, 17:04:10

Re: µC som extern ADC/IO-expander

Inlägg av mrfrenzy »

Om du har tillräckligt med pinnar på huvudprocessorn kanske du kan skippa bootladdare och låta den programmera samplingsprocessorn direkt?
Ifall flash i huvudprocessorn inte räcker till för att få plats med firmware i samplingsprocessorn så kan man göra laddningen i två steg.
Först skickas en fil som låter huvudprocessorn programmera och testa alla samplingsprocessorer, sedan skickas den vanliga mjukvaran som används vid drift.

Samma princip används på vissa övervakningskameror med PTZ, subprocessorn som sköter motorerna programmeras med en egen fil som skickas genom huvudprocessorn.
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Re: µC som extern ADC/IO-expander

Inlägg av Micke_s »

STM32F303 klarar 39 ingångar och har rätt så snabb ADC. 4st närmare bestämt.

https://www.digikey.com/product-detail/ ... ND/5268264

Kör 2 st chip eller lägg några analoga mux:ar utanför för fler ingångar, oftast enklare att ha allt i samma firmware.
STM32 har en vettig dokumenterad uart bootloader också.

Edit: Du får kolla närmare på hur NXP lagrar bootloadern också, vissa lagrar i rom andra i main-flashen, stm32 kör bara i rom:et vad jag vet.
Edit2: Vissa NXP processorer har även "user config" arean mitt i main flash:en också, allt för göra det enklare att hantera antar jag :tumner:
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Re: µC som extern ADC/IO-expander

Inlägg av Micke_s »

Osäker om KE02 ens har någon bootloader från fabrik.

Annars så implementering av SWD en lämplig utmaning.
Användarvisningsbild
Klas-Kenny
Inlägg: 11292
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: µC som extern ADC/IO-expander

Inlägg av Klas-Kenny »

Tror inte att just den har någon bootloader ifrån fabrik.
Implementera SWD skulle ju gå (har gjort det förut, i en produktionsutrustning), blir bara så mycket trådar att dra över kortet, om man har några stycken processorer. Kommer bli mycket ändå.
Fast man kanske skulle kanske kunna ha gemensam klocka och reset för alla de processorerna, så har de bara individuella data. På så vis kan man ju faktiskt dessutom programmera samtliga på en enda gång. :P

Visst finns det processorer med många AD-ingångar. Skulle ju faktiskt kunna klara allt på bara huvudprocessorn om man gärna vill, om man tar en med ett 40-tal ingångar och sen ett par externa muxar. Men, layouten blir inte superkul om man gör på det viset. :roll: Väldigt tacksamt om man inte behöver dra samtliga signaler över precis hela kortet.
Användarvisningsbild
Klas-Kenny
Inlägg: 11292
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: µC som extern ADC/IO-expander

Inlägg av Klas-Kenny »

Detta sket sig, kan man säga.

Visade sig att det krävs en 5V ADC (mäta 0-5V med krav på hög impedans). Enda andra lösningen jag kan tänka mig skulle vara operationsförstärkare, men då springer nog kostnaden förbi lösa ADC'er.

Synd att utbudet på 5V uCer är så begränsat. :humm:

Om ingen har andra goda idéer? :D

Edit: Efter närmare koll kanske utbudet inte är riktigt så begränsat som jag trodde...
ToPNoTCH
Inlägg: 4847
Blev medlem: 21 december 2009, 17:59:48

Re: µC som extern ADC/IO-expander

Inlägg av ToPNoTCH »

Kan du inte spännings dela då ?

Det är ju upplösningen på AD som i grunden styr noggrannheten och inte hur hög insignalen är.

Tänk på att använda motstånd med bra tolerans bara (gärna manuellt uppmätta).
Användarvisningsbild
Klas-Kenny
Inlägg: 11292
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: µC som extern ADC/IO-expander

Inlägg av Klas-Kenny »

Med spänningsdelning får man en klar sänkning av impedans i mätdonet. Säg att man tar en spänningsdelare bestående av två 10k motstånd, så får man en ingångsimpedans på 20k.

Vill man sen mäta säg spänningen från en 50k potentiometer, ja då kommer ju mätdonet att påverka den signalen ganska mycket.

Och extremhöga värden i spänningsdelaren påverkar på andra hållet ADC'ns noggrannhet.
ToPNoTCH
Inlägg: 4847
Blev medlem: 21 december 2009, 17:59:48

Re: µC som extern ADC/IO-expander

Inlägg av ToPNoTCH »

Absolut...Man kan ju trixa med OP för att lösa det, men det börjar bli "kladdigt" kanske.

Men 5V uC känns sådär :humm:

Håller på med en snarlik lösning (40 AD ingångar) för mig slutade det med fler uC.
Jag kör med STM32 F103C8T6 ganska många ingångar per krets och krona.
Användarvisningsbild
Klas-Kenny
Inlägg: 11292
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: µC som extern ADC/IO-expander

Inlägg av Klas-Kenny »

Ja, med en OP på varje kanal så börjar pengarna att springa iväg istället. :)

Att 5V uC känns sådär tänkte jag också först, men sen började faktiskt leta. Visar sig att det fortfarande förekommer i hygglig utsträckning, även på moderna grejer.
Är inne på Micke_s spår, men med MKE16F256VLL16 istället. Kan matas på 5V, har tre separata ADC'er med 16 kanaler och 1Msps på varje. Komplettera den med en analog mux till varje ADC, så har jag en bit över 60 kanaler och en 168MHz Cortex M4 att leka med. Allt detta för under 50kr i volym.

Som jämförelse har produkten som är tänkt att ersätta, ca. 50 analoga ingångar. Detta löst med 6st externa ADC'er för 20-25kr/styck, och det hela körs sen av en gammal PIC18 som idag kostar 70-80kr/stycket. :shock: (10+ år gammal konstruktion)

Visst, layouten blir lite småjobbig, att routa alla signaler till ett enda ställe. Men värre saker har man trots allt gjort...
Och en annan nackdel jag kommit på med att använda flera processorer på en produkt som ska leva länge, är att de har en tendens att gå ur tiden. Och då brukar tillverkarna höja priserna på dem ganska ordentligt långt innan de går helt EOL, då är det tacksamt att bara ha *en*. :vissla:
Skriv svar