Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
20691 Discussions

Nios II and Python

Altera_Forum
Honored Contributor II
2,119 Views

I am trying to send char bytes from my fpga to a python program, the data bytes are hexadecimal data, and those values will be plotted in a GUI table. The nios code is 

 

 

unsigned char temp =0xa;  

unsigned char temp1 =0xb;  

unsigned char temp2 =0xc; 

while(1) 

{  

sendFloat(temp);  

sendFloat(temp1);  

sendFloat(temp2); 

return0; 

void sendFloat( unsigned char n) 

char number[20]; 

int i=0;  

snprintf(number, sizeof(number),"%u", n); 

while(i<20){ 

IOWR_ALTERA_AVALON_UART_TXDATA(UART_BASE,number[i]);  

delay(); 

i++; 

IOWR_ALTERA_AVALON_UART_TXDATA(UART_BASE,'\n');} 

 

The Python code is 

 

import serial 

ser= serial.Serial('COM5',baudrate =115200, timeout=1) 

while 1: 

fpgadata=ser.readline() 

print(fpgadata)
0 Kudos
2 Replies
Altera_Forum
Honored Contributor II
1,055 Views

Your Nios code doesn't show whether you setup your Baudrate correctly - or at all. (Depending on your FPGA design you may not need to. However, it will need setting up somewhere.) 

 

Refer to chapter 7 - UART Core - of the "embedded peripherals ip user guide (https://www.altera.com/en_us/pdfs/literature/ug/ug_embedded_ip.pdf)". This has some code you can crib from too. 

 

Python looks adequate. Lookup the "Serial.inWaiting()". I think you'll find it helpful. 

 

Cheers, 

Alex
0 Kudos
Altera_Forum
Honored Contributor II
1,055 Views

Thanks for your reply, actually i forgot to mention the problem there was also some random garbage values were printed with actual data. 

But i got the solution for my problem, the char number[20] should be number[2]
0 Kudos
Reply