De EL-kroeg - Deel 4 Vorige deel Overzicht

Pagina: 1 ... 111 112 Laatste
Acties:

Acties:
  • +1 Henk 'm!

  • Hans1990
  • Registratie: Maart 2004
  • Niet online
De oudere PICs hebben idd VPP benodigd om zichzelf te kunnen herprogrammeren. Die lag vaak op 9V of 13V oid.
Dat is een gedeelde functie op MCLR: GND is PIC in reset, 5V (of VDD) is running code, en VPP was dan de programming spanning. Vaak had je dan ook een diode in de pull-up nodig om de VPP spanning te sperren zodat niet je hele VDD rail om ging lopen..

Maar die hoge programming spanning is al heel lang niet nodig.

Zo kan je de PIC16F877A met LVP programmeren, maar dan wel middels de PGM pin vanaf de PICKIT2 (Aux pin). Maar die PIC kan ook zijn eigen FLASH via code beschrijven, dus je zou dan ook een bootloader kunnen bouwen. Dat is op elke grotere moderne PIC tegenwoordig wel mogelijk, zelfs een 8-pin PIC12F1822 heeft dat al.

Daarintegen de PIC16F57 is een heel stuk simpeler/antieker. Maar op die PIC zit ook bijna niets op.. letterlijk I/O, wat geheugen en een timer. Dus daar heb je ook zowat niet de interfaces om iets flexibels/intelligents mee te doen..

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 23-06 06:53
Dank voor de toelichtingen :)
Er is een programmeer datablad voor de P16F57
https://ww1.microchip.com/downloads/en/DeviceDoc/41208B.pdf
Maar werd mij een beetje te ingewikkeld zonder voorbeelden. Ik heb afgekeken bij z'n grotere broer de P16F877A waar hier een 20-delige serie over is geschreven:
https://circuitdigest.com...c-microcontroller-program
Step 6: The next bit will be the Low-Voltage Programming.

The LVP bit of the configuration word enables low voltage ICSP programming. This mode allows the microcontroller to be programmed via ICSP using a VDD source in the operating voltage range. This only means that VPP does not have to be brought to VIHH but can instead be left at the normal operating voltage. In this mode, the RB3/PGM pin is dedicated to the programming function and ceases to be a general purpose I/O pin. During programming, VDD is applied to the MCLR pin. To enter Programming mode, VDD must be applied to the RB3/PGM provided the LVP bit is set.


Ik heb bij de P16F57 geen LVP config bit gezien en heb in eerste instantie de Pickit3 draadjes rechtstreeks op de chip gezet. Diverse keren geflasht via MPLab IDE maar ook via IPE met wisselend resultaat.
Uiteindelijk bleek de beste methode om vanuit IDE gewoon op de Play knop te drukken, dat is deze :

Afbeeldingslocatie: https://tweakers.net/i/XoJ9HW2muMTA-DUpfyasi-aasOE=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/ibGIsqBt1I3oOLwIcbGOyM8n.jpg?f=user_large

Ook bleek vreemd genoeg dat MCLR juist niet aan 10K Vdd gehangen moet worden tijdens het flashen. Pas daarna was dat nodig anders blijft de chip in Reset mode hangen. Nu zit er dus een schuifje tussen, stand 1 voor programmeren zonder 10K en stand 2 voor uitvoering programma met 10K pull-up aan Mclr.
En zoals op de vorige foto te zien zit er een 20 MHz kristal op met 2x 18 pF condensatoren. Dat moet eigenlijk 15 zijn maar die heb ik niet. Verder heb ik geen hoger voltage gebruikt als 5V maar kreeg wel een paar keer de melding vanuit de Ipe dat de spanning te laag zou zijn en het ook echt niet meer flashte. Dat heb ik uiteindelijk omzeild met de Play knop in de Ide. (Zowel vanuit Ipe als Ide kan geprogrammeerd worden)

Afbeeldingslocatie: https://tweakers.net/i/05CkdzsoO4Tyuuaz-V7Frsydagw=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/XTijqvojj72F1Rf5bNWwm4J3.jpg?f=user_large........Afbeeldingslocatie: https://tweakers.net/i/KIzvEZ4Tjhv94vV9AjfdSDx8BeY=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/hYiAJs2WtAmsBkC1RVkdtEeJ.jpg?f=user_large

MPLab ............... Basic Stamp met 24LC16 Eeprom
https://www.parallax.com/...ramming-languages/pbasic/
The BASIC Stamp is an interpreter. The Stamp program compiles the program to byte codes which are stored on an EEPROM -- the interpreter in the BASIC Stamp is not affected. On reboot, your new program is pulled from the EEPROM and executed.
https://forums.parallax.c.../pickit3-and-bs2-pic16f57

Anyway, ik merk het ook bij AVR Atmel Studio, als het niet flasht probeer gewoon wat en blijf net zo lang knopjes drukken en resetten totdat die het wel doet. Met een kleine waarschuwing erbij, zet het Spietje niet op 1 :+
Verder vraag ik me ook niet meer zoveel af waarom zus het wel doet en zo het niet doet. Het is laag budget spul waar ik mee zit te rommelen en geen topfabrikanten apparatuur.

Toevoeging, over de Pic16F57, die is inderdaad aardig antiek en beperkt in functies. Toch blijkt uit de Basic Stamp 2 dat daar desondanks behoorlijk veel mee gedaan kan worden. En komt bij dat de losse chip niet meer als 2,50 kost dus een fuse doorbranden is niet zo erg, mits je meteen een reserve erbij had besteld.
Daarnaast is het nut ervan afhankelijk van je bedoelingen ermee. Dat een T-Ford geen cruise control heeft zal voor de liefhebber ervan weinig eraan afdoen ;)

Sommige dingen worden ook niet meteen duidelijk, dat vraagt wat geduld. Zoals gezegd kreeg ik op een gegeven moment een constante foutmelding

Afbeeldingslocatie: https://tweakers.net/i/PBStY4b9aMYuyoe1ldzmXyyM8Mg=/800x/filters:strip_icc():strip_exif()/f/image/deezM91iM44wr33b2Fsfxanv.jpg?f=fotoalbum_large

Dat kwam vanuit de IPE terwijl de IDE wel functioneerde en programmeerde. Uit meting bleek ook dat er exact 5V voeding op stond, aangezien er een breadboard gereguleerde voeding aanwezig is, zie foto vorige post. Dit weer goed kunnen krijgen door 1. IDE afsluiten en alleen IPE actief. 2. Andere Com-poort pakken :D :F
Ik verwacht eigenlijk ook dat op gegeven moment het adapter bordje uit de vorige post bruikbaar gemaakt kan worden maar voor nu is een draadjes opstelling overzichterlijker.

Vraagje, levert de Pickit3 tijdens het programmeren de Vpp van 12V ? Via omzetting van de Vdd ?
Voor nu is dat apparaatje eigenlijk een black box voor mij, al is die fel rood :$

Tot slot nog een tip voor degeen die eventueel ook Pic's wil gaan programmeren.
Vanuit Circuit Digest :
It is always a good practise to read the complete Datasheet of any MCU before we actually start programming with it.
https://circuitdigest.com...c-microcontroller-program

Doe dat niet, het is een naslagwerk en geen roman. Totaal onzinnig om dat van A tot Z door te gaan spitten.
Pak het per onderdeel waar je mee bezig bent, in geval van een Blink bekijk het I/O hoofdstuk. Zelfs dat blijft vaag indien er weinig kennis van assembly aanwezig is zoals hier in de instructieset voor de Baseline Family waar de PIC16F57 onder valt
https://developerhelp.mic...bit-pic/8-bitbl/8bitblis/
.

[ Voor 35% gewijzigd door kitao op 07-04-2025 15:06 ]


Acties:
  • +1 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 23-06 06:53
Nog een tip voor starters, in dit geval voor CPLD of FPGA.
Ondersteund met tekstboeken indien gewenst de volgende playlist waarvan dit eigenlijk deel 1 zou moeten zijn.
YouTube: Creating a Schematic Design for Intel (Altera) FPGAs (Sec 4-4A )
Playlist 36 delen
YouTube: Creating a Waveform Simulation for Intel (Altera) FPGAs (Quartus ver...

Auteur
Afbeeldingslocatie: https://tweakers.net/i/rt19tMcgO6_qEZuX4ftZaJuLKlI=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/Ln5UK1Lw3wFzDMvcTNJ5ry47.jpg?f=user_largeAfbeeldingslocatie: https://tweakers.net/i/4XxgAJSjgPD4h2ulhHx8zN222yA=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/tFcKC6vXJAt1jifoWtrmkovV.jpg?f=user_large

Via kosteloze registratie op Archive is het e-boek te lenen
https://archive.org/

Kleitz gebruikt een Cyclone II maar ik heb gemerkt dat je zonder veel problemen je chip naar keuze kunt selecteren zoals een Max II die ik heb.

Foutmeldingen copy/pasten in de browser als het vast loopt. Zoals deze die ik kreeg na uitproberen van video 1 dat eigenlijk deel 2 is.
# ** Error (suppressible): (vsim-12110) The -novopt option has no effect on this product. -novopt option is now deprecated and will be removed in future releases.
Oplossing :
https://community.intel.c...-no-effect-on/m-p/1195522

Afbeeldingslocatie: https://tweakers.net/i/uD7KGIM7bQhH5hy7I7iDTGkxGT8=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/XDyls94BmMGeBz70xcbPhHXz.jpg?f=user_large

Wat ik tot nu toe ben tegengekomen is vrijwel allemaal minstens 5 jaar gedateerd :|
Maar goed, van de errors leer je het meest ;)
.

[ Voor 37% gewijzigd door kitao op 08-04-2025 19:24 ]


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 23-06 06:53
Om nog even terug te komen op Modelsim, sinds een aantal maanden ben ik begonnen met CPLD's wat mij voorheen volledig onbekend was en ook uit vorige reacties is wel gebleken dat Quartus geen licht pakket is waar ModelSim bij inbegrepen is. Quartus is zwaar en log en neemt giga-ruimte in beslag. Voor de geintereseerde die wel kennis wil maken met CPLD en FPGA en met VHDL of Verilog maar liever 'licht' wil beginnen is het volgende een optie :
Download ModelSim als losse module
https://www.intel.com/con...tware-version-20-1-1.html
Open Notepad++ en plak er een .VHD programmaatje in, bijvoorbeeld via deze site
https://www.allaboutcircu...ware-designing-8-bit-ALU/
doorgelinkt naar deze
http://esd.cs.ucr.edu/labs/tutorial/
vhdl:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
--------------------------------------
-- XOR gate (ESD figure 2.3)
--
-- two descriptions provided
--------------------------------------

library ieee;
use ieee.std_logic_1164.all;

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

entity XOR_ent is
port(   x: in std_logic;
    y: in std_logic;
    F: out std_logic
);
end XOR_ent;  

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

architecture behv1 of XOR_ent is
begin

    process(x, y)
    begin
        -- compare to truth table
    if (x/=y) then
            F <= '1';
    else
        F <= '0';
    end if;
    end process;

end behv1;

architecture behv2 of XOR_ent is 
begin 

    F <= x xor y; 

end behv2;

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


Geplakt in Notepad save as All Types en geef het de extensie .vhd. Op de Desktop ziet het er dan zo uit

Afbeeldingslocatie: https://tweakers.net/i/vCjjHoUXyBNmid810-zTtLKQSgg=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/iqmb1xAeNSm2DF5VY0Q5Q2JC.jpg?f=user_large

Open ModelSim, dit is het startscherm, zonder Workfolder in de Library

Afbeeldingslocatie: https://tweakers.net/i/7m2wrn8KiPqlmzcbCqnl0c-1sEA=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/3B92o0ek4MSziaZLWqsKnUT3.jpg?f=user_large

In de menubalk klik op Compile en Look naar de .vhd op de desktop, selecteer deze en klik compile

Afbeeldingslocatie: https://tweakers.net/i/o5eGso6fftIJ1186cs3zvkGip08=/800x/filters:strip_icc():strip_exif()/f/image/o1malmts5JMRAOrwiK9rt2wo.jpg?f=fotoalbum_large

Dit compilen gaat razendsnel, duurt nog geen seconde waar Quartus 5 minuten of langer mee bezig is.
Er ontstaat een Work-folder

Afbeeldingslocatie: https://tweakers.net/i/12bPqqDfoAV_wI3j-wjMNBWyP5w=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/cUGXTkU3hjxxXBnzpQ1ORKhB.jpg?f=user_large

Dubbelklik op xor_ent, er ontstaat een objects window

Afbeeldingslocatie: https://tweakers.net/i/DADD5Qc8k_VbL5c_Fz4UtcL1tLs=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/2CInGySHhoIgs3U4LZ9yhEwa.jpg?f=user_large

Rechtsklik in Objects window en Add to wave signals in region

Afbeeldingslocatie: https://tweakers.net/i/i8XBBMk-jh40L2CIV-hJbpYPsJE=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/Lr4OzxDxDSl9eikjM2ZW02aQ.jpg?f=user_large

Rechtsklik op X en klik op clock

Afbeeldingslocatie: https://tweakers.net/i/wq0Bh3FkrTaFUhRMox3QyeyAu4k=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/tiV27QkNERVhseXd1BUAuLEV.jpg?f=user_large

Dit veldje verschijnt en kan zo blijven, klik ok

Afbeeldingslocatie: https://tweakers.net/i/gjfiD8E8xPXEETZgYmK7CL2I9A8=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/fyleqjcHlwfvDKZZpoza68bG.jpg?f=user_large

Doe bij Y hetzelfde maar geeft het een dubbele periode van X, dus 200.
Indien er een Z was dan wordt het 400 etc. Hierdoor ontstaat een waarheidstabel van input signalen.
Om alles bij 0 te laten beginnen klik op Falling.
Vervolgens klik op Run100

Afbeeldingslocatie: https://tweakers.net/i/k99V-ERy3XPNHDbUhWlueOpw2kM=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/SBs4ik2YDBx3m10NvGf8jNr3.jpg?f=user_large

Resultaat

Afbeeldingslocatie: https://tweakers.net/i/s83Ri5_Ct7cSUuup3tRm8QwYy0o=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/WPCjYsRF8hXDhKf0aIvjzvbY.jpg?f=user_large

Overeenkomstige info

YouTube: How to force a value to input in modelsim

https://nandland.com/introduction-to-modelsim-for-beginners/

En handig bij dit soort projectjes :
https://www.boolean-algebra.com/

Verder is er erg veel info over dit software pakket te vinden, in pdf, webartikelen, video's en via
https://archive.org/
.

[ Voor 4% gewijzigd door kitao op 18-04-2025 15:31 ]


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 23-06 06:53
Interessant, CPLD en MCU in 1 :)

Recente en korte video van vorig jaar die ik vandaag tegen kwam :

YouTube: Chiptorials - CLB Synthesizer Quick Start Guide – Driving a 7-segmen...

Afbeeldingslocatie: https://tweakers.net/i/P7zY3lI9Eag7QDmBzJ2_2NuljJ4=/800x/filters:strip_icc():strip_exif()/f/image/sLL50lugpO6g8pi9C3qlilNh.jpg?f=fotoalbum_large

https://www.microchip.com..._walkthrough&utm_bu=MCU08

Interessant omdat ik tot nu toe afzonderlijk bezig ben met o.a. Pic Mcu's 16F877A en Pic16F57 en Max II CPLD.
Uit bovenstaande blijken zo te zien zulk soort componenten geintegreerd te gaan worden.
Voor mij is dit iets nieuws en ben benieuwd of dit standaard gaat worden of in ieder geval veel toegepast gaat worden.

Edit -------------------------------------

Video inmiddels kunnen reproduceren zonder problemen.
Voor de geinteresseerde die het ook wil proberen, de delay spelling is met een dubbele onderstreep aan het begin : ___delay_ms(250); .De gebruikte Verilog code staat onder de video.
Het flashen van de PIC16F13145 ging nog niet want die heb ik niet in huis.
Kan ook nog wel even duren want de levertijd van een vorig produkt van Microchip was vrij lang.
Dat zou dan deze moeten worden :

Afbeeldingslocatie: https://tweakers.net/i/II8B_HTh2xBawVFshJ-IgK8f8ac=/800x/filters:strip_icc():strip_exif()/f/image/ySvCp7qUV12nvJc4tCQk5PZZ.jpg?f=fotoalbum_large
https://www.microchipdire...EV06M52A?allDevTools=true

Zoals te lezen in de afbeelding is dat bordje via Usb te programmeren en is er geen PicKit5 voor nodig.
Het bordje kost 9 euro.

Plaatje van de video-reproduktie :

Afbeeldingslocatie: https://tweakers.net/i/ie7XBwucpi8zqndvCKpxodfHxTo=/800x/filters:strip_icc():strip_exif()/f/image/mYfwLs68xkzNW2JXZdIITTKC.jpg?f=fotoalbum_large

[ Voor 46% gewijzigd door kitao op 08-05-2025 21:14 ]


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 23-06 06:53
Ik kwam pas een nieuwe basis-serie tegen over CPLD's die ik hier wil delen:
https://startingelectronics.org/software/VHDL-CPLD-course/
Dat is gebaseerd op een Xilinx CPLD met de bijbehorende IDE
https://startingelectroni...-xilinx-CPLD-project-ISE/
Beide heb ik niet maar zoals de schrijver opmerkt:

VHDL is standardised by the Institute of Electrical and Electronics Engineers (IEEE) and is a vendor independent language. This makes it portable and reusable.
One of the alternatives to VHDL is Verilog (also a standardised and vendor independent HDL).
This VHDL code is now fully portable and can be moved to a different CPLD or FPGA.

En dat is inmiddels meerdere keren gebleken met voorbeelden die andere CPLD's en software gebruikten als de Altera Max II en de Quartus software die ik heb. Uiteraard is de ene CPLD de andere niet en bij meer complexe designs zal het overzetten wel ergens op vastlopen maar dat ligt dan niet aan de descriptie-taal.

Dit voorbeeld genomen:
https://startingelectroni...rse/tut1-inverter-buffer/
Met een bus van 8 pushbuttons inputs en 8 leds output:
vhdl:
1
2
3
4
5
6
7
8
9
10
11
12
13
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity invert_top is
    Port ( SW : in  STD_LOGIC_VECTOR (7 downto 0);
           LED : out  STD_LOGIC_VECTOR (7 downto 0));
end invert_top;

architecture Behavioral of invert_top is
begin
    -- invert the signal from the push button switch and route it to the LED
    LED <= sw;
end Behavioral;


Simulatie op Modelsim:

Afbeeldingslocatie: https://tweakers.net/i/iIGiExMPV49H-oMpDmXma4sGU78=/800x/filters:strip_icc():strip_exif()/f/image/PDHocEOSiTDfye41bHflvfWv.jpg?f=fotoalbum_large

Geprogrammeerd naar CPLD :

Afbeeldingslocatie: https://tweakers.net/i/HonwyX-9nVX9DELQK8baqZSA6YI=/x800/filters:strip_icc():strip_exif()/f/image/ohiPrsjLZEyeLrgiGCUQoA2L.jpg?f=fotoalbum_large

Dus als tip voor wie overweegt om ook iets met dit soort componenten te gaan doen, het is tamelijk breed toepasbaar en zo blijken er meer voorbeelden op internet beschikbaar als je op eerste gezicht misschien zou denken want eenmaal wat meer thuis in de software is enkel de code nog nodig om een projectje op te zetten. :)

Dat is waarschijnlijk met vrijwel iedere programmeertaal zo want C kun je bijvoorbeeld zowel op Pic als op AVR toepassen? Ja, dat klopt maar je moet dan wel eerst al de configuratie registers opzoeken en instellen, zelfs binnen eenzelfde reeks van eenzelfde fabrikant. En dat 'euvel' ben ik bij de Cpld's nog niet tegengekomen.

En over de term 'programmeren van een CPLD' ....
Why you shouldn't call it "VHDL programming"
YouTube: Why you shouldn't call it "VHDL programming"
Daar heeft hij natuurlijk wel een punt maar dan vraag ik me toch af waarom er een dikke P in FPGA en CPLD staat }:|

Ps, in het voorbeeld worden complete zif files verstrekt met meerdere bestanden maar het enige wat ik nodig had en gebruikt heb om de simulatie en de praktische opstelling uit te voeren waren de 10 regeltjes in het code blok hierboven.
Hoe dat gaat is goed uitgelegd in deze videoserie waarin per keer slechts 1 file wordt aangemaakt en handmatig de pinplanner wordt ingesteld; terwijl het Xilinx voorbeeld hierboven er een contraint-file voor gebruikt.
YouTube: The Intro - An Introduction To FPGA And CPLD - PyroEDU
Al wordt daarin geen toepassing gegeven aan Modelsim maar dat draait dus op datzelfde codeblokje en kunnen er eveneens handmatig input signalen worden ingesteld.

[ Voor 15% gewijzigd door kitao op 13-05-2025 15:18 ]


Acties:
  • 0 Henk 'm!

  • vanaalten
  • Registratie: September 2002
  • Laatst online: 13:15
kitao schreef op maandag 12 mei 2025 @ 14:21:
Dit voorbeeld genomen:

https://startingelectroni...rse/tut1-inverter-buffer/
Met een bus van 8 pushbuttons inputs en 8 leds output:


vhdl:
1
2
3
4
5
6
7
8
9
10
11
12
13
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity invert_top is
    Port ( SW : in  STD_LOGIC_VECTOR (7 downto 0);
           LED : out  STD_LOGIC_VECTOR (7 downto 0));
end invert_top;

architecture Behavioral of invert_top is
begin
    -- invert the signal from the push button switch and route it to the LED
    LED <= sw;
end Behavioral;


Simulatie op Modelsim:

[Afbeelding]
Grappig...als er iets is dat die VHDL code NIET doet, dan is het wel inverteren. Output LED wordt gewoon gelijk gemaakt aan input sw. :)
En over de term 'programmeren van een CPLD' ....

Why you shouldn't call it "VHDL programming"
YouTube: Why you shouldn't call it "VHDL programming"

Daar heeft hij natuurlijk wel een punt maar dan vraag ik me toch af waarom er een dikke P in FPGA en CPLD staat }:|
VHDL code is een hardware beschrijving. Xilinx of wat dan ook leest het in samen met de specificatie van het device dat je gaat gebruiken en maakt een image file waarin voor dat device staat hoe de logica in dat ding verbonden moet worden. En je programmeert die de image file in de FPGA - dus daarom de P. :)

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 23-06 06:53
vanaalten schreef op maandag 12 mei 2025 @ 15:06:
[...]

Grappig...als er iets is dat die VHDL code NIET doet, dan is het wel inverteren. Output LED wordt gewoon gelijk gemaakt aan input sw. :)
Ja, goed gezien, dat klopt. Het origineel was 1 knopje met 1 inverterend ledje maar ik heb nadien die code gewijzigd naar een ander voorbeeld op die site zonder de comments en de entity bestandsnaam aan te passen.

Inverting or Buffering a Bus in VHDL
The Starting a New Xilinx CPLD Project in ISE article uses VHDL code that implements an 8 bit bus that connects 8 switches to 8 LEDs.

https://startingelectroni...rse/tut1-inverter-buffer/
VHDL code is een hardware beschrijving. Xilinx of wat dan ook leest het in samen met de specificatie van het device dat je gaat gebruiken en maakt een image file waarin voor dat device staat hoe de logica in dat ding verbonden moet worden. En je programmeert die image file in de FPGA - dus daarom de P. :)
Ja dank je voor de toelichting Soms hoor je ook dat een uC in stappen door een programma loopt en dat het daarom een programma is en dat dit het verschil zou zijn met een Cpld. Dat, zo heb ik gemerkt, is ook niet helemaal sluitend want

A VHDL description has two domains: a sequential domain and a concurrent domain. The sequential domain is represented by a process or subprogram that contains sequential statements.

Acties:
  • 0 Henk 'm!

  • blackwidow998
  • Registratie: Maart 2010
  • Laatst online: 22-06 23:04
Beste medetweakers,

Een tijdje geleden met behulp van raad en advies van dit forum tot een ontwerp van mij powersupply gekomen voor mijn printplaatje. Nu heb ik hem gisterenavond in elkaar gesoldeerd, echter komt er niet 3.3V maar 11V uit mijn switching power supply als ik hem met 12V voed. Ik begrijp niet helemaal waarom, is er iets in mijn schema wat ik over het hoofd heb gezien?

Zie onderstaand schema:

Afbeeldingslocatie: https://tweakers.net/i/JAmN3VSktKCbXjW11J29I55wom4=/800x/filters:strip_exif()/f/image/JhOVB6ZDCQitVr9ci2XPJ5AW.png?f=fotoalbum_large

Van links naar rechts:

Fuse - Shottkey diode -- TVS diode --> Condensator 100 uf ->Condensator 10uf _-> condensator 100 nf --> Switching supply --> de rest spreek voor zich denk ik.

Acties:
  • +1 Henk 'm!

  • NewGuest
  • Registratie: Mei 2007
  • Laatst online: 23-06 22:26
Enige wat ik nu kan bedenken is een verkeerde pinout van de ic of dat R4 en R3 kwa waarde zijn verwisseld.

Acties:
  • +1 Henk 'm!

  • Hagdos
  • Registratie: April 2022
  • Laatst online: 08:34
Schema ziet er goed uit, zal een foutje in componenten, layout of soldering zijn. Heb je foto's?

Wat is de spanning op pin 3?

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 23-06 06:53
U18 is niet helemaal volgens de tabel zo te zien waarin 10 uH wordt aangegeven voor 3.3Vout

Afbeeldingslocatie: https://tweakers.net/i/hQRFbeHvW4iCd5r0gcYDK8bLX8w=/800x/filters:strip_icc():strip_exif()/f/image/6BRuK3cHrp5uJWLM1HzvUc1A.jpg?f=fotoalbum_large

https://www.ti.com/lit/ds...2F%252Fwww.mouser.es%252F

maar of dit zoveel verschil maakt weet ik niet na te rekenen.

Acties:
  • 0 Henk 'm!

  • memphis
  • Registratie: Oktober 2000
  • Laatst online: 14:42

memphis

48k was toen meer dan genoeg.

Geen soldeersluiting tussen pin 5 en 6?

Er zijn mensen die mij een GOD vinden


Acties:
  • +1 Henk 'm!

  • NewGuest
  • Registratie: Mei 2007
  • Laatst online: 23-06 22:26
In de datasheet (blz. 17) van deze link staat wel gewoon 3.3uH voor een spanning van 3.3 volt. Het verschil zit in de frequentie van de fsw waarde (eerste in de tabel) die waarschijnlijk met pin 3 (FB) te maken heeft.

Acties:
  • 0 Henk 'm!

  • Hans1990
  • Registratie: Maart 2004
  • Niet online
memphis schreef op dinsdag 13 mei 2025 @ 21:40:
Geen soldeersluiting tussen pin 5 en 6?
Of 2 (GND) en 3 (FB). Daar moet zo'n 1V tussen staan. Als FB op 0V blijft hangen dan zal de DC/DC zijn uitgangspanning steeds hogere proberen te maken (tot de maximale duty cycle) omdat die z'n referentiewaarde niet terug ziet.

De spoelwaarde maakt voor de uitgangspanning weinig uit. Een hogere spoelwaarde zorgt voor lagere stroomrimpel en daarmee lagere uitgangsrimpel, maar ook trager step response enz.

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 23-06 06:53
@NewGuest
Inderdaad, het typenummer is net iets anders, in jouw link staat er -Q1 achter LMR50410.
Als ik nog een suggestie mag doen, er zijn breakout bordjes en daarmee zou de schakeling eventueel nog eens op breadboard kunnen worden getest.

Afbeeldingslocatie: https://tweakers.net/i/xBFS6ES9WK9sWkAvWhKjs5lcAkk=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/1zlWHN0Ebuw3NWoRSsVtto1Q.jpg?f=user_large

Persoonlijk begin ik niet meer aan smd-tjes solderen en koop ik het gewoon geassembleerd indien nodig.
Maar goed, dat verschilt per persoon.

[ Voor 14% gewijzigd door kitao op 13-05-2025 23:27 ]


Acties:
  • 0 Henk 'm!

  • blackwidow998
  • Registratie: Maart 2010
  • Laatst online: 22-06 23:04
Bedankt voor de vele reacties!
Hans1990 schreef op dinsdag 13 mei 2025 @ 22:14:
[...]

Of 2 (GND) en 3 (FB). Daar moet zo'n 1V tussen staan. Als FB op 0V blijft hangen dan zal de DC/DC zijn uitgangspanning steeds hogere proberen te maken (tot de maximale duty cycle) omdat die z'n referentiewaarde niet terug ziet.

De spoelwaarde maakt voor de uitgangspanning weinig uit. Een hogere spoelwaarde zorgt voor lagere stroomrimpel en daarmee lagere uitgangsrimpel, maar ook trager step response enz.
tussen Gnd en Pin 3 meet ik nagenoeg exact 3.3V
tussen Gnd en pin4/5 11.9 v dat lijk ok
tussem CB (1) en SW (6) 3,8v

Als ik de weerstanden R4 en R3 doormeet, meet ik bij beiden 15,5 K-ohm dat is wel gek, als ik op mijn eerdere prototype bordje meet, meet ik daar wel 22.1k ohm en 51k ohm.

Ik heb de switcher al een keer vervangen, dat had geen effect. Daarna heb ik de weerstanden vervangen, als ik de eerste (R3) soldeer meet ik de waarde van de weerstand 22kohm, maar zodra ik de 2e soldeer meet ik weer 15.5 k ohm.

Zit daar iets fout? in principe is er daar niks veranderd tussen mijn eerste (werkende) prototype en deze.

Afbeeldingslocatie: https://tweakers.net/i/1aJcX0yp99XK8z4AMbSm10LEZTE=/800x/filters:strip_exif()/f/image/7fsPgtIZA0dU2LzjXMaDu2o8.png?f=fotoalbum_largeAfbeeldingslocatie: https://tweakers.net/i/rgtyluhLxpOWS1eXxNIbseYClmQ=/800x/filters:strip_icc():strip_exif()/f/image/OMVkhH6Xq8EFpNbANsoFTMnB.jpg?f=fotoalbum_large
kitao schreef op dinsdag 13 mei 2025 @ 21:29:
U18 is niet helemaal volgens de tabel zo te zien waarin 10 uH wordt aangegeven voor 3.3Vout

https://www.ti.com/lit/ds...2F%252Fwww.mouser.es%252F

maar of dit zoveel verschil maakt weet ik niet na te rekenen.
Dit zou correct moeten zijn, op het boardje wat ik eerder heb gemaakt werkte het namelijk wel.
zie de datasheet:

Afbeeldingslocatie: https://tweakers.net/i/ofqTczKI0oJdh1FlOoWUkxKCWX4=/800x/filters:strip_exif()/f/image/dtEmpuX89QiL0MzmZLQSlZOJ.png?f=fotoalbum_large

Acties:
  • 0 Henk 'm!

  • memphis
  • Registratie: Oktober 2000
  • Laatst online: 14:42

memphis

48k was toen meer dan genoeg.

Als je R3 en R4 als zijnde parallel rekent kom je op die 15.5k uit....

De feedback pin zou de referentiespanning moeten zijn, en dat is dan 1v. Op de foto moeilijk te zien maar heb je het IC wel goed georiënteerd geplaatst?

Er zijn mensen die mij een GOD vinden


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 23-06 06:53
blackwidow998 schreef op donderdag 15 mei 2025 @ 21:16:

Dit zou correct moeten zijn, op het boardje wat ik eerder heb gemaakt werkte het namelijk wel.
zie de datasheet:

[Afbeelding]
Ja ok, New Guest had al duidelijk gemaakt dat ik de verkeerde datasheet te pakken had en Hans had al opgemerkt dat dit spoeltje weinig invloed heeft op de uitgangsspanning.
Excuus als ik een verkeerde suggestie naar voren heb gebracht maar als tip voor een volgende keer is het misschien handig dat een vraagsteller zelf de gebruikte datasheets bijsluit ;)
Anyway, ik hoop dat je er uitkomt, veel succes :)

Acties:
  • 0 Henk 'm!

  • DaWaN
  • Registratie: Oktober 2002
  • Nu online

DaWaN

'r you wicked ??

blackwidow998 schreef op donderdag 15 mei 2025 @ 21:16:
tussen Gnd en Pin 3 meet ik nagenoeg exact 3.3V
Dat betekent dat je weerstandsdeler werkt, maar de schakeling duidelijk niet.
Daar hoort bij goede werking 1.0V op te staan.
Als ik de weerstanden R4 en R3 doormeet, meet ik bij beiden 15,5 K-ohm dat is wel gek, als ik op mijn eerdere prototype bordje meet, meet ik daar wel 22.1k ohm en 51k ohm.

Ik heb de switcher al een keer vervangen, dat had geen effect. Daarna heb ik de weerstanden vervangen, als ik de eerste (R3) soldeer meet ik de waarde van de weerstand 22kohm, maar zodra ik de 2e soldeer meet ik weer 15.5 k ohm.

Zit daar iets fout? in principe is er daar niks veranderd tussen mijn eerste (werkende) prototype en deze.
Je zou haast denken dat er dan iets niet klopt met het IC inderdaad, zodra je die plaatst dan worden de twee weerstanden parallel geplaatst over GND.
Dat is opzich niet ongebruikelijk bij ICs, maar ik zou hetzelfde gedrag verwachten tussen beide prototypes.

Misschien een simpele vraag, maar heb je al eens geprobeerd het IC van het prototype op deze nieuwe versie te plaatsen? Waar heb je de ICs besteld? Markering van het IC gecontroleerd?

If you do not change direction, you may end up where you are heading


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 23-06 06:53
kitao schreef op woensdag 7 mei 2025 @ 14:28:
Interessant, CPLD en MCU in 1 :)

Recente en korte video van vorig jaar die ik vandaag tegen kwam :

YouTube: Chiptorials - CLB Synthesizer Quick Start Guide – Driving a 7-segmen...

[Afbeelding]

https://www.microchip.com..._walkthrough&utm_bu=MCU08

Interessant omdat ik tot nu toe afzonderlijk bezig ben met o.a. Pic Mcu's 16F877A en Pic16F57 en Max II CPLD.
Uit bovenstaande blijken zo te zien zulk soort componenten geintegreerd te gaan worden.
Voor mij is dit iets nieuws en ben benieuwd of dit standaard gaat worden of in ieder geval veel toegepast gaat worden.

Edit -------------------------------------

Video inmiddels kunnen reproduceren zonder problemen.
Voor de geinteresseerde die het ook wil proberen, de delay spelling is met een dubbele onderstreep aan het begin : ___delay_ms(250); .De gebruikte Verilog code staat onder de video.
Het flashen van de PIC16F13145 ging nog niet want die heb ik niet in huis.
Kan ook nog wel even duren want de levertijd van een vorig produkt van Microchip was vrij lang.
Dat zou dan deze moeten worden :

[Afbeelding]
https://www.microchipdire...EV06M52A?allDevTools=true

Zoals te lezen in de afbeelding is dat bordje via Usb te programmeren en is er geen PicKit5 voor nodig.
Het bordje kost 9 euro.

Plaatje van de video-reproduktie :

[Afbeelding]
Bordje is gisteren aangekomen vanuit Engeland, dat is dus aardig rap al zijn de verzend kosten 10 euro.
Bij de bestelling viel me al op dat de soldeerrij zigzaggend is terwijl er kaarsrechte headers bij geleverd worden.

Afbeeldingslocatie: https://tweakers.net/i/V_Z4oX0kMrR98QrGakRRzhqCsJQ=/800x/filters:strip_icc():strip_exif()/f/image/KU3w6DURG8bHBanGa5ufcCQj.jpg?f=fotoalbum_large

De zijkanten zijn als een soort postzegel gekarteld.
Ik begrijp deze constructies bepaald niet :?
Het enige nut van de kartelrand is dat daar een cliphaakje op gezet kan worden. Voor de headers zie ik geen andere oplossing als die los per stuk erin te zetten en vast te solderen :|

Afbeeldingslocatie: https://tweakers.net/i/LjC3opQxPRupJIiqgiPTqJuDJVg=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/LZpaSWqQjmKsHQXk4PzesuN2.jpg?f=user_large

Acties:
  • +2 Henk 'm!

  • Bas...
  • Registratie: December 2022
  • Laatst online: 15:30
Dat zijn zogenaamde castellated holes, die zijn ervoor om deze module als een SMD component op een PCB te kunnen plaatsen.

Acties:
  • +1 Henk 'm!

  • Tinusvolkel
  • Registratie: Augustus 2014
  • Laatst online: 15:53
kitao schreef op vrijdag 16 mei 2025 @ 10:19:
[...]


Bordje is gisteren aangekomen vanuit Engeland, dat is dus aardig rap al zijn de verzend kosten 10 euro.
Bij de bestelling viel me al op dat de soldeerrij zigzaggend is terwijl er kaarsrechte headers bij geleverd worden.
Lijkt erop dat je zo de header er in kan steken zonder te solderen, dus dat ie zich klemt.
Laat maar weten of dit goed werkt, zo'n constructies zouden hier op het werk ook wel ooit goed uitkomen. :)

Strava | 8600 Wp zzo | 1600 Wp nnw


Acties:
  • +1 Henk 'm!

  • Hans1990
  • Registratie: Maart 2004
  • Niet online
DaWaN schreef op vrijdag 16 mei 2025 @ 08:38:
[...]

Dat betekent dat je weerstandsdeler werkt, maar de schakeling duidelijk niet.
Daar hoort bij goede werking 1.0V op te staan.


[...]


Je zou haast denken dat er dan iets niet klopt met het IC inderdaad, zodra je die plaatst dan worden de twee weerstanden parallel geplaatst over GND.
Dat is opzich niet ongebruikelijk bij ICs, maar ik zou hetzelfde gedrag verwachten tussen beide prototypes.

Misschien een simpele vraag, maar heb je al eens geprobeerd het IC van het prototype op deze nieuwe versie te plaatsen? Waar heb je de ICs besteld? Markering van het IC gecontroleerd?
Ik zat al te zoeken of die LMR toevallig een 3.3V fixed output versie heeft, maar (helaas) enkel adjustable. Vaak is er weinig anders aan, behalve dat je dan die weerstanddeler kan besparen en dus je uitgang direct op FB aansluiten.
Leuke kostenbesparing voor fabrikanten met weinig PCB area of, die anders 2 reels moeten laden voor 22.1k en 51k..

@memphis Ik denk niet dat de chip verkeerd om zit, want dan zou je GND (pin2) en VIN (pin5) omdraaien. Dan zou de magische rook wel vertrokken zijn.

@blackwidow998 Je zou dus kunnen testen wat er gebeurd als je de bovenste weerstand van de deler even met een pincet kortsluit. Als dan de spanning naar 3.3V zakt, dan is dit dus een switcher met 3.3V referentie. Je zou er voor kunnen kiezen om het bord dan zo te gebruiken.. vraag is alleen wel waarom dit gebeurd.

Voor mij is even de vraag wat voor IC er nu op zit. TI gaat niet magisch opeens een chip variant maken met 3.3V referentie spanning als die 1.0V hoort te zijn. Tenminste, ga ik even van uit :+

Dus misschien iets meer info of betere foto van de chip? (je hebt al een aardige microscoop zo te zien! soms kunnen chips belettering beter leesbaar worden adhv polarisatie van het licht)
Het zou mij niets verbazen als er een andere generiek 6-pin SOT switcher nu op zit.

Acties:
  • +1 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 23-06 06:53
Tinusvolkel schreef op vrijdag 16 mei 2025 @ 10:35:
Lijkt erop dat je zo de header er in kan steken zonder te solderen, dus dat ie zich klemt.
Laat maar weten of dit goed werkt, zo'n constructies zouden hier op het werk ook wel ooit goed uitkomen. :)
Wow, harstikke bedankt zeg, de headers blijken inderdaad zonder te solderen stevig erin geklikt te kunnen worden O+
En deze doorgemeten via de castellated holes, met dank aan Bas..., en dat fluit mooi helder (y)

Over de verzendkosten, ik dacht aanvankelijk er nog iets bij te bestellen, een Pickit Basic
https://www.microchip.com/en-us/development-tool/PG164110
maar vreemd genoeg werd dat niet als 1 pakket beschouwd en liepen de verzendkosten op naar 2x 10 euro :|

Sparkfun heeft een aardige video over het monteren en solderen op een breakout board mbv de castellated holes
YouTube: SparkFun: How to Solder Castellated Vias

Acties:
  • 0 Henk 'm!

  • blackwidow998
  • Registratie: Maart 2010
  • Laatst online: 22-06 23:04
DaWaN schreef op vrijdag 16 mei 2025 @ 08:38:
[...]

Dat betekent dat je weerstandsdeler werkt, maar de schakeling duidelijk niet.
Daar hoort bij goede werking 1.0V op te staan.


[...]


Je zou haast denken dat er dan iets niet klopt met het IC inderdaad, zodra je die plaatst dan worden de twee weerstanden parallel geplaatst over GND.
Dat is opzich niet ongebruikelijk bij ICs, maar ik zou hetzelfde gedrag verwachten tussen beide prototypes.

Misschien een simpele vraag, maar heb je al eens geprobeerd het IC van het prototype op deze nieuwe versie te plaatsen? Waar heb je de ICs besteld? Markering van het IC gecontroleerd?
Ik zal dat vanavond eens proberen. Ik heb wel enkele switchers bijbesteld, deze komen dus uit een andere levering. Zal nog eens checken of daar dan de fout zit.

Zal jullie op de hoogte houden.

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 23-06 06:53
Onderstaande Samengevat :
TRISC4 = 1; // is een geldige instructie op de PIC16F877A
TRISC4 = 1; // is een ongeldige instructie op de PIC16F57 --- :?

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

Tamelijk bekend is de Pic16F seriereeks waarvan veel voorbeelden met de mid-range 16F877A op het net te vinden zijn.
Datablad 877
https://ww1.microchip.com...nts/DataSheets/39582C.pdf
Daarnaast heb ik de kleinere baseline 16F57 omdat die op de Parallax Basic Stamp zit maar de losse chip heeft geen PBasic Interpreter voorgeprogrammeerd dus die flash ik met C-code vanuit MPLab met Pickit3.
Datablad 57
https://ww1.microchip.com/downloads/en/DeviceDoc/41213D.pdf

Met veel minder voorbeelden beschikbaar voor de laatste probeer ik 877 codes over te zetten naar de 57.
Wat ik al een tijd niet goed begrijp is dat er verschil in TRIS bewerkingen zijn tussen die twee, hieronder wat bewerkingen op de 57 met daarnaast aangegeven wat wel compileert en wat niet.

TRISC = 0b00000011; // -- WERKT
TRISC0 = 0; // -- WERKT NIET
TRISC1 = 1; // -- WERKT NIET
TRISC = (1<<0) | (1<<1) ; // -- WERKT
TRISC | = (1 << 6) ; // Set bit 6 -- WERKT NIET en geeft deze error
main.c:29:9: error: expected expression
TRISC = TRISC &~(1<<4); // -- WERKT NIET
en geeft deze error
main.c:28:: error: (1466) registers unavailable for code generation of this expression
vanuit de browser
(1466) registers * unavailable for code generation of this expression (Code Generator)
The compiler has been unable to generate code for this statement. This is essentially a “can’t generate code” error message (message 712), but the reason for this inability to compile relates to there not being enough registers available. See message 712 for suggested workarounds.
>> (712) can’t generate code for this expression (Code Generator)
This error indicates that a C expression is too difficult for the code generator to actually compile. >>
https://onlinedocs.microc...69-B5FA-A6EB2911F483.html

Van deze twee
TRISC0 = 0; // -- WERKT NIET
TRISC1 = 1; // -- WERKT NIET
verschijnt dit
main.c:27:1: error: use of undeclared identifier 'TRISC0'; did you mean 'TRISC'?
en daarvan weet ik zeker dat die wel op de 877 draaien, de rest heb ik o.a. van de Atmega32 geprobeerd te 'vertalen.'

Zit dat verschil nu in de compiler of in de hardware?
Na een aantal projectjes heb ik dit nog niet achterhaald al is het niet super storend want bijvoorbeeld dit
https://circuitdigest.com...terfacing-with-pic16f877a
is goed uitvoerbaar gebleken. Overzetten van de code naar de 57 ging in dit geval niet maar had een andere oorzaak namelijk te weinig geheugen. Circuit Digest gebruikt Proteus als simulatie maar daar heb ik alleen de Arduino-versie van; de PIC-module is mij iets te prijzig.
Als tip voor de geinteresseerde, een even goed bruikbare simulator is de freeware Simulide, zie plaatje
https://simulide.com/p/

Afbeeldingslocatie: https://tweakers.net/i/wzQ7IGOSXyAi7MVFOIdQhnrNUtY=/x800/filters:strip_icc():strip_exif()/f/image/GdSNjtfO3Z2ZttX7KPIxdxEb.jpg?f=fotoalbum_largeAfbeeldingslocatie: https://tweakers.net/i/thrz8KloLgHE0UHOanKRcLPkt-g=/800x/filters:strip_icc():strip_exif()/f/image/2DvuQHKWNrxs8d483OwAXS3e.jpg?f=fotoalbum_large

Misschien dat dit er iets mee te maken heeft ? Vanuit de 16F57 datasheet link hierboven
6.8.1 BIDIRECTIONAL I/O PORTS
Some instructions operate internally as read followed by write operations. The BCF and BSF instructions, for example, read the entire port into the CPU, execute the bit operation and re-write the result.

Er staat echter geen reden bij en deze 'bit-operatie' compileert zoals gezegd wel
TRISC = (1<<0) | (1<<1) ;

[ Voor 40% gewijzigd door kitao op 19-05-2025 10:26 . Reden: Error codes opgezocht ]


Acties:
  • 0 Henk 'm!

  • Ruitenwisser
  • Registratie: April 2025
  • Laatst online: 12:30
@kitao klein ongerelateerd vraagje. waarom werk je met transistors en geen mosfets om te schakelen? Ben al ffkes uit het elektronica gebeuren en het zit wat ver. Zou er graag me er terug in verdiepen.

Acties:
  • 0 Henk 'm!

  • memphis
  • Registratie: Oktober 2000
  • Laatst online: 14:42

memphis

48k was toen meer dan genoeg.

Ruitenwisser schreef op maandag 19 mei 2025 @ 12:31:
@kitao klein ongerelateerd vraagje. waarom werk je met transistors en geen mosfets om te schakelen? Ben al ffkes uit het elektronica gebeuren en het zit wat ver. Zou er graag me er terug in verdiepen.
Voor dit soort doeleinden is er geen meerwaarde voor een FET en tegelijk zijn vele voorbeeldschema's van een dergelijke display aansturen altijd met transistors.

Er zijn mensen die mij een GOD vinden


Acties:
  • 0 Henk 'm!

  • Ruitenwisser
  • Registratie: April 2025
  • Laatst online: 12:30
memphis schreef op maandag 19 mei 2025 @ 12:42:
[...]


Voor dit soort doeleinden is er geen meerwaarde voor een FET en tegelijk zijn vele voorbeeldschema's van een dergelijke display aansturen altijd met transistors.
Azo, en gewoon dan maken dat ie in het saturatie gebied zit gestuurd met je base stroom zeker.

In mijn hoofd zit: wil je schakelen gebruik een mosfet, wil je schalen gebruik een transistor

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 23-06 06:53
@Ruitenwisser
Ik heb ook periodes gehad dat ik geheel niets meer met elektronica deed, zoals tot vorig jaar december had ik een onderbreking van drie jaar. Het is voor mij een hobby en heb op zich niet veel interesse en tijd meer om mij op al te veel sub-onderwerpen tegelijk te richten, zoals op mosfets en transistors. Zitten ze in een schema, prima, dan kijk ik er even naar zoals in dit geval de BC547. Die had ik toevallig ook nog in huis en dan ga ik niet verder zoeken naar alternatieven want ik heb geen project ontwerpen ambities.

Zelfde met programmeren, ik kijk alleen nog naar de code, hetzij PBasic of C-Sharp of C++ of VHDL of Assembly of Arduino. Dan probeer ik het te begrijpen en test het vaak uit met debuggen maar ik doe geen enkele poging meer zelf iets te schrijven, hooguit wat kleine aanpassingen verrichten of als het niet compileert dan duik ik er wat verder in maar tot een limiet, wordt het te lastig dan jammer, dan zoek ik wat anders want vaak is het zo je dat je na verloop van tijd en met wat meer ervaring alsnog een oplossing tegenkomt.

Kortom, ik kijk of ik iets snap en het proberen te begrijpen is mijn insteek vandaar de vraag over de Tris-registers. Dus wat al voor me ligt heb ik al genoeg stof aan en hoef ik niets extra erbij op de vork te nemen. ;)

Acties:
  • 0 Henk 'm!

  • Ruitenwisser
  • Registratie: April 2025
  • Laatst online: 12:30
@kitao

Ok, dat is duidelijk en verstaanbaar. Ik heb vlug even in de datasheet van de 16F57 gekeken en daar staat dat het TRIS register een write-only register is.
The TRIS registers are “write-only” and are set (output
drivers disabled) upon Reset.
Dus dat verklaart waarom het volgende niet werkt en de verklaring daarvoor is hardwarematig en niet door de compiler.

code:
1
2
TRISC | = (1 << 6) ; // Set bit 6 -- WERKT NIET en geeft deze error
TRISC = TRISC &~(1<<4); // -- WERKT NIET en geeft deze error

Acties:
  • +1 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 23-06 06:53
@Tinusvolkel
Inmiddels een echte test kunnen doen en het boardje werkt prima met de soldeerloze inklik headers.
Nogmaals veel dank voor die gouden tip d:)b

Afbeeldingslocatie: https://tweakers.net/i/ngwcUSNOpei6gHBdr61Z3rbUkAQ=/800x/filters:strip_icc():strip_exif()/f/image/gO7z9tNJYt7o7QOWPXTfaMPr.jpg?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/al6IlTn2R58IbPfcs0InYOH-Wn8=/800x/filters:strip_icc():strip_exif()/f/image/kgnE8x6WNr7X7hzWjfzGArUF.jpg?f=fotoalbum_large ....Afbeeldingslocatie: https://tweakers.net/i/VJvrANw6NKrra2mdaah1dsUDjAw=/800x/filters:strip_icc():strip_exif()/f/image/VTJbjRBpnnNo1cQq49r9Lus2.jpg?f=fotoalbum_large
https://ww1.microchip.com...osity-Nano-Schematics.PDF

Chiptorials - CLB Synthesizer Quick Start Guide – Driving a 7-segment Display
YouTube: Chiptorials - CLB Synthesizer Quick Start Guide – Driving a 7-segmen...

De gebruikte code (onder de video) is Verilog maar als ik het goed begrepen heb kun je de schakeling ook opzetten met alleen bdf, block diagram file, dwz grafisch componenten en I/O plaatsen.

Acties:
  • 0 Henk 'm!

  • D-Three
  • Registratie: Oktober 2001
  • Laatst online: 23-06 01:05
@kitao wat zijn inklikheaders? :? Heb je een part number?

[ Voor 25% gewijzigd door D-Three op 19-05-2025 19:13 ]


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 23-06 06:53
Ruitenwisser schreef op maandag 19 mei 2025 @ 13:16:
@kitao
Ok, dat is duidelijk en verstaanbaar. Ik heb vlug even in de datasheet van de 16F57 gekeken en daar staat dat het TRIS register een write-only register is.

Dus dat verklaart waarom het volgende niet werkt en de verklaring daarvoor is hardwarematig en niet door de compiler.

code:
1
2
TRISC | = (1 << 6) ; // Set bit 6 -- WERKT NIET en geeft deze error
TRISC = TRISC &~(1<<4); // -- WERKT NIET en geeft deze error
Goed gevonden hoor, dank je, dat brengt al een stuk meer duidelijkheid.
Tot op zekere hoogte want lijkt mij vreemd dat de CPU niet 'weet' of niet kan 'lezen' wat er in de Tris geschreven staat ?
Daar komt bij dat MPLab de P16F57 Tris-registers bitsgewijs wel in beeld weet te brengen, zie hieronder, met de drie gele streepjes.

Afbeeldingslocatie: https://tweakers.net/i/8A4vUSfwgEFBwmxtnJABb8HCOF8=/800x/filters:strip_icc():strip_exif()/f/image/2UcwiBWdOyI36jKX1Dx8nUCJ.jpg?f=fotoalbum_large

Jouw gegeven write-only term helpt zeker om er meer over te vinden, zoals hier:
https://electronics.stack...the%20control%20qualifier.
dat naar deze verwijst:
5.3.10 Baseline PIC MCU Special Instructions
https://ww1.microchip.com...n/devicedoc/50002053g.pdf


Nog iets over de BJT's en Mosfets, ik noemde dat een sub-onderwerp maar had het beter een andere-richting onderwerp kunnen noemen want de details van zulke componenten is op zich een vak apart B)

[ Voor 15% gewijzigd door kitao op 19-05-2025 20:17 . Reden: Plaatje toegevoegd ]


Acties:
  • +1 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 23-06 06:53
D-Three schreef op maandag 19 mei 2025 @ 19:13:
@kitao wat zijn inklikheaders? :? Heb je een part number?
Het draadje begint vanaf 16 mei
kitao in "De EL-kroeg - Deel 4"

Een inklik-header is mijn zelf-verzonnen term, in werkelijkheid zijn de bijgeleverde male-headers bij het board standaard en recht. Daarom kwam ik er even niet uit want wist en verwachtte niet dat je die, met kracht, erin kon 'klikken'. Ik had ze gepast en het paste niet en had geen poging gedaan die in de zizag te forceren. Totdat ik die hele goeie tip kreeg :)

Afbeeldingslocatie: https://tweakers.net/i/V_Z4oX0kMrR98QrGakRRzhqCsJQ=/800x/filters:strip_icc():strip_exif()/f/image/KU3w6DURG8bHBanGa5ufcCQj.jpg?f=fotoalbum_large
^^ zigzag gatenrij ^^

@D-Three
Staggered through-holes is de officiele term, niet zigzag gaatjes :+

Afbeeldingslocatie: https://tweakers.net/i/G9V7HI5cPOjrM0V5Any4D0EnhXs=/800x/filters:strip_icc():strip_exif()/f/image/PohJROM26Olz1e7AInJC8V6e.jpg?f=fotoalbum_large
https://ww1.microchip.com...osity-Nano-Schematics.PDF

[ Voor 23% gewijzigd door kitao op 20-05-2025 06:19 . Reden: Plaatje toegevoegd ]


Acties:
  • 0 Henk 'm!

  • Ruitenwisser
  • Registratie: April 2025
  • Laatst online: 12:30
kitao schreef op maandag 19 mei 2025 @ 19:36:
[...]


Goed gevonden hoor, dank je, dat brengt al een stuk meer duidelijkheid.
Tot op zekere hoogte want lijkt mij vreemd dat de CPU niet 'weet' of niet kan 'lezen' wat er in de Tris geschreven staat ?
Daar komt bij dat MPLab de P16F57 Tris-registers bitsgewijs wel in beeld weet te brengen, zie hieronder, met de drie gele streepjes.

[Afbeelding]

Jouw gegeven write-only term helpt zeker om er meer over te vinden, zoals hier:
https://electronics.stack...the%20control%20qualifier.
dat naar deze verwijst:
5.3.10 Baseline PIC MCU Special Instructions
https://ww1.microchip.com...n/devicedoc/50002053g.pdf


Nog iets over de BJT's en Mosfets, ik noemde dat een sub-onderwerp maar had het beter een andere-richting onderwerp kunnen noemen want de details van zulke componenten is op zich een vak apart B)
Wat meer info over write-only registers: https://electronics.stack...ro-or-wo-and-wr-registers en IIRC is dat de debugger die bijhoudt wat er in dat register staat.

Dus hardwarematig kan het register niet uitgelezen te worden aangezien de functionaliteit ontbreekt.

Acties:
  • 0 Henk 'm!

  • Hans1990
  • Registratie: Maart 2004
  • Niet online
Die PIC16F57 laat hiermee echt z'n leeftijd zien. Die is niet bedoeld om modulair gewijs je programma te segmenteren. Ze gaan er waarschijnlijk van uit dat je aan het begin in 1x al je GPIOs configureert met 1 write. Niet dat als je Lcd_Init() aanroept die dan de specifieke GPIOs initialized die daartoe behoren.

Die PIC heeft ook maar een 2-level hardware call stack. Dus heel veel abstracties (dieptegraad van function calls) kan ook niet, want dat kan de hardware niet aan.

Ik heb het volgens mij al eerder gezegd, en zal het nu iets directer in zijn, maar een chip waar 1 timer op zit en voor de rest alles wegbezuinigd is, sja dat is waardeloos :) Er zijn veel meer leukere PICs die meer kunnen met minder programmeeruren en gotcha's.

Ik was zelf altijd groot fan van de 16-bit PICs: die behouden een AVR achtige core architectuur met hele snelle SFR toegang (waaronder direct bit clear/set instructies), plus een bak geheugen ernaast en remappable pin select voor digitale peripherals (dan kan je PWM of UART op elke RP** ondersteunde pin routen).
Ik ben er alleen mee gestopt omdat die 16-bit PICs geen C++ compiler (officieel) hebben.. En zodoende helaas ook met de MIPS PIC32's , want die lopen (liepen) ook jaren achter op mainline GCC. En het lijkt er op dat Microchip er ook mee stopt.. want de 16-bit PICs leven enkel voort als speciale dsPICs, en ik meen dat ze op 32-bit vlak steeds meer over zijn op ARM (of misschien durven zij de gok wel aan van RISC-V? Hun 64-bit MPUs doen dat immers al).

Acties:
  • +1 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 23-06 06:53
Ruitenwisser schreef op dinsdag 20 mei 2025 @ 09:15:

Wat meer info over write-only registers: https://electronics.stack...ro-or-wo-and-wr-registers en IIRC is dat de debugger die bijhoudt wat er in dat register staat.

Dus hardwarematig kan het register niet uitgelezen te worden aangezien de functionaliteit ontbreekt.
Ok, opnieuw bedankt, ben blij dat je weer terug bent in de elektronica :)
Dat de MPLab software het Tris-register bijhoudt is inderdaad iets wat ik zelf ook overwoog maar die twijfel is nu wel verdwenen met jouw inbreng, tnx.

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 23-06 06:53
Hans1990 schreef op dinsdag 20 mei 2025 @ 10:23:
Die PIC16F57 laat hiermee echt z'n leeftijd zien. Die is niet bedoeld om modulair gewijs je programma te segmenteren. Ze gaan er waarschijnlijk van uit dat je aan het begin in 1x al je GPIOs configureert met 1 write. Niet dat als je Lcd_Init() aanroept die dan de specifieke GPIOs initialized die daartoe behoren.

Die PIC heeft ook maar een 2-level hardware call stack. Dus heel veel abstracties (dieptegraad van function calls) kan ook niet, want dat kan de hardware niet aan.

Ik heb het volgens mij al eerder gezegd, en zal het nu iets directer in zijn, maar een chip waar 1 timer op zit en voor de rest alles wegbezuinigd is, sja dat is waardeloos :) Er zijn veel meer leukere PICs die meer kunnen met minder programmeeruren en gotcha's.

Ik was zelf altijd groot fan van de 16-bit PICs: die behouden een AVR achtige core architectuur met hele snelle SFR toegang (waaronder direct bit clear/set instructies), plus een bak geheugen ernaast en remappable pin select voor digitale peripherals (dan kan je PWM of UART op elke RP** ondersteunde pin routen).
Ik ben er alleen mee gestopt omdat die 16-bit PICs geen C++ compiler (officieel) hebben.. En zodoende helaas ook met de MIPS PIC32's , want die lopen (liepen) ook jaren achter op mainline GCC. En het lijkt er op dat Microchip er ook mee stopt.. want de 16-bit PICs leven enkel voort als speciale dsPICs, en ik meen dat ze op 32-bit vlak steeds meer over zijn op ARM (of misschien durven zij de gok wel aan van RISC-V? Hun 64-bit MPUs doen dat immers al).
Ja, de beperktheid van die chip was inderdaad al eerder opgemerkt :)
Dat is bij een Z80 ook zo maar nog steeds gaat die over de toonbank voor de old-timer liefhebbers ;)
Zoals gezegd, de 16F57 is de motor in de Basic Stamp en dit is wat je ermee kunt doen :
https://www.parallax.com/...cs/Reference/AlphaRef.htm
Voordat ik dat allemaal door hebt ben ik wel een paar jaar verder.
En ik gebruik het als basis bouwblok om uC's in het algemeen wat beter te leren kennen, dan begin je niet met 64-bits, toch ?

2-level hardware call stack
Die ga ik opzoeken, vooral het eind van je post is boven mijn kennis nivo.

Ik heb een soort schemaatje, dat is op volgorde AVR-PIC-CLB-MaxII en ben nu met CLB bezig, Configurable Logic Block in de PIC16F13145, en ben geen expert in de recente ontwikkelingen, o.a. omdat ik er drie jaar uit ben geweest maar die lijkt mij redelijk nieuw.
Ik zit graag met software-pakketten te puzzelen en te rommelen en al kan het soms erg frustrerend zijn als het niet werkt geeft het toch plezier als de programmering rond komt.

Achteraf weet ik nu dat het 16F13145 board geleverd wordt met een voorprogramma, of ontwerp maar die heb ik meteen overgeschreven met het 7-segment voorbeeld. Blijkt op Github het origineel te staan en heb die gedownload en met MPLab geopend
https://github.com/microc...out-of-box-code-mplab-mcc
Kreeg ik de melding 'device not recognized'. Vreemd want gisteren deed die het wel.
Na veel klikken stond er in de Project Configuration naast het 1.25-pack een piepklein stukje tekst 'resolve'.
In dit veld:

Afbeeldingslocatie: https://tweakers.net/i/GPFFvIXNvX5ZuAT3xgSkXQkUBiI=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/x7RsNpPEGSJgkSElPyOM9eHE.jpg?f=user_large

Die geklikt en wordt er een device pakket in de software erbij geplakt en daarna was het board wel te programmeren.

Maar is heel leuk om wat mee bezig te zijn want geeft mooie plaatjes

Afbeeldingslocatie: https://tweakers.net/i/HZJ1Efv9zjoxk1utVlsdUQS8NBc=/800x/filters:strip_icc():strip_exif()/f/image/QnBIqCaK6CKek0ncq7ldGUGx.jpg?f=fotoalbum_large

Dit is hoe het design in de chip is gestructureerd voor deze toepassing en ben ooit begonnen met digitale elektronica en met 7400 en 4000 series dus ik vermaak me hier wel mee :)

Wat wel opvalt is dat de chip eigenlijk meteen al vol zit, te zien aan de vuurrode balk.
Niet echt te vergelijken met een CPLD dus ;)

Acties:
  • 0 Henk 'm!

  • Hans1990
  • Registratie: Maart 2004
  • Niet online
Opzich mag je de rest wat ik heb gezegd vergeten hoor, uiteindelijk merk je van veel dingen in C weinig van.

De manier hoe de PIC gebouwd is, maakt die wel wat moeilijker om met C te gebruiken. Er zitten wat haken en ogen aan..

Wat je van die 2 level hardware callstack kan merken, is dat je na main() maar 2 functies diep kan aanroepen. Dus stel je zou een Lcd_WriteString() schrijven en daarna Lcd_WriteChar(), dan zit de callstack van die PIC vol. Al zou je dan nog een functie nodig hebben (ik noem maar iets, je wilt hoofdletters wegfilteren naar kleine letters), dan kan je niet nog eens ToLowercase() aanroepen ofzo.

Of nog vervelender: als je een interrupt krijgt, dan telt die ook 1 niveautje bij op de callstack. Dus als je altijd een interrupt kan verwachten, dan moet je nog meer opletten. Nieuwere PICs hebben een diepere callstack ondersteuning. Die PIC16F13145 kan bijvoorbeeld 16 diep. Maar ook een 8-pin PIC12F629 heeft al 8 niveaus. Daar kan je iets mee! ;)

De Z80 ken ik enkel van naam, beetje voor mijn tijd vrees ik. Maar als ik zo op Wikipedia kijk, was dat al een best moderne architectuur.

Acties:
  • 0 Henk 'm!

  • vanaalten
  • Registratie: September 2002
  • Laatst online: 13:15
kitao schreef op maandag 19 mei 2025 @ 19:36:
Tot op zekere hoogte want lijkt mij vreemd dat de CPU niet 'weet' of niet kan 'lezen' wat er in de Tris geschreven staat ?
Dan moet je eens een aantal jaar ASIC design doen, dan krijg je misschien wat meer begrip! ;)

Zonder dat ik het interne design van die 16F57 ken:
Je moet het denk ik zien als een processor en randapparaten zoals dus die TRIS IO modules. Programma wordt uitgevoerd en op een gegeven moment kom je bij de instructie om een datawaarde naar TRIS te schrijven. Op dat moment gaat die datawaarde over een bus en komt bij TRIS aan, die het in een lokaal register opslaat en z'n ding ermee doet. Daarna is die datawaarde 'uit' het processordeel van de chip, dus de enige plek waar die waarde nog staat is in dat lokale register in TRIS.

Dan het stukje ASIC design: natuurlijk had men dat lokale register niet alleen schrijfbaar, maar ook leesbaar kunnen maken. Dat zou voor software-ontwikkelaars best handig kunnen zijn. Maar: dat kost logica. Moet men die acht draadjes van het register terug-routen naar het processordeel en daar met wat multiplexing toegankelijk maken als men het register wil lezen. En dat alles kost chip-oppervlak. En dus geld. Dat zou een reden kunnen zijn waarom dit register niet leesbaar is.

Een andere reden kan simpelweg zijn: een onwetende chip-ontwerper. Zo heb ik mij zelf er wel eens schuldig aan gemaakt om van een stuk ASIC-design een register enkel schrijfbaar te implementeren - vooral omdat dat gewoon even een stuk makkelijker was, om bepaalde redenen. Waarna ik werd teruggefloten door de systeemarchitect die vond dat ze leesbaar voor software moesten zijn. Mijn argument "ja maar, dat is stom, de software WEET toch wel wat 'ie net naar dat register geschreven heeft?!?" werd vakkundig van tafel geveegd. :)

Acties:
  • +1 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 23-06 06:53
@Hans1990
Ah, dat wordt dus bedoeld met call-stack level, dank je, nu begrijp ik het.
En met de verwijzing naar een Z80 ging het mij niet zozeer om de mogelijkheden met dat IC maar om het bredere verschijnsel dat er aardig nog wat animo is voor retro antieke apparatuur. Dat heb ik ook en al is de F57 lang niet zo heel oud begrijp ik best dat niemand daar nog een nieuw project mee gaat opzetten. Bij mij is die Parallax elektronica en software na een gedeeltelijk geslaagde Tweak-restauratie nog steeds werkend, dus ik gebruik het nu als losse module, zie foto

Afbeeldingslocatie: https://tweakers.net/i/nMJVJUDVSRwNcRL2tkiIswSFNzM=/800x/filters:strip_icc():strip_exif()/f/image/BosXpGhyATvIZ6i9V0g3g4Qb.jpg?f=fotoalbum_large

In 2009 heb ik het via Antratek besteld maar het kwam al vele jaren daarvoor op de markt, in 2002 meen ik en PBasic stamt zelfs uit 1992.

Z80 project playlist
YouTube: DIY Z80 Retro Computer #1: Interface a Z80 to an Arduino

Z80 Educatief bord MPF-1, nog steeds te vinden maar niet echt goedkoop.
Zit zo te zien een Toshiba TMPZ84 in, dus geen originele Zilog.

Afbeeldingslocatie: https://tweakers.net/i/YA5QYRBqikpoN1KjJPbogmORRLk=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/Km2Cme8LwAbS1iRTbdcSXk69.jpg?f=user_large
https://kswichit.net/Z80/Z80.html

Ps, leuk, emulator via NL-website :)
https://www.heinpragt.nl/?p=3260
.

[ Voor 33% gewijzigd door kitao op 21-05-2025 04:34 . Reden: Ps ]


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 23-06 06:53
vanaalten schreef op dinsdag 20 mei 2025 @ 13:45:
[...]

Dan moet je eens een aantal jaar ASIC design doen, dan krijg je misschien wat meer begrip! ;)

Zonder dat ik het interne design van die 16F57 ken:
Je moet het denk ik zien als een processor en randapparaten zoals dus die TRIS IO modules. Programma wordt uitgevoerd en op een gegeven moment kom je bij de instructie om een datawaarde naar TRIS te schrijven. Op dat moment gaat die datawaarde over een bus en komt bij TRIS aan, die het in een lokaal register opslaat en z'n ding ermee doet. Daarna is die datawaarde 'uit' het processordeel van de chip, dus de enige plek waar die waarde nog staat is in dat lokale register in TRIS.

Dan het stukje ASIC design: natuurlijk had men dat lokale register niet alleen schrijfbaar, maar ook leesbaar kunnen maken. Dat zou voor software-ontwikkelaars best handig kunnen zijn. Maar: dat kost logica. Moet men die acht draadjes van het register terug-routen naar het processordeel en daar met wat multiplexing toegankelijk maken als men het register wil lezen. En dat alles kost chip-oppervlak. En dus geld. Dat zou een reden kunnen zijn waarom dit register niet leesbaar is.

Een andere reden kan simpelweg zijn: een onwetende chip-ontwerper. Zo heb ik mij zelf er wel eens schuldig aan gemaakt om van een stuk ASIC-design een register enkel schrijfbaar te implementeren - vooral omdat dat gewoon even een stuk makkelijker was, om bepaalde redenen. Waarna ik werd teruggefloten door de systeemarchitect die vond dat ze leesbaar voor software moesten zijn. Mijn argument "ja maar, dat is stom, de software WEET toch wel wat 'ie net naar dat register geschreven heeft?!?" werd vakkundig van tafel geveegd. :)
Prima uitleg hoor, dank je wel en ik concludeer dat het een hardware structuur beperking is.

Ik moest Asic-design even opzoeken want klinkt mij niet bekend maar het is zo, wat ik thuis niet kan uitvoeren met een pc, ic, soldeerbout en een tangetje heeft voor mij geen nut om dat nog te gaan leren. :7

Om nog even terug te komen op het (CLB) Curiosity Board, Microchip heeft een serie korte video's erover, zoals unboxing en o.a. wat uitleg over de castellated en staggered randen maar ook over het debuggen en andere toepassingen zoals de Data Visualiser. Nu een paar maandjes bezig met Atmel Studio en MPLab en voor mij was en is de Microchip informatie overweldigend, je ziet door de bomen het bos niet meer. Na uren dwalen begin je pas wat te herkennen in al dat aanbod. Dus wat er gebeurt is 'eerst aansluiten en dan pas documentatie doornemen'.
Beter om toch eerst de instructies te bekijken B)

https://mu.microchip.com/...e-curiosity-nano-platform
.

Acties:
  • 0 Henk 'm!

  • Ruitenwisser
  • Registratie: April 2025
  • Laatst online: 12:30
kitao schreef op dinsdag 20 mei 2025 @ 16:22:
[...]
Ik moest Asic-design even opzoeken want klinkt mij niet bekend maar het is zo, wat ik thuis niet kan uitvoeren met een pc, ic, soldeerbout en een tangetje heeft voor mij geen nut om dat nog te gaan leren. :7
VHDL/Verilog heeft enkel een PC en ic nodig :P

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 23-06 06:53
@Ruitenwisser
Yep ... en tijd :|
Ben geloof ik in totaal 6 uur bezig geweest om de MPLab Code Configurator Melody (MCC) en Data Visualizer aan de praat te krijgen. Ondanks video en website voorbeelden :F

YouTube: MCC Melody Example Components: TIMER Toggle LED, Polled Implementation

https://onlinedocs.microc...BA154E-en-US-2/index.html

Maar het eerste grafiekje is in beeld, dus hopelijk gaat het hierna wat vlotter, pfff }:|

Afbeeldingslocatie: https://tweakers.net/i/rn1wRvQMUGaufHsJb4FR9f1mCWE=/800x/filters:strip_icc():strip_exif()/f/image/uQ4z9G1nA55b78aAYdwrFxa9.jpg?f=fotoalbum_large

Nou ja, 1 voordeel, je hoeft geen regel code meer te schrijven, alles wordt met klikmodules ingesteld.
De code genereert MCC zelf.

Acties:
  • 0 Henk 'm!

  • Ruitenwisser
  • Registratie: April 2025
  • Laatst online: 12:30
Hah, ik liet dat MCC gedoe altijd links liggen. Datasheet lezen en zelf bits zetten.

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 23-06 06:53
Ah, ok, maar nu ben je daar niet meer mee bezig ?
Zoals gezegd, ik schrijf zelf geen enkel programma maar ik lees ze wel door en weet de registers inmiddels te vinden en wat ze doen, in grote lijnen althans.
De MCC gegenereerde code betwijfel ik ook een beetje, eerste keer miste ik dit stuk :

C:
1
2
3
4
5
6
7
8
9
10
11
12
13
const struct TIMER_INTERFACE Timer2 = {
    .Initialize = TMR2_Initialize,
    .Deinitialize = TMR2_Deinitialize,
    .Start = TMR2_Start,
    .Stop = TMR2_Stop,
    .PeriodSet = TMR2_PeriodSet,
    .PeriodGet = TMR2_PeriodGet,
    .CounterGet = TMR2_CounterGet,
    .CounterSet = TMR2_CounterSet,
    .MaxCountGet = TMR2_MaxCountGet,
    .TimeoutCallbackRegister = TMR2_PeriodMatchCallbackRegister,
    .Tasks = NULL
};

Daarna ontbrak deze regel :
C:
1
IO_Debug_Toggle(); 


Dan komt de twijfel, heb ik iets overgeslagen of zit er een bug?
Ik ga er van uit dat het aan mij ligt en ik zie wel na wat meer gebruik wat er aan scheelde.
.

Acties:
  • 0 Henk 'm!

  • Ruitenwisser
  • Registratie: April 2025
  • Laatst online: 12:30
Nee, nu niet meer. Heb nog PIC32's en PIC18's geprogrammeerd op m'n vorig werk. Mis het wel een beetje. Nu wij hadden toen een hele library met kernel, drivers etc dus veel was ook al eens geschreven en moest je gewoon includen.

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 23-06 06:53
Heb je al een andere richting geprobeerd waar je misschien nog niet aan toe gekomen ben?
Zo heb ik als afwisseling altijd een kitje in huis waar ik wat tijd aan besteed met solderen, maar geen smd, maar ik kijk ook een beetje naar de werking ervan.
Deze ben ik vorige week mee begonnen en meteen mislukte de usb-aansluiting, wat ik al verwachtte dus had die als eerste erop gezet. Gelukkig is die optioneel om weg te laten want die ligt nu in stukjes.
Voor de rest zijn het normale componenten dus het kan nog goed aflopen ;)

Afbeeldingslocatie: https://tweakers.net/i/68Bb0aapcpaVrU5iugp6v-Z1fYw=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/3wU9r50RXVfetAh76h6HOLWE.jpg?f=user_largeAfbeeldingslocatie: https://tweakers.net/i/6_XfjXYB3tSuEehRwnrf_zXAQtI=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/tyCC66XPvvUlzl1eL9quDbXD.jpg?f=user_large

[ Voor 12% gewijzigd door kitao op 21-05-2025 14:32 ]


Acties:
  • 0 Henk 'm!

  • Ruitenwisser
  • Registratie: April 2025
  • Laatst online: 12:30
kitao schreef op woensdag 21 mei 2025 @ 14:28:
Heb je al een andere richting geprobeerd waar je misschien nog niet aan toe gekomen ben?
Wat bedoel je? Heb carrière switch gedaan waardoor niet meer in aanraking gekomen met elektronica. Ik moet nu hobbymatig het terugoppikken als ik de tijd vind.

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 23-06 06:53
Ah, ok, ik dacht dat je nog zocht naar iets anders om weer mee te beginnen omdat je in de verleden tijd sprak over het programmeren maar het blijkt tijdgebrek te zijn. Op zich geen slechte keuze om dat op peil te houden, zonde om die ervaring te laten vervagen.

Het MPLab MCC en DV gebeuren begint een beetje duidelijker te worden maar ik vraag me nu af of ik maar 1 pinnetje in beeld kan krijgen ? Of eigenlijk drie

Afbeeldingslocatie: https://tweakers.net/i/9JJjtWi4Q-NYWk1H4Td4x2-GEGM=/800x/filters:strip_exif()/f/image/YLyy8OxhqZ6iWtg268nDpiJt.png?f=fotoalbum_large

https://onlinedocs.microc...DA-4266-A6A1-F5302CAA5B2A
en
https://ww1.microchip.com...osity-Nano-Schematics.PDF

High Speed signalen, zeg maar >0.5 MHz, schijnt de Data Visualizer niet geschikt voor te zijn en als dit allemaal klopt is uiteindelijk toch externe meetapparatuur nodig, zoals een Logic Analyzer.

Probleem met de video dat het zo lang duurde om te reproduceren kwam ook omdat ik een ander board heb en een iets andere versie MPLab als dat Glen Nilsen gebruikte. Dus mijn knoppen zaten op een andere rij B)

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 23-06 06:53
Voor wie interesse heeft in de Configurable Logic Block in de PIC16F13145 is het volgende misschien leuk om te weten.
Zoals in deze post was te zien
kitao in "De EL-kroeg - Deel 4"
staat er een Verilog code onder de video, dat is deze hieronder en die wordt in de P16F13145 geprogrammeerd.

verilog:
1
2
3
4
5
6
7
8
9
10
11
module bcd7seg(bcd0,bcd1,bcd2,bcd3, seg0,seg1,seg2,seg3,seg4,seg5,seg6);
input bcd0, bcd1, bcd2,bcd3; //initializing bcd as an 4 bit input signal
output seg0,seg1,seg2,seg3,seg4,seg5,seg6; //initializing seg as an 8 bit output signal
assign seg0= ~(((~bcd3)&(~bcd2)&(~bcd1)&bcd0) | ((~bcd3)&bcd2&(~bcd1)&(~bcd0))); //Logical expression for segment0 (Segment A)
assign seg1= ~(((~bcd3)&bcd2&(~bcd1)&bcd0) | ((~bcd3)&bcd2&bcd1&(~bcd0))); //Logical expression for segment1 (Segment B)
assign seg2= ~(((~bcd3)&(~bcd2)&bcd1&(~bcd0))); //Logical expression for segment2 (Segment C)
assign seg3 = ~(((~bcd3)&(~bcd2)&(~bcd1)&bcd0) | ((~bcd3)&bcd2&(~bcd1)&(~bcd0)) | ((~bcd3)&bcd2&bcd1&bcd0)); //Logical expression for segment3 (Segment D)
assign seg4 = ~(((~bcd3)&bcd0) | ((~bcd3)&bcd2&(~bcd1)) | (~(bcd2)&(~bcd1)&bcd0)); //Logical expression for segment4 (Segment E)
assign seg5 = ~(((~bcd3)&(~bcd2)&bcd0) | ((~bcd3)&(~bcd2)&bcd1) | ((~bcd3)&bcd1&bcd0)); //Logical expression for segment5 (Segment F)
assign seg6 = ~(((~bcd3)&(~bcd2)&(~bcd1))|((~bcd3)&bcd2&bcd1&bcd0)); //Logical expression for segment6 (Segment G)
endmodule

Het leuke eraan is dat zonder aanpassingen precies diezelfde code in Intel Quartus compileert en in een Altera Max II geprogrammeerd kan worden. Deze twee foto's zijn van twee geheel verschillende IC's die op identieke wijze een 7-segment aansturen.

Afbeeldingslocatie: https://tweakers.net/i/edp0Bm_4aQ7xaYcYWAIqPt7OSj0=/800x/filters:strip_icc():strip_exif()/f/image/iypGVoR8FKxkugxsCBeMy55L.jpg?f=fotoalbum_largeAfbeeldingslocatie: https://tweakers.net/i/LgpQGYkWAKVLxcMUd2GV2cIhfQ4=/x800/filters:strip_icc():strip_exif()/f/image/lmflj0o3UgItNsToKFqttn1H.jpg?f=fotoalbum_large

Zo ziet het eruit in de Quartus software

Afbeeldingslocatie: https://tweakers.net/i/UAJ12FLVDojT6X9Y5XyOrtNZ-io=/800x/filters:strip_icc():strip_exif()/f/image/tsY44f2xxHOPK2i0TWS6ZTiY.jpg?f=fotoalbum_largeAfbeeldingslocatie: https://tweakers.net/i/RBYl6GICe_JqwCBDTvI3veu8vJ4=/800x/filters:strip_icc():strip_exif()/f/image/zrCeJSHsB2Rh6Cv02nMAx7dh.jpg?f=fotoalbum_large

Enige verschil is dat de CPLD opstelling geen 'motor' heeft om dat logische blok aan te sturen terwijl de P16F13145 daar blijkbaar z'n microcontroller voor gebruikt. Vandaar de Dip-switches.

De 'motor' is de main-file in het Microchip video voorbeeld

C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "mcc_generated_files/system/system.h"

/*
    Main application
*/

int main(void)
{
    SYSTEM_Initialize();
    
    while(1)
    {
        for(uint8_t i = 0; i < 10; i++){
            CLB1_SWIN_Write8(i);
            __delay_ms(4000);
        }
    }    
}


Ps,
Bij het toevoegen van de Verilog file aan Quartus via New geef het de naam bcd7seg gelijk aan de Module naam in de code op regel 1. Anders verschijnt deze 12007 error
https://www.intel.com/con...top_entity_is_missing.htm
en dat is een voor mij heel ingewikkelde omschrijving voor in dit geval iets eenvoudigs :
Module naam moet gelijk zijn aan de file name. En vice versa. Zo niet : geen compilatie !
Bij VHDL identiek maar daar heet het niet Module maar Entity.

Afbeeldingslocatie: https://tweakers.net/i/3mwSrYWtKvQkUa4KvEj3NtqqsdE=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/fnnqOz9p9uEvW9rbIMHM6eE2.jpg?f=user_large

(SystemVerilog is weer een andere taal ^ )

Meer info in de playlist hieronder. Daar wordt een Altera Max 3000 gebruikt maar heb ondervonden dat het niet uitmaakt welke CPLD je erop aansluit. Verder is mij gebleken dat de Pic16F13145 CLB een mooi bruggetje slaat tussen uC en CPLD. Overigens blijkt Microchip ook FPGAs en tools in zn assortiment te hebben maar ben er nog niet aan toe gekomen dit te bekijken.
https://www.microchip.com...ucts/fpgas-and-plds/fpgas

YouTube: The Intro - An Introduction To FPGA And CPLD - PyroEDU
.

[ Voor 18% gewijzigd door kitao op 23-05-2025 07:06 . Reden: Ps ]


Acties:
  • 0 Henk 'm!

  • Ruitenwisser
  • Registratie: April 2025
  • Laatst online: 12:30
kitao schreef op woensdag 21 mei 2025 @ 23:33:
Ah, ok, ik dacht dat je nog zocht naar iets anders om weer mee te beginnen omdat je in de verleden tijd sprak over het programmeren maar het blijkt tijdgebrek te zijn. Op zich geen slechte keuze om dat op peil te houden, zonde om die ervaring te laten vervagen.

High Speed signalen, zeg maar >0.5 MHz, schijnt de Data Visualizer niet geschikt voor te zijn en als dit allemaal klopt is uiteindelijk toch externe meetapparatuur nodig, zoals een Logic Analyzer.
Ja idd, dit heb ik me ook al bepeist. Indien ik weer in de richting van mijn afstudeerrichting wil werken zal ik waarschijnlijk als een schoolverlater beschouwd worden met dat ik er al een paar jaar uit zit nu wat ook een reductie van loon inhoudt. Dermee ik me er weer wat wil in verdiepen als ik de tijd vind.

Ik zou toch aanraden om een oscilloscoop aan te schaffen als je veel met elektronica bezig bent. Ik heb een 4 kanaals Rigol en ben daar best tevreden mee.

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 23-06 06:53
Ruitenwisser schreef op donderdag 22 mei 2025 @ 17:16:

Ja idd, dit heb ik me ook al bepeist. Indien ik weer in de richting van mijn afstudeerrichting wil werken zal ik waarschijnlijk als een schoolverlater beschouwd worden met dat ik er al een paar jaar uit zit nu wat ook een reductie van loon inhoudt. Dermee ik me er weer wat wil in verdiepen als ik de tijd vind.

Ik zou toch aanraden om een oscilloscoop aan te schaffen als je veel met elektronica bezig bent. Ik heb een 4 kanaals Rigol en ben daar best tevreden mee.
Na drie jaar niets meer met elektronica gedaan te hebben was het voor mij zo goed als helemaal opnieuw beginnen. Niet met alles maar bijvoorbeeld MPLab was ik destijds al mee bezig maar dan met PIC simulaties op Simulide waar je de hex voor nodig hebt en kon amper de start knop nog vinden. Sommigen hebben een ijzersterk geheugen dus ik hoop dat jij van je onderbreking minder nadeel ervan ondervindt.

Bedankt voor de tip over de oscilloscoop, ik was al een beetje aan het rondkijken maar ivm ruimte overweeg ik een usb-scoopje. Een L.A. heb ik, zie deze post
kitao in "[Discussie] Arduino-topic"
dat geeft ook een aardig overzicht ... en mooie plaatjes :)

Acties:
  • +1 Henk 'm!

  • Ramon 73
  • Registratie: Maart 2005
  • Laatst online: 15:46
Bizar verhaal vandaag. heeft helaas niks met functionele elektronica te maken.
Ik werk voor een bedrijf dat trainingen in de elektronica sector geeft. Wij delen een pand met een assemblagebedrijf. Beide bedrijven zijn niet heel groot (elk tussen 5 en 10 personen) dus de banden onderlinge zijn goed en direct.
Vanochtend gaat de deurbel, staat er een Engelse man met een grote UK werkbus van Liebherr voor de deur. De man draagt werkkleding van hetzelfde merk. Heel verhaal over golfsolderen, en of wij dat doen. Naja, de andere bewoner van dit adres wel, maar hij moet iets repareren en daarvoor zwart stof nodig van golfsolderen. Naja, kerel, wat bedoel je in vredesnaam???? Gevraagd of bij vulstaven soldeertin wil kopen (hebben de buren ruim in voorraad). Nee, moest het zwarte stof hebben van golfsolderen. Jawadde, dat lijkt erop dat hij de slakken van een soldeerbad wil hebben. Dat is in eerste instantie voor 80% recycleerbaar tot soldeertin, dus dat geeft niemand zomaar cadeau. Slakken (dross) laten zien maar dat was te grof, hij moest echt het fijne poeder hebben......
Er zijn machines in de handel (hebben de buren ook) om verse slakken te regenereren naar bruikbaar soldeertin, de rommel die achterblijft is niet (eenvoudig) te recyclen. Soldeertinfabrikanten kunnen het nog recyclen, maar slechts 5-15% reclaim en kost een hoop moeite en energie. Dus je moet flinke hoeveelheden hebben om rendabel te zijn. Ergo, het zwarte stof dat de man nodig heeft is waardeloos in kleine hoeveelheden.
Even gevraagd bij de buren en daar barst iedereen in lachen uit. Kijk maar of hijj een kratje bier wil dokken.
Beetje moeilijk doen bij die man, haalt hij €20 boven water. Terwijl ik wegloop om te vragen of dat voldoende is, drukt hij me €50 in de handen en zegt "Are we okay?" Uehhh, ja, doe maar. En hij loopt naar buiten met 1,5kg zwart waardeloos stof waar hij €50 voor heeft betaald.
Dus morgen frieten bij het bier :)

Maar wat bezielt zo'n man? €50 voor vrij waardeloos zwart stof dat nergens voor gebruikt kan worden, het brandt niet, als "zand"straal medium is het onbruikbaar, het ontploft niet.
Iemand zoiets al eens meegemaakt?

Edit: het verhaal bij een UK solder manufacturer gelegd. In Engeland is het vaker gebeurd dat men om dross (slakken) gaat bedelen bij EMS bedrijven. Verse slak is tot 80% recyclebaar. Per kilo is het al snel 15-25€ waard.
Dus mijn verhaal werd volledig bevestigd, ze hangen overal nagenoeg hetzelfde verhaal op.

[ Voor 6% gewijzigd door Ramon 73 op 23-05-2025 10:41 ]


Acties:
  • 0 Henk 'm!

  • blackwidow998
  • Registratie: Maart 2010
  • Laatst online: 22-06 23:04
Duurde iets langer voordat ik weer verder kon met mijn boardje.

Ik ben even opnieuw begonnen op een nieuwe print, alleen de componenten geplaatst zoals prototype 1 die wel werkte. alle andere zaken er nog niet op gesoldeerd. Deze geeft wederom 11 volt.
Hans1990 schreef op vrijdag 16 mei 2025 @ 10:54:
[...]


Ik zat al te zoeken of die LMR toevallig een 3.3V fixed output versie heeft, maar (helaas) enkel adjustable. Vaak is er weinig anders aan, behalve dat je dan die weerstanddeler kan besparen en dus je uitgang direct op FB aansluiten.
Leuke kostenbesparing voor fabrikanten met weinig PCB area of, die anders 2 reels moeten laden voor 22.1k en 51k..

@memphis Ik denk niet dat de chip verkeerd om zit, want dan zou je GND (pin2) en VIN (pin5) omdraaien. Dan zou de magische rook wel vertrokken zijn.

@blackwidow998 Je zou dus kunnen testen wat er gebeurd als je de bovenste weerstand van de deler even met een pincet kortsluit. Als dan de spanning naar 3.3V zakt, dan is dit dus een switcher met 3.3V referentie. Je zou er voor kunnen kiezen om het bord dan zo te gebruiken.. vraag is alleen wel waarom dit gebeurd.

Voor mij is even de vraag wat voor IC er nu op zit. TI gaat niet magisch opeens een chip variant maken met 3.3V referentie spanning als die 1.0V hoort te zijn. Tenminste, ga ik even van uit :+

Dus misschien iets meer info of betere foto van de chip? (je hebt al een aardige microscoop zo te zien! soms kunnen chips belettering beter leesbaar worden adhv polarisatie van het licht)
Het zou mij niets verbazen als er een andere generiek 6-pin SOT switcher nu op zit.
Daarna zat ik te denken aan de post van hans die ik voorbij zag komen en heb toen de bovenste weerstand kort gesloten. en voila, 3.3 volt uitgangsspanning. Ik heb waarschijnlijk ergens een foutje of onbewuste wijziging in mijn PCB zitten tov de eerste. Wellicht dat jullie het kunnen vinden?? Hier de versie 1 en 2 langs elkaar:

V1

Afbeeldingslocatie: https://tweakers.net/i/go-2ZSqgJjiuTkKqzUp8GD7d6AM=/800x/filters:strip_exif()/f/image/HbvCU5Aw8ypfb0EsCf5luSFb.png?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/WOYc2SNwSXLfYUlvztkE5tATMTc=/800x/filters:strip_exif()/f/image/uculIr6gd2ti0Kn5VipqOff9.png?f=fotoalbum_large

V2

Afbeeldingslocatie: https://tweakers.net/i/y73KoBMvxKEfDQ0Ee9OYIujRbpA=/800x/filters:strip_exif()/f/image/Lp8x2fOQZj3RhfagQoYc5VZW.png?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/5D5gvzbgSSnOdB0Cnoif7UIxo5U=/800x/filters:strip_exif()/f/image/VtygSZc0dqCpAlhcJ6y82rdK.png?f=fotoalbum_large


Maar voor een quick fix, kan ik die weerstand overbruggen en zou mijn voeding dan correct werken?

Acties:
  • 0 Henk 'm!

  • NewGuest
  • Registratie: Mei 2007
  • Laatst online: 23-06 22:26
Waarom is op de pcb de track van R3 naar C23 (GND) veranderd in een troughhole track?

Acties:
  • 0 Henk 'm!

  • memphis
  • Registratie: Oktober 2000
  • Laatst online: 14:42

memphis

48k was toen meer dan genoeg.

Heb je ook alle massapunten van de componenten gemeten als ze ook hard aan massa liggen?
Met name R3 en pin 2 van het IC.

Er zijn mensen die mij een GOD vinden


Acties:
  • 0 Henk 'm!

  • Bas...
  • Registratie: December 2022
  • Laatst online: 15:30
Nog een kleine opmerking over je layout. Het is netter om het spoor vanaf U18 naar de 3V3 pin van de ESP achter (of rechts van) C23 aan te sluiten i.p.v. op U18. Het is gebruikelijk om het stroompad letterlijk door de pads van capaciteiten heen te routeren. Als je ergens anders aftakt dan heeft dat stroompad minder profijt van die capaciteiten, met mogelijk meer rimpel/ruis/etc tot gevolg. Op alle andere plekken doe je dit wel netjes.

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 23-06 06:53
Testbenchen met Modelsim

Zie ook deze website voor een snelle start. Tutorial – Introduction to Modelsim for Beginners
https://nandland.com/introduction-to-modelsim-for-beginners/

Op deze webpagina staan veel codes met test benches.
http://esd.cs.ucr.edu/labs/tutorial/

Afbeeldingslocatie: https://tweakers.net/i/bK2uYhnIW27LWS_uWZToxGW9nNs=/800x/filters:strip_icc():strip_exif()/f/image/YMsfpYJMkl6VtLHIajn5MQvp.jpg?f=fotoalbum_large

Maak een folder aan op de PC, noem het bijv. Multiplexor en maak twee documentjes aan, 1 voor de Behavior code en de ander voor de Test Bench en noem deze Mux.vhd en Mux_TB.vhd, gelijk aan de Entity-naam in de code (in Verilog heet dat Module). Plak daar respectievelijk deze codes in:
http://esd.cs.ucr.edu/labs/tutorial/mux.vhd
http://esd.cs.ucr.edu/labs/tutorial/tb_mux.vhd

Run as administrator Modelsim > File > New Project, geef het een naam en vink Reference Library aan.

Afbeeldingslocatie: https://tweakers.net/i/uQfnmqOXv7ICqbq2bm3syV0p1ts=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/AlBxCIL2jthnNEfgMcnD9Suk.jpg?f=user_large

Er verschijnt een pop-up Add Items. Klik die weg.
In window Project rechtsklik en Add existing file

Afbeeldingslocatie: https://tweakers.net/i/HOVBtR2fgSJluSZcoHFBWhYhNhE=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/atXjrJGyktQx6mJYrSwgPC3J.jpg?f=user_large . . . Afbeeldingslocatie: https://tweakers.net/i/8163xqe01H4fMqS5i0VITnGbA4A=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/FBn21H1FOY7cYaVzjTlQW1XH.jpg?f=user_large

Doe dit voor Mux.vhd en Mux_TB.vhd die dan met een vraagteken in het project komen. Rechtsklik ze allebei en compile selected

Afbeeldingslocatie: https://tweakers.net/i/iqkATpmbbgMAnU8Py8Piq4_ZqZw=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/khBEyj2dYGVYeVbhaHsXr23K.jpg?f=user_large...Afbeeldingslocatie: https://tweakers.net/i/2de-HNSksW5DectQQ7Zp0goYgY4=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/qscXC4cHEjEeMiYSpxpvkofk.jpg?f=user_large

Klik op Library en Work en dubbelklik mux_tb

Afbeeldingslocatie: https://tweakers.net/i/sXJuTWUAm5x-2SIIvdTM5Z3DwOE=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/61RazLedUsNjRq3gAXwPSid7.jpg?f=user_large

Rechtsklik in Objects en Add to wave Signals in region

Afbeeldingslocatie: https://tweakers.net/i/MbfrYXf0Us4yGnHqUBKz2OJ7gy4=/800x/filters:strip_icc():strip_exif()/f/image/pfhrnA0LhEWnSq6THOusG9n7.jpg?f=fotoalbum_large

Klik op Run all en rechtsklik in de grafiek en Zoom full

Afbeeldingslocatie: https://tweakers.net/i/a7dJkOYzOSpG4oZTBd5TeK5E7Yc=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/WvtcLCgFJm2EbvcVga8pcpIK.jpg?f=user_large . . . Afbeeldingslocatie: https://tweakers.net/i/R7g814CcxOaf10UyvCe89lDCEnc=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/kKNCVZelgQF4fl9nYaKPDixQ.jpg?f=user_large

bekijk het eindresultaat

Afbeeldingslocatie: https://tweakers.net/i/t21u3ndrjAZpnsh7SeKKwe7YIQo=/800x/filters:strip_icc():strip_exif()/f/image/aOQ4mADe5IaV7747unknw8L8.jpg?f=fotoalbum_large

en vergelijk deze met de Behavioral simulation van de webpagina

http://esd.cs.ucr.edu/labs/tutorial/mux.jpg
Afbeeldingslocatie: https://tweakers.net/i/ExCIzHPKVH2OB4ykaOFVa5qeTe4=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/JzLfAwlByB4ATgLIpVZlbU6M.jpg?f=user_large

Bij de webpagina zitten twee boeken, VHDL for Digital Design, F. Vahid and R. Lysecky en is op Archive.org te vinden.
https://archive.org/detai...design-vahid-lysecky-2007
en Embedded System Design, ESD
https://dsp-book.narod.ru/ESDUA.pdf

Bovenstaande stappen worden uitgebreider in deze playlisten en in dit pdf getoond maar er is geen Quartus nodig om de Modelsim op te zetten aangezien Modelsim de files zelf compileert. De stappen voor Verilog of VHDL of SystemVerilog zijn gelijk aan elkaar.

YouTube: Introduction [My HDL Workflow in ModelSim & Quartus | Tutorial 0]
code onder video

YouTube: Tutorial (1/4): Creating a project from scratch in Quartus Prime
code zelf natypen

https://ftp.intel.com/Pub...HDL/ModelSim_Tutorial.pdf
code kopiëren vanuit pdf verschuift wat leestekens.

ModelSim download pagina - ca. 2 GB.
https://www.intel.com/con...tware-version-20-1-1.html

Er zijn twee manieren om een Sim te maken, dat kan handmatig door de input signalen een force of een clock te geven, de outputs bewegen dan vanzelf mee. Zou je bijvoorbeeld Mux.vhd dubbelgeklikt en in de Wave hebben gezet gevolgd door een Run100 dan verschijnen er 'lege' signalen. De schakeling an sich is nog steeds aanwezig maar de inputs wachten op handmatige clock of force data.
De tweede manier is met een testbench code zoals hierboven en dan gaat wel alles automatisch.

Run100
Afbeeldingslocatie: https://tweakers.net/i/AQmnuznqBSucV8FddKYhJJ5x5no=/800x/filters:strip_icc():strip_exif()/f/image/cRKXwxeaMnStoX6waPK7yRls.jpg?f=fotoalbum_large

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

Ps.
Vanuit Quartus is het ook mogelijk om de Testbench in Modelsim in beeld te krijgen. Volg dan de Scratch tutorial video 2 waar de testbench onderaan de top-level file wordt geplakt. In het voorbeeld hierboven kun je dan deze
http://esd.cs.ucr.edu/labs/tutorial/tb_mux.vhd
in hetzelfde documentje onderaan plakken als waar deze in staat
http://esd.cs.ucr.edu/labs/tutorial/mux.vhd
Dus van twee maak je 1 file. Die 'dubbele' file compileren in Quartus en via Tools Run Simulation klikken.

Je zou toch verwachten dat er 2 files door dit 16 gigabyte pakket aan elkaar gelinkt zouden worden, maar helaas ... blijkbaar niet ? :|

De bedoeling van deze post is eigenlijk om met slechts een paar stappen de Testbench snel in beeld te krijgen en daarom laat ik het hierbij maar eventuele vragen zijn welkom. Voor iemand die de code taal wil leren schrijven (niet ik) is het wel handig om te kunnen controleren of de code werkt zoals bedoeld. Als je dat met en via Quartus wil doen duurt het ongeveer 80x zo lang aangezien het compileren veel meer tijd nodig heeft als in Modelsim.

Ps2
De link bovenaan naar de Nandland tutorial kwam ik een dag na het plaatsen van deze post pas tegen ergens in een vergeten mapje. Deze post is niet daaruit gekopieerd. Toch heb ik die bovenaan gezet omdat je ook met die snel zou kunnen beginnen met het testbenchen op Modelsim.
.

[ Voor 20% gewijzigd door kitao op 25-05-2025 08:27 ]


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 23-06 06:53
Nog een handige tip, de Zif-Dip :D

Afbeeldingslocatie: https://tweakers.net/i/zetiaymi7ksnSCD0-k0kk2bNRfw=/800x/filters:strip_icc():strip_exif()/f/image/9tihzo4BHoSaCUyFj25Z6ier.jpg?f=fotoalbum_large

Met Dip-switches rechtstreeks op het breadboard vliegt het alle kanten op maar met een Zif-socket eronder, zo merkte ik vandaag, zit het rotsvast. En hoger dus makkelijker te bereiken.

Ik heb een paar van deze keypad push buttons

[Afbeeldingslocatie: https://tweakers.net/i/HSRJRZCf4DZZRG3o8R7kirB-awc=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/kXgHlVcSLcuLBnVIXyPj88MR.jpg?f=user_large . . . Afbeeldingslocatie: https://tweakers.net/i/G0ajhPEX1Ya3lImw8pZjCiRovhE=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/ZOzDogkayFTie2xuY9EhYUia.jpg?f=user_large

Maar zoiets in Dip-switch uitvoering moet nog uitgevonden worden geloof ik. Of niet ?
Wat er naast staat zijn ook leuk, vierkante Leds.
In verhouding wel een stuk duurder, en waren niet zo makkelijk te vinden ook.

De dip-switches staan in deze opstelling
https://startingelectroni...se/tut2-AND-and-OR-gates/
volgens dit schema, linksonder
https://startingelectroni...d/Xilinx_XC9536XL_EVB.pdf

--------------------------------------------------------
Edit :
Inmiddels de dip switches op een board gevonden :)

Afbeeldingslocatie: https://tweakers.net/i/XZPJfPsyxoSnQ82qP6roK0NDT9M=/800x/filters:strip_exif()/f/image/68ZDkzPUn29EQYnyM4NvpJD6.webp?f=fotoalbum_large

PMOD-SWITCH Expansion Board
.

[ Voor 14% gewijzigd door kitao op 26-05-2025 03:54 ]


Acties:
  • 0 Henk 'm!

  • Ruitenwisser
  • Registratie: April 2025
  • Laatst online: 12:30
kitao schreef op donderdag 22 mei 2025 @ 20:36:
[...]


Na drie jaar niets meer met elektronica gedaan te hebben was het voor mij zo goed als helemaal opnieuw beginnen. Niet met alles maar bijvoorbeeld MPLab was ik destijds al mee bezig maar dan met PIC simulaties op Simulide waar je de hex voor nodig hebt en kon amper de start knop nog vinden. Sommigen hebben een ijzersterk geheugen dus ik hoop dat jij van je onderbreking minder nadeel ervan ondervindt.

Bedankt voor de tip over de oscilloscoop, ik was al een beetje aan het rondkijken maar ivm ruimte overweeg ik een usb-scoopje. Een L.A. heb ik, zie deze post
kitao in "[Discussie] Arduino-topic"
dat geeft ook een aardig overzicht ... en mooie plaatjes :)
Ja, zit nu ook over de 3 jaar er niets meer meegedaan te hebben maar helaas is mijn geheugen nu ook weer niet om ijzersterk te noemen :P.

Poeh dat is wel een mooi apparaatje voor niet veel geld. Wij werkten met de Saleae maar was wel iets duurder.

Acties:
  • 0 Henk 'm!

  • Ruitenwisser
  • Registratie: April 2025
  • Laatst online: 12:30
NewGuest schreef op donderdag 22 mei 2025 @ 21:26:
Waarom is op de pcb de track van R3 naar C23 (GND) veranderd in een troughhole track?
Waarschijnlijk om z'n GND te verbinden met z'n GND op de achterkant. Ikzelf zou aan de voorkant ook nog een GND vlak aanbrengen.

Acties:
  • +4 Henk 'm!

  • Osiris
  • Registratie: Januari 2000
  • Niet online
M'n allereerste SMD PCB ontworpen, een flight controller voor FPV drones:

Was noodzakelijk om van een LQFP100 (14 x 14 mm chip size, 16.7 x 16.7 footprint size) naar een TFBGA100 (8 x 8 mm chip én footprint size [want BGA]) te switchen, want anders veels te weinig ruimte. Ben erg benieuwd hoe dát gaat lukken om te solderen. Nog nooit echt SMD gesoldeerd, dus meteen naar een BGA te upgraden is, wel, interessant denk ik :+

Gisteren of nou ja, vannacht tot diep in de nacht bezig geweest.. 8 layers en in elkaar geflanst ala "Shit, nog een unconnected pin.. Alle layers in 1 grote chaos.. Hoe krijg ik die nou weer naar buiten? Eens kijken of KiCad een weg weet te vinden op deze layer die ik eigenlijk niet zou moeten gebruiken.. Hey, compleet rondom de PCB, maar er is een geldige route! Doen! Aaaand done!" :')

En wat renders:

Afbeeldingslocatie: https://tweakers.net/i/NeF8sCM3K49WI8EwYg9AYQ-H8OI=/800x/filters:strip_exif()/f/image/YKY4GKbnWANelQVVSYZDaERF.png?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/qpoKS_9oXPffLxgkbzcp__4gWJs=/800x/filters:strip_exif()/f/image/23YWpCPghN4HICyXOZDOy0iZ.png?f=fotoalbum_large

Zo met deze plaatjes lijkt het dat er nog best wel veel PCB-ruimte over is.. Maarja, als je als complete n00b vrijwel willekeurig shit aan het neerplempen bent en vrijwel alles met via's aan elkaar moet stitchen.. Blijft er toch verrassend weinig over :+

Ik heb uiteraard zoveel mogelijk rekening proberen te houden met paths over de bijbehorende ground layer et c. Maar moet toegeven, had niet echt een "plan" verder :+

Ben benieuwd of 't gaat vliegen! Nu de BOM uploaden naar JCSC (deels, voor alle kleine componentjes, de DSP368 is daar niet leverbaar, dus dan bestellen we voor de zekerheid de STM32H743 ook maar bij Mouser of Digikey) :P

edit:
En ja, het silk screen is één grote ramp.. :+ Wilde 't design afgelopen nacht nog naar JLCPCB sturen voordat het "time limited offer" voor een 8 layer PCB voor zéér weinig voorbij was.. Waarbij ik me wel afvraag hoe "limited" die "time" was, want het staat er al een week op ofzo :P

[ Voor 6% gewijzigd door Osiris op 26-05-2025 18:04 ]


Acties:
  • 0 Henk 'm!

  • blackwidow998
  • Registratie: Maart 2010
  • Laatst online: 22-06 23:04
blackwidow998 schreef op donderdag 22 mei 2025 @ 21:11:
Duurde iets langer voordat ik weer verder kon met mijn boardje.

Ik ben even opnieuw begonnen op een nieuwe print, alleen de componenten geplaatst zoals prototype 1 die wel werkte. alle andere zaken er nog niet op gesoldeerd. Deze geeft wederom 11 volt.


[...]


Daarna zat ik te denken aan de post van hans die ik voorbij zag komen en heb toen de bovenste weerstand kort gesloten. en voila, 3.3 volt uitgangsspanning. Ik heb waarschijnlijk ergens een foutje of onbewuste wijziging in mijn PCB zitten tov de eerste. Wellicht dat jullie het kunnen vinden?? Hier de versie 1 en 2 langs elkaar:

V1

[Afbeelding]

[Afbeelding]

V2

[Afbeelding]

[Afbeelding]


Maar voor een quick fix, kan ik die weerstand overbruggen en zou mijn voeding dan correct werken?
Ik zit nog eens in de datasheet te lezen. en viel me dit op:

Afbeeldingslocatie: https://tweakers.net/i/T61HburiP0H2KXD6oKTkmUFnQcc=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/fE4mR4rUw4IdgejibDIzo8Jw.png?f=user_large

Dus hier heb ik mijn antwoord waarschijnlijk gevonden. Dit verklaard ook waar hij werkt als ik de divider doorsluit. Waarom het dan bij V1 wel werkte??? Geen idee.
Ik heb het datasheet meerdere keren doorgelezen, en was altijd in de veronderstelling dat de divider altijd nodig was. Er word verder in het hele document niet over gesproken over direct verbinden met de SW pin. :X

Dus ik kan de voltage divider weglaten. Kan voor nu de weerstand overbruggen. problem solved...

Bedankt voor iedereens input. Als er nog toevoegingen zijn hoor ik het uiteraard graag.

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 23-06 06:53
@Ruitenwisser
Ik kan het lastig vergelijken met de echte Saleae aangezien ik die nooit in gebruik heb gezien. Hieronder een afbeelding van de drie RS-RW-EN signalen die naar een LCD gaan dat op mijn scherm verschijnt vanaf de Atmega32A opstelling eronder. Ik weet niet of het overeenkomt met de professionele versie maar voor mijn toepassing is het secuur genoeg. De resolutie staat op 41 uS, zie rechtsonder en dat bleek het maximale bereik. Het LCD voorbeeld van Newbiehack, met aandacht op C programmeren, is op deze pagina's terug te vinden: https://buildyourcnc.com/ en
YouTube: 22. Arduino for Production! AVR Atmega32 - Displaying Number and Fi... en
https://buildyourcnc.com/...umbers-on-the-lcd-display
Code is helaas onbruikbaar want hun afdruk is te slordig. Enige manier waarop deze tutorial-serie te volgen kan worden is door de code vanuit de video's na te tikken. Twee beeldschermen zijn dan wel nodig.


Afbeeldingslocatie: https://tweakers.net/i/MxZuK0mCE8mOe3pNSbO_WTHv6JA=/800x/filters:strip_icc():strip_exif()/f/image/KnvZ4JRretjxONl2lgx1sfEx.jpg?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/kcR-agxu4nK3_ielb8sgGDVvU4c=/x800/filters:strip_icc():strip_exif()/f/image/oBDBKXskctHxZJcH6gG8iwGj.jpg?f=fotoalbum_large

Het Dipje op dit breadboard staat vreemd genoeg wel stevig op z'n pootjes en is van dezelfde batch als die van de vorige post.

@Osiris
Ik zie dat je meteen in het diepe springt, eerst een smd-pcb maken en dan pas kijken of het solderen lukt ;)
Een paar maanden geleden deed ik ook zoiets met Cpld, eerst laten leveren en dan kijken wat het nou eigenlijk is. Hier trouwens een goeie video over smd-solderen :
YouTube: SMD Soldering Tutorial | Guide | Tools | Tecniques | Stencil

@blackwidow998
Goed dat je een oplossing in de kleine lettertjes hebt gevonden en apart dat de datasheets alleen maar een typical application met een spanningsdeler laten zien op de FB :/
.

[ Voor 17% gewijzigd door kitao op 27-05-2025 14:00 ]


Acties:
  • 0 Henk 'm!

  • memphis
  • Registratie: Oktober 2000
  • Laatst online: 14:42

memphis

48k was toen meer dan genoeg.

blackwidow998 schreef op maandag 26 mei 2025 @ 23:36:
[...]


Ik zit nog eens in de datasheet te lezen. en viel me dit op:

[Afbeelding]

Dus hier heb ik mijn antwoord waarschijnlijk gevonden. Dit verklaard ook waar hij werkt als ik de divider doorsluit. Waarom het dan bij V1 wel werkte??? Geen idee.
Ik heb het datasheet meerdere keren doorgelezen, en was altijd in de veronderstelling dat de divider altijd nodig was. Er word verder in het hele document niet over gesproken over direct verbinden met de SW pin. :X

Dus ik kan de voltage divider weglaten. Kan voor nu de weerstand overbruggen. problem solved...

Bedankt voor iedereens input. Als er nog toevoegingen zijn hoor ik het uiteraard graag.
In de datasheet van de Q1 versie (die maar net iets anders is dan de niet-Q1):
Afbeeldingslocatie: https://tweakers.net/i/KUiG4BMfyaY8hoNwq6lrIpG3aEY=/800x/filters:strip_icc():strip_exif()/f/image/5FmdkZbbyoZFMSsOI2uaIgMM.jpg?f=fotoalbum_large

Kortom, je hebt de verkeerde in je ontwerp gebruikt, verkeerd besteld of verkeerd gekregen....

Er zijn mensen die mij een GOD vinden


Acties:
  • 0 Henk 'm!

  • Hans1990
  • Registratie: Maart 2004
  • Niet online
Ah dat verklaard ook waarom in de non-Q1 datasheet niets over dit fenomeen staat :+

Dan heb je zeker de LMR50410Y3 en is die feedback weerstand kortsluiten geen bodge maar een fix.

Je kan immers ook prima 0R er in zetten en de weerstand naar GND van de deler weg laten. Doe ik regelmatig voor chips met fixed output zodat ik er altijd nog een ADJ op kan zetten (of: de 3.3V als adjustable gebruiken).

Nou, ik ook weer wat geleerd dat -Q1 varianten wel degelijk flink kunnen verschillen.

Acties:
  • 0 Henk 'm!

  • memphis
  • Registratie: Oktober 2000
  • Laatst online: 14:42

memphis

48k was toen meer dan genoeg.

In de tekening zie ik ook de Y3 staan dus vanaf het ontwerp is al de verkeerde ingeslopen.

Er zijn mensen die mij een GOD vinden


Acties:
  • 0 Henk 'm!

  • Osiris
  • Registratie: Januari 2000
  • Niet online
kitao schreef op dinsdag 27 mei 2025 @ 09:27:
@Osiris
Ik zie dat je meteen in het diepe springt, eerst een smd-pcb maken en dan pas kijken of het solderen lukt ;)
Een paar maanden geleden deed ik ook zoiets met Cpld, eerst laten leveren en dan kijken wat het nou eigenlijk is. Hier trouwens een goeie video over smd-solderen :
YouTube: SMD Soldering Tutorial | Guide | Tools | Tecniques | Stencil
Ja, m'n eerste through-hole-design ging prima, laatst een FPV drone in elkaar gesoldeerd, dus waarom vervolgens niet de overtreffende trap hè :')

Goed excuus om een Miniware MHP50 en Velleman hetelucht-station aan te schaffen, toch? :P

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 23-06 06:53
Mooi spul, het desoldeer-station zou ik ook wel willen hebben. Ik heb nu voor mislukte aanhechtingen alvast een 2e soldeerbout erbij klaar staan, als een soort brandblusser bij heet werk met een brede platte punt. Met een fijne punt op wick desolderen bleek namelijk niet goed te gaan en tussendoor van punt wisselen is nogal irritant.

Tja, volgende stap ... die komt voor mij niet want voor mij is de overstap van normale componenten naar smd exponentioneel. Vandaar dat het oscilloscoop kitje uit de vorige post al smd voorgefrabriceerd heeft. Jammer alleen dat ze de mini-usb er dan ook niet even op zetten :N

Je gebruikt KiCad meen ik voor het Pcb-ontwerp? Voor simulaties heb ik het Proteus Arduino pakket maar ik zag dat zij ook PCB software leveren https://www.labcenter.com/
Niet dat ik dat zelf wil gaan proberen maar is altijd leuk om te zien. In het verleden heb ik wel eens een printje geëtst in een steelpannetje dat er ongeveer zo uit zag

Afbeeldingslocatie: https://tweakers.net/i/kLA_oCt4js-ZkKwNLoVHOXlL8Tw=/800x/filters:strip_icc():strip_exif()/f/image/7EchWVNimNDncLdhFoTPQWtj.jpg?f=fotoalbum_large

Acties:
  • +2 Henk 'm!

  • memphis
  • Registratie: Oktober 2000
  • Laatst online: 14:42

memphis

48k was toen meer dan genoeg.

Kicad werkt wel lekker. Hoewel ik van een ver verleden ervaring had met Ultimate en Ultiboard was ik vorig jaar begonnen met KiCad. In 2 middagjes tekenen met behulp van het online zoeken naar hoe bepaalde dingen moet had ik van niets een eindproduct waarvan later bij JLPCB de print werd gemaakt.

Afbeeldingslocatie: https://tweakers.net/i/_TIvirKluH_Ds1gt76YMNT-GdZc=/800x/filters:strip_exif()/f/image/zNqy4RLilWtVamdKjJmAAVFd.png?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/1H1NwR2k5Slo8sGpLiW_B90Skas=/x800/filters:strip_exif()/f/image/sTV5KWS58MPPxQHdaVnR8qNT.png?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/9tZgHufL-K5gPq_CTH9psGYhT60=/800x/filters:strip_exif()/f/image/2wGTW3BRokODcsVrwB4jr9QG.png?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/xFhg2-d15XkhQzbWKCi3Jb5acTg=/800x/filters:strip_icc():strip_exif()/f/image/AjV6uKAczTqfIjXGnr1LJT5H.jpg?f=fotoalbum_large

Er zijn mensen die mij een GOD vinden


Acties:
  • 0 Henk 'm!

  • Ruitenwisser
  • Registratie: April 2025
  • Laatst online: 12:30
kitao schreef op dinsdag 27 mei 2025 @ 09:27:
De resolutie staat op 41 uS, zie rechtsonder en dat bleek het maximale bereik.
Dat ga je me toch even moeten uitleggen. Je meet pulsen van 3 uS dus je resolutie is veel hoger dan 41 uS.

Verder lijkt het me een regelrechte clone van de Saleae en dus prima voor een hobbyist die geen 500+ wilt neerleggen. Ik kan het niet direct zien maar ik hoop dat de software van die clone ook verschillende protocollen kan vertalen, dat was wel handig aan die Saleae.

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 23-06 06:53
@Ruitenwisser
Scherp gezien dat het 3 uS zijn maar het is zo dat de waarden van periode, frequentie en duty cycle niet zomaar verschijnen, die heb ik zelf in beeld gebracht. Ik vermoed dat de 41 uS tijd per divisie zijn.
I2C , SPI en Uart zitten inderdaad in dit software pakket opgenomen.

Ik vermaak me vaak beter met de software als met de opbouw van een schakeling. Staat die er eenmaal dan blijft er verder niet veel interactie meer over, tenzij je het programma wil wijzigen en uittesten maar ik programmeer niets zelf.

Afbeeldingslocatie: https://tweakers.net/i/5SouKBSMd2JeX58DJoEbn1cr5o0=/x800/filters:strip_icc():strip_exif()/f/image/obYeDloj8LL5XNaKwr20hIQN.jpg?f=fotoalbum_large . . Afbeeldingslocatie: https://tweakers.net/i/-CR3K1P1gTYV_tc10zmcA-YQ62Q=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/YfYytAiV9tTh9oSwhqZe7IbN.jpg?f=user_large
YouTube: Assembly via Arduino - 74HC4067 DEMUX
code onder video

Daarom zet ik de code niet alleen in de Arduino Ide maar ik kan die ook in Atmel Studio, MPLab *, Simulide of Proteus plaatsen.
Deze keer koos ik voor Proteus waar niet alleen de simulatie kan worden uitgevoerd maar ook door het programma heen gestapt kan worden, oftewel debuggen. In bepaalde opzichten gaat dat zelfs vlotter als in Studio, met name het Over en Out Steppen.

Afbeeldingslocatie: https://tweakers.net/i/3GszBm8iK_XnIN_VDB4WnHBslgM=/800x/filters:strip_icc():strip_exif()/f/image/RQiWghnr5t9GwR4DfjIhcW5w.jpg?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/9dLou91v30YKh7VdBmk_Ag5NbAg=/800x/filters:strip_icc():strip_exif()/f/image/HQXi7fRdajauPeIoTQRwVUsF.jpg?f=fotoalbum_large

Van Proteus is ook een demo-versie, dan kan er niet opgeslagen worden maar als je de computer aan laat staan of in slaap modus houdt dan blijft de simulatie dagen in stand maar dan kan er meen ik niet op deze manier een Nano erin worden gezet. Soms zit het tegen, zo had ik eerst de linkse 16-channel demux erin gezet en een uur zitten klikken maar geen enkel ledje ging aan. Daarna wat verder gekeken en de rechtse, die identiek is, blijkt wel simulatie geschikt :F

Afbeeldingslocatie: https://tweakers.net/i/XCrnSd0ttuytYOh8R5lgT-qPUPU=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/b1ytjiTpMGupFgKOLsXcOj8P.jpg?f=user_large

De software maakt het allemaal wat interactiever voor mij want echt veel praktische toepassingen voor elektronica heb ik niet, zoals bijvoorbeeld een ventilator temperatuurregeling of een inbrekersalarm :/

*Arduino code overzetten naar MPLab is me nog niet gelukt maar schijnt wel mogelijk te zijn na toevoeging van een plug-in.
.
Ps
Bij een micro-controller simulatie in Simulide is een hex-file nodig, die kan o.a. vanuit de Arduino IDE verkregen worden via menu Sketch > Export Compiled Binary, vervolgens rechtsklikken op de Nano en dan Load Firmware kiezen.

Afbeeldingslocatie: https://tweakers.net/i/1jp7_UgEaXsPkrayBBfEh99c4rM=/800x/filters:strip_icc():strip_exif()/f/image/s9fNH304FvK2xVx3VRitQCCv.jpg?f=fotoalbum_large
.

[ Voor 14% gewijzigd door kitao op 29-05-2025 09:29 ]


Acties:
  • 0 Henk 'm!

  • Ruitenwisser
  • Registratie: April 2025
  • Laatst online: 12:30
Je sample rate van je bakje is 24MHz, dus je resolutie lijkt dan eerder maximum 80nS, maar geen idee wat je ingesteld had.

En ik zie juist ook dat je de Saleae software ervoor gebruikt, iirc zou die de freq, dc en periode ook moeten weergeven maar het is wat te lang geleden.

Acties:
  • +1 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 23-06 06:53
@Ruitenwisser
Bedankt voor het meekijken weer :)
Er staat inderdaad 24 MHz op
https://www.tinytronics.n...ic-analyzer-8-channel-usb
en verder heb ik niks ingesteld, drie draadjes aangesloten en op de inzoem knop rechts onderaan gedrukt totdat het niet verder gaat.

Je kan het eventueel ook zelf proberen met de software zoals hier beschreven
kitao in "[Discussie] Arduino-topic"
en dan een demo gebruiken. Heb ik net ook gedaan, dus zonder kastje aangesloten en dan krijg ik dit te zien:

Afbeeldingslocatie: https://tweakers.net/i/iMzoaspXC3fTjlYZJ8dxjYoVqow=/800x/filters:strip_icc():strip_exif()/f/image/c7kBpAb34qpMQ5Wm2gcS86Sx.jpg?f=fotoalbum_large

Rechtsonder staat nu 4 uS in plaats van 41 uS dus er zit vooruitgang in :)
.

Acties:
  • +1 Henk 'm!

  • Hans1990
  • Registratie: Maart 2004
  • Niet online
Rechtsonder is de totale tijdsperiode van de x-as.

Je kan bij device de samplerate instellen. Hogere samplerate gebruikt meer geheugen (hoewel de Saleae wel e.e.a aan compressie doet). Op mijn MBP met dongles, hubs, e.d. is de hoge samplerate ook wat buggy als ik tegelijk ook devices ga debuggen (USB hub gaat dan op z'n gat).

Op de nieuwere Saleae devices is het ook nuttig om de samplerate in te stellen, omdat met minder kanalen je sneller kan samplen. Maar op de kloon Logic 8 is dat niet nodig.
Ik gebruik persoonlijk de Sigrok software overigens. Geen geneuzel met Saleae software "piraten" en doet voor mij wat het moet doen.

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 23-06 06:53
Hans1990 schreef op donderdag 29 mei 2025 @ 14:05:
Rechtsonder is de totale tijdsperiode van de x-as.

Je kan bij device de samplerate instellen. Hogere samplerate gebruikt meer geheugen (hoewel de Saleae wel e.e.a aan compressie doet). Op mijn MBP met dongles, hubs, e.d. is de hoge samplerate ook wat buggy als ik tegelijk ook devices ga debuggen (USB hub gaat dan op z'n gat).

Op de nieuwere Saleae devices is het ook nuttig om de samplerate in te stellen, omdat met minder kanalen je sneller kan samplen. Maar op de kloon Logic 8 is dat niet nodig.
Ik gebruik persoonlijk de Sigrok software overigens. Geen geneuzel met Saleae software "piraten" en doet voor mij wat het moet doen.
Ok, bedankt, nu je het zegt, met de sample rate had ik al eens eerder zitten spelen maar voor nu was het allemaal een beetje tussen neus en lippen door. Ik heb eenzelfde opstelling gezocht maar dit keer met een Uno en een Lcd-Hello World example met RS en EN aangesloten op de L.A.

Afbeeldingslocatie: https://tweakers.net/i/yCvrwNaN1PhB9XMuYwgSIY1v4NQ=/x800/filters:strip_icc():strip_exif()/f/image/fXJwbIpyRor9NJFPk6gCxj2T.jpg?f=fotoalbum_large

Dan komt dit eruit, met sample rate op z'n max, namelijk 24 MS/s

Afbeeldingslocatie: https://tweakers.net/i/DigITi-Sw9uXyEGdIgkx9q1eXrM=/800x/filters:strip_icc():strip_exif()/f/image/Y5bEGXdFqQarqQ4U76CeRMdD.jpg?f=fotoalbum_large
klik voor scherper beeld

Rechtsonder staat nu 2 uS ipv 4 uS na maximaal inzoemen bij 24 MS/s.

De Saleae-software staat vrij op het internet om te downloaden, er hoeven geen licentie sleutels voor gekraakt te worden om toegang te verkrijgen.
.

Acties:
  • +1 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 23-06 06:53
Over software gesproken .. ik volg o.a. deze projectjes
https://embetronicx.com/t...erfacing-with-pic16f877a/
code is goed te bekijken met het knopje extern rechtsboven ervan.
Bij het compileren ervan met XC8(v3.00) werd deze error gegeven driver_tmp_1.s:620:: error: (876) syntax error.
Zoeken in de documentatie naar error(876) in hfdst. 8 levert weinig bruikbare informatie op.
https://onlinedocs.microc...F9F089-en-US-4/index.html
Na wat googlen de compiler keuze veranderd naar XC8(v2.36) en dat ging wel goed. Je zou denken dat een nieuwere versie een beetje compatible is met de oude. :| En hoe vind je zo de syntax error nog terug ? :/

De LCD deed het goed op de 877A en dezelfde code wat aangepast en in de PIC16F57 geladen, met succes mede dankzij de uitleg die ik kreeg over het Write-only aspect van z'n Tris-registers. :)

Afbeeldingslocatie: https://tweakers.net/i/ncSsFFV0kvY3y3L13dmfldXX5H4=/x800/filters:strip_icc():strip_exif()/f/image/lTdG12HeN0JnMqdXQe297aUp.jpg?f=fotoalbum_large

De PIC16F57 wordt tot op heden nog steeds gebruikt op de Basic Stamp van Parallax en dat draait op PBasic en dat geeft behoorlijk veel toepassingen die met dit IC'tje uitgevoerd kunnen worden, een soort Zwitsers zakmes en erg knap hoe dat er allemaal ingestoken is. https://www.parallax.com/...cs/Reference/AlphaRef.htm
Edit: Niet alle commando's zijn bruikbaar voor de 16F57, alleen die met een groen tweetje ernaast (BS2).

Nadeel is wel dat voor mij de achterliggende bewegingen uit beeld verdwijnen bij programma's met PBasic.
Ik zoek dus eigenlijk een PBasic vertaler naar C of assembly, in ieder geval vertaald naar de interne registers van deze microcontroller. Misschien dat iemand al weet hoe dat ongeveer zit, waar te beginnen ?

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

Inmiddels nog een voorbeeld kunnen overzetten, deze is met een stepper en twee knoppen voor links- en rechtsom. Via een andere site deze keer: https://deepbluembedded.com/how-to-control-stepper-motor/

Afbeeldingslocatie: https://tweakers.net/i/kDYktFthcbKnELWc_KnoX2QhjrM=/x800/filters:strip_icc():strip_exif()/f/image/1HSPCpCdsqwqrUAPQkZYy6Jf.jpg?f=fotoalbum_large

Code gewijzigd tot dit om het te kunnen overzetten van 877A naar 16F57
C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// PIC16F57 Configuration Bit Settings
#pragma config OSC = HS         // Oscillator selection bits (HS oscillator)
#pragma config WDT = OFF        // Watchdog timer enable bit (WDT disabled)
#pragma config CP = OFF         // Code protection bit (Code protection off)

#include <xc.h>
#include <stdio.h>
#include <stdlib.h>
#include<htc.h> //<htc.h> is the top level where it determines what family of PIC is the target.
#include<pic.h> // pic.h tells the compiler how to handle chip setup osc for delay timing.
#define _XTAL_FREQ 20000000 //Specify the XTAL crystal FREQ

void main(void) 
{
  // Create Bit-Shifting Variable
  unsigned char i=0;
  // Set PORTB 8-Pins To Be Output Pins
  TRISB = 0x00;
  // Set All PORTB Pins To Be OFF (Initially) !
  PORTB = 0x00;
  // Set RC0, RC1 Pins To Be Input Pins
  // 22222222222222222222222222222222222222222   TRISC = 0b00000011; --  WERKT
  // TRISC0 = 0; --  WERKT NIET
  // TRISC1 = 1; --  WERKT NIET
  TRISC = (1<<0) | (1<<1) ; // --  WERKT 
  // TRISC = TRISC &~(1<<4); --  WERKT NIET
  // TRISC | = (1 << 6) ; // Set bit 6 -- WERKT NIET
  
  // Create The System's Main Routine !
  while(1)
  {
    // While Button1 is pressed, Rotate CW
    while(RC0)
    {
      PORTB = (1<<i); 
      i++;
      __delay_ms(10);
      if (i==4)
          i=0;
    }
    // While Button2 is pressed, Rotate CCW
    while(RC1)
    {
      PORTB = (8>>i); 
      i++;
      __delay_ms(10);
      if (i==4)
          i=0;
    }
  }


Ik vroeg me af waar de jumpers voor zijn op het driver boardje, na een tijd zoeken

Afbeeldingslocatie: https://tweakers.net/i/3PovZanHCFoithLsrRiYliF2tS0=/800x/filters:strip_icc():strip_exif()/f/image/hT3v5j10wNf23cEcdyXw7qUl.jpg?f=fotoalbum_large
https://www.thegioiic.com...n-dong-co-buoc-xanh-duong

Uiteindelijk met genoeg voorbeelden in C wordt wel duidelijk wat er gebeurt in vergelijking met PBasic maar buiten dat ik vrijwel geen C-code voorbeelden voor de 16F57 ben tegengekomen, is dat niet het hele verhaal. Zoals ik begrepen heb maakt bijvoorbeeld een MPLAb via de XC8-compiler een hex-file aan die vervolgens met de PicKit3 in de micro wordt geflasht maar zo gaat het volgens mij niet met de Basic Stamp software. Schijnt namelijk dat de PIC16F57 op de BS2 een interpreter voorgeprogrammeerd heeft zitten.
PIC16F57 Interpreter chip is preprogrammed with the BASIC Stamp 2 Interpreter firmware. The three main components needed to build your own BASIC Stamp are the PBASIC Interpreter Chip, EEPROM, and resonator. https://www.parallax.com/...p-2-interpreter-chip-dip/ en Wikipedia: BASIC Stamp

PBASIC was created to bring ease of use to the microcontroller and embedded processor world. It is used for writing code for the BASIC Stamp microcontrollers. After the code is written, it is tokenized and loaded into an EEPROM on the microcontroller. These tokens are fetched by the microcontroller and used to generate instructions for the processor. Wikipedia: PBASIC

Arduino link voor de liefhebber :)
https://arduinogetstarted...otor-using-uln2003-driver

----------------------------------------------------------------------------
Tot slot nog een derde site die ik volg https://circuitdigest.com...r-pic16f877a-adc-tutorial

Afbeeldingslocatie: https://tweakers.net/i/e3T1hxgjOSfZNr-u146NK0uhQJc=/x800/filters:strip_icc():strip_exif()/f/image/WmUC5nGOALrJEMt0kD4iCFLo.jpg?f=fotoalbum_large

Viel aanvankelijk totaal niet te compileren met voor mij abracadabra errors in de output die me ongeveer deze kant opstuurden: https://forum.microchip.c...5C3l000000MbdSEAS/t374730
Na ruim een uur gokkend diverse instellingen klikkend en herstart te hebben pakte het dan eindelijk maar waarom is me niet duidelijk.

Anyway, er staan in deze post drie goeie websites die de veel gebruikte PIC16F877A als voorbeeld geven dus ik hoop dat iemand er wat aan heeft. :) Hier de indexpagina's :
1. https://circuitdigest.com...-with-pic-microcontroller
2. https://deepbluembedded.c...-tutorials/#PIC-Tutorials
3. https://embetronicx.com/pic16f877a-tutorials/
.

[ Voor 63% gewijzigd door kitao op 31-05-2025 19:01 . Reden: Zie Edit: ]


Acties:
  • +1 Henk 'm!

  • szjoin
  • Registratie: Februari 2011
  • Laatst online: 12:28
Hi all,

Hopelijk is dit forum nog steeds in leven en kan iemand mij een tip geven moet het volgende.
Zie:

Afbeeldingslocatie: https://tweakers.net/i/UN2WkFYO9Jghy1lVDuUrqCdtsxE=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/hjdYzPcSNfRUY9wnS9gCnl8y.png?f=user_large

Dit is gedaan in KiCAD9.0 met de standaard instellingen.

Vraag: hoe kan ik ervoor zorgen dat de groundplane tussen de THT pads verbonden is?

Nu wordt de return-current voor sommige componenten helemaal om het IC geleid en is er een kans op potentiaal verschil indien ik daar niet expliciet rekening mee hou.

Ik heb al geGOOGLEd en de help functies geprobeerd maar kan niets vinden.

Dank alvast!

Acties:
  • +3 Henk 'm!

  • JCG
  • Registratie: Januari 2004
  • Laatst online: 15:10

JCG

PA1JCG

szjoin schreef op dinsdag 10 juni 2025 @ 10:19:

Vraag: hoe kan ik ervoor zorgen dat de groundplane tussen de THT pads verbonden is?
Ground plane eigenschappen open en bij electrical properties de clearance kleiner maken of minimal width kleiner maken. een van die twee staat net iets te hoog.
Andere optie is met de hand er een ground spoortje tussendoor trekken.

Let wel op dat je niet te ver gaat met die waardes, printen worden duurder hoe smaller sporen en clearances je instelt. (In stappen, dus van 0,25 maar 0,24 kan duurder zijn terwijl 0,24 naar 0,23 weer niet, je printenboer heeft er vaak informatie over)

[ Voor 5% gewijzigd door JCG op 10-06-2025 10:45 ]


Acties:
  • +1 Henk 'm!

  • szjoin
  • Registratie: Februari 2011
  • Laatst online: 12:28
Dank voor de goede tips!

Clearance was reeds 0mm. Een minimum width van 0,24mm was de oplossing.

Acties:
  • 0 Henk 'm!

  • JCG
  • Registratie: Januari 2004
  • Laatst online: 15:10

JCG

PA1JCG

szjoin schreef op dinsdag 10 juni 2025 @ 13:40:
Dank voor de goede tips!

Clearance was reeds 0mm. Een minimum width van 0,24mm was de oplossing.
Die clearance is handig om wel naar 0,24 mm te zetten. Nu zal het waarschijnlijk goed gaan omdat je sporen en pads ook een clearance waarde hebben, maar als je in de toekomst meerdere "vlakken" gebruikt, bijvoorbeeld naast een ground plane ook een voor de plus is de clearance wel handig om ze gescheiden te houden.

Acties:
  • +1 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 23-06 06:53
Soms valt dit subforum een beetje stil maar iedereen weet het meestal wel te vinden bij een vraag of gewoon om wat te lezen. ;)
Wat ik al een tijdje zo nu en dan probeer is om de XC8 compiler een path te geven naar Simulide maar het lukt me niet. Hieronder staat een partij ingewikkeld waar ik liever niet aan begin aangezien het meer luxe als noodzaak is want ik kan gewoon de hex die gegenereerd is in MPLab in de Sim-microcontroller uploaden.
https://simulide.com/p/compiler/
En ik snap dat bij vragen daarover ik beter op hun forum kan zijn.

Circuit Digest had namelijk een mooi projectje waar drie dingen samen komen, zoals ADC, Timer en CCP - Capture-Compare-Pwm en dat bleek zonder hindernissen te realiseren. Althans, compiler versie 3.0 werkt niet, 2.36 wel.
https://circuitdigest.com...r-pic16f877a-pwm-tutorial

Het circuit bevat een 10 uF condensator maar zelfs een 1 uF kon ik amper vinden. Gelukkig is elektronica niet al te groot en kun je nog wat bewaren zonder hele kasten ermee op te vullen. En vond ik deze :

Afbeeldingslocatie: https://tweakers.net/i/oV7yBm1gOD-8O6wpT3EiV69Am9A=/x800/filters:strip_icc():strip_exif()/f/image/2zk6w0I4w5UvXRmuHOr7XqrK.jpg?f=fotoalbum_large Afbeeldingslocatie: https://tweakers.net/i/mkj8MaLxidzwQSNEibfYkpFtWds=/x800/filters:strip_icc():strip_exif()/f/image/K3hDYbqNMntYbCbTDQqvyyHa.jpg?f=fotoalbum_large

Past perfect in een breadboard :) Ernaast is de totale opstelling met het zilveren blokje nog net zichtbaar.
Zelfs de simulatie bleek goed te werken al is dat dan niet met Proteus zoals in het artikel maar met Simulide.

Afbeeldingslocatie: https://tweakers.net/i/KLy0mK0sqaJcQh4d6mxA9VF1Jl0=/800x/filters:strip_icc():strip_exif()/f/image/5TiJNQjQcV9tvUng552cvqtm.jpg?f=fotoalbum_large

De duty-cycle moet je zover ik weet zelf berekenen maar Simulide is freeware en de simulatie reageert in dit geval precies zoals de echte opstelling op het breadboard. En met een paar klikken is het nagetekend. (y)

https://simulide.com/p/oscilloscope/

Ps, deze is ook best apart:
ADCON0 |= channel<<3; //Setting the required Bits
Pas na debuggen werd mij dit duidelijk. Ik dacht altijd dat de bit-verschuivingen vanaf het begin of eind van een register werd gedaan maar de instructie hierboven springt er midden in en verschuift vanaf de Channel 0 bit.

Afbeeldingslocatie: https://tweakers.net/i/Gay2W6Sk9PsJHAet5bzlj2G71Yg=/800x/filters:strip_icc():strip_exif()/f/image/8uQDl7w52XhIM2NftcXwma01.jpg?f=fotoalbum_large

De uitkomst wordt dan CH2=1, CH1=0 en CH0=0 oftewel Pin AN4 wordt daarmee geselecteerd.
.

[ Voor 12% gewijzigd door kitao op 10-06-2025 16:05 ]


Acties:
  • 0 Henk 'm!

  • Hagdos
  • Registratie: April 2022
  • Laatst online: 08:34
De variabele "channel" wordt drie naar rechts links geschoven, en dan in een OR gezet met de vorige waarde van ADCON0.

Channel is dan waarschijnlijk 0b100. De OR is zodat de andere bits van ADCON0 niet veranderen.

[ Voor 3% gewijzigd door Hagdos op 11-06-2025 07:09 ]


Acties:
  • +1 Henk 'm!

  • Bas...
  • Registratie: December 2022
  • Laatst online: 15:30
Naar links :)

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 23-06 06:53
Hagdos schreef op dinsdag 10 juni 2025 @ 22:38:
De variabele "channel" wordt drie naar rechts links geschoven, en dan in een OR gezet met de vorige waarde van ADCON0.

Channel is dan waarschijnlijk 0b100. De OR is zodat de andere bits van ADCON0 niet veranderen.
Ah, dank je wel. Ik dacht dat channel een C-code instructienaam was voor de bitgroep CH2,CH1,CH0 maar het is inderdaad een variabele zie ik nu. Met de waarde 4 vanuit main.

C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
unsigned int ADC_Read(unsigned char channel) // <=  variabele "channel" wordt hier aangemaakt.
{
  ADCON0 &= 0x11000101; //Clearing the Channel Selection Bits
  ADCON0 |= channel<<3; //Setting the required Bits
  __delay_ms(2); //Acquisition time to charge hold capacitor
  GO_nDONE = 1; //Initializes A/D Conversion
  while(GO_nDONE); //Wait for A/D Conversion to complete
  return ((ADRESH<<8)+ADRESL); //Returns Result
}
void main()
{
    int adc_value;
  TRISC = 0x00; //PORTC as output
  TRISA = 0xFF; //PORTA as input
  TRISD = 0x00;
  ADC_Initialize(); //Initializes ADC Module
  PWM_Initialize();  //This sets the PWM frequency of PWM1
  do
  {
    adc_value = ADC_Read(4); //Reading Analog Channel 0 
    PWM_Duty(adc_value);
      __delay_ms(50); 
  }while(1); //Infinite Loop
}

https://circuitdigest.com...r-pic16f877a-pwm-tutorial
Dus zoals ik het nu begrijp wordt ADCON ge-orred met 0000 0100 dat drie plekken naar links schuift dus dan wordt ADCON |= 0010 0000 ;

Dit krijg ik in beeld bij 2x single steppen vanaf het rode breakpoint (de plaatjes worden scherper met een klik erop).

Afbeeldingslocatie: https://tweakers.net/i/AJeQNIDBAbMz_l9EjehPPkIphD0=/800x/filters:strip_icc():strip_exif()/f/image/xpbmnSJshlFHR0ixatErHVWs.jpg?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/9AQr7Gz40Kyn6tm7yVbFYy7Ijeo=/800x/filters:strip_icc():strip_exif()/f/image/p7EZ9fYqhGHm0MJ4RFUiUIRH.jpg?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/sxp6ch1sFi7xWd2jD-WusxJfXQk=/800x/filters:strip_icc():strip_exif()/f/image/79WuKuNT0gBvXDEuUFCnHh8D.jpg?f=fotoalbum_large

Dat maakt dus de OR-bitshift met variabele channel=4 wel duidelijk, dank je wel, maar nu het toch in beeld is, wat verder valt te zien is dat bit 6 begint met een 1 en na de anding met ADCON0 &= 0x11000101; verandert in een 0. :?
Ik ga er vanuit dat dit een compiler 'hick-up' is want dit zou toch niet moeten gebeuren eigenlijk? :/
.

Acties:
  • +2 Henk 'm!

  • Bas...
  • Registratie: December 2022
  • Laatst online: 15:30
0x11000101 is een 32 bits getal in hex notatie. Dat moet vast 0b.... zijn.

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 23-06 06:53
@Bas...
Scherp gezien, je hebt volkomen gelijk. Al het vorige toont dus meteen aan waarom ik niet meer aan zelf programmeren begin, heb dat een aantal jaren geleden eens met C++ geprobeerd maar liep vast bij classes dus ik heb me voorgenomen alleen nog maar te proberen om het enigzins te kunnen lezen. Ook dat is dus geen succes helaas :| Vooral omdat ik die spelfout van 0b naar 0x al een keertje eerder bij hun was tegen gekomen. En er dan toch nog overheen lees. Bedankt voor het meekijken (y)
Dit is na jouw correctie :

Afbeeldingslocatie: https://tweakers.net/i/c0MotseJh0MGqzrXzEz9IVXkl9Y=/800x/filters:strip_icc():strip_exif()/f/image/oAma9kExGLFfuxVw0fE7iOzN.jpg?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/75EomgJjakcktnh6F1hWUy73INQ=/800x/filters:strip_icc():strip_exif()/f/image/RPIUm73hUSdVh9OLt0nZpJek.jpg?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/O64DLQIj0oZOfyCjNhuMZLfDPkw=/800x/filters:strip_icc():strip_exif()/f/image/xM70sWxdx6eubYdWZVEhzDcv.jpg?f=fotoalbum_large
.

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 23-06 06:53
Bijkomend voordeel voor niet programmerende gebruikers is wel dat het instellen van een IC steeds meer beweegt naar een muis-klik gebeuren. Voorbeeld daarvan is MCC (MPLAB ® Code Configurator) van Microchip.

Afbeeldingslocatie: https://tweakers.net/i/fDDBHejfHilWKo4hOlm91cnElUg=/800x/filters:strip_icc():strip_exif()/f/image/aO5R7s18kHWO8QPnZtXv8NtK.jpg?f=fotoalbum_large......Afbeeldingslocatie: https://tweakers.net/i/PPX5zHzqjSPF5wG469TNz0Rfw2c=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/6fJ0Ior6VpZGCj2oUPUdWZGj.jpg?f=user_large

https://mu.microchip.com/...ng-mcc-and-state-machines

Eigenlijk niet geschreven voor de CLB PIC16F13145 die ik heb maar met wat gokken en enige code wijzigingen valt bovenstaande tutorial tot nu best uit te voeren en met code wijzigingen bedoel ik bijvoorbeeld dit :
#include "mcc_generated_files/mcc.h" naar #include "mcc_generated_files/system/system.h"
Desondanks, met het juiste bordje erbij vind ik persoonlijk dat Microchip veel produktondersteuning levert in de vorm van video's en PDF's, ook voor de niet-deskundigen. Met een ander bordje vraagt het wat meer ervaring. Maar goed, punt is dat het instellen van registers meer beweegt naar een tekstueel keuzemenu, dat op zich niet nieuw is en al te zien was bij GCGBasic en ik meen ook bij Arduino.

Afbeeldingslocatie: https://tweakers.net/i/HQF9EoHSFEHqAaoksTk7W7sraDE=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/wxfJ8jKdXabz3rAmlHPlkNNG.png?f=user_large

Acties:
  • 0 Henk 'm!

  • NewGuest
  • Registratie: Mei 2007
  • Laatst online: 23-06 22:26
Interessant, ik kende Microchip University nog niet. Ik liep met MPLAB altijd vast in het programmeren bij gebrek aan voorbeelden. Ik ben ooit begonnen via de website picbasic.nl maar de ontwikkeling van PIC Basic is beeindigd.

Acties:
  • 0 Henk 'm!

  • Ruitenwisser
  • Registratie: April 2025
  • Laatst online: 12:30
Poeh wat zijn ze vooruit gegaan. Entry level is serieus aan het dalen. Maar ik vond het uitpluizen van de datasheet de halve fun :P

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 23-06 06:53
Helemaal click-and-play is het nog niet .... :|

Afbeeldingslocatie: https://tweakers.net/i/6c7LlWVrOWkVa0JiryLKmSpMZ3U=/800x/filters:strip_icc():strip_exif()/f/image/VIrPouFM8czGqFKPkLR4etDB.jpg?f=fotoalbum_large

Heeft allemaal weinig nut als je zelf allerlei regels er tussen moet plakken, tenminste, het wordt dan gewoon overtikken en zodra je geen voorbeeld hebt loopt het vast :-( Overigens loopt het nu al vast, in mijn MCC voor de Pic16F13145 is de gegenereerde functie void TMR1_Callback (void) nergens te bekennen en elders die regel er tussen plakken levert geen werkend resultaat op.

Toch .. als je genoegen weet te nemen met mislukkingen maar waar je toch meer ervaring door krijgt dan is het best leuk om te proberen. En het wijst je weer door naar andere pagina's, als je bereid bent te zoeken. Bijvoorbeeld wat is een Callback ? >>
https://developerhelp.mic.../peripherals/timers/t2cb/
Website developerhelp ligt momenteel plat, dit is de link tekst >
Interrupt Delay Using Callback Function in MCC - Developer Help
27 May 2025 · By setting a callback counter value during the MCC driver setup, longer delays are easily established. This project shows how to control the Flash rate of an LED using a callback …


PicBasic kon ik dan weer niet (y) en wat is er mis mee als de toegang laagdrempeliger is geworden ?! :?
En wees niet bang, zonder enig inzicht van een datasheet kom je niet ver, sorry als ik daarover een verkeerde indruk heb geschetst want hoe kun je bijvoorbeeld een Fosc/4 aanklikken als je geen idee hebt wat dat is ? Dat gaat dus niet.

Zeer recente MCC playlist
YouTube: MCC Melody Example Components: TIMER Toggle LED, Polled Implementation

Video 1 is na te spelen, al heb je een ander bordje als in het voorbeeld.
Belangrijk is dan wel om de configuratie instructies te volgen die bij jouw bordje worden aangegeven en die anders kunnen zijn als in de video.

Afbeeldingslocatie: https://tweakers.net/i/2BF_IvUlkvhpis0DVfOQ1v7zRio=/x800/filters:strip_icc():strip_exif()/f/image/ICHwwh2LyEIZ0OF7ZjGe9zDn.jpg?f=fotoalbum_large

Zoals deze :
Timer: Dependency Selector ➔ Timer PLIB Selector: <Select any PLIB>
met een klik op de i kom je dan hier:
https://onlinedocs.microc...B5-4B1E-9BF8-9B20952CEBD9
Doe je dat niet dan krijg je verkeerd gegenereerde MCC-files en daardoor geen build compilatie. :/
.

[ Voor 34% gewijzigd door kitao op 14-06-2025 18:09 ]


Acties:
  • 0 Henk 'm!

  • Ruitenwisser
  • Registratie: April 2025
  • Laatst online: 12:30
Wel ik hoop dat ze uitleggen wat een oscillatie frequentie is :P.

En eenmaal wat je weet wat callbacks zijn, kun je er zoveel mee doen. Gewoon mee oppassen dat je niet aan het blokken bent in een interrupt handler.

Acties:
  • +1 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 23-06 06:53
Ruitenwisser schreef op zaterdag 14 juni 2025 @ 20:36:
Wel ik hoop dat ze uitleggen wat een oscillatie frequentie is :P.
Die uitleg is waarschijnlijk niet in een datablad terug te vinden en wordt meestal verondersteld al bekend te zijn bij de lezer. Dat is eigenlijk ook de reden dat ik daarnaast bezig ben met Atmega32-A, Atmega32-8P die op de Arduino Uno en Nano zit en de PIC16F877A waar veel voorbeelden van zijn en in die voorbeelden nog handmatig geconfigureerd worden. Daarnaast zijn de databladen nog overzichtelijk en enigzins behapbaar maar ook daarin wordt verwezen naar meer omvangrijke documentatie, zoals naar dit reference manual DS33023
https://ww1.microchip.com/downloads/en/DeviceDoc/33023a.pdf
De PIC16F13145 die ik als Curiosity Nano Board heb heeft een datablad van 600 pagina's. Het IC in het MCC video-voorbeeld, de PIC18F57Q43, hier als Curiosity Nano Evaluation Kit
https://www.microchip.com/en-us/development-tool/DM164150
heeft een datablad van 1.000 bladzijden. Daarom is volgens mij ook software zoals MCC ontwikkeld om sneller van het ene IC naar het andere IC te kunnen 'overstappen'. Met een meer universele aanpak zeg maar.
https://www.microchip.com...e/mplab-code-configurator
Overigens zijn de Curiosity boardjes goed betaalbaar, rond de 10 euro per stuk. Jammer alleen dat de verzendkosten even duur zijn als het boardje zelf :|
En eenmaal wat je weet wat callbacks zijn, kun je er zoveel mee doen. Gewoon mee oppassen dat je niet aan het blokken bent in een interrupt handler.
Ik wou het vandaag gaan proberen, de website is weer in de lucht ;)
https://developerhelp.mic.../peripherals/timers/t2cb/
.

[ Voor 3% gewijzigd door kitao op 15-06-2025 08:46 ]


Acties:
  • 0 Henk 'm!

  • Ruitenwisser
  • Registratie: April 2025
  • Laatst online: 12:30
@kitao hier werkt die laatste link gewoon hoor.

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 23-06 06:53
@Ruitenwisser
Ja, dank je, ben er momenteel mee bezig en wederom kom ik erg veel verschillen tegen met mijn IC P16F13145 en de in het voorbeeld gebruikte IC PIC16F1619 dat in een groter board geklikt zit.
https://www.microchip.com/en-us/development-tool/DM164137
De 1619 heeft bijvoorbeeld een Timer4 die er bij mij niet op zit dus ik probeer het nu met TMR2, etc.
Mocht het weer vastlopen dan ga ik proberen de P16F1619 uit het voorbeeld op de simulator te draaien maar de simulator is beperkt, je ziet er geen Output mee of een Data Visualizer, zover ik weet, maar het zou dan wel de juiste registers moeten tonen, zoals die van een Timer4.

Simulator-optie
Afbeeldingslocatie: https://tweakers.net/i/tnpAYDl0II0q2esVlVGyBOKB5Z4=/800x/filters:strip_icc():strip_exif()/f/image/szKHpI6OUNoMnyMXew5JGfk7.jpg?f=fotoalbum_large
.

Acties:
  • 0 Henk 'm!

  • Ruitenwisser
  • Registratie: April 2025
  • Laatst online: 12:30
Voor die test programma’s kun je Timer1, 2 of 3 ook gebruiken, hoeft niet 1 op 1 te zijn. Ik zou daar nu niet op vastlopen met die simulator enzo. Je gaat pas specifieke timers kiezen als je er meerdere nodig hebt en dan kijk je in de data sheet welke er het beste past voor welk doel.

Acties:
  • +1 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 23-06 06:53
Ruitenwisser schreef op zondag 15 juni 2025 @ 11:42:
Voor die test programma’s kun je Timer1, 2 of 3 ook gebruiken, hoeft niet 1 op 1 te zijn. Ik zou daar nu niet op vastlopen met die simulator enzo. Je gaat pas specifieke timers kiezen als je er meerdere nodig hebt en dan kijk je in de data sheet welke er het beste past voor welk doel.
Ja, tnx, heb ik gedaan, na bekijken van TMR4 in de datasheet van PIC16F1619 blijkt dat een 8-bit te zijn en dat is TMR2 in PIC16F13145 ook dus die heb ik ervoor gekozen.
Het voorbeeld dat hier staat beschreven https://developerhelp.mic.../peripherals/timers/t2cb/ is zo goed als mogelijk gereproduceerd en hoewel het compileert is de Output - een Led-blink - niet aanwezig. Vervolgens de simulator erop gezet met als device de 1619 maar er blijven grote verschillen met de tekst uit het voorbeeld.
Komt misschien hierdoor ?
Afbeeldingslocatie: https://tweakers.net/i/pLIdIveXzryh2oZacdhheoJIgY0=/800x/filters:strip_icc():strip_exif()/f/image/xRYKvLfAUdgdC9zKVxSeiJhB.jpg?f=fotoalbum_large

Daar staat v3, bij mij staat v5 :S

Gelukkig ging video2 op de F13 wel goed en die draait ook met een Callback
YouTube: MCC Melody Example Components: TIMER Toggle LED, Callbacks Implement...
De door Nilsen gebruikte MCC versie is v5.5, de video's zijn nog geen jaar geleden gepubliceerd.

Hierin staan links naar o.a. een C-code Callbacks video serie voor de geinteresseerde.
https://onlinedocs.microc...69-4B29-B8D4-C949D2CD7FC5
.
https://mu.microchip.com/c-programming-callbacks

Zelf zet ik het even in de koelkast, geen zin om dagen lang hetzelfde te eten, vooral deze zware kost niet :-(

Ps-1, toch nog even geprobeerd zonder video of tekst voorbeeld en eenmaal gewend is dit toch wel een makkelijkere manier om zo'n IC te configureren.
Toch iets om op te letten, na de stappen doorlopen te hebben compileerde het niet en kreeg storing op
#include <xc.h> , not found etc en op nog een paar van die includes. Hetgeen nergens op slaat aangezien die normaal gesproken in ieder project worden gebruikt en voorheen dus geen storing gaven.
Ik heb MPLab afgesloten en opnieuw geopend en de storingen waren weg :? met als resultaat een blinkend ledje van 1 seconde aan en 1 seconde uit, hier te zien op de Data Visualizer

Afbeeldingslocatie: https://tweakers.net/i/59awLNgLVmO2zQq0WXlAldQ8i4E=/800x/filters:strip_icc():strip_exif()/f/image/3iqcucpjsyD4uasZQ7Vp1ND0.jpg?f=fotoalbum_large

Wat ook helpt is om onder een define reeks met error-meldingen te gaan staan .....

#include <xc.h>
#include <stdint.h>
#include <stdbool.h>
#include "config_bits.h"
#include "../system/clock.h"
#include "../clb/clb1.h"
#include "../system/pins.h"
#include "../crc/crc.h"
#include "../nvm/nvm.h"
#include "../system/interrupt.h"


..... en dan een enter te geven.

PS-2, verzend- en importkosten van de gebruikte hardware kunnen uitgespaard worden via Digikey bij bestellingen boven de 50,- ex Btw.
.

[ Voor 25% gewijzigd door kitao op 16-06-2025 12:59 ]

Pagina: 1 ... 111 112 Laatste