So here is the current version of the code. Not cleaned up yet, but it is functional. It does not include the code for the PIC processor needed only if you want to mux 30+ sensors into the one ADE. Just remove the BUS_xxx methods that are used to control the muxes.
-
Recent Posts
Recent Comments
Archives
- December 2021
- January 2019
- April 2018
- March 2018
- June 2016
- April 2016
- October 2015
- June 2015
- March 2015
- December 2014
- August 2014
- July 2014
- June 2014
- May 2014
- April 2014
- March 2014
- January 2014
- December 2013
- November 2013
- October 2013
- September 2013
- August 2013
- July 2013
- June 2013
- May 2013
- April 2013
- March 2013
- February 2013
- January 2013
- October 2012
- September 2012
- August 2012
- July 2012
- June 2012
- May 2012
- April 2012
- March 2012
- February 2012
- January 2012
- December 2011
- November 2011
- October 2011
- September 2011
- August 2011
- July 2011
Categories
- ADE7763
- AmScope
- Arduino
- ARM
- AS3935
- AVC
- Components
- Desk Clock
- Die Filer
- FIRST LEGO League
- Furnace Monitor
- Home Energy Monitor
- IR Beacon
- LD-AIR
- Lightning detector
- MCP42010
- MSP430
- Personal
- PIC
- Pololu 9DOF IMU
- Processors
- Product reviews
- Projects
- Python
- Rigol DS1102D
- Robotic DVD burner
- RS232 Shifter
- Sailboat Race Timer
- Software
- Sugru
- SUNDAR
- Teensy
- uBlock LEA-6H
- Uncategorized
- Vectronix DMC
- XBee
Meta
Any news about if this project is still going would be appreciated.
And thank you for sharing knowledge.
This project is on backburner till I learn how to use Eagle PCB layout tool and get my boards made. The design is complete, I just need to implement.
Thank you for your code, I modify to use with STM32 instead. I can not use SPI in all mode of STM32 to interface with ADE7763, but I can do with bit shift like this:
void SPI_Send ( u8 data)
{
u8 j,data_in;
data_in = data;
for ( j = 0; j <8; j++ )
{
GPIO_WriteBit(GPIOC,GPIO_Pin_8,Bit_SET);
if ((data_in & 0x80)!=0)
{
GPIO_WriteBit(GPIOC,GPIO_Pin_10,Bit_SET);
}
else
{
GPIO_WriteBit(GPIOC,GPIO_Pin_10,Bit_RESET);
}
data_in=data_in<<1;
GPIO_WriteBit(GPIOC,GPIO_Pin_8,Bit_RESET);
}
}
u8 SPI_Receive (void)
{
u8 j,data_in=0;
for ( j = 0; j <8; j++ )
{
GPIO_WriteBit(GPIOC,GPIO_Pin_8,Bit_SET);
data_in=data_in<<1;
if(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_9) == Bit_SET)
{
data_in +=1;
}
else
{
data_in +=0;
}
GPIO_WriteBit(GPIOC,GPIO_Pin_8,Bit_RESET);
}
return(data_in);
}
Hi
Could you share your schematics? Shunt should be on hot or neutral line?
I do not have a schematic in a form that can be distributed at this point. It is just scrawled on a piece of paper. I hope to get to the job of entering it into either KiCad or Eagle in the next few months.
As for the shunt, I am not sure what you are referring to. The only ‘shunt’ I am using is a burden resistor across the coil of the current transformer. Often shunts are used as a small voltage drop that an opamp might amplify to determine current. I am not using such a process to determine current. I use the safer current transformer (CT) method.