|
|
View previous topic :: View next topic |
Author |
Message |
newguy
Joined: 24 Jun 2004 Posts: 1907
|
MPLAB X Simulator / DMA [SOLVED/MPLABX BROKEN] |
Posted: Tue Sep 14, 2021 2:53 pm |
|
|
I recently started using MPLAB, and given the advice of those here I downloaded and installed version 8.92 given all the negative experiences that seem to be common with MPLAB X.
The issue I'm having is that I simply cannot get the simulator to properly simulate anything involving DMA. When I started digging, I've found that the sim won't recognize setting the DMAxSTA (L/H) and DMAxSTB (L/H) registers. There's probably other issues, but this one is most obvious.
Has anyone tried to simulate DMA functionality on a dsPIC using MPLAB X? Did it work?
Last edited by newguy on Thu Sep 16, 2021 1:38 pm; edited 1 time in total |
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Tue Sep 14, 2021 8:05 pm |
|
|
What PIC ? |
|
|
newguy
Joined: 24 Jun 2004 Posts: 1907
|
|
Posted: Tue Sep 14, 2021 10:24 pm |
|
|
dsPIC33EP512GP806. Sorry, should have included that the first time. |
|
|
newguy
Joined: 24 Jun 2004 Posts: 1907
|
|
Posted: Thu Sep 16, 2021 1:37 pm |
|
|
Just to close this question for anyone curious....
I've spent most of the past week neck deep in MPLAB X and some very stripped down basic functionality involving a timer, the ADC, and DMA. The timer triggers the ADC and when the result is available, DMA transfers it to memory. The ADC is set up in channel scan mode and more than one sample (2 in this case) are scanned/stored for each channel. When all channels have been scanned twice, the DMA's interrupt fires and I can then examine the samples/do something useful.
I must point out that what I'm trying to simulate is based on something I've done in the past, except with a slightly different (older) dsPIC. That existing code works and works well, but at the time I spent quite a bit of time ironing out a bunch of issues related to the DMA (specifically that the data sheet/family reference manual were contradictory in several places, and that the final working version didn't quite match what the documentation said everything should be set to).
With all this in mind, I wanted to sidestep any commissioning issues once I have real hardware in hand by simulating the overall system first. That's why I dove into MPLAB X and its simulator (MPLAB 8.92 wouldn't even properly simulate simply setting the DMA registers).
At this point I'm abandoning the MPLAB X simulator in disgust and frustration because even very basic things like simply simulating a timer and its interrupt causes no end of issues with MPLAB X. It randomly hangs/stops execution, exits the simulator/debugger for no apparent reason, throws really weird/cryptic java exceptions, and shows 100% RAM utilization on the dsPIC33EP512GP806 for a simple "increment a counter" program. Come on - that processor has 52k of RAM!. One more thing that the simulator seems to have fumbled: both the data sheet and the family reference manual state that either timer 3 or timer 5 may be used as the trigger for ADC1. In the simulator only timer 3 can trigger the ADC, not timer 5.
Basic programs - like simply incrementing a variable in a superloop - simulate fine (subject to the 100% memory utilization issue). The more nuanced and complex situation I want and need to simulate, however - forget it.
I realize that MPLAB X is free but surely Microchip must realize that if a designer's first interaction with Microchip is MPLAB X, then they're potentially missing out on a lot of business given how truly broken their IDE actually is. |
|
|
temtronic
Joined: 01 Jul 2010 Posts: 9225 Location: Greensville,Ontario
|
|
Posted: Thu Sep 16, 2021 5:12 pm |
|
|
I've never held much, if any, faith in any simulator working 100%. Maybe because I 'cut my teeth' on computers that needed bootloaders toggled in, had teletypes as consoles and eventually 8" floppy drives..... program were hand coded using pencil and paper, 'playing computer' to see if the code worked BEORE having a paper tape made of it.
It is sad though that the uChip one fails. I think they should get it right 100% for say a handful of PICs, 1 or 2 of each series, offer a 'use at own risk' for you to simulate other PICs, that way the product DOES work, as advertised.
As for frustrations... I still can't see WHY 'they' flipped the RS-232 xmt and rcv pins when 'they' went fron 25 pins to 9.
Jay |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|