Skip to main content

Cannot get SLG46880 ASM to change state

GreenPAK and GreenFET

8 months ago

Posted by Ricardo 55 points 6 replies
0 upvotes

I'm new to GreenPAK and I'm trying to use the SLG46880 ASM, but I can't seem to get even a very simple ASM to change state in the simulator.

I've looked at all of the example app notes and pre-built projects (.gp6) but I can't see any that actually using the newer ASM type used in the SLG46880.

As a test project, I have just three states (S0 Start, S1 Run, S2 End) with two GPI inputs (GP0 and GP1). I've set up the state transitions such that GP0 should transition from S0 to S1 and GP1 should transition from S1 to S2. I apply a pulse to GP0 and then after a delay a pulse to GP1.

I can't see a way to directly monitor the ASM state in the simulator so I'm using the ASM OUTPUT0 macrocell to do the monitoring. When I simulate, OUTPUT0 shows I'm in S0 and it just stays there.

What am I doing wrong?

.gp6 file is attached, renamed as a txt.

Thanks

Ricardo

 

Attachment Size
Rename to Basic.gp6 121.99 KB

8 months ago

olehs

Hi Ricardo, 

Thank you for your appeal, I need to make further investigation about this behaviour. To make a quick fix could you connect to ASM nRESET input to POR signal via CNT/DLY block (configured as rising edge delay). This will create a signal path from POR -> rising edge delay -> ASM nRESET input in order to reset ASM after POR comes.  Or you can connect ASM nRESET input to one of PINs and this PIN connect to Voltage Source. The idea behind this is to reset ASM after POR comes, so adjust the Voltage Source in accordance

Best regards, 

Oleh Sapiha

8 months ago

Hi Oleh,

I tried your suggestion of driving ASM nRESET from pin GPI2 with a voltage source. Now nRESET starts at GND and after 10ms it switches to VDD.

This has made a difference in the simulation as the rising edge of the first pulse on GPI0 now moves the state from S0 to S1, however the second pulse on GPI1 doesn't move the state from S1 to S2.

There is 10ms separation between all edges on GPI0,1,2.

The states and state transitions all appear correct in the ASM Editor.

I'm using the ASM OUTPUT0 block outputs to monitor the states. I know these are all working as can temporarily assign them all to S0 and S1 and they move as expected. But when the block outputs are assigned to S2 I never see any go high.

I've enabled the Parameter Probe for ASM OUTPUT0 which shows the change from S0 to S1, but again not from S1 to S2. This probe only seems to have a low and high level, I kind of expected to see a state name here. I not sure how this two level signal can show several states.

Do you have any other suggestions?

Thanks,

Ricardo

8 months ago

olehs

Hi Ricardo, 

Thank you for posting your feedback,

The simulation model of ASM in SLG46880 works incorrectly, that's why you may see undesirable behavior. Our modeling team is informed about this issue and it will be resolved in the next revision of GreenPAK Designer.

Regarding seeing only LOW and HIGH levels of ASM's current state. This is the inaccuracy, which will also be fixed in the next revision of GreenPAK Designer. However, if there will be more than 2 different states (for example 3, 4, 5...) you will see that the state number will be shown correctly on the plot. 

Best regards, 

Oleh Sapiha  

 

 

8 months ago

Hi Oleh,

Thanks for your support on this. Due to timescales I may go in a different direction right now, but I'll be keeping an eye on GreenPAK for other projects.

Best regards

Ricardo

8 months ago

olehs

Hi Ricardo, 

For the temporary solution, you can try to change VDD1 and VDD2 to 3.0V and ASM should start working correctly. 

Sorry for the inconvenience.

Best regards,

Oleh Sapiha

7 months ago

Nichols19 5 points

Thanks for sharing, I found a lot of interesting information here. A really good post, very thankful and helpful.