Greetings,
As I was selected to Roadtest the Infineon Optiga Trust M product, I'm currently in the process of writing, adapting and otherwise messing around with examples and materials published by Infineon and others.
As suggested in a lot of documentation, I'm getting aquainted with 'Dave IDE' and while I think I'm getting the hang of using Dave APPs, something is frustrating me:
The Dev-Kit has, besides the controller and a debugger interface, several other connectors (Arduino compatible shield and some headers) and a couple of buttons and leds.
Just about everything relevant is either coded in the silk-screen on which port and pin they're mapped, or this can be easily reverse-engineered from the schematics available.
Working to build a well-founded understanding of the technology, and following some steps I've set out to achieve in my Roadtest, I realised I needed to get some grasp of the method of working with the APP component system.
The 'getting started Blinky' over PWM is easy enough and answers some questions. But I all to soon ran into the problem: It seemed to be impossible to use one of the on-board leds (on the devboard) for the project.
Neither one (connected to P4.0 and P4.1 resp.) was mappable in the pin configurator. Fair enough, other pins were and those mostly were exposed over the Arduino interface. I wouldn't be much of a tinkerer if I didn't
have any leds in store (I could light a runway if I wanted to) so I had a blinky after that.
But deciding that I needed to continue experimenting on it and decided to add a button that would halt and continue the blinky by pressing it. Button 1 seemed a good idea so, as a true embedded engineer
(XMega, mostly) I decided to query the APP repo for an interrupt routine and work from there. How (much) hard(er) could it be? A simple Interrupt routine component is available, but when I tried to configure it
to use 'Button 1', it wouldn't allow me. Mapping it to P0.7, no problem and that basically worked, but I couldn't figure it out.
Adding the component Digital_IO and then using my (otherwise doing nothing) main-loop, I was simply able to poll the button state and update my PWM instance.
So mission accomplished, but I feel I'm missing something important.
- Why was I not able to map the user-led in my PWM component?
- Why couldn't I configure my button on an interrupt?
I found a datasheet https://www.infineon.com/dgdl/Infineon-XMC4700-XMC4800-DS-v01_01-EN.pdf?fileId=5546d462518ffd850151908ea8db00b3 about the pinout of the XMC4800 (starts at page 30) and while it has a Lot of pins, for example P2.2 (used for my PWM output) and P4.1 (The led I couldn't map) have very few distinct differences. But P2.2 has CCU peripheral connections P4.1 doesn't seem to have. I suppose that could the be reason for PWM limits?
But I have less success with understanding the Interrupt limitations. What symbol in the table denotes this one?
I'd appreciate it if anyone has any insights..
Kind Regards,
Martin.