News:

;) This forum is the property of Proton software developers

Main Menu

Amicus16B Board

Started by top204, Sep 19, 2025, 12:02 PM

Previous topic - Next topic

top204

John...

I have two of your excellent Amicus16B boards, that you sent me as Betas when you were first developing them, and they work brilliantly with dsPIC33CK devices. However, I am now using them more often and I need serial coms. However, the boards do not have the USB to Serial chip, placed on them.

So... Is the chip a CH340K, in an ESSOP10 package, or is the earlier boards I have, different to the newer Amicus16B board? The commercial boards use CH340K devices but in a larger package.

I have seen some CH340K device on ebay for a reasonable price, but I need to make sure they are the actual device before I order them.

That little adapter board you created that allows an SSOP package to be placed into a 28-pin DIP socket is brilliant, and I have used the ones I have on some of the dsPIC33CK devices! I just wish microchip, hadn't "yet again" changed pinouts for the newer dsPIC33AK devices. So I am going to have to come up with an adapter for them, so I can plug them into the Amicus16 boards to run my tests on them, because they are quite different in architecture to dsPIC33CK devices.

Best regards
Les

Wimax

Quote from: top204 on Sep 19, 2025, 12:02 PM(...) I just wish microchip, hadn't "yet again" changed pinouts for the newer dsPIC33AK devices. So I am going to have to come up with an adapter for them, so I can plug them into the Amicus16 boards to run my tests on them, because they are quite different in architecture to dsPIC33CK devices.

Best regards
Les

So...is something big brewing in Les's pot ?  ;)  ;D

John Lawton

Hi Les,

sorry I must have missed this thread earlier. It sounds like a job for me to design an adaptor for the AK series, that is if it's reasonably possible. I'll take a look.

The other option would be to design and manufacture another variant, the Amicus 16C.... oh dear!

Regarding the prototype boards I sent you, forget trying to fit one of the CH340 devices, the board component pads were completely wrong!  I'll send you one each of the Amicus 16A and 16B production boards to play with.

For those who aren't familiar with these Amicus boards, details here: https://easy-driver.co.uk/Amicus/

I've got loads of the main boards in stock, hint, hint!

John

top204

#3
Many thanks John.

I already have an Amicus16A board, and I use it regularly for standard PIC24 and dsPIC33 devices, and it works wonderfully.

It is just an Amicus16B board that I need, so I have serial coms when using the dsPIC33CK devices. Other than the missing chip, the board works excellently.

For now, I have placed one of the AK devices on one of your small boards, and plugged it into the breadboard shield I created for my Amicus18 boards, so I can wire it up to the board's connectors and have programming and serial etc. Messy, but it works... I just wish the dsPICxxAK devices were so simple to get working. :-)

Unfortunately, and so unfair, is that you are experiencing what most producers in this country are experiencing. i.e. Cannot compete with virtually free dev boards from china. Your Amicus8 and Amicus16 boards are excellent to work with, and make things so much easier. However, without expensive advertising or editorials in magazines or sites, they are unknown.

I am thinking of making some youtube videos, and using your Amicus boards regularly in them. About time I gave my ego a kick up its backside, and got it working. :-) But not with silly voices or silly gimmicks etc, as I find them so cringing to watch and instantly turn off the video.

Best regards
Les

RGV250

Hi John,
If you ever do modify the adaptor board would it be possible to add pads for external osc and caps etc.

I do wonder if I can bodge this onto a companion shield but thought the extra capacitance might mess it up.

Regards,
Bob

John Lawton

Hi Bob,

a fast crystal oscillator might be somewhat sensitive to extra lengths of track etc connected to the crystal pins so I'd be interested to see how you get on.

I originally thought of adding crystal and capacitor pads on the adaptor board, also some supply bypass capacitors, but decided to keep it simple with the one I did, but it might be worth doing, possibly as an optional version.

One problem would be that it would make the board wider and it already overhangs the ICSP handbag links as it is. But I'll take a look at it.

John

John Lawton

Quote from: top204 on Sep 21, 2025, 06:48 PMIt is just an Amicus16B board that I need, so I have serial coms when using the dsPIC33CK devices. Other than the missing chip, the board works excellently.

Hi Les,

I'll send you a 16B then :)

John

John Lawton

Quote from: RGV250 on Sep 21, 2025, 07:28 PMI do wonder if I can bodge this onto a companion shield but thought the extra capacitance might mess it up

One trick would be to cut off the crystal pins below the adaptor board so the crystal is completely isolated from even the main board. You'd have to add the crystal and caps to the adaptor board itself of course.

John

RGV250


John Lawton

Hi Bob,

sorry my reply was a bit confusing. I was thinking about my adaptor board rather than the companion shield. By adding a crystal and caps to my board and then cutting the pins below to isolate the crystal lines would decrease any loading.

Alternatively I could put some solderable links to the pins on the board . The problem as I said is that the board width would increase with any of these modifications.

John

RGV250

Hi John,
I have just had a brainwave, I do not need SSOP, just the crystal so I am looking at using a turned pin IC socket and I could use stripboard for the crystal/caps.
The only issue is I find turned pin sockets are more for permanent insertion. I cannot find a folded pin (or whatever they are called) with long pins.

Bob

John Lawton

I've made a special version of my 28pin SSOP adaptor board that takes the dsPIC33AK and remaps the connections to suit the Ammicus 16B board which was originally designed for the dsPIC33CK.

This does make some of the Amicus 16B port labels incorrect, but Microchip has changed the port arrangements a lot between the two designs so it's all I could do.

I've added a copper ground plane connected to Vss which should reduce any noise etc issues.

If there's interest in these I'll get some pcbs made, it shouldn't take more than a week.

John

AK special.png

RGV250

Hi John,
Image not found

Bob

John Lawton

Thank you Windows 11?

Lol.

John

John Lawton

I've now added positions for 4 x supply bypass capacitors AND a HC/49US(AT49) crystal + loading caps to the board so now that's a pretty comprehensive AK to CK adaptor board!

I might revisit the plain SSOP-SDIP adaptor board & add similar parts to it. https://easy-driver.co.uk/amicus/

I might just get the bare pcbs made rather than trying to retail fully assembled ones i.e. with the DIP pins fitted, so they'll be cheaper.

Is anyone interested in any of the new versions, is it worth me getting any pcbs manufactured? 

John

RGV250

#15
Hi John,
If you do get the standard one done with caps and xtal pads I will be interested in a couple. I think it would be better to do unassembled, just my opinion.
Hopefully not too small footprint as I am not great at SMD soldering.
Bob

John Lawton

Hi Bob,

the caps are all 0603 but the SSOP package is the real hand soldering challenge and I can do nothing about that. I wish uChip would offer SOIC versions.

John

RGV250

#17
Hi John,
Thanks for the info, I have some SMD practice boards so will have a look at 0603. Will also have a look at the uC.

Just had a look, the 24HJ128GP502 I would be looking to use is available in SOIC?

Bob

John Lawton

#18
If it is, then I have a SOIC-SDIP adaptor board for that, but it currently has no supply bypass cap(s) or crystal components. Do you want these added?

The SSOP adaptor was originally designed for the dsPIC33EP parts.
I can see I'll be designing a number of adaptor boards to cater for the different pinout PICs

John

top204

#19
Great job on the PCB John. But wait until I am closer to actually getting an AK device operating with the compiler.

They share a common name of dsPIC, but they are very, very different, even though microchip state they are backward compatible with 16-bit devices. They are not that backward compatible, and there are quite a few differences, in both the architecture and the assembler code/linker structure! I have things compiling, but only the very basic things, and then I will get to the complex things such as expressions, comparisons and variable types, such as Float and Double etc... They are subtly different with the AK devices, and it is the subtleties that cause problems.

Your excellent Amicus16B board arrived this morning, and many thanks for that, and I have created a simple code template for it, running on a dsPIC33CK64MP102 device, operating at 200 MHz with its internal oscillator, and it all works nicely, and no problems at all with USB to Serial drivers on Windows 10. The Positron16 code template is listed below:

'
'   /\\\\\\\\\
'  /\\\///////\\\
'  \/\\\     \/\\\                                                 /\\\          /\\\
'   \/\\\\\\\\\\\/        /\\\\\     /\\\\\\\\\\     /\\\\\\\\   /\\\\\\\\\\\  /\\\\\\\\\\\  /\\\\\\\\\
'    \/\\\//////\\\      /\\\///\\\  \/\\\//////    /\\\/////\\\ \////\\\////  \////\\\////  \////////\\\
'     \/\\\    \//\\\    /\\\  \//\\\ \/\\\\\\\\\\  /\\\\\\\\\\\     \/\\\         \/\\\        /\\\\\\\\\\
'      \/\\\     \//\\\  \//\\\  /\\\  \////////\\\ \//\\///////      \/\\\ /\\     \/\\\ /\\   /\\\/////\\\
'       \/\\\      \//\\\  \///\\\\\/    /\\\\\\\\\\  \//\\\\\\\\\\    \//\\\\\      \//\\\\\   \//\\\\\\\\/\\
'        \///        \///     \/////     \//////////    \//////////      \/////        \/////     \////////\//
'                                  Let's find out together what makes a PIC Tick!
'
' Code Listing template for a dsPIC33CK64MP102 device, running on an 'Easy Driver' Amicus16B development board.
' The device is setup to run at 200 MHz using its internal oscillator.
'
' Written by Les Johnson for the Positron16 BASIC Compiler
'
    Device = 33CK64MP102                                                        ' Tell the compiler what device to compile for
    Declare Xtal = 200                                                          ' Tell the compiler what frequency the device is operating at (in MHz)
'
' Set the USART1 pins for an Amicus16B board
'
    Declare Hserial1_Baud = 115200                                              ' Set the Baud rate of USART1 to 115200
    Declare HRSOut1_Pin   = PORTB.0                                             ' Set pin PORTB.0 for USART1 TX (PPS pin RP32)
    Declare HRSIn1_Pin    = PORTB.1                                             ' Set pin PORTB.1 for USART1 RX (PPS pin RP33)

$define LED_OnBoard PORTB.15                                                    ' The pin where the on-board LED is connected (if enabled with jumper LK3)
'
' Create any global variables here
'

'----------------------------------------------------------------------------------
' The main program loop starts here
' Setup the device to operate at 200 MHz, and transmit text to a serial terminal at 115200 Baud.
' Also toggle the on-board LED to make sure things are operating as they should (bring the LED into circuit with board jumper LK3)
'
Main:
    Setup()                                                                     ' Setup the program and any peripherals
    Do                                                                          ' Create a loop
        HRSOut1Ln "Hello World"                                                 ' Transmit text, to make sure the device is operating at the correct speed
        Toggle LED_OnBoard                                                      ' \ Toggle the on-board LED at twice a second
        DelayMS 500                                                             ' /
    Loop                                                                        ' Do it forever

'-----------------------------------------------------------------------------------------
' Setup the program and any peripherals
' Input     : None
' Output    : None
' Notes     : None
'
Proc Setup()
    Osc_200MHz()                                                                ' Initialise the internal oscillator to run the device at 200 MHz
    PPS_Unlock()                                                                ' Unlock the PPS
    PPS_Output(cOut_Pin_RP32, cOut_Fn_U1TX)                                     ' Make pin RB0 (PPS pin RP32) USART1 TX on a dsPIC33CK64MP102 device
    PPS_Input(cIn_Pin_RP33, cIn_Fn_U1RX)                                        ' Make pin RB1 (PPS pin RP33) USART1 RX on a dsPIC33CK64MP102 device
EndProc

'-----------------------------------------------------------------------------------------
' Initialise the internal oscillator to run the device at 200 MHz
' Input     : None
' Output    : None
' Notes     : For a dsPIC33CK64MP102 device
'
Proc Osc_200MHz()
    CLKDIV    = %0011000000000001                                               ' RCDIV is FRC/1. PREPLL is 1:1
    PLLFBD    = %0000000000110010
    OSCTUN    = %0000000000000000
    PLLDIV    = %0000000000010001                                               ' POSTPLL is 1:1. FVCO/4. POST2DIV is 1:1
    ACLKCON1  = %0000000100000001                                               ' PLL disabled. FRC Oscillator. PREPLL is 1:1
    APLLFBD1  = %0000000010010110
    APLLDIV1  = %0000000001000001                                               ' APSTSCLR is 1:4. APOST2DIV is 1:1. AVCODIV is FVCO/4
    REFOCONL  = %0000000000000000
    REFOCONH  = %0000000000000000
    REFOTRIMH = %0000000000000000
    RPCON     = %0000000000000000
    Write_OSCCON(%0000000100000001)                                             ' Enable PLL
    Repeat: Until OSCCONbits_OSWEN = 1                                          ' \ Wait for clock switching to stabilise
    Repeat: Until OSCCONbits_LOCK = 0                                           ' /
EndProc

'-----------------------------------------------------------------------------------------
' Setup the config fuses for an internal oscillator, on a dsPIC33CK64MP102 device.
' The OSC pins are general purpose I/O.
'
    Config FSEC = BWRP_OFF,_                                                    ' Boot Segment may be written
                  BSS_DISABLED,_                                                ' Boot Segment No Protection (other than BWRP)
                  BSEN_OFF,_                                                    ' No Boot Segment
                  GWRP_OFF,_                                                    ' General Segment may be written
                  GSS_DISABLED,_                                                ' General Segment No Protection (other than GWRP)
                  CWRP_OFF,_                                                    ' Configuration Segment may be written
                  CSS_DISABLED,_                                                ' Configuration Segment No Protection (other than CWRP)
                  AIVTDIS_OFF                                                   ' Alternate Interrupt Vector Table Disabled

    Config FOSCSEL = FNOSC_FRC,_                                                ' Oscillator Source is Internal Fast RC (FRC)
                     IESO_OFF                                                   ' Start up with user-selected oscillator source

    Config FOSC = POSCMD_NONE,_                                                 ' Primary Oscillator disabled
                  OSCIOFNC_ON,_                                                 ' OSC2 is general purpose digital I/O pin
                  FCKSM_CSECMD,_                                                ' Clock switching is enabled. Fail-safe Clock Monitor is disabled
                  PLLKEN_ON,_                                                   ' PLL clock output will be disabled if Lock is lost
                  XTCFG_G3,_                                                    ' XT Config is 24 to 32 MHz crystals
                  XTBST_ENABLE                                                  ' XT Boost the kick-start


    Config FWDT = RWDTPS_PS2147483648,_                                         ' Run Mode Watchdog Timer Post Scaler is 1:2147483648
                  RCLKSEL_LPRC,_                                                ' Watchdog Timer Clock is use LPRC
                  WINDIS_ON,_                                                   ' Watchdog Timer in Non-Window mode
                  WDTWIN_WIN25,_                                                ' Watchdog Timer Window is 25% of WDT period
                  SWDTPS_PS2147483648,_                                         ' Sleep Mode Watchdog Timer Post Scaler is 1:S2147483648
                  FWDTEN_ON_SW                                                  ' Watchdog Timer controlled via software. Use WDTCON.ON bit

    Config FPOR = BISTDIS_DISABLED                                              ' Memory BIST on reset disabled

    Config FICD = ICS_PGD1,_                                                    ' ICD Communicate on PGC1 and PGD1
                  JTAGEN_OFF                                                    ' JTAG is disabled

    Config FDMT = DMTDIS_OFF                                                    ' Dead Man Timer is Disabled and can be enabled by software

    Config FDEVOPT = ALTI2C1_OFF,_                                              ' I2C1 mapped to SDA1/SCL1 pins
                     ALTI2C2_OFF,_                                              ' I2C2 mapped to SDA2/SCL2 pins
                     SMBEN3_SMBUS3,_                                            ' SMBus 3.0 input levels
                     SPI2PIN_PPS                                                ' SPI2 uses I/O remap (PPS) pins

    Config FALTREG = CTXT1_OFF,_                                                ' (IPL) Associated to Alternate Working Register Not Assigned
                     CTXT2_OFF,_                                                ' (IPL) Associated to Alternate Working Register Not Assigned
                     CTXT3_OFF,_                                                ' (IPL) Associated to Alternate Working Register Not Assigned
                     CTXT4_OFF                                                  ' (IPL) Associated to Alternate Working Register Not Assigned

Best regards
Les