PIC18F46J11

Op 23 april 2020 16:37:19 schreef Arco:
Je kunt wel 2 verschillende dutycycles kiezen, maar de PWM period moet voor beide hetzelfde zijn...

Dan ben ik erg benieuwd naar hoe je dat gedaan hebt met HPWM.
Ik heb zoals geschreven beide signalen laten uitsturen en beide kanalen op de scoop gezet.
Dan storen de signalen elkaar.
Er is dan dus niet te zien welke poort wat uitstuurt.
Totdat je 1 poort uitzet.
Als het met PWM zou kunnen heb ik daar niets aan want dat signaal valt weg als de pic elders bezig is in het programma.

Ik ben gelukkig "gestuit" op de PIC18F46k22, die heeft normale afmetingen. :)

Maar ik blijf erg benieuwd naar hoe een 18f4520 twee afzonderlijke HPWM signalen tegelijkertijd kan uitgeven.

Het lijkt me dat die toch echt maar 1 kan uitsturen als ik deze RTFM bekijk.

Arco

Special Member

1/1 betekent 1 PWM / 1 (E)PWM, dus 2...
Dutycycles programmeer je resp. in CCPR1L/H en CCPR2L/H...

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Op 23 april 2020 21:03:14 schreef Arco:
1/1 betekent 1 PWM / 1 (E)PWM, dus 2...

Ik schreef al dat ik niets heb aan pwm.
Dus als er staat dat er maar 1 HPWM is en ik er twee nodig heb, is dat ic NIET bruikbaar.
Kan je wel zeggen dat het wel werkt, het werkt niet.

Op 23 april 2020 21:03:14 schreef Arco:
Dutycycles programmeer je resp. in CCPR1L/H en CCPR2L/H...

?
Ik gebruik:
HPWM PORTC.1, waarde,20000

[Bericht gewijzigd door stortbak op vrijdag 24 april 2020 09:50:32 (24%)

Lambiek

Special Member

Op 24 april 2020 09:48:23 schreef stortbak:
Ik gebruik:
HPWM PORTC.1, waarde,20000

Wat wil je precies doen?

Wil je twee HPWM poorten tegelijk gebruiken met verschillende waardes en verschillende frequenties?

Als je haar maar goed zit, GROETEN LAMBIEK.
Arco

Special Member

Wat bedoel je met 'PWM heb ik niets aan'??? Je zoekt toch 2 PWM's?
Wat vermeld wordt is altijd hardware PWM, software PWM bestaat niet in een pic, da's iets wat de compiler (of jijzelf) in mekaar knutselt...
EPWM is 'Enhanced PWM'. Beide modules zijn gewoon als hardware PWM te gebruiken.

Er zullen ongetwijfeld picbasic specialisten (ik niet dus... ;) ) zijn die kunnen vertellen hoe je beide PWM modules met picbasic aan kunt sturen.
Met CCPR1 en 2 stuur je de dutycycle direct aan, zonder picbasic library...

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Op 24 april 2020 09:53:36 schreef Arco:
Wat bedoel je met 'PWM heb ik niets aan'??? Je zoekt toch 2 PWM's?
picbasic specialisten (ik niet dus... ;) )

Dat begreep ik al.
Je lijkt het verschil niet te weten tussen een pwm en een hpwm. |:(

Misschien heb ik het fout hoor, daarom mijn vraag:
waarom wordt hier speciaal ECCP vermeld?

[Bericht gewijzigd door stortbak op vrijdag 24 april 2020 11:22:18 (16%)

Op 24 april 2020 09:53:03 schreef Lambiek:
[...]
Wat wil je precies doen?

Wil je twee HPWM poorten tegelijk gebruiken met verschillende waardes en verschillende frequenties?

quote:Alleen is het niet mogelijk verschillende duty cycles uit te sturen tegelijkertijd.
portc.1 bijv 10
en portc.2 bijv 150
Tenzij ik natuurlijk wat verkeerd doe......:unquote

Lambiek, graag zou ik de volgende commando's gebruiken
HPWM PORTC.1,10,20000
HPWM PORTC.2,150,20000

voor het gemak simpel gehouden, want de duty cycles zijn variabelen.
De hier gekozen 20000 is en frequentie die de pic aankan.

Arco

Special Member

Daar is ook geen verschil, en in de pic bestaat niet zoiets als 'HPWM'
Er is hardware PWM (door de pic gemaakt), en software PWM (door de compiler gemaakt).
HPWM is een kreet (naam van een libraryfunctie) die ze bij picbasic verzonnen hebben...

Je lijkt het verschil niet te weten tussen een pwm en een hpwm. |:(
Misschien heb ik het fout hoor, daarom mijn vraag:
waarom wordt hier speciaal ECCP vermeld?

ECCP is een enhanced CCP versie ('CCP with benefits'... ;) ). Die kan dus meer als een standaard CCP.

[Bericht gewijzigd door Arco op vrijdag 24 april 2020 11:37:05 (37%)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Lambiek

Special Member

Op 24 april 2020 11:17:26 schreef stortbak:
Lambiek, graag zou ik de volgende commando's gebruiken
HPWM PORTC.1,10,20000
HPWM PORTC.1,150,20000

voor het gemak simpel gehouden, want de duty cycles zijn variabelen.
De hier gekozen 20000 is en frequentie die de pic aankan.

Ik denk dat je iets verkeerd doet, heb het hier geprobeerd met een 16F887 en daar werkt het gewoon.

pic basic code:


Declare CCP1_Pin PORTC.2                    ; HPWM 1 op poort C.2
Declare CCP2_Pin PORTC.1                    ; HPWM 2 op poort C.1

RUN:


    HPWM 1,10,20000
    HPWM 2,150,20000
      
GoTo RUN

End

Het type dat jij gebruikt heb ik hier niet, misschien dat het daar anders bij is.

Als je haar maar goed zit, GROETEN LAMBIEK.

Op 24 april 2020 11:41:01 schreef Lambiek:
[...]
Ik denk dat je iets verkeerd doet, heb het hier geprobeerd met een 16F887 en daar werkt het gewoon.

Op de scoop ook netjes beeld?
want dan moet ik opzoek naar een nieuwe / verse pic.
Ik ben al eerder genept door een defecte poort.

Lambiek

Special Member

Op 24 april 2020 11:54:44 schreef stortbak:
Op de scoop ook netjes beeld?

Ik heb er een paar ledjes op aangesloten en die doen het goed. Maar ik ge even met de scoop kijken, je hoort het zo. :)

Als je haar maar goed zit, GROETEN LAMBIEK.
Arco

Special Member

De 887 is wat dat betreft hetzelfde als de 4520: beiden 1x CCP en 1x ECCP...
(zelfs de pinnummers voor de pwm zijn gelijk)

[Bericht gewijzigd door Arco op vrijdag 24 april 2020 12:00:26 (24%)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Lambiek

Special Member

Heb het even getest en het ziet er gewoon goed uit. Het moet dus geen probleem zijn, zelf heb ik het ook meerdere malen zo gebruikt zonder probleem.

Als je haar maar goed zit, GROETEN LAMBIEK.

Op 24 april 2020 12:04:55 schreef Lambiek:
Heb het even getest en het ziet er gewoon goed uit. Het moet dus geen probleem zijn, zelf heb ik het ook meerdere malen zo gebruikt zonder probleem.

Zojuist met een verse 4520 pic geprobeerd met commando
hpwm1,240,20000
hpwm2,10,20000
en dat geeft goed en scherp beeld

gebruik ik echter zoals eerder (de reden dat ik de vraag stelde)
hpwm PORTC.2,240,20000
hpwm PORTC.1,10,20000

wordt het toch een zooitje op de scoop.

https://www.youtube.com/watch?v=KS5g7jDXZwU

met
hpwm PORTC.2,240,10000
hpwm PORTC.1,127,10000
is het een nog grotere bende.

Oplossing (in dit geval): niets van databladen en regels aantrekken en het simpele proton basic gebruiken.

Arco

Special Member

Dat PORTC.1/2 hoort daar ook helemaal niet bij... (zie voorbeeld @Lambiek)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Lambiek

Special Member

Op 28 april 2020 13:49:40 schreef stortbak:
gebruik ik echter zoals eerder (de reden dat ik de vraag stelde)
hpwm PORTC.2,240,20000
hpwm PORTC.1,10,20000

wordt het toch een zooitje op de scoop.

Dat moet je ook niet doen, gewoon Declare CCP1_Pin PORTC.2 en
Declare CCP2_Pin PORTC.1 gebruiken.

Zie voorbeeld zoals Arco zegt.

Als je haar maar goed zit, GROETEN LAMBIEK.

Op 28 april 2020 13:54:00 schreef Arco:
Dat PORTC.1/2 hoort daar ook helemaal niet bij...

Beetje mosterd na de maaltijd, ik schrijf zelf al dat dat niet werkt, waarom gaf je dat commentaar niet de 24ste? :'(

Lambiek

Special Member

Op 28 april 2020 14:45:19 schreef stortbak:
Beetje mosterd na de maaltijd, ik schrijf zelf al dat dat niet werkt, waarom gaf je dat commentaar niet de 24ste? :'(

Ho even, Arco werkt niet met Proton en picbasic maar met microbasic. En dat is toch net even anders. :)

Als je haar maar goed zit, GROETEN LAMBIEK.
Arco

Special Member

Als @Lambiek je opgeeft hoe het moet, doe dat dan ook! (en ga niet zelf wat anders fabrieken en klagen dat 't niet werkt)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Zoals Lambiek laat zien en Arco al zegt, hier het manual voor HPWM:

Syntax
HPWM Channel, Dutycycle, Frequency
Overview
Output a pulse width modulated pulse train using the CCP modules PWM hardware, available
on some microcontrollers. The PWM pulses produced can run continuously in the background
while the program is executing other instructions.
Parameters
Channel is a constant value that specifies which hardware PWM channel to use. Some devices
have 1, 2 or 3 PWM channels. On devices with 2 channels, the Frequency must be the same
on both channels. It must be noted, that this is a limitation of the PICmicro™ not the compiler.
The data sheet for the particular device used shows the fixed hardware pin for each Channel.
For example, for a PIC16F877, Channel 1 is CCP1 which is pin PORTC.2. Channel 2 is CCP2
which is pin PORTC.1.
Dutycycle is a variable, constant (0-255), or expression that specifies the on/off (high/low) ratio
of the signal. It ranges from 0 to 255, where 0 is off (low all the time) and 255 is on (high) all the
time. A value of 127 gives a 50% duty cycle (square wave).
Frequency is a variable, constant (0-32767), or expression that specifies the desired frequency
of the PWM signal. Not all frequencies are available at all oscillator settings. The highest frequency
at any oscillator speed is 32767Hz.

Dus zoals Lambiek in zijn voorbeeld geeft is de correcte manier (met een spatie tussen HPWM en Channel).

Op 28 april 2020 14:48:56 schreef Arco:
en ga niet zelf wat anders fabrieken en klagen dat 't niet werkt)

Opmerkelijk dat een enkele hpwm met "hpwm portc.1,waarde,20000" wel gewoon werkt.
Blijkbaar gaat het als je de tweede poort gebruikt niet goed.

Lambiek

Special Member

Op 28 april 2020 15:08:34 schreef stortbak:
Opmerkelijk dat een enkele hpwm met "hpwm portc.1,waarde,20000" wel gewoon werkt. Blijkbaar gaat het als je de tweede poort gebruikt niet goed.

Of het nu opmerkelijk is of niet, het zei zo. :)

En gebruik altijd Declare voor zoiets.

Kijk eens in de help file van proton onder Declare, daar kun je het één en ander vinden.

Als je haar maar goed zit, GROETEN LAMBIEK.

Op 28 april 2020 15:10:13 schreef Lambiek:
[...]
Of het nu opmerkelijk is of niet, het zei zo. :)

Aan allen die gereageerd hebben:

Dank voor de moeite. _/-\o_
Uiteindelijk is het opgelost en daar gaat het om.
Waarom het met dat directe poort benoemen met gebruik van 1 uitgang wel heeft gewerkt doet er niet meer toe. (het programma heb ik aangepast)

Door hpwm 1 en hpwm 2 te gebruiken kan ik wel 2 verschillende signalen genereren.
De pic met de 2 eccp uitgangen is onderweg en zal zeker vanwege de grotere geheugencapaciteit zeer welkom zijn, ondanks dat de reden van zijn aanschaf nu vervallen is.(twee losse uitgangen met hpwm)
de 4520 zit voor 99,84% vol, daar kan geen word meer bij. :'(

Lambiek

Special Member

Op 28 april 2020 15:51:23 schreef stortbak:
de 4520 zit voor 99,84% vol, daar kan geen word meer bij. :'(

Wat ben je aan het fabrieken als ik vragen mag? :)

Als je haar maar goed zit, GROETEN LAMBIEK.