Ontwerptips en domme fouten bij de vleet

Thevel

Golden Member

Op 22 mei 2021 23:08:36 schreef blackdog:
Hi thevel,

Mooi dat hij werk, maar hij loopt wel achter zie ik...

Niet toen de foto genomen werd :)

Op 22 mei 2021 23:08:36 schreef blackdog:
Hi thevel,

Mooi dat hij werk, maar hij loopt wel achter zie ik... :+

Groet,
Bram

Zo erg is dat niet. Klokje staat twee één keer op een dag precies goed.

Thevel

Golden Member

Als hij stil staat wel :o
Maar deze loopt...

Iedereen weet dat als je flash wist, er 0xFF staat. Dat was 30 jaar geleden bij de eerste EEPROMs zo, en dat is nu bij de laatse Multi-Level NAND cellen nog steeds zo.

Maar ST geeft ons vooruitgang: Als je de interne flash van een STM32L0xx device wist, staat er 0x00.
En je kunt onbeperkt 1tjes schrijven, maar een 1 weer 0 maken moet je de page wissen.

ik heb me te pleuris gezocht, maar het niet kunnen vinden in de datasheet.

Wel heb ik nu alle plekken in de code gevonden die uitgingen van 0xff = gewist, en alle plekken die uitgingen van "ik kan een 1 wissen, maar geen 0 op 1 zetten".

Bedankt ST!

Shiptronic

Overleden

Blijkbaar hebben ze daar een nieuwe Manager gevonden :(

Wie de vraag stelt, zal met het antwoord moeten leren leven.
bprosman

Golden Member

Op 2 juni 2021 08:35:34 schreef blurp:
Iedereen weet dat als je flash wist, er 0xFF staat. Dat was 30 jaar geleden bij de eerste EEPROMs zo, en dat is nu bij de laatse Multi-Level NAND cellen nog steeds zo.

Maar ST geeft ons vooruitgang: Als je de interne flash van een STM32L0xx device wist, staat er 0x00.
En je kunt onbeperkt 1tjes schrijven, maar een 1 weer 0 maken moet je de page wissen.

ik heb me te pleuris gezocht, maar het niet kunnen vinden in de datasheet.

Wel heb ik nu alle plekken in de code gevonden die uitgingen van 0xff = gewist, en alle plekken die uitgingen van "ik kan een 1 wissen, maar geen 0 op 1 zetten".

Bedankt ST!

Zo ben ik ook nog steeds regelmatig in de war met de "Fuses" van Atmel processoren. Vinkje aan in de programmer is "0", of eh.. misschien niet en zet de functie weer aan... of zo iets. In mijn beleving is "Functie UIT" = Bitje 0, Functie AAN = Bitje 1, en dus ook de vinkjes in de programmer.

De jongere generatie loopt veel te vaak zijn PIC achterna.

Op 2 juni 2021 08:35:34 schreef blurp:
Wel heb ik nu alle plekken in de code gevonden die uitgingen van 0xff = gewist, en alle plekken die uitgingen van "ik kan een 1 wissen, maar geen 0 op 1 zetten".

Technisch gezien, kon je altijd bitjes van 1 naar 0 zetten. Ook een reeds geprogrammeerde byte kon je zo nog wijzigen, zolang er maar uitsluitend 1->0 veranderingen in zaten..... Iedere byte kan je zo maximaal 8x herschrijven.

ST heeft OOK flashcontrollers die maar twee mogelijke veranderingen toestaan: 0xff -> <een waarde> en <niet 0xff> -> 0. weg is de mogelijkheid om meerdere keren te herschrijven.

Ik weet niet meer bij welke ik dit nu weer tegenkwam, maar hou het in je achterhoofd als je met de flash van STM chips te maken krijgt.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
eSe

Honourable Member

Zo ben ik ook nog steeds regelmatig in de war met de "Fuses" van Atmel processoren. Vinkje aan in de programmer is "0", of eh.. misschien niet en zet de functie weer aan... of zo iets.

Overkomt mij ook (on)regelmatig.

In mijn beleving is "Functie UIT" = Bitje 0, Functie AAN = Bitje 1, en dus ook de vinkjes in de programmer.

Maar ja, "in den tijd" van de discrete logica (70xx,40xx) was een 0 je output enable, 1 output disable. Veel tri-state drivers hebben dit ook. Omgekeerde logica.

Da's om ons bij de les tehouden :-)

Groetjes,
eSe

CChheecckk yyoouurr dduupplleexx sswwiittcchh..

Atmel moet die fuses gewoon beter documenteren.

code:

bit 4 CLKDIV8  
    0 (programmed) CLKDIV8 is not active, system clock is input clock.
    1 (unprogrammed) CLKDIV8 is active, input clock is divided by 8 for system clock. 

En dan POSITIEVE bewoordingen proberen te vinden voor de functie van het bitje. Wat gebeurt er als het bitje HOOG is. Er zitten nu veel te veel inversies in de omschrijving van de fuses.

1 zo'n inversie kan je als mens nog snappen. "-ENABLE", de chip is enabled als het signaal LAAG is. Dit technisch het zelfde als "DISABLE": "the chip is disabled when high". Maar niet een ander signaal: "-DISABLE": "the chip is disabled when the signal is low".

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Op 2 juni 2021 10:58:28 schreef rew:
ST heeft OOK flashcontrollers die maar twee mogelijke veranderingen toestaan: 0xff -> <een waarde> en <niet 0xff> -> 0. weg is de mogelijkheid om meerdere keren te herschrijven.

Klopt. In de STM32WB (dacht ik, geen zin om het op te zoeken) kun je maar twee schrijfacties per 32 bits doen. Maar dat staat tenminste gewoon in de documentatie (en die is ook gewoon gewist = alles 1)

Op 2 juni 2021 12:50:52 schreef rew:
Atmel moet die fuses gewoon beter documenteren.

https://www.engbedded.com/fusecalc/

Dat helpt niet.

Met het vinkje voor CKDIV8 aan of uit staat er altijd:

? Divide clock by 8 internally; [CKDIV8=0]

Bij SPIEN hetzelfde. Als SPIEN = 0, dan is SPI toch UIT?

Als je het eenmaal weet dan is het te gebruiken, maar als je uit de documentatie probeert te halen hoe het nu precies zit, heb je een probleem.

side track: Stel RIVM publiceert "vaccinatiegraad van nederland", uitgesplitst naar leeftijdsgroepen en dat soort dingen.
Op de regel "personen 83-84 jaar" staat er dan 180 onder 1e dosis en 100 onder "2e dosis".

Dan is de vraag, staan de mensen die een 2e dosis gehad hebben ook nog geteld in de kolom 1e dosis? Na diep nadenken heb ik besloten: Nee de tabel gaat over PERSONEN, dus een persoon met 2e dosis staat niet OOK in 1e dosis. In mijn voorbeeld zijn er 100 personen die 2x geprikt zijn, en 180 die 1x geprikt zijn. Totaal 380 prikken. Tegenwoordig telt het RIVM de getallen gewoon bij mekaar op en roept dat er 280 prikken gezet zijn. Doe ik het verkeerd of zij?

[Bericht gewijzigd door rew op woensdag 2 juni 2021 14:46:26 (76%)

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Ik zet gewoon de vinkjes die ik wil volgens die site, en copy paste de avrdude settings in mijn make-file. Geen idee of het 0 of 1 is, en wat de (onbegrijpelijke) Atmel docs zeggen

Lucky Luke

Golden Member

Op 2 juni 2021 14:12:43 schreef rew:
side track: Stel RIVM publiceert "vaccinatiegraad van nederland", uitgesplitst naar leeftijdsgroepen en dat soort dingen.
Op de regel "personen 83-84 jaar" staat er dan 180 onder 1e dosis en 100 onder "2e dosis".

Dan is de vraag, staan de mensen die een 2e dosis gehad hebben ook nog geteld in de kolom 1e dosis? Na diep nadenken heb ik besloten: Nee de tabel gaat over PERSONEN, dus een persoon met 2e dosis staat niet OOK in 1e dosis. In mijn voorbeeld zijn er 100 personen die 2x geprikt zijn, en 180 die 1x geprikt zijn. Totaal 380 prikken. Tegenwoordig telt het RIVM de getallen gewoon bij mekaar op en roept dat er 280 prikken gezet zijn. Doe ik het verkeerd of zij?

280 personen, waarvan er 100 2x geprikt zijn en 180 1x, zou ik dan denken. (280 personen, 380 prikken).
Waren de getallen andersom, dan zouden het nog 180 personen in totaal kunnen zijn, waarvan 100 de eerste én de tweede dosis hebben gehad en 180 de eerste.

(en dingen als SPIEN en CKDIV8 zouden !SPIEN en !CKDIV8 moeten heten. Of een # of een ~ of een lijn erboven of een n ervoor of... you get the point)

Eluke.nl | De mens onderscheid zich van (andere) dieren door o.a. complexe gereedschappen en bouwwerken te maken. Mens zijn is nerd zijn. Blijf Maken. (Of wordt, bijvoorbeeld, cultuurhistoricus)

Op 2 juni 2021 14:12:43 schreef rew:
side track: Stel RIVM publiceert "vaccinatiegraad van nederland", uitgesplitst naar leeftijdsgroepen en dat soort dingen.
Op de regel "personen 83-84 jaar" staat er dan 180 onder 1e dosis en 100 onder "2e dosis".

Dan is de vraag, staan de mensen die een 2e dosis gehad hebben ook nog geteld in de kolom 1e dosis? Na diep nadenken heb ik besloten: Nee de tabel gaat over PERSONEN, dus een persoon met 2e dosis staat niet OOK in 1e dosis. In mijn voorbeeld zijn er 100 personen die 2x geprikt zijn, en 180 die 1x geprikt zijn. Totaal 380 prikken. Tegenwoordig telt het RIVM de getallen gewoon bij mekaar op en roept dat er 280 prikken gezet zijn. Doe ik het verkeerd of zij?

Nu snap ik dat het bij de RIVM een zootje is. Ze kunnen niet eens tellen.

Bob Pease was toch een fantastische analoge ontwerper?

Hoeveel onderdelen heb je nodig om een negatieve spanning te maken, gegeven alleen een positieve 12V spanningsbron?

Place your bets now! .....

Twee. Een tor, BC547 werkt. Basis aan GND, emitter via 1k aan de 12V en voila op de collector meet je ongeveer -0.4V!

1 april 1970.

Dan denk je.. haha! "made you look!" ... Bouw hem zelf en aanschouw! Het werkt echt!

----------------------------------------

Dan serieus... Hoe maak je van een gewone buck converter een negatieve output? Gewoon logisch nadenken: De output + is positief ten opzichte van output min. Dus output min is gewoon je negatieve output rail. Dan wordt output plus je ground van je system. Rest alleen nog om de input spanning op input+ aan te sluiten. Klaar.

In de onderste situatie heb ik er boven gezet hoe jij denkt dat de siatuatie is: +5V in, -5V uit. D'r onder staat hoe de DCDC converter er over denkt.

Ik heb ook de stroomkringen getekend. Dan zie je dat je boven 1A hebt lopen UIT de "in-" pin van de DCDC converter. Samen met de 2A de de "out-" pin INloopt, is dat dus de 1A die je verwacht dat de converter "levert" aan de uitgang. De rest van de stromen is een oefening voor de lezer.

[Bericht gewijzigd door rew op maandag 14 juni 2021 09:52:35 (21%)

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Op 12 juni 2021 12:42:25 schreef rew:
Twee. Een tor, BC547 werkt. Basis aan GND, emitter via 1k aan de 12V en voila op de collector meet je ongeveer -0.4V!

LTSpice maakt er ca 8 mV van met een BC547B. Een C versie wordt 15 mV. Wel allemaal na een lange tijd.

En een A versie wordt 1 mV.

Wie gaat het meten?

We zitten nu op het niveau van een waterkrachtcentrale met een hygroscopische bron. Dat werkt in een schaalmodel.....

Op 13 juni 2021 22:38:49 schreef Hoeben:
LTSpice maakt er ca 8 mV van met een BC547B. Een C versie wordt 15 mV. Wel allemaal na een lange tijd.

Je dacht toch niet dat het model in LTspice goed genoeg zou zijn om dit soort effecten te beschrijven? Dit is 100% natuurkunde en niet meer electronica.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Thevel

Golden Member

Op 13 juni 2021 22:38:49 schreef Hoeben:
Wie gaat het meten?

Ik heb het even geprobeerd, afhankelijk van het a, b of c type komt er -0,3 tot -0,4V uit, er loopt ongeveer 3mA.
Als ik de meter (Siglent SDM3055) aansluit blijft de spanning redelijk stabiel maar zodra ik met mijn hand in de buurt van de meetsnoeren kom wordt de spanning sterk beïnvloed.

Ik heb ook even de scoop aangesloten, de spanning zakt dan aanzienlijk in maar blijft negatief.
De transistor staat hoogfrequent te "ruisen" en de frequentie varieert sterk door handeffect.

Een BC546 werkt ook..

De ruis is een gevolg, niet een oorzaak. De uitgangsimpedantie is in de orde-van-grootte van 1M, Dus met een 10M multimeter meet je -0.4 en met een 1M scope zie je -0.2 o.i.d.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Lucky Luke

Golden Member

Op 12 juni 2021 12:42:25 schreef rew:
Dan serieus... Hoe maak je van een gewone buck converter een negatieve output? Gewoon logisch nadenken: De output + is positief ten opzichte van output min. Dus output min is gewoon je negatieve output rail. Dan wordt output plus je ground van je system. Rest alleen nog om de input spanning op input+ aan te sluiten. Klaar.

[bijlage]

In de onderste situatie heb ik er boven gezet hoe jij denkt dat de siatuatie is: +5V in, -5V uit. D'r onder staat hoe de DCDC converter er over denkt.

Ik heb ook de stroomkringen getekend. Dan zie je dat je boven 1A hebt lopen UIT de "in-" pin van de DCDC converter. Samen met de 2A de de "out-" pin INloopt, is dat dus de 1A die je verwacht dat de converter "levert" aan de uitgang. De rest van de stromen is een oefening voor de lezer.

Ik zou denken dat dat war haken en ogen geeft met de voeding van de step-up zelf. (En met hoe het ding op moet starten vanaf de situatie waarbij er nog geen uitgangsspanning is... hoewel dan in theorie de ingangsspanning die je als 10v aangeeft, nog steeds 5V lager is dan die 10V, waardoor er alsnog 5v over blijft)

Heb je het daadwerkelijk geprobeerd met een dergelijke module?

(Start het ook zonder belasting? Of juist bij vrij forse belasting?)

(De transistortruc van pease staat uitgelegd op HaD)

Eluke.nl | De mens onderscheid zich van (andere) dieren door o.a. complexe gereedschappen en bouwwerken te maken. Mens zijn is nerd zijn. Blijf Maken. (Of wordt, bijvoorbeeld, cultuurhistoricus)

Op 14 juni 2021 08:14:10 schreef rew:
[...]Je dacht toch niet dat het model in LTspice goed genoeg zou zijn om dit soort effecten te beschrijven? Dit is 100% natuurkunde en niet meer electronica.

Ik heb het ook gebouwd met LTspice. De spanning bleeft uiteraard positief. Het transistormodel van LTspice voldoet hier uiteraard niet en als het model wel voldoet, dan zit de fout bij de kennis van de LTspice-gebruiker, dwz bij mij.

[Bericht gewijzigd door ohm pi op maandag 14 juni 2021 22:01:38 (11%)

Ik denk uitgevogeld te hebben wat er gebeurt. De tor staat zoals al gemeten is flink te ruisen. Dat komt doordat de Emmittor-Basis doorslaat oftewel staat te zeneren. Maar dat doet het LTSpice model niet.

De test daarvan is eenvoudig. Ik heb de voeding naar 10kV opgeschroefd en de tor doet nog steeds niks. Niks doorslaan. Dit ligt het totaal waardeloze transistormodel.

Logische vraag nu: hoe komt die negatieve spanning?

Ik vermoed EMC, demodulatie van de ruis. In het echt gebeurt er wel iets bij 10kV. Iemand weer een testje?