PicUSB-Matlab con comunicacion Bulk Transfers USB

leonardo19 pudiste solucionar tu problema?. Me ocurre algo muy parecido a ti, en transmisión bulk la simulación funciona perfecto, pero a la hora de conectar la placa a la pc, no hay comunicación entre matlab y el pic. Alguna idea de que puede estar pasando?. El programa que le cargo al pic es exactamente el mismo que el de la simulación que funciona
 
Ya esta listo, lo que pasaba es que el compilador CCS estaba generando un .hex malo y na quedaba bien quemado el PIC pero lo reinstale nuevamente y ahora si funciona, y hasta puedo meterlo en un bloque de simulink y graficarlo en un scope
 
Gracias por tu respuesta leonardo19, te comento que en mi caso, el pic no se comunica correctamente con matlab en windows seven (lo probé con el ultimate de 32 bits, no se las demás versiones), sin embargo no hay ningún inconveniente en windows xp. Sinceramente desconozco la razón, si alguien tiene idea de que puede estar pasando, le agradeceré la información.
 
Hola, leonardo19, graficas los datos en tiempo real en simulink?, podrias explicarnos como haces para introducir los datos en simulink y graficarlos.
 
Última edición:
Lo que hago simplemente es crear una funcion en un archivo .m y luego lo llamo desde el simulink con el bloque matlab function, y se corre la simulacion en simulink con el tiempo de simulacion en inf=infinito, acontinuacion les posteo el programa en matlab


function salida=funcion(entrada)
global data_in data_out
loadlibrary mpusbapi _mpusbapi.h alias libreria

data_in = eye(1,1,'uint8');
data_out = eye(1,1,'uint8');

vid_pid_norm = libpointer('int8Ptr',[uint8('vid_04d8&pid_000b') 0]);
out_pipe = libpointer('int8Ptr',[uint8('\MCHP_EP1') 0]);
in_pipe = libpointer('int8Ptr',[uint8('\MCHP_EP1') 0]);

[Esta_conectado] = calllib ('libreria','MPUSBGetDeviceCount', vid_pid_norm);

if(Esta_conectado)

data_out=uint8(entrada);

[my_out_pipe] = calllib('libreria','MPUSBOpen',uint8(0), vid_pid_norm,out_pipe, uint8(0), uint8 (0));
[my_in_pipe] = calllib('libreria','MPUSBOpen',uint8(0), vid_pid_norm,in_pipe, uint8 (1), uint8 (0));


calllib('libreria', 'MPUSBWrite',my_out_pipe, data_out, uint8(1), uint8(1), uint8(10)); % Se envia el dato al PIC
[aa,bb,data_in,dd] = calllib('libreria', 'MPUSBRead',my_in_pipe, data_in, uint8(1), uint8(1), uint8(10));


salida=double(data_in)*5/255;

calllib('libreria','MPUSBClose',my_in_pipe);
calllib('libreria','MPUSBClose',my_out_pipe);
end

end
 
Monte el mismo circuito funciona la parte del adc pero la parte de los leds me puden ayudar a verificar que esta sucediendo. Me pueden informar si el cristal para este circuito es de 20Mhz o 45Mhz, gracias
 
Atrás
Arriba