Then I want to know free PDK how to calibrate ihrc
unsigned char _sdcc_external_startup(void)
{
// example, edit to suit
AUTO_INIT_SYSCLOCK();
AUTO_CALIBRATE_SYSCLOCK(TARGET_VDD_MV);
return 0; //perform normal initialization
}
and a, #( 4194304 ) ;4MHz = 4194304Hz
Calibration worked perfectly, thanks for the explanation.and a, #( 4194304 ) ;4MHz = 4194304HzAFAIK, MHz is defined as 10^6, not as 2^20. so 4MHz should be 4000000Hz.
Next, and hopefully last 2 issues: my Timer16 interrupt is triggered twice in a row, and sometimes is offset. I attached a screenshot; the blue channel goes high whenever the IVR is active. And there are always two peaks next to each other. Also, it looks like it is "jittering" a lot: the interrupt is triggered early/late by the exact duration of a double-trigger (the double-double-peak on the left is "persistent phosphor" from two runs in a row...if that makes sense).
I am wondering what those two issues could be caused by and how to prevent them. The datasheet mentions that the T16 interrupt happens whenever the bit _changes_, but that should also be at regular intervals, not directly after the IVR was exited.
Hi gir:
I run your test file.
It's fine
Hong
thanks,
I find "fpdkiccalib.c"
...
Yes, It 's magic code than Padauk.
Thanks JS, I managed to flash the Dev branch to the ARM and now it's working, But still only probing is working any Idea what might goes wrong?
Now you have to check your hardware variant. On the picture I saw that C1 is not populated and also Y1 is missing. A cap on the 15V rail is essential since VCC/VDD draw some power during programing. The crystal is used to get better tuning results after the CPU is flashed, without it the drift might be much higher or you create a very special clock path using the HSI48 with sync to USB frames (then programmer can not be used stand alone - a feature planned for future use, just like WRITER).
Also, since you changed the opamp, it might be possible that the output voltages differ. You can use the "easypdkprogtest" program to check that the output voltage is correct:
DO THIS WITHOUT A MCU CONNECTED TO THE PROGRAMMER
make easypdkprogtest
./easypdkprogtest
vdd: 5.01 vpp: 4.98 (vref= 3.30)
Please check that VDD and VPP are 5V and VREF is 3.3V. Also measure them on your PCB.
In case VDD and VPP voltages are incorrect you need to tune the DAC reference values for your specific hardware (in fpdk.c you need to change FPDK_VDD_DAC_MAX_MV / FPDK_VPP_DAC_MAX_MV).
JS
Hello,
I build the pdk programmer a few times, but 2 of the programmer do not work. I can interface the STMs but cant programm or probe the padauk uCs. I run the easypdkprogtest from github and got as an result
vdd: 13.65 vpp: 13.55 (vref= 3.29)Thanks JS, I managed to flash the Dev branch to the ARM and now it's working, But still only probing is working any Idea what might goes wrong?
Now you have to check your hardware variant. On the picture I saw that C1 is not populated and also Y1 is missing. A cap on the 15V rail is essential since VCC/VDD draw some power during programing. The crystal is used to get better tuning results after the CPU is flashed, without it the drift might be much higher or you create a very special clock path using the HSI48 with sync to USB frames (then programmer can not be used stand alone - a feature planned for future use, just like WRITER).
Also, since you changed the opamp, it might be possible that the output voltages differ. You can use the "easypdkprogtest" program to check that the output voltage is correct:
DO THIS WITHOUT A MCU CONNECTED TO THE PROGRAMMER
make easypdkprogtest
./easypdkprogtest
vdd: 5.01 vpp: 4.98 (vref= 3.30)
Please check that VDD and VPP are 5V and VREF is 3.3V. Also measure them on your PCB.
In case VDD and VPP voltages are incorrect you need to tune the DAC reference values for your specific hardware (in fpdk.c you need to change FPDK_VDD_DAC_MAX_MV / FPDK_VPP_DAC_MAX_MV).
JS
I found this post here so I assume that something is wrong with my programmer. What can I do or check next? (As Tools I have an lab bench power supply, an oscilloscop and a multimeter)
I already checked R6. It has the correct value and is also solderd correctly.
I already checked R6. It has the correct value and is also solderd correctly.
In this case most likely the opamp U3 is damaged.
While running easypdkprogtest measure with your multimeter in DC voltage mode (one lead connected to GND):
U3:
pin8: 14.9V
pin4: -2.6V
pin3: 2.5V
pin2: 2.5V
pin1: 5V
pin5: 1.18V
pin6: 1.18V
pin7: 5V
What are your values?
JS
I already checked R6. It has the correct value and is also solderd correctly.
In this case most likely the opamp U3 is damaged.
While running easypdkprogtest measure with your multimeter in DC voltage mode (one lead connected to GND):
U3:
pin8: 14.9V
pin4: -2.6V
pin3: 2.5V
pin2: 2.5V
pin1: 5V
pin5: 1.18V
pin6: 1.18V
pin7: 5V
What are your values?
JS
My values are:
U3:
pin8: 15.0V
pin4: 4.5V
pin3: 3.8V
pin2: 6.2V
pin1: 13.7V
pin5: 3.8V
pin6: 3.82V
pin7: 13.6V
pin4: 4.5V <=== this should be a negative voltage !
==> check C14 / D2 / D3 / C3 - most likely the diodes are not soldered properly or in wrong orientation.
JS
Hi:
I compile pdk13 asm at PMS150
flow:
sdaspdk13 -losx sram.asm
sdldpdk -i -m -x -u sram
packihx sram.ihx > sram.hex
at sram.lst
00004E 50 1C 73 call push0
000050 2A 18 74 goto loop
It's correct.
but ihex
call push0 -> call 0x28
goto loop -> call 0x30
"sdlpdk -i -m -x -u sram"
Is the parameter setting wrong?
HI JS:
how to find ""0123f5b78da6c9e4".
It look random data.