STM32 har allt - Utom trådlöshet
Re: STM32 har allt - Utom trådlöshet
Ja. Men det låter bra det! Den komplexibiliteten gör säkert nytta!
OAuth är en tjänst. Alla stora företag som riktar in sig mot globala kunder använder OAuth. Vet flera företag som håller på med loggning bland annat tyska Hydac(konkurrent till Bosch) börjar nu använda Particle.
Även Bosch använder Particle. Particle är byggt på Arduino, där man loggar till en databas. För att komma in på databasen så loggar man in med sitt godkända konto som verifieras med OAuth-tjänsten.
https://www.particle.io/
OAuth är en tjänst. Alla stora företag som riktar in sig mot globala kunder använder OAuth. Vet flera företag som håller på med loggning bland annat tyska Hydac(konkurrent till Bosch) börjar nu använda Particle.
Även Bosch använder Particle. Particle är byggt på Arduino, där man loggar till en databas. För att komma in på databasen så loggar man in med sitt godkända konto som verifieras med OAuth-tjänsten.
https://www.particle.io/
Re: STM32 har allt - Utom trådlöshet
Det har inte med saken att göra.
Front-siden på ÖS-systemen är normalt tillgängliga via nätet, dock naturligtvis måste du ha ett användarnamn och lösenord till det, det handlar om de underliggande näten, dvs näten inom huset som binder ihop funktionerna, där vill man inte ha Ethernet.
Så javisst flashiga sidor i din pryl är alltid kul på mässor osv, men i praktiken så vill man inte ha det.
Front-siden på ÖS-systemen är normalt tillgängliga via nätet, dock naturligtvis måste du ha ett användarnamn och lösenord till det, det handlar om de underliggande näten, dvs näten inom huset som binder ihop funktionerna, där vill man inte ha Ethernet.
Så javisst flashiga sidor i din pryl är alltid kul på mässor osv, men i praktiken så vill man inte ha det.
Re: STM32 har allt - Utom trådlöshet
Jag har aldrig utvecklat en webbapplikation på ett 1Mb flash system. Hoppas man kan iallafall lägga upp lite HTML-kod, kanske lite inlogg också.
Målet är att man ska ha lite grundläggande konfigueringar t.ex. knapp, lista, textfält, en rolig graf osv.
Sedan kommunikation också med en server. Här skulle säkert Modbus-TCP passa utmärkt!
Jag planerar att implementera detta i mitt Spring-Boot system hemma: http://easymodbustcp.net/en/
Målet är att man ska ha lite grundläggande konfigueringar t.ex. knapp, lista, textfält, en rolig graf osv.
Sedan kommunikation också med en server. Här skulle säkert Modbus-TCP passa utmärkt!
Jag planerar att implementera detta i mitt Spring-Boot system hemma: http://easymodbustcp.net/en/
Re: STM32 har allt - Utom trådlöshet
OAuth (eller annan moln-baserad SAML) kräver Internet-anslutning så det går givetvis helt bort inom industriella inbyggda system.
Re: STM32 har allt - Utom trådlöshet
Visste väl att TomasL och DanielM jobbar tillsammans!Dock har jag inte skrivit koden helt själv, utan med hjälp av en person här på forumet
Re: STM32 har allt - Utom trådlöshet
Nja, han är nog lite äldre, lite visare och lite kunnigare än DanielM.
Re: STM32 har allt - Utom trådlöshet
Varför i hela världen blandar du in OAuth i en diskussion om mikrocontrollers? Att du dessutom ser OAuth som synonym till säkerhet gör mig mörkrädd.DanielM skrev: ↑25 januari 2021, 23:13:00
Något som du skulle säkert gilla är: https://en.wikipedia.org/wiki/OAuth om du vill ha säkerhet. Jag har testat OAuth och det är helt underbart. Jag behöver inte hålla på med lösenord och därmed ej känna något ansvar om att bli hackad.
Re: STM32 har allt - Utom trådlöshet
Nu har jag gjort en liten introduktion till projektet mitt. Till att börja med så har jag använt en STM32F407 och en DP83848I för att få till en ethernet phy.Klas-Kenny skrev: ↑24 januari 2021, 14:56:13DanielM skrev: ↑24 januari 2021, 12:18:54 En nyfiken fråga! När ni jobbar som systemutvecklare, använder ni er av GitHub, Youtube, Google eller färdiga exemplarer?
Eller tittar ni direkt i datablandet och sedan knackar C kod som det vore bara ettor och nollor?
Jag måste alltid titta på vad andra gör, sedan modifiera efter mina behov.
Jag skulle aldrig kunna utveckla något eget från grunden.
GitHub: Det förekommer.
Youtube: I princip aldrig.
Google: Ständigt
Färdiga exempel: Ibland (Exempelvis kan man ju hitta sådant på Github)
Datablad och knacka kod: I princip alltid. Även om man hittar ett lib, så behöver man i regel dubbelkolla saker i databladet osv.
Det beror helt på vad som finns, man väljer ju den mest passande vägen för att lösa varje problem.
Om man hittar något färdigt mjukvarubibliotek som löser uppgiften, och passar bra i övrigt, är det såklart lämpligt att använda det. Men de flesta gånger är inte detta fallet. Antingen finns inget bibliotek, eller så är det stort och klumpigt, eller så fungerar det dåligt eller passar dåligt in i mitt projekt, eller något helt annat.
Då är databladet i regel den huvudsakliga källan till information, så skriver man sin egen kod för att styra hårdvaran till det man vill.
Sen tenderar man springa på allehanda problem på vägen, då blir det i princip alltid Google. Men man hittar ju inga fullständiga systemlösningar på Google, utan bara (ofta) lösningar på väldigt specifika problem som kan finnas i många tillämpningar.
Förstå hur det fungerar kan ju ha väldigt olika innebörd.DanielM skrev: ↑24 januari 2021, 13:26:22 Låt oss säga att jag vill återgå till det där ethernet-chippet jag pratade om.
Utan att förstå hur chippet fungerar, så börjar jag alltid med inkopplingen. Men det kanske är här jag styper. Jag vet inte hur chippet fungerar, och därmed kan jag inte använda det?
Man får ju ta ett problem i taget. Till att börja med måste man förstå övergripande vad komponenten gör för någonting, för att ha en aning om vad man gör. Sen måste man förstå de *interface* som komponenten tillhandahåller. Till att börja med då rent elektriskt.
Och om sådant finns, kan man kolla på lite exempelapplikationer. Dels i komponentens dokumentation, och dels i processorns dokumentation. Så kan man oftast få ihop det mesta. De detaljer som är otydliga eller kanske skiljer mellan processor och PHY i detta fall, får man förkovra sig lite i för att förstå och bestämma vilket som fungerar bäst i just ditt fall.
När man fått ihop hårdvaran kommer nästa del att förstå, det är mjukvaran.
Då får man antingen hitta ett färdigt lib som gör en stor del av uppgiften, då kanske det räcker att kolla vissa småsaker i databladet för att göra eventuella justeringar i libbet eller hur man initierar libbet. Eller så får man djupdyka i dokumentation och skriva allt ifrån grunden (eller en kombination av de båda).
Man måste ju alltid ha 100% koll på hur varje detalj fungerar, men lite övergripande koll på de olika interfacen är viktigt. Och än mindre behöver man veta hur sakerna fungerar *innan* man börjar jobba med dem. Det man inte vet får man ta reda på när det behövs.
Jag började med att kolla avlastningskondensatorerna i databladet för F407.
Här har jag valt att använda:
- 15 stycken 100nF keramik mellan VDD och VSS
- 1 styck 4.7uF keramik mellan VDD och VSS
- 2 styck 2.2uF keramik mellan VCAP_x och VSS, där x = 1, 2
- 1 styck 100nF keramik mellan VDDA och VSSA
- 1 styck 1uF keramik mellan VDDA och VSSA
- 1 styck 100nF keramik mellan VREF+ och VSSA
- 1 styck 1uF keramik mellan VREF+ och VSSA
- Koppla VREF+ till VDD för att använda VDD som referens
- F407 LQFP100 har inte BYPASS_REG
Valet av kristallen så har jag räknat fram på dessa formler:
Kod: Markera allt
% This follows the document AN2867
ESR = 130; % Crystall resistance
C0 = 7; % Shunt
CL = 12; % Crystall load capacitance
Cs = 5; % Capacitance between the board
F = 4; % Crystall frequency
Gm = 5; % Minimum gain for F4
% Gmcrit need to be less than 1 for a F4 according to the data sheet
Gmcrit = (4*ESR*(2*pi*F*10^6)^2*(C0*10^(-12) + CL*10^(-12))^2*1000) % mA/V
% Gmargin need to be over 5 according to
Gmargin = Gm/Gmcrit
% Find the capacitors for the crystal
X = 2*(CL-Cs)
% External load
R = 1/(2*pi*F*10^6*X*10^(-12))
% Final check with the external load
Gm > (4*(ESR+R)*(2*pi*F*10^6)^2*(C0*10^(-12) + CL*10^(-12))^2*1000)
Men när man har räknat fram sitt externa motstånd så skulle man jämföra Gmcrit med Gm = 5. Gmcrit ska nu ha R inkluderad och summerad med ESR.
Här ska Gm vara större, eller mycket större än Gmcrit. Jag kunde bara lyckas med detta igenom att använda en 4 Mhz kristall. Tänkte först ha en 25 Mhz kristall. Nu till min spänningsregulator. Jag hade använt vanliga elektrolytkondensatorer istället för tantalumkondensatorer i mitt förra projekt. Men nu blir det tantalumkondensatorer. Jag utsätter dessa elektrolytkondensatorerna bara för 5 volt. Nu var grunden klar! Nu dags för eternet phy. Som ethernet phy så har jag valt en DP83848I och här har jag valt RMII för att man skipper koppla så många kablar.
För att deklarera inför DP83848I att jag vill använda RMII så måste jag sätta RX_DV till hög och TXD_3 till låg. För att deklarera inför DP83848I att jag tänker använda adveserat tillstånd 10 Mbits halv/hel duplex och 100 Mbits halv/hel duplex så sätter jag AE_EN = 1, AN1 = 1, AN0 = 1.
Nu har dom redan pullups, men notera att dessa pinnar är även för LED. För att samtidigt sätta dessa som höga och ändå använda LED så rekommenderas det att jag väljer denna inkoppling av dioder. Nu när jag har gjort denna dekleration, så börjar jag att koppla in den fysiska enheten, dvs där kabeln ska gå in. Ingången.
Här rekommenderas det att jag väljer denna uppkoppling. Men jag kan inte ta vilken ingång som helst! Det sitter en transformator i denna RJ45-ingång.
För att veta vilken jag ska ha, så rekommenderar databladet följande. Men det viktigaste är att dessa följs. Då har jag valt denna. Som jag kan se så är finns det likheter, men även skillnader. Jag kan ej avgöra om 7499010121A går att använda då 7499010121A kan vara allt mer nämare kraven, än vad de rekommendationerna ovan. Nu när jag har gjort denna grund, då är det bara börja med inkopplingen.
Jag börjar med spänningen. Här har jag gjort exakt som det sägs, dvs använda 0Ohms motstånd och även 100nF keramik för varje 3.3v ingång. Även behövs det återkopplingskondensatorer. Jag bara gör det databladet säger och jag kör allt på standardkonfigueringar. Som 10uF kondensator så har jag valt en sådan talatumkondensator. Det står även här. Dessutom ska RBIAS och alla RESERVED pinnar ha pull-up respektive en pull-down. Nu kunde man inte ha mer än 20 bilder. Så jag lägger upp befintliga schemat här.
Jag hoppas jag har gjort rätt. Övriga pinnar kan jag säga är/kräver:
- MDC = Vanlig input som jag ansluter med STM32:s RMII_MDC pinne
- MDIO = Input och Output som kräver en 1.5kOhm resistor pull-up. Denna pinne skall anslutas med STM32:s RMII_MDIO pinne
- TX_CLK = Används inte i RMII tillståndet
- TX_EN = Transmit enable. Kopplas ihop med STM32:s RMII_TX_EN pinne
- TXD_x = Detta är alltså sendar-pinnar från 0 till 3, men i RMII-tillståndet används bara TXD_0 och TXD_1
- RX_CLK = Används inte i RMII tillståndet
- RX_DV = Kopplas ihop med STM32:s RMII_RX_DV pinne
- RX_ER = Denna bara indikerar om vi har ett error eller inte. Få se om jag ska använda den till något. Den ger en HÖG utgång när det blir Recieve Error status.
- RXD_x = Samma som TXD_x, Fast här tar vi emot data. Bara RXD_0 och RXD_1 används i RMII tillståndet
- CRS_DV = Kopplas ihop med STM32:s RMII_CRS_DV pinne
- COL = Används inte i RMII tillståndet
- X1 = Denna pinne ska ha 50 Mhz frekvens in.
- X2 = Denna pinne används inte om X1 har en extern kristall
- 25MHz_OUT = Jag använder inte denna då det finns inget behov att skicka ut 25 Mhz.
- TCK, TDI, TDO, TMS, TRST = Testpinnar bara. Jag använder dom inte
- RESET_N = Denna kopplar jag till STM32:s digitala pinne. Fast jag vet inte om jag ska bara låta denna vara lös? Vad tror ni? RESET_N har intern pull-up.
- PWR_DOWN = Denna pinne använder jag inte för jag har inget behov av att stänga utav Ethernet PHY. PWR_DOWN har intern pull-up.
Han har dessutom en pull-up på MDC, vilket inte alls krävs dock enligt databladet. MDC har är bara en digital input, utan någon pull-up eller pull-down. Jag ser inte i databladet att en pull-up krävs för MDC.
https://e2e.ti.com/support/interface/f/ ... unication-
Det som skiljer från min bild och bilden nedan är att min CRS_DV har ingen extern pull-up resistor, då CRS_DV har en intern svag pull-up resistor.
https://www.programmersought.com/article/79004139143/
Och mer skrytsam
Nästan som det går att mäta på richterskalan.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Senast redigerad av DanielM 28 januari 2021, 00:18:29, redigerad totalt 1 gång.
Re: STM32 har allt - Utom trådlöshet
Detta sas på om förra kortet du gjorde men verkar ha glömts men du kanske bara gjort en grov layout än så länge.
Avkopplingskondingar så nära ICn som möjligt. Nu har du ju lämnat plats för silkscreenen i mellan. Flytta den och kläm ihop dem mera. Silkscreen brukar jag placera sist och kan man inte ha den i anslutning till komponenten så får man rita den någon annanstans ihop med en pil. Ser inga jord vior heller. Kristallen ser också ut att vara långt borta.
Avkopplingskondingar så nära ICn som möjligt. Nu har du ju lämnat plats för silkscreenen i mellan. Flytta den och kläm ihop dem mera. Silkscreen brukar jag placera sist och kan man inte ha den i anslutning till komponenten så får man rita den någon annanstans ihop med en pil. Ser inga jord vior heller. Kristallen ser också ut att vara långt borta.
Re: STM32 har allt - Utom trådlöshet
Ja. Detta är bara en grov PCB tills vidare. Jag vet om att avlastningskondensatorerna ska vara så nära som möjligt.mankan skrev: ↑27 januari 2021, 22:58:27 Detta sas på om förra kortet du gjorde men verkar ha glömts men du kanske bara gjort en grov layout än så länge.
Avkopplingskondingar så nära ICn som möjligt. Nu har du ju lämnat plats för silkscreenen i mellan. Flytta den och kläm ihop dem mera. Silkscreen brukar jag placera sist och kan man inte ha den i anslutning till komponenten så får man rita den någon annanstans ihop med en pil. Ser inga jord vior heller. Kristallen ser också ut att vara långt borta.
Alltså kristallen är bara 10 mm bort. Är det långt?
Jo. Han skriver alltid i mina trådar. Han gjorde det nyss
Re: STM32 har allt - Utom trådlöshet
Jag tänkte ha en kamera och LCD med pekfunktion på mitt PCB kort. Ni får gärna rekommendera mig en bra LCD och en bra kamera. De flesta kamerna jag har sett på Youtube verkar vara rätt dåliga. Samma sak gäller LCD. Fungerar bra att titta på, men pekfunktionen är ostadig.
Som vanligt lägger jag upp projektet här sedan.
Som vanligt lägger jag upp projektet här sedan.
Re: STM32 har allt - Utom trådlöshet
Vad är en bra kamera och LCD för dig?
Upplösning, storlek, färgdjup, uppdateringsfrekvenser är några parametrar att ta hänsyn till.
Upplösning, storlek, färgdjup, uppdateringsfrekvenser är några parametrar att ta hänsyn till.
Re: STM32 har allt - Utom trådlöshet
Det är det jag inte vet.
Men några som jag vet som jag tyker är hyfsat bra är: OV2640
En bra LCD är säkert: ILI9341
Målet är att lära sig använda FSMC och DMCI.
Någon som har använt FSMC?
Men några som jag vet som jag tyker är hyfsat bra är: OV2640
En bra LCD är säkert: ILI9341
Målet är att lära sig använda FSMC och DMCI.
Någon som har använt FSMC?