Faits : A. A._, ressortissant camerounais né en 1984, est entré pour la première fois en Suisse en 2005 et a été mis au bénéfice d'une autorisation de séjour pour études. Le 7 mai 2007, l'Office fédéral des migrations, devenu le Secrétariat d'Etat aux migrations depuis le 1er janvier 2015 (ci-après: le Secrétariat d'Etat), a refusé d'approuver le renouvellement de l'autorisation de séjour de l'intéressé, sollicité à la suite d'un changement d'orientation, et a prononcé son renvoi de Suisse. Le recours interjeté contre ce prononcé a été déclaré irrecevable par décision du Tribunal administratif fédéral du 18 août 2008. Le 9 juin 2009, A._ a été mis au bénéfice d'une autorisation de séjour pour regroupement familial à la suite de son mariage avec B._, une ressortissante suisse. Un enfant est né de cette union le *** 2009. Le 6 avril 2010, B._ a déposé plainte contre son époux pour lésions corporelles simples, voies de fait, menaces et injures commises dans le cadre de violences conjugales. Le 23 avril 2010, l'épouse a déposé une requête en mesures protectrices de l'union conjugale. Lors de l'audience du 18 juin 2010, les époux se sont entendus sur la suspension de leur vie commune, le versement par le père d'une contribution d'entretien de 350 fr. par mois dès le 1er juin 2010 et l'attribution de la garde à la mère avec un droit de visite en faveur du père. B. Par mandat de répression du 9 janvier 2009, le Bureau neuchâtelois des créances judiciaires a infligé à A._ une amende de 880 fr. pour avoir effectué, entre les mois d'avril et juin 2008, une dizaine de voyages à bord des Chemins de fer fédéraux (CFF), sans avoir été muni d'un titre de transport valable. L'intéressé a également fait l'objet de deux condamnations pénales: le 25 juin 2009, il a été condamné à 30 jours-amende avec sursis pendant deux ans, le jour-amende étant fixé à 10 fr., pour avoir séjourné et exercé une activité lucrative de manière illégale durant la période comprise entre le 30 juillet 2007 et le mois de mai 2009; le 26 mai 2010, il a été condamné à 20 jours-amende à 35 fr., avec sursis pendant deux ans, et à une amende de 250 fr., pour voies de fait, menaces et injures commises envers son épouse. Le 4 août 2010, l'intéressé a retiré l'opposition qu'il avait formée contre l'ordonnance pénale du 26 mai 2010. Au 16 janvier 2015, A._ faisait l'objet de 36 poursuites pour plus de 39'000 fr. et de 24 actes de défaut de biens totalisant 30'000 fr. C. Le 20 août 2012, le Service des migrations de la République et canton de Neuchâtel (ci-après: le Service cantonal) a prolongé l'autorisation de séjour en faveur de l'intéressé, sous réserve de l'approbation du Secrétariat d'Etat. Le 9 juillet 2013, après avoir entendu l'intéressé, le Secrétariat d'Etat a refusé d'approuver la prolongation de l'autorisation de A._ et a prononcé son renvoi de Suisse. Par arrêt du 2 avril 2015, le Tribunal administratif fédéral a rejeté le recours que A._ avait interjeté contre la décision du Secrétariat d'Etat. D. Agissant par la voie du recours en matière de droit public, A._ demande au Tribunal fédéral, sous suite de frais et dépens, d'annuler l'arrêt du Tribunal administratif fédéral du 2 avril 2015 et d'accorder la prolongation de son autorisation de séjour; subsidiairement, de renvoyer la cause à l'autorité intimée pour nouvelle décision au sens des considérants. Il demande le bénéfice de l'assistance judiciaire. Le Tribunal administratif fédéral a renoncé à déposer des observations. Le Secrétariat d'Etat conclut au rejet du recours. Par ordonnance du 18 mai 2015, le Président de la IIe Cour de droit public a admis la requête d'effet suspensif.