• AVR Freaks

Helpful ReplyHot!PIC24FJ64GB002 as USB Host and UART

Page: < 123 Showing page 3 of 3
Author
Aussie Susan
Super Member
  • Total Posts : 3807
  • Reward points : 0
  • Joined: 2008/08/18 22:20:40
  • Location: Melbourne, Australia
  • Status: offline
Re: PIC24FJ64GB002 as USB Host and UART 2015/03/18 21:59:33 (permalink)
3 (1)
Not sure, but a quick glance shows code lines such as:

if( I2C1STATbits.ACKSTAT );

which does nothing. Is that supposed to be a 'while' statement or is the semicolon not supposed to be there?????
Looking at your code, I can't really see how it is receiving and processing the various date parts. Perhaps if you show us what 'dt', 'mnt' and 'yr' are? 
Also, you are passing these into the 'get_dt' function as "pass by value", and using updating them within the function. I'm not really sure why you are bothering to pass this as a parameter?
Susan
#41
NIMIT VACHHANI
Starting Member
  • Total Posts : 83
  • Reward points : 0
  • Joined: 2015/02/19 21:52:01
  • Location: 0
  • Status: offline
Re: PIC24FJ64GB002 as USB Host and UART 2015/03/19 02:29:00 (permalink)
0
Hi Susan,
Following code is almost working 

#include <xc.h>
#include <P24FJ64GB002.h>
#include <i2c.h>
// CONFIG4
#pragma config DSWDTPS = DSWDTPSF // DSWDT Postscale Select (1:2,147,483,648 (25.7 days))
#pragma config DSWDTOSC = LPRC // Deep Sleep Watchdog Timer Oscillator Select (DSWDT uses Low Power RC Oscillator (LPRC))
#pragma config RTCOSC = SOSC // RTCC Reference Oscillator Select (RTCC uses Secondary Oscillator (SOSC))
#pragma config DSBOREN = ON // Deep Sleep BOR Enable bit (BOR enabled in Deep Sleep)
#pragma config DSWDTEN = ON // Deep Sleep Watchdog Timer (DSWDT enabled)
// CONFIG3
#pragma config WPFP = WPFP63 // Write Protection Flash Page Segment Boundary (Highest Page (same as page 42))
#pragma config SOSCSEL = SOSC // Secondary Oscillator Pin Mode Select (SOSC pins in Default (high drive-strength) Oscillator Mode)
#pragma config WUTSEL = LEG // Voltage Regulator Wake-up Time Select (Default regulator start-up time used)
#pragma config WPDIS = WPDIS // Segment Write Protection Disable (Segmented code protection disabled)
#pragma config WPCFG = WPCFGDIS // Write Protect Configuration Page Select (Last page and Flash Configuration words are unprotected)
#pragma config WPEND = WPENDMEM // Segment Write Protection End Page Select (Write Protect from WPFP to the last page of memory)
// CONFIG2
#pragma config POSCMOD = HS // Primary Oscillator Select (HS Oscillator mode selected)
#pragma config I2C1SEL = PRI // I2C1 Pin Select bit (Use default SCL1/SDA1 pins for I2C1 )
#pragma config IOL1WAY = OFF // IOLOCK One-Way Set Enable (The IOLOCK bit can be set and cleared using the unlock sequence)
#pragma config OSCIOFNC = OFF // OSCO Pin Configuration (OSCO pin functions as clock output (CLKO))
#pragma config FCKSM = CSDCMD // Clock Switching and Fail-Safe Clock Monitor (Sw Disabled, Mon Disabled)
#pragma config FNOSC = PRI // Initial Oscillator Select (Primary Oscillator (XT, HS, EC))
#pragma config PLL96MHZ = ON // 96MHz PLL Startup Select (96 MHz PLL Startup is enabled automatically on start-up)
#pragma config PLLDIV = DIV3 // USB 96 MHz PLL Prescaler Select (Oscillator input divided by 3 (12 MHz input))
#pragma config IESO = ON // Internal External Switchover (IESO mode (Two-Speed Start-up) enabled)
// CONFIG1
#pragma config WDTPS = PS32768 // Watchdog Timer Postscaler (1:32,768)
#pragma config FWPSA = PR128 // WDT Prescaler (Prescaler ratio of 1:128)
#pragma config WINDIS = OFF // Windowed WDT (Standard Watchdog Timer enabled,(Windowed-mode is disabled))
#pragma config FWDTEN = ON // Watchdog Timer (Watchdog Timer is enabled)
#pragma config ICS = PGx1 // Emulator Pin Placement Select bits (Emulator functions are shared with PGEC1/PGED1)
#pragma config GWRP = OFF // General Segment Write Protect (Writes to program memory are allowed)
#pragma config GCP = OFF // General Segment Code Protect (Code protection is disabled)
#pragma config JTAGEN = ON // JTAG Port Enable (JTAG port is enabled)
 
// I2C1 DEFINITIONS
#define USE_AND_OR // To enable AND_OR mask setting for I2C.
#define DS13070 0xD0
#define DS13071 0xD1
#define Fosc (12000000) //12 MHz
#define Fcy (Fosc/2) // no PLL
#define Fsck 100000
#define I2C_BRG ((Fcy/2/Fsck)-1)
unsigned char buf[32],buf2[20];
unsigned char buff_index,send_index,buff_index2;
unsigned char sec, min, hr, dt, mnt, yr, i2c_var;
char uart1_rx_complete,uart2_rx_complete = 0;
void IOInit()
{
// Disable analog function of all pins.
AD1PCFG = 0xFFFF;
// Unlock register for pin mapping.
__builtin_write_OSCCONL(OSCCON & 0xbf) ;
//UART 1 RX PIN
RPINR18bits.U1RXR = 9;
//UART 2 RX PIN
RPINR19bits.U2RXR =8;
//UART 2 TX PIN
RPOR3bits.RP7R = 5;
// Lock register after mapping.
__builtin_write_OSCCONL(OSCCON | 0x40);
}
void UART1Init()
{
// Value for 9600 baud rate.
U1BRG = 38;
U1MODEbits.UARTEN = 1; // UART1 is Enabled
U1MODEbits.USIDL = 0; // Continue operation at Idlestate
U1MODEbits.IREN = 0; // IrDA En/Decoder is disabled
U1MODEbits.RTSMD = 1; // flow control mode
U1MODEbits.UEN0=0; // Uart1 Tx and Rx pins are enabled and used.
U1MODEbits.UEN1=0;
U1MODEbits.WAKE = 0; // Wake-up disabled
U1MODEbits.LPBACK = 0; // Loop-back is disabled
U1MODEbits.ABAUD = 0; // auto baud is disabled
U1MODEbits.RXINV = 0; // No RX inversion
U1MODEbits.BRGH = 0; // low baud rate
U1MODEbits.PDSEL = 0b00; // 8bit no parity
U1MODEbits.STSEL = 0; // one stop bit

U1STAbits.UTXISEL1 = 1; // Tx interrupt mode selection
U1STAbits.URXISEL0 = 0; // Interrupt when a last character is shifted out of Transmit Shift Register. All Tx operations are complete.
// U1STA &= 0xDFFF; // clear TXINV by bit masking
// U1STAbits.UTXINV=0;
U1STAbits.UTXBRK = 0; // sync break tx is disabled
U1STAbits.UTXEN = 1; //transmit is enabled
U1STAbits.URXISEL = 0b00; // interrupt flag bit is set when RXBUF is filled whith 1 character
U1STAbits.ADDEN = 0; // address detect mode is disabled
//IFS0bits.U1RXIF = 0; // clear interrupt flag of rx
//IFS0bits.U1TXIF = 0; // clear interrupt flag of Tx
//IEC0bits.U1TXIE = 1 ; // Enable uart transmit interrupt.
IEC0bits.U1RXIE = 1 ; // Enable uart receive interrupt.
}
void UART2Init()
{
// Value for 9600 baud rate.
U2BRG = 38;
U2MODEbits.UARTEN = 1; // UART1 is Enabled
U2MODEbits.USIDL = 0; // Continue operation at Idlestate
U2MODEbits.IREN = 0; // IrDA En/Decoder is disabled
U2MODEbits.RTSMD = 1; // flow control mode
U2MODEbits.UEN0=0; // Uart1 Tx and Rx pins are enabled and used.
U2MODEbits.UEN1=0;
U2MODEbits.WAKE = 0; // Wake-up disabled
U2MODEbits.LPBACK = 0; // Loop-back is disabled
U2MODEbits.ABAUD = 0; // auto baud is disabled
U2MODEbits.RXINV = 0; // No RX inversion
U2MODEbits.BRGH = 0; // low boud rate
U2MODEbits.PDSEL = 0b00; // 8bit no parity
U2MODEbits.STSEL = 0; // one stop bit

U2STAbits.UTXISEL1 = 1; // Tx interrupt mode selection
U2STAbits.URXISEL0 = 0; // Interrupt when a last character is shifted out of Transmit Shift Register. All Tx operations are complete.
//U2STA &= 0xDFFF; // clear TXINV by bit masking
// U2STAbits.UTXINV=0;
U2STAbits.UTXBRK = 0; // sync break tx is disabled
U2STAbits.UTXEN = 1; //transmit is enabled
U2STAbits.URXISEL = 0b00; // interrupt flag bit is set when RXBUF is filled whith 1 character
U2STAbits.ADDEN = 0; // address detect mode is disabled
//IFS1bits.U2RXIF = 0; // clear interrupt flag of rx
//IFS1bits.U2TXIF = 0; // clear interrupt flag of Tx
IEC1bits.U2TXIE = 1 ; // Enable uart transmit interrupt.
IEC1bits.U2RXIE = 1 ; // Enable uart receive interrupt.
}
//====== UART INTERRUPTS
void __attribute__((interrupt, no_auto_psv)) _U1RXInterrupt(void)
{
IFS0bits.U1RXIF = 0; // Clear Uart1 Rx flag.
while(!U1STAbits.URXDA);
buf[buff_index] = U1RXREG;
if (buf[buff_index] == 0x0D)
{
uart1_rx_complete = 1;
send_index = buff_index;
}
else
{
buff_index ++;
}
}
void __attribute__((interrupt, no_auto_psv)) _U2RXInterrupt(void)
{
IFS1bits.U2RXIF = 0; // Clear Uart2 Rx flag.
while(!U2STAbits.URXDA);
buf2[buff_index2] = U2RXREG;
if (buf2[buff_index2] == 0x0D)
{
uart2_rx_complete = 1;
}
else
{
buff_index2 ++;
}
}
void __attribute__((interrupt, no_auto_psv)) _U2TXInterrupt(void)
{
IFS1bits.U2TXIF = 0; // Clear Uart2 Tx flag.
}
//====== I2C INTERRUPT
void __attribute__((interrupt,no_auto_psv)) _MI2C1Interrupt(void)
{
MI2C1_Clear_Intr_Status_Bit; //Clear Interrupt status of I2C1
}

//====== CUSTOM ROUTINES
void put_char_on_uart2(char value)
{
U2TXREG = value;
while(!U2STAbits.TRMT);
}
void i2c_wait(unsigned int cnt)
{
while(--cnt)
{
asm( "nop" );
asm( "nop" );
}
}
unsigned char BCD2UpperCh(unsigned char bcd)
{
return ((bcd >> 4) + '0');
}
unsigned char BCD2LowerCh(unsigned char bcd)
{
return ((bcd & 0x0F) + '0');
}
char BSP_RTCC_DecToBCD (char value)
{
return (((value / 10)) << 4) | (value % 10);
}
void I2CInit()
{
int temp;
I2C1BRG = I2C_BRG;
I2C1CONbits.I2CEN = 0; // Disable I2C Mode
I2C1CONbits.DISSLW = 0; // Disable slew rate control
IFS1bits.MI2C1IF = 0; // Clear Interrupt
I2C1CONbits.I2CEN = 1; // Enable I2C Mode
temp = I2C1RCV; // read buffer to clear buffer full
}
void I2CClose()
{
CloseI2C1();
}
void get_dt_value(unsigned char address,unsigned char dt_variable)
{
StartI2C1(); //Send the Start Bit
IdleI2C1(); //Wait to complete
MasterWriteI2C1(DS13070);
IdleI2C1(); //Wait to complete
if( I2C1STATbits.ACKSTAT );
MasterWriteI2C1(address);
IdleI2C1(); //Wait to complete
if( I2C1STATbits.ACKSTAT );
RestartI2C1();
i2c_wait(10);
IdleI2C1(); //Wait to complete
MasterWriteI2C1(DS13071);
IdleI2C1(); //Wait to complete
dt_variable = MasterReadI2C1();
IdleI2C1();
NotAckI2C1();
IdleI2C1();
StopI2C1();
put_char_on_uart2(BCD2UpperCh(dt_variable));
put_char_on_uart2(BCD2LowerCh(dt_variable));
}
void set_dt_value(unsigned char address,unsigned char dt_variable)
{
StartI2C1(); //Send the Start Bit
IdleI2C1(); //Wait to complete
MasterWriteI2C1(DS13070);
IdleI2C1(); //Wait to complete
if( I2C1STATbits.ACKSTAT );
MasterWriteI2C1(address);
IdleI2C1(); //Wait to complete
if( I2C1STATbits.ACKSTAT );
MasterWriteI2C1(dt_variable);
IdleI2C1(); //Wait to complete
if( I2C1STATbits.ACKSTAT );
NotAckI2C1();
IdleI2C1();
StopI2C1();
}
void get_dt()
{
I2CInit();
get_dt_value(0x04,dt);
put_char_on_uart2('-');
get_dt_value(0x05,mnt);
put_char_on_uart2('-');
get_dt_value(0x06,yr);
put_char_on_uart2(' ');
get_dt_value(0x02,hr);
put_char_on_uart2(':');
get_dt_value(0x01,min);
put_char_on_uart2(':');
get_dt_value(0x00,sec);
put_char_on_uart2(0x0d);
I2CClose();
}
int main()
{
unsigned int i = 0;
IOInit();
UART1Init();
UART2Init();

get_dt();
while(1)
{
if (uart1_rx_complete == 1)
{
for(i=0;i < send_index + 1 ;i++)
{
U2TXREG = buf[i];
while ( !U2STAbits.TRMT );
}
buff_index = 0;
uart1_rx_complete =0;
}
else if (uart2_rx_complete == 1)
{
if((buf2[0]=='D' || buf2[0]=='d') && buf2[1] !='?')
{
I2CInit();
set_dt_value(0x04,(BSP_RTCC_DecToBCD(buf2[2]-0x30)<<4)+(BSP_RTCC_DecToBCD(buf2[3]-0x30)));
set_dt_value(0x05,(BSP_RTCC_DecToBCD(buf2[5]-0x30)<<4)+(BSP_RTCC_DecToBCD(buf2[6]-0x30)));
set_dt_value(0x06,(BSP_RTCC_DecToBCD(buf2[8]-0x30)<<4)+(BSP_RTCC_DecToBCD(buf2[9]-0x30)));
set_dt_value(0x02,(BSP_RTCC_DecToBCD(buf2[11]-0x30)<<4)+(BSP_RTCC_DecToBCD(buf2[12]-0x30)));
set_dt_value(0x01,(BSP_RTCC_DecToBCD(buf2[14]-0x30)<<4)+(BSP_RTCC_DecToBCD(buf2[15]-0x30)));
set_dt_value(0x00,(BSP_RTCC_DecToBCD(buf2[17]-0x30)<<4)+(BSP_RTCC_DecToBCD(buf2[18]-0x30)));
I2CClose();
}
else if((buf2[0]=='D' || buf2[0]=='d') && buf2[1] =='?')
{
get_dt();
}
buff_index2 = 0;
uart2_rx_complete = 0;
}
};
return 0;
}
The uarts are working fine. When i am sending 'd?' on my uart 2 i am reading rtc value from ds1307 and send them to uart 2. The problem is i am getting all '?' as value. I think i am going wrong with config2 part. I am using 12Mhz crystal and pll div is 3 and FNOSC = PRI. So by that Fcy for my uart will be 12Mhz and my UxBRG value should be 38 with BRGH=0. The UARTs are working correctly. Above IOInit() i have defined values for I2C and in that what should be my Fosc and Fcy ? I am doing something wrong here.
#42
NIMIT VACHHANI
Starting Member
  • Total Posts : 83
  • Reward points : 0
  • Joined: 2015/02/19 21:52:01
  • Location: 0
  • Status: offline
Re: PIC24FJ64GB002 as USB Host and UART 2015/03/19 03:19:01 (permalink)
0
Hi,
I think i have connected DS1307 to wrong pins of PIC24FJ64GB002. I have connected it to pins 2 and 3. Need advice on connecting DS1307 to PIC ....
#43
NIMIT VACHHANI
Starting Member
  • Total Posts : 83
  • Reward points : 0
  • Joined: 2015/02/19 21:52:01
  • Location: 0
  • Status: offline
Re: PIC24FJ64GB002 as USB Host and UART 2015/03/19 04:24:15 (permalink)
0
Greetings to all for helping me out. 
@Susan : I have indeed connected the DS1307 module to pin 2 and 3, but I was totally wrong in Config 2 - I2C1SEL should be 0 instead of 1. After I2C1SEL = 0, everything works fine. My UARTs and RTC are in sync with my PIC micro controller.
 
Next and final stage is working with USB Flash Drive. First of all i need to detect USB Flash Drive attach and detach and after that i need to work on file system. Any advice on starting with USB Flash Drive attach detach detection ?
 
Do i need PLLDIV = DIV3 for working with USB ? 
 
I have usb cable and it has four wires Red = +5V , Black = GND , Green = ? and White = ? . I have gone through some searches and they mention Green is D+ and White is D- and others have mentioned Green as D- and White as D+... Any idea. That cable is connected to Usb A female connector. 
 
Thanks again to all for the advice.
post edited by NIMIT VACHHANI - 2015/03/19 04:31:13
#44
Aussie Susan
Super Member
  • Total Posts : 3807
  • Reward points : 0
  • Joined: 2008/08/18 22:20:40
  • Location: Melbourne, Australia
  • Status: offline
Re: PIC24FJ64GB002 as USB Host and UART 2015/03/19 21:32:20 (permalink)
3 (1)
NIMIT VACHHANI
Next and final stage is working with USB Flash Drive. First of all i need to detect USB Flash Drive attach and detach and after that i need to work on file system. Any advice on starting with USB Flash Drive attach detach detection ?

USB is a whole new world of pain, but you should spend time looking at the MLA and the documentation that relates to the USB stack - there are a couple of very useful Application notes that describe the USB stack from the underlying design decisions you need to make about how to use it (e.g. polling or interrupt) and also the programming model.
The USB stack has callbacks for all of the low-level operations such as the attach and detach as well as when each individual transfer completes.
DO NOT TRY TO WRITE YOUR OWN USB STACK! Use the library or you will get nowhere.
I would suggest that you put aside the code you have for the other peripherals for a while and use the core of your program code (the oscillator set in particular) to get the USB connection to the Flash drive working in a basic way. Once is going, then integrate the other parts of your code.
NIMIT VACHHANI
Do i need PLLDIV = DIV3 for working with USB ? 

One of the key design issues you face at the start of any project is how to set up the oscillator. Typically there is a single clock source that you need to design so that it can be used with all of the peripherals that derive their timing from it.
The MCU you are using can be both a blessing and a curse in this regard. It can be quite inflexible in terms of what how you set up the clock frequency, it does take the clock from the PLL for the USB generation fairly early in the chain which somewhat separates the USB setup from the rest. However you need to read through the Oscillator FRM section, and in particular Section 6.6.2 on what you need to do to set up the USB PLL. Once you have the USB set up, then you can set up the clock for the rest of the system, remembering (as I said) that you have one clock source for all the rest (except the graphics which is not in play here).
There is no simple command that you can use to set up the oscillator - you need to read and understand the whole oscillator setup.
NIMIT VACHHANI
I have usb cable and it has four wires Red = +5V , Black = GND , Green = ? and White = ? . I have gone through some searches and they mention Green is D+ and White is D- and others have mentioned Green as D- and White as D+... Any idea. That cable is connected to Usb A female connector. 

There are MANY localisations that Google will show you that describes how to connect up the USB wires to the various plug/socket types.
Susan
#45
NIMIT VACHHANI
Starting Member
  • Total Posts : 83
  • Reward points : 0
  • Joined: 2015/02/19 21:52:01
  • Location: 0
  • Status: offline
Re: PIC24FJ64GB002 as USB Host and UART 2015/03/19 22:48:22 (permalink)
0
I am not able to find USB Host install file on Microchip Website. I have downloaded mla version v2014_07_22. It does not have stack installed as shown in most of the pdf documents. The installer has installed usb framework in the following location - "c:\microchip\mla\v2014_07_22\framework\usb" . The folder is having all the header files and c files necessary for usb. I am not able to find usb configuration tool.. Any idea where can i find it ?
#46
Aussie Susan
Super Member
  • Total Posts : 3807
  • Reward points : 0
  • Joined: 2008/08/18 22:20:40
  • Location: Melbourne, Australia
  • Status: offline
Re: PIC24FJ64GB002 as USB Host and UART 2015/03/22 19:46:23 (permalink)
0
I can't see the directory structure (I'm at work and it is on my machine at home) but the files are distributed around a bit. Have a look all through the directory structure and you will find the documentation, the "include" files, the "source" files as well as the pre-built "hex" files.
I have not used the USB configuration tool as I have taken some of the example files and then edited them directly to be what I want. The macros that drive the TPL (for example) are well documented and also make sense when reading the various application notes.
Susan
#47
NIMIT VACHHANI
Starting Member
  • Total Posts : 83
  • Reward points : 0
  • Joined: 2015/02/19 21:52:01
  • Location: 0
  • Status: offline
Re: PIC24FJ64GB002 as USB Host and UART 2015/03/23 20:56:00 (permalink)
0
Hey Susan,
 
The recent MLA is bit complicated, so i downloaded the older version v2011-10-18 and opened up the code for thumb drive data logging. Did the necessary changes configured for my PIC24FJ64GB002 and it works like a charm. The usb host and my flash drive data logging is working perfectly. I want to know whether i can send data to Epson dotmatrix printer using TX and RX ? I have already configured two UARTs. Uart 1 will be connected to my 8051 micro controller and Uart 2 will be connected to MAX232 which will be further connected to DB9 to DB25 pin cable of Epson Dotmatrix printer. Is it possible to send data to printer using Tx and Rx of Uart ? Just asking.
#48
NIMIT VACHHANI
Starting Member
  • Total Posts : 83
  • Reward points : 0
  • Joined: 2015/02/19 21:52:01
  • Location: 0
  • Status: offline
Re: PIC24FJ64GB002 as USB Host and UART 2015/03/24 03:21:28 (permalink)
0
Hello Everybody,
 
Can i connect PIC24FJ64GB002 directly to printer parallel port to my Epson LQ300+ printer ? I am thinking of connecting 8 data pins and 1 strobe pin. Some pins of pic are 5V tolerance where as others are not. Should i use logic level converter for 3.3V tolerance pins ?
#49
DarioG
Allmächtig.
  • Total Posts : 54081
  • Reward points : 0
  • Joined: 2006/02/25 08:58:22
  • Location: Oesterreich
  • Status: offline
Re: PIC24FJ64GB002 as USB Host and UART 2015/03/24 12:12:49 (permalink)
0
Yeah I'd use the level translators, but moreover I'd isolate or transzorb-protect those pins, since you're likely to connect them "live" to the printer

GENOVA :D :D ! GODO
#50
NIMIT VACHHANI
Starting Member
  • Total Posts : 83
  • Reward points : 0
  • Joined: 2015/02/19 21:52:01
  • Location: 0
  • Status: offline
Re: PIC24FJ64GB002 as USB Host and UART 2015/04/05 22:46:05 (permalink)
3 (1)
Hello friends,
 
The project is up and running. I have developed the prototype in which my 8051 sends data to pic24 which works as an usb host to save data in csv file in the attached flash drive. Thanks for all your help and ideas.
#51
Habibwld
New Member
  • Total Posts : 2
  • Reward points : 0
  • Joined: 2015/09/13 03:51:30
  • Location: 0
  • Status: offline
Re: PIC24FJ64GB002 as USB Host and UART 2020/11/01 03:19:59 (permalink)
0
Hi Nimit
I am also trying to use USB host on same controller ,can you share me your code to it will save my time in better way
 
regards
Habib
#52
Aussie Susan
Super Member
  • Total Posts : 3807
  • Reward points : 0
  • Joined: 2008/08/18 22:20:40
  • Location: Melbourne, Australia
  • Status: offline
Re: PIC24FJ64GB002 as USB Host and UART 2020/11/03 19:29:15 (permalink)
0
This thread dates back to 2015 - Nimit's last post was in 2018 and he has not logged in since.
I don't like your chances of getting a reply.
Try starting your own thread and state what you are trying to achieve, what you have done, what issues you have encountered.
Susan
#53
Habibwld
New Member
  • Total Posts : 2
  • Reward points : 0
  • Joined: 2015/09/13 03:51:30
  • Location: 0
  • Status: offline
Re: PIC24FJ64GB002 as USB Host and UART 2020/11/11 01:41:43 (permalink)
0
Thanks Aussie Susan
I am trying myself i just wanted to check here for speed work  ,if i face any issue will update here
 
regards
Habib
#54
Page: < 123 Showing page 3 of 3
Jump to:
© 2021 APG vNext Commercial Version 4.5